Home Automation such as creating your own control algorithms for system eHouse

Building Management eHouse allows you to create your own overlay (application running on a PC which eHouse system server), which makes it easy to create your own individual programming algorithms using our software EhouseLogAnalizer template for Delphi .

This software has been discussed in “Logs Analyzer smart home eHouse” an extension of the functionality of the system eHouse Home Automation .

With the stability of today's PCs, and Windows can be seamless and continuous operation of the intelligent home management software eHouse also monitored by the application KillExec.exe .

In the case of suspension of the application error is closed and started again without user intervention system .

With proper set up of Windows and system eHouse continuity can work smart home software on the PC for many months .

Proper writing software smart home control system requires sequential testing eHouse changing measurements (and send appropriate control events if necessary – time) .

When writing your own control algorithms to create software-flags attesting to the completion of the event to senselessly not repeatedly send the same event: for example, every 2 seconds to close blinds that are already closed .

Applications can be assigned to several Timers:

First – Leading such as updating the data driver 10 seconds .

Another – with values ​​depending on the variability of the phenomenon:

eg . for control of blinds , awnings for outdoor temperature and light levels may be a few minutes .

In the case of drive control blinds , gates , marquess , windows, etc. can be used reed connected to the digital inputs eHouse smart home controllers , evidence of their close and make control operations on the state of input data RoomManager , which is much better and truer than flag Sofware , whose value can be set incorrectly as a result of software bugs or errors due to the drive (not the closure of the , mechanical , block , etc . ) .

Examples using data from controllers in the application eHouseLogAnalizer (in repetitive loops operating at intervals every few seconds) .

// Initialize the data from the controller boiler HeatManagera

TzewnetrznaPN: = HADC [HM_ZEWNPN] ; // External Temperature North

TemperaturaGWC: = HADC [HM_GWC] ; // Temperature for GWC – Ground heat exchanger for the recuperator

TemperaturaKominekPlaszcz: = HADC [HM_KOM1] ; // The temperature of the water in the chimney 1 sensor

TemperaturaKominekKonvekcja: = HADC [HM_KOMKONV] ; // Temperature convection fireplace – sensor at the chimney of the actual work of the fireplace

TemperaturaKominekPlaszcz: = HADC [HM_KOM2] ; // Fire water jacket temperature sensor 2 – (Backup)

TemperaturaWewnętrzna: = HADC [HM_TWEWN] ; // Internal room temperature – for CO

TemperaturaSolar: = HADC [HM_SOLAR] ; // Temperature solar collector pipe peak (hot)

TzewnetrznaPD: = HADC [HM_ZEWNPD] ; // Outside temperature noon

Tkociol: = HADC [HM_KOC] ; // Boiler tube temperature peak (hot)

TemperaturaBuforaCODol: = HADC [HM_BANDOL] ; // Temperature CO / hot water tank down

TemperaturaRecuIn: = HADC [HM_REQIN] ; // Input recuperator temperature clean air

TemperaturaRecuOut: = HADC [HM_REQOUT] ; // Output air temperature recuperator home

TemperaturaZaworTrojDrozny: = HADC [HM_NAG] ; // Temperature controlled three-way valve such as a heater or for radiators

TemperaturaRecuWyciog: = HADC [HM_REQWYC] ; // Extract recuperator temperature of the house dirty air

TemperaturaBuforaCOGora: = HADC [HM_BANGORA] ; // Temperature heating / hot water tank up

TemperaturaBuforaCOSrodek: = HADC [HM_BANSRO] ; // Temperature heating / hot water tank center

// Measurements from the sensors to RoomManager

TzewWschod: = RMGetTempNr (get_index_rm ( ‘ 55 – 2 ‘ ) , 8) ; // Outdoor Temperature Sensor east of RM No. 8 for the address 55 – 2

TzewZachod: = RMGetTempNr (get_index_rm ( ‘ 55 – 3 ‘ ) , 8) ; // Temperature sensor outside the West with No. 8 for RM with the address 55 – 3

TzewPolnoc: = RMGetTempNr (get_index_rm ( ‘ 55 – 4 ‘ ) , 8) ; // Temperature sensor outside North No. 8 for RM with the address 55 – 4

TzewPoludnie: = RMGetTempNr (get_index_rm ( ‘ 55 – 5 ‘ ) , 8) ; // Temperature sensor outside South No. 8 for RM with the address 55 – 5

LNaslonecznienieWschod: = RMGetInvPercentNr (get_index_rm ( ‘ 55 – 2 ‘ ) , 1) ; // The level of ambient light east of sensor No. 1 for RM with the address 55 – 2

LNaslonecznienieZachod: = RMGetInvPercentNr (get_index_rm ( ‘ 55 – 3 ‘ ) , 1) ; // Ambient light level sensor West No. 1 for RM with the address 55 – 3

LNaslonecznieniePolnoc: = RMGetInvPercentNr (get_index_rm ( ‘ 55 – 4 ‘ ) , 1) ; // Ambient light level sensor North No. 1 for RM with the address 55 – 4

LNaslonecznieniePoludnie: = RMGetInvPercentNr (get_index_rm ( ‘ 55 – 5 ‘ ) , 1) ; // Ambient light level sensor Southern No. 1 for RM with the address 55 – 5

SilaWiatru: =: = RMGetPercentNr (get_index_rm ( ‘ 55 – 5 ‘ ) , 7) ; // Ambient light level sensor Southern No. 1 for RM with the address 55 – 5

Control algorithms can be arbitrary and may include any of the parameters and measurements so far have used and installed sensors certain physical quantities .

// Algorithm contained in the slow repetition timer such . every 10 minutes

// Example of energy-efficient control of roller shutters and awnings (resulting in significant cost savings due to the sun's rays to heat the house in winter) and the accumulation of free solar energy

// Free and ecological heating of rooms on the east side of the building to sunlight

if (not RoletyWschod) then // if they are no longer open

if (LNaslonecznienieWschod> 80) then // if the sun – check the value of empirically

if (Month < ; 5) and month> 8) then // if the month from September to April

if (TzewWschod> 0) then // temperature sensor in the sun warmed higher than 0C

if (Time> 8) and (Time < ; 11) then // in the morning when the sun shines directly from the east

begin

RoletyWschod: = true ; // Flag to open shutters East

OtworzRoletyWschod ; // Function of sending an event to the system drivers eHouse

ZamknijMarkizyWschod ; // Do not give anything because the sun is too low

end ;

// Free and ecological heating of rooms on the south side of the building, the sun's rays

if (not RoletyPoludnie) then // if they are no longer open

if (LNaslonecznieniePolodnie> 80) then // if the sun – check the value of empirically

if (Month < ; 5) and month> 8) then // if the month from September to April

if (TzewPoludnie> 0) then // temperature sensor in the sun warmed higher than 0C

if (hour> 10) and (Time < ; 14) then // in the morning when the sun shines directly from the south

begin

RoletyPoludnie: = true ; // Open the shutters southern flag

OtworzRoletyPolodnie ; // Function of sending an event to the system drivers eHouse

ZamknijMarkizyPolodnie ; // Do not give anything because the sun is too low

end ;

// Free and ecological heating of rooms on the west side of the building, the sun's rays

if (not RoletyZachod) then // if they are no longer open

if (LNaslonecznienieZachod> 80) then // if the sun – check the value of empirically

if (Month < ; 5) and month> 8) then // if the month from September to April

if (TzewZachod> 0) then // temperature sensor in the sun warmed higher than 0C

if (hour> 14) and (Time < ; 18) then // in the morning when the sun shines directly from the west

begin

RoletyZachod: = true ; // Flag to open shutters Western

OtworzRoletyZachod ; // Function of sending an event to the system drivers eHouse

ZamknijMarkizyZachod ; // Do not give anything because the sun is too low

end ;

// Ecological and Economical Limiting the impact of free space heating by sunlight in summer – control awnings

// Control awning – open awnings to reduce solar radiation and heating the house in the summer – east

if (not MarkizaWschodA) then // if they are no longer open

if (SilaWiatru < ; 5) then // if no wind

if ((Month> 4) and (Month < ; 9)) then // summer months

if (LNaslonecznienieWschod> 50) then // if the sun shines

if (time> 6) and (Time < ; 12) then // if hours of the morning

if (TwewnWschodA> 25) then // if the room is too warm

begin

MarkizaWschodA: = true ; // Flag awning open room A

OtworzMarkizeWchodA ; // Send an event to the system drivers eHouse

end ;

// Similarly, you can replicate the code for independent control of awnings in other areas of the eastern facade of changing A to a different value

// Control awning – open awnings to reduce solar radiation and heating the house in the summer noon

if (not MarkizaPoludnieA) then // if they are no longer open

if (SilaWiatru < ; 5) then // if no wind

if ((Month> 4) and (Month < ; 9)) then // summer months

if (LNaslonecznieniePoludnie> 50) then // if the sun shines

if (Time> 8) and (Time < ; 18) then // if the hour in which the sun hardest operates from the south

if (TwewnPoludnieA> 25) then // if the room is too warm

begin

MarkizaPoludnieA: = true ; // Flag awning open room A

OtworzMarkizePoludnieA ; // Send an event to the system drivers eHouse

end ;

// Similarly, you can replicate the code for independent control of awnings in other areas of the South elevation A Changing to a different value

// Control awning – open awnings to reduce solar radiation and heating the house in the summer of west side

if (not MarkizaZachodA) then // if they are no longer open

if (SilaWiatru < ; 5) then // if no wind

if ((Month> 4) and (Month < ; 9)) then // summer months

if (LNaslonecznieniePoludnie> 50) then // if the sun shines

if (Time> 8) and (Time < ; 18) then // if the hour in which the sun hardest operates from the south

if (TwewnZachodA> 25) then // if the room is too warm

begin

MarkizaZachodA: = true ; // Flag awning open room A

OtworzMarkizeZachodA ; // Send an event to the system drivers eHouse

end ;

// Similarly, you can replicate the code for independent control of awnings in other areas of the western facade of changing A to a different value

// Close the Marquis is too much wind

if (LNaslonecznieniePoludnie < ; 20) then // if the sun does not shine (chosen empirically Having Rain and rainfall)

if (MarkizaPoludnieA) then // if open awning

begin

MarkizaPoludnieA: = false ; // Change the flag

ZamknijMarkizePoludnieA ; // Send events to the microprocessor controllers eHouse

end ;

if (LNaslonecznienieZachod < ; 20) then // if the sun does not shine (chosen empirically)

if (MarkizaZachodA) then // if open awning

begin

MarkizaZachodA: = false ; // Change the flag

ZamknijMarkizeZachodA ; // Send events to the microprocessor controllers eHouse

end ;

if (LNaslonecznienieWschod < ; 20) then // if the sun does not shine (chosen empirically)

if (MarkizaWschodA) then // if open awning

begin

MarkizaWschodA: = false ; // Change the flag

ZamknijMarkizeWschodA ; // Send events to the microprocessor controllers eHouse

end ;

if (SilaWiatru> 5) then // Wind to close the blinds

if (MarkizaZachodA or MarkizaWschodA or MarkizaPoludnieA) then // if one is open

begin

ZamknijWszystkieMarkizy ; // Send an event to the system drivers eHouse

MarkizaZachodA: = false ;

MarkizaWschodA: = false ;

MarkizaPoludnieA: = false ;

end ;

// Closing shutters automatic control temperature is too low for the heat to escape outside through the restrictive openings outside the window

// South-closing shutters at the cold and lack of sun for the south elevation

if (RoletyPoludnie) then // if it is open

if (TzewPoludnie < – 10) then // temperature sensor smaller than the southern – 10C indicating the large cold and lack of sun heating the sensor on the south side

begin

RoletyPoludnie: = false ; // Open the shutters southern flag

ZamknijRoletyPolodnie ; // Function of sending an event to the system drivers eHouse

// ZamknijMarkizyPolodnie ; // Do not give anything because the sun is too low

end ;

// Home East closing blinds at cold and lack of sun for the Eastern facade

if (RoletyWschod) then // if it is open

if (TzewWschod < – 10) then // temperature sensor lower than the Eastern – 10C indicating the large cold and lack of sun heating the sensor on the east side

begin

RoletyWschod: = false ; // Flag to open shutters East

ZamknijRoletyWschod ; // Function of sending an event to the system drivers eHouse

// ZamknijMarkizyWschod ; // Do not give anything because the sun is too low

end ;

// Close the blinds western side the cold and lack of sun to the west elevation

if (RoletyZachod) then // if it is open

if (TzewZachod < – 10) then // temperature sensor below the western – 10C indicating the large cold and lack of sun heating the sensor on the west side

begin

RoletyZachod: = false ; // Flag to open shutters Western

ZamknijRoletyZachod ; // Function of sending an event to the system drivers eHouse

// ZamknijMarkizyZachod ; // Do not give anything because the sun is too low

end ;