Automatizace budov eHouse – Vytvoření softwaru systému Windows překryvy a vlastní algoritmy

Domácí automatizace eHouse s PC softwarem umožňuje vytvářet překrytí pro systému automatizace budov .
To vám umožní vytvořit si vlastní , Jednotlivé algoritmy , nejsou realizovány ve firmwaru nebo ovladače softwaru, který řídí sériové Domácí automatizace eHouse .
Za tímto účelem , nabízíme uživatelům s kódy softwaru zdroje (v Delphi 5) . Mohou být sestaveny s novějšími verzemi Delphi nebo použity pro jiné programovací jazyky .
Vědomě jsme zvolili tento archaické verzi, protože jsou již k dispozici zdarma pro amatérské programu .
Pracují stejně spolehlivě v systému Windows XP , Průhled , Windows 7 a to jak 32 a 64 bit .
Tento software se nazývá eHouseLogAnalizer a tyto aplikace logy šablony, které čtení textových souborů do data .
To může být řízeny a monitorovány aplikací KillWdt . exe .
Klíčové vlastnosti aplikace:

  • Čtení z postavení a názvy všech ovladačů
  • Přečtěte si stav a zadejte jména všech řidičů
  • Přečtěte si měření a jména všech řidičů měřících vstupů
  • Načíst všechny data na interní paměti programu , , které mohou být dále zpracovány žádosti

Aplikace používá stav vytvořených souborů do textových souborů v adresáři ‘ logs / status / ‘ prodloužení ‘ . postavení ‘ .
Soubor je načten pouze v případě změn v aplikační eHouse . exe .

Správci jsou uloženy v následujících případech Records ” ehouse_rm_em_hm ” uvedeny v poli RM .

Kromě , údaje jsou uchovávány HeatManager následující proměnné:
bonfire_status: string ; / / Stav ohně pro HeatManager – Status topení krbem panel eHouse . exe
boiler_status: string ; / / Stav kotle na HM – Stav panelu kotle topné eHouse . exe
Solar_status: string ; / / Stav solárního systému – stav solárního eHouse topný panel . exe
recuperator_status: string ; / / Stav rekuperací , větrání , ohřev vzduchu – stav vytápění větrání a rekuperací tepla
HADC: array [0 . . 15] double ; / / Heat Teploty Správce – Teplota měření HeatManager
/ / Tepelná manažer indexy pro přímý přístup HADC pole – Konstantní teplota indexy s přímým čtením teploty HeatManager
CONST HM_GWC = 3 ; / / GWC – Zemní výměník tepla
HM_KOM1 = 4 ; / / Krb srst 1 – Bonfire vodní plášť 1
HM_KOMKONV = 5 ; / / Krb konvekcyjne – konvekce táborák
HM_KOM2 = 6 ; / / Fire PLANE 2 – táborák vodní plášť 2 (záložní)
HM_TWEWN = 7 ; / / Vnitřní teplota – vnitřní teplota v místnosti
HM_SOLAR = 9 ; / / Collector ne. – Sluneční soustava
HM_ZEWNPN = 8 ; / / Venkovní teplota sever – venkovní teploty na sever
HM_ZEWNPD = 1 ; / / Vnější teplota na jihu – venkovní teploty na jih
HM_KOC = 10 ; / / Teploty kotle – teplota kotle
HM_BANDOL = 11 ; / / CO / zásobník teplé vody se stanoví – hot Watter spodní vyrovnávací
HM_REQIN = 12 ; / / Čistý vzduch rekuperátoru vstup – rekuperace čistý vzduch vstup
HM_REQOUT = 13 ; / / Výstup rekuperátoru home – heaten rekuperace čerstvého rána vzduchu do místnosti – teplota
HM_NAG = 14 ; / / Teplota řízena tři – trojcestný ventil pro vytápění a pro radiátory – teplota po tři způsoby, jak cutoff pro ohřívače vody nebo jiného topného systému
HM_REQWYC = 15 ; / / Home rekuperátoru extrakt dirty – rekuperace z domova špinavé výfukové teploty
HM_BANGORA = 2 ; / / Topení / nádrže na teplou vodu gora – teplé vody vyrovnávací TOP
HM_BANSRO = 0 ; / / Topení / zásobník teplé vody prostředkem – MIDDLE teplé vody vyrovnávací
var HADCNames: array [0 . . 15] řetězce ; / / Jména senzorů (měření vstupů) HeatManagera
Základní funkce EhouseLogAnalizer:
Postup init_heat_temperature_names ; / / Inicializace a / nebo teplotní senzory čtou jména HM
Postup loadnames_rm ; / / Load RoomManagerĂłw názvy (eHouse 1)
Postup readethernetdevs ; / / Přečte Ethernet ovladače názvy (eHouse 2)
get_index_rm funkce (str: string): integer ; / / Vrátí index v tabulce pro vyhledávání roomManagerami podle stavu názvu souboru
Funkce gb (CHR: char): boolean ; / / Vrátí logickou hodnotu pro čtení stavu
adc_hm postup (str: string ; index: integer) ; / / Převede řetězec s nahranými teplotách čtení stavu HeatManagera
adc_rm postup (str: string ; index: integer) ; / / Převede řetězec analogových měření při čtení stavu RoomManagerĂłw
GBS funkce (b: boolean): String ; / / Zápis boolean v textové formě (0 , 1)
RMDeviceIndexByName funkce (str: string): integer ; / / Vrátí index v tabulce pro vyhledávání RoomManagerami podle názvu řidiče
RMGetOutputStateNr funkce (index: integer ; OutputNr: integer): boolean ; / / Vrací výstupní státní RM [index] a číslo výstupu OutputNR
RMGetOutputState funkce (index: integer ; OutputName: string): boolean ; / / Vrací stav výstupu RM [index], a zavolal OutputName
RMGetInputStateNr funkce (index: integer ; InputNr: integer): boolean ; / / Vrací stav vstupního RM [index], a číslo zápisu InputNr
RMGetInputState funkce (index: integer ; InputName: string): boolean ; / / Vrací stav vstupního RM [index] a název vstupního inputName
RMGetTempNr funkce (index: integer ; InputNr: integer): double ; / / Vrací RM teplota [index], a číslo zápisu InputNr
RMGetTemp funkce (index: integer ; InputName: string): double ; / / Vrací RM teplota [index] a název vstupního inputName
RMGetInvPercent funkce (index: integer ; InputName: string): double ; / / Vrací procento měření zadní 100 % – x RM [index] a název vstupního inputName (ve vztahu k regulátoru napájecího napětí)
RMGetInvPercentNr funkce (index: integer ; InputNr: integer): double ; / / Vrací procento měření zadní 100 % – x RM [index], a číslo zápisu InputNr (ve vztahu k regulátoru napájecího napětí)
RMGetPercent funkce (index: integer ; InputName: string): double ; / / Vrací procento měření RM [Index] a název vstupního inputName (ve vztahu k regulátoru napájecího napětí)
RMGetPercentNr funkce (index: integer ; InputNr: integer): double ; / / Vrací procento měření zadní 100 % – x RM [index] a název vstupního InputNr (ve vztahu k regulátoru napájecího napětí)
RMGetDeviceOutputState funkce (Devname: string ; OutputName: string): boolean ; / / Vrací stav výstupního budiče s názvem Devname a zvolal OutputName
RMGetDeviceInputState funkce (Devname: string ; InputName: string): boolean ; / / Vrátí stav řidiče vstupu jméno a název inputName vstupní Devname
HMGetTemp funkce (inputName: string): double ; / / Návrat teplota měřicího vstupu vyzval k HeatManagera inputName
HMGetTempNr funkce (InputNr: integer): double ; / / Návrat teplota měřicího vstupu číslo pro HeatManagera InputNr (1 . . 16)
chk_int funkce (st: string): integer ; / / Safe převést řetězec na celé číslo
Postup update_status ; / / Aktualizace stav všech ovladačů v tabulce (musí být spuštěn pravidelně)
Postup Test_save ; / / Test postup zapsat výsledky do textového souboru pro snadné
Inicializace ovladače a všechna jména jsou po spuštění aplikace (FormCreate)
Postup TForm1 . FormCreate (Sender: TObject) ;
začít
Cesta: = getcurrentdir () ; / / Získání aktuální cesta programu musí být v adresáři % eHouse_DIR % \ BIN \
Cesta: = stringreplace (cesta , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Získání cestu aplikace eHouse – nastaví cesta k aplikaci eHouse
loadnames_rm ; / / Load regulátor názvy ehouse1 – zatížení řidiče název eHouse 1
init_heat_temperature_names ; / / Load snímače heatManagera jméno
readethernetdevs ; / / Load regulátory ethernet eHouse názvy – čtení názvy zařízení eHouse 2
Timer1 . Interval: = 3000 ; / / Set cyklické úlohy interval v milisekundách – Nastavuje čas k zahájení kontroly cyklické údajů
Timer1 . Povoleno: = true ; / / Spustit automatické úkoly (aktualizace stavu – zahrnuje pravidelnou kontrolu údajů
update_status ; / / Načte první stav
konec ;
Cyklická kontrola dat se provádí pomocí funkce Timer1 (Timer1Timer) běží v intervalu dobu nastavenou v parametru Timer1 . Interval (v milisekundách) .
Postup TForm1 . Timer1Timer (Sender: TObject) ;
var tf: textfile ;
začít
update_status ; / / Převede stav řidiče
Test_save ; / / Pro zkoušku zapisuje všechny výsledky do textového souboru
Vyzkoušejte / / vytvořit značku soubor pro aplikaci KillExec . exe, které mohou ” sledovat ” Aplikace před havárii
AssignFile (tf , Cesta + ‘ logs \ log – analizer . stp ‘ ) ;
/ / Informujte WDT Tato žádost pracuje správně pomocí stampfile ” log \ log – analizer . stp ”
přepsat (tf) ;
writeln (tf , ‘ 1 ‘ ) ;
konečně ;
closefile (tf) ;
konec ;
konec ;