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 ;