Building Automation eHouse – Létrehozása Windows szoftver átfedések és egyedi algoritmusok

Háztartási automatizációs eHouse PC szoftver lehetővé teszi, hogy hozzon létre a rátétek épületautomatizálási rendszer .
Ez lehetővé teszi, hogy saját , egyéni algoritmusok , nem hajtják végre a firmware-vagy illesztőprogram-szoftver, amely ellenőrzi a soros Háztartási automatizációs eHouse .
E célból , hogy a felhasználók a szoftver forrását kódok (a Delphi 5) . Ezeket lehet összeállítani újabb verziói Delphi vagy használnak más programozási nyelvekhez .
Tudatosan választottuk ezt archaikus változatok ezek már ingyenesen hozzáférhető amatőr programra .
Munkájukat ahogy megbízhatóan a Windows XP , Távlat , Windows 7 mind a 32 és 64 bit .
Ez a szoftver neve eHouseLogAnalizer, és ezeket a naplókat sablon alkalmazások olvasható szöveges fájlok naprakész .
Meg lehet kezelni és ellenőrizni alkalmazások KillWdt . exe .
Főbb jellemzői az alkalmazás:

  • Kiolvasása az állapotát és nevét, a vezetők
  • Olvassa állapot és adja meg a nevét minden meghajtó
  • Olvassa el a méréseket és a nevét, a vezetők mérési bemenetek
  • Helyezze az összes adat a belső program memória , amely lehet tovább feldolgozni egy kérelem

Az alkalmazás állapotát létrehozott fájlok szöveges fájlok egy könyvtárban ‘ logs / állapot / ‘ kiterjesztés ‘ . állapot ‘ .
A fájl csak olvasható a változása esetén a kérelem eHouse . exe .

Adatkezelők töltik fel az alábbi esetekben Records ” ehouse_rm_em_hm ” szerepel a tömbben RM .

Ezenkívül , az adatok mindig HeatManager a következő változók:
bonfire_status: string ; / / Állapota máglya a HeatManager – Státusz fűtés kandallóval panel eHouse . exe
boiler_status: string ; / / Állapota kazán HM – állapotát a kazán fűtési panel eHouse . exe
Solar_status: string ; / / Állapota Naprendszer – állapota szolár panel eHouse . exe
recuperator_status: string ; / / Állapota felépülés , szellőzés , légfűtés – állapotát fűtő szellőztető és hővisszanyerő
HADC: array [0 . . 15] A kettős ; / / Heat Hőmérsékletek manager – hőmérséklet mérések HeatManager
/ / Heat menedzser indexek közvetlen hozzáférést HADC array – Állandó hőmérséklet indexek közvetlenül leolvasott hőmérséklet HeatManager
CONST HM_GWC = 3 ; / / GWC – Talaj hőcserélő
HM_KOM1 = 4 ; / / Kandalló Coat 1 – Bonfire vízköpenyt 1
HM_KOMKONV = 5 ; / / Kandalló konvekcyjne – konvekció máglya
HM_KOM2 = 6 ; / / Fire SÍK 2 – máglya esőkabát 2 (backup)
HM_TWEWN = 7 ; / / Belső helyiség hőmérséklet – belső helyiség hőmérséklet
HM_SOLAR = 9 ; / / Kollektor V – Naprendszer
HM_ZEWNPN = 8 ; / / Külső hőmérséklet északon – külső hőmérséklet északon
HM_ZEWNPD = 1 ; / / Külső hőmérséklet a déli – külső hőmérséklet délre
HM_KOC = 10 ; / / Hőmérséklet kazán – kazán hőmérséklet
HM_BANDOL = 11 ; / / CO / melegvíztároló megállapításáról – hot Vízi alsó puffer
HM_REQIN = 12 ; / / Tiszta levegő rekuperátor bemeneti – regenerálódásra tiszta levegő bemenet
HM_REQOUT = 13 ; / / Output rekuperátor otthon – fűtött vizű regenerálódásra friss levegőt fúj a szobába – hőmérséklet
HM_NAG = 14 ; / / Hűtős 3 – szelep fűtési és radiátorok – utáni hőmérséklet három módon cutoff a bojler vagy más fűtési rendszer
HM_REQWYC = 15 ; / / Home rekuperátor kivonatot piszkos – regenerálódásra otthon piszkos kipufogó temp
HM_BANGORA = 2 ; / / Fűtés / melegvíz tartály gora – melegvíz buffer TOP
HM_BANSRO = 0 ; / / Fűtés / melegvíz tároló eszközként – MIDDLE melegvíz puffer
var HADCNames: array [0 . . 15] a string ; / / Nevét az érzékelők (mérési bemenetek) HeatManagera
Alapfunkciók EhouseLogAnalizer:
eljárás init_heat_temperature_names ; / / Inicializálása és / vagy hőmérséklet érzékelő olvassa el a nevét HM
eljárás loadnames_rm ; / / Load RoomManagerĂłw nevek (eHouse 1)
eljárás readethernetdevs ; / / Olvasás az Ethernet illesztőprogram nevek (eHouse 2)
get_index_rm funkció (str: string): integer ; / / Visszaadja az index az asztal roomManagerami keresési fájlnév állapot
függvény gb (chr: char): boolean ; / / Visszaadja a boolean értéke az olvasási állapot
adc_hm eljárás (str: string ; index: integer) ; / / A karakterlánc konvertálása a rögzített hőmérséklete az olvasott státusz HeatManagera
adc_rm eljárás (str: string ; index: integer) ; / / Átalakítja karakterlánc analóg mérések olvasása közben az állapot RoomManagerĂłw
GBS funkció (b: boolean): String ; / / Írása boolean szöveges formában (0 , 1)
RMDeviceIndexByName funkció (str: string): integer ; / / Visszaadja az index az asztal RoomManagerami keresés név járművezető
RMGetOutputStateNr funkció (index: integer ; OutputNr: integer): boolean ; / / Vissza a kimeneti állapot RM [index], és a kimenet számát OutputNR
RMGetOutputState funkció (index: integer ; OutputName: string): boolean ; / / Visszaadja a kimeneti állapot RM [index], és így kiáltott OutputName
RMGetInputStateNr funkció (index: integer ; InputNr: integer): boolean ; / / Visszaadja az állapotát a bemeneti RM [index] száma és a bejegyzés InputNr
RMGetInputState funkció (index: integer ; InputName: string): boolean ; / / Visszaadja az állapotát a bemeneti RM [index], és a nevét a bejegyzés InputName
RMGetTempNr funkció (index: integer ; InputNr: integer): dupla ; / / Visszaadja az RM hőmérséklet [index] száma és a bejegyzés InputNr
RMGetTemp funkció (index: integer ; InputName: string): dupla ; / / Visszaadja az RM hőmérséklet [index], és a nevét a bejegyzés InputName
RMGetInvPercent funkció (index: integer ; InputName: string): dupla ; / / Visszaadja a százalékos mérésnél fordított 100 % – x RM [index], és a nevét a bejegyzés InputName (kapcsolatban a tápfeszültség vezérlő)
RMGetInvPercentNr funkció (index: integer ; InputNr: integer): dupla ; / / Visszaadja a százalékos mérésnél fordított 100 % – x RM [index] száma és a bejegyzés InputNr (kapcsolatban a tápfeszültség vezérlő)
RMGetPercent funkció (index: integer ; InputName: string): dupla ; / / Visszaadja százalékában mérés RM [index], és a nevét a bejegyzés InputName (kapcsolatban a tápfeszültség vezérlő)
RMGetPercentNr funkció (index: integer ; InputNr: integer): dupla ; / / Visszaadja a százalékos mérésnél fordított 100 % – x RM [index], és a nevét a bejegyzés InputNr (kapcsolatban a tápfeszültség vezérlő)
RMGetDeviceOutputState funkció (eszköznév: string ; OutputName: string): boolean ; / / Visszaadja az állam a kimeneti meghajtó nevű eszköznév és felkiáltott OutputName
RMGetDeviceInputState funkció (eszköznév: string ; InputName: string): boolean ; / / Visszaadja az állapotát a vezető input a nevét és a bejegyzés eszköznév InputName
HMGetTemp funkció (InputName: string): dupla ; / / Visszatérő hőmérséklet a mérési bemenet szólított HeatManagera InputName
HMGetTempNr funkció (InputNr: integer): dupla ; / / Visszatérő hőmérséklet a mérési bemenet számát HeatManagera InputNr (1 . . 16)
chk_int funkció (st: string): integer ; / / Safe-hoz megtérít egy string, hogy egy egész
eljárás update_status ; / / Frissítse a helyzete, a vezetők a táblázatban (kell futtatni rendszeresen)
eljárás Test_save ; / / Vizsgálati eljárás írni az eredményeket egy szöveges fájlt a könnyű
Inicializálása a vezető és az összes nevet történik, ha az alkalmazás indításakor (FormCreate)
eljárás TForm1 . FormCreate (Sender: TObject) ;
kezdődik
path: = getcurrentdir () ; / / Az aktuális elérési útját a program kell, hogy legyen a könyvtárban % eHouse_DIR % \ BIN \
path: = stringreplace (path , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Get path kérelmezés eHouse – beállítja az alkalmazás elérési útját eHouse
loadnames_rm ; / / Load vezérlő nevek ehouse1 – betölti az illesztőprogramokat név eHouse 1
init_heat_temperature_names ; / / Load érzékelők heatManagera neve
readethernetdevs ; / / Load ethernet vezérlő eHouse nevek – olvasó eszköz neve eHouse 2
Timer1 . Interval: = 3000 ; / / Set ciklikus feladat időköz ezredmásodpercben – Beállítja az ideje, hogy elkezd ellenőrzés ciklikus adatátvitel
Timer1 . Enabled: = true ; / / Start automatikus feladatok (az állapot frissítése – magában foglalja a rendszeres ellenőrzése az adatok
update_status ; / / Olvasás az első állapot
vég ;
Ciklikus adat ellenőrzést végzi a függvény Timer1 (Timer1Timer) fut egy intervallum beállított idő a paraméter Timer1 . Interval (ezredmásodperc) .
eljárás TForm1 . Timer1Timer (Sender: TObject) ;
var tf: szövegfájl ;
kezdődik
update_status ; / / Átalakítja az állapotát a vezető
Test_save ; / / A vizsgálati írja az összes eredményt egy szöveges fájlt
próbáld / / létrehoz egy marker fájlt az alkalmazás KillExec . exe, hogy lehet ” karóra ” alkalmazás előtt összeomlik
AssignFile (tf , path + ‘ logs \ log – elemző . stp ‘ ) ;
/ / Értesítés WDT Ezt a kérelmet megfelelően működik-e a stampfile ” log \ log – elemző . stp ”
átírni (tf) ;
writeln (tf , ‘ 1 ‘ ) ;
végül ;
closefile (tf) ;
vég ;
vég ;