Building Automation eHouse – Opprette en Windows-programvare overlegg og tilpassede algoritmer

Home Automation eHouse med PC-programvare kan du lage overlegg for byggautomasjon system .
Dette gjør at du kan lage din egen , individuelle algoritmer , er ikke implementert i firmware eller driver programvaren som styrer den serielle Home Automation eHouse .
For dette formål , Vi gir brukerne med programvare kildekoder (i Delphi 5) . De kan være sammensatt med nyere versjoner av Delphi eller brukes til andre programmeringsspråk .
Vi bevisst valgte denne arkaiske versjoner som de er allerede tilgjengelig gratis for amatører program .
De fungerer like pålitelig på Windows XP , Vista , Windows 7 både 32 og 64 bit .
Denne programvaren kalles eHouseLogAnalizer og disse loggene mal programmer som leser tekstfiler oppdatert .
Det kan styres og overvåkes av programmer KillWdt . exe .
Viktige funksjoner i programmet:

  • Lese ut status og navnene på alle driverne
  • Les status og skrive inn navn på alle drivere
  • Les målinger og navnene på alle driverne Måleinnganger
  • Laste alle data til det interne programminne , som kan bearbeides videre av en søknad

Programmet bruker statusen opprettet filer til tekstfiler i en katalog ‘ logger / status / ‘ forlengelse ‘ . status ‘ .
Filen er skrivebeskyttet ved endringer i programmet eHouse . exe .

Behandlingsansvarlige er lastet i følgende tilfeller Records ” ehouse_rm_em_hm ” oppført i tabellen RM .

I tillegg , data holdes HeatManager følgende variabler:
bonfire_status: string ; / / Status for bål for HeatManager – Status peis oppvarming panel eHouse . exe
boiler_status: string ; / / Status for kjelen for HM – status av kjelen oppvarming panel eHouse . exe
Solar_status: string ; / / Status for solsystemet – status for solvarme panel eHouse . exe
recuperator_status: string ; / / Status for rekreasjon , ventilasjon , luft oppvarming – status for oppvarming ventilasjon og varmegjenvinning
HADC: array [0 . . 15] av dobbel ; / / Heat Temperaturer leder – Temperaturmålinger HeatManager
/ / Heat leder indekser for direkte tilgang fra HADC utvalg – Konstant temperatur indekser for direkte avlesning av temperatur HeatManager
CONST HM_GWC = 3 ; / / GWC – Bakken varmeveksler
HM_KOM1 = 4 ; / / Peis Coat en – Bonfire vannkappe en
HM_KOMKONV = 5 ; / / Peis konvekcyjne – konveksjon bål
HM_KOM2 = 6 ; / / Brann PLANE 2 – bål vannkappe 2 (sikkerhetskopi)
HM_TWEWN = 7 ; / / Intern romtemperatur – intern romtemperatur
HM_SOLAR = 9 ; / / Collector Søn – solsystemet
HM_ZEWNPN = 8 ; / / Ekstern temperatur nord – utetemperatur nord
HM_ZEWNPD = 1 ; / / Ekstern temperatur i sør – utetemperatur sør
HM_KOC = 10 ; / / Temperatur kjele – kjeletemperatur
HM_BANDOL = 11 ; / / CO / varmtvannsbereder ned – hot watter bunn buffer
HM_REQIN = 12 ; / / Ren luft recuperator inngang – recuperation klar luft inngang
HM_REQOUT = 13 ; / / Output recuperator hjem – heaten recuperation frisk blåse luft til rommet – temperatur
HM_NAG = 14 ; / / Frysetrailer tre – veisventil for oppvarming og til radiatorer – temperatur etter tre måter cutoff for varmtvannsbereder eller annen oppvarming
HM_REQWYC = 15 ; / / Home recuperator ekstrakt skitne – recuperation fra hjemmet skitne eksos temp
HM_BANGORA = 2 ; / / Varme / varmtvannsbereder Gora – varmt vann buffer TOP
HM_BANSRO = 0 ; / / Varme / varmt vanntank et middel – MIDDLE varmt vann buffer
VAR HADCNames: array [0 . . 15] av strengen ; / / Navnene på sensorene (måling innganger) HeatManagera
Grunnleggende funksjoner EhouseLogAnalizer:
prosedyren init_heat_temperature_names ; / / Initialiser og / eller temperaturfølere lese navnene på HM
prosedyren loadnames_rm ; / / Load RoomManagerĂłw navn (eHouse 1)
prosedyren readethernetdevs ; / / Leser Ethernet driver navn (eHouse 2)
get_index_rm funksjon (str: string): integer ; / / Returnerer indeksen på tabellen med roomManagerami søk etter filnavn status
Funksjonen gb (chr: char): boolean ; / / Returnerer en boolsk verdi for lese status
adc_hm prosedyre (str: string ; indeks: integer) ; / / Konverterer strengen med innspilte temperaturer på skrivebeskyttet status HeatManagera
adc_rm prosedyre (str: string ; indeks: integer) ; / / Konverterer string av analoge målinger når du leser status RoomManagerĂłw
GBS-funksjonen (b: boolean): String ; / / Skriv boolean i tekstform (0 , 1)
RMDeviceIndexByName funksjon (str: string): integer ; / / Returnerer indeksen på tabellen med RoomManagerami søk etter navn driver
RMGetOutputStateNr funksjon (indeks: integer ; OutputNr: integer): boolean ; / / Returner utgangstilstand RM [index] og utgang nummer OutputNR
RMGetOutputState funksjon (indeks: integer ; OutputName: string): boolean ; / / Returnerer utgangstilstand RM [index] og ropte OutputName
RMGetInputStateNr funksjon (indeks: integer ; InputNr: integer): boolean ; / / Returnerer status av input RM [index] og antall oppføringen InputNr
RMGetInputState funksjon (indeks: integer ; InputName: string): boolean ; / / Returnerer status av input RM [index] og navnet på oppføringen InputName
RMGetTempNr funksjon (indeks: integer ; InputNr: integer): double ; / / Returnerer RM temperatur [index] og antall oppføringen InputNr
RMGetTemp funksjon (indeks: integer ; InputName: string): double ; / / Returnerer RM temperatur [index] og navnet på oppføringen InputName
RMGetInvPercent funksjon (indeks: integer ; InputName: string): double ; / / Returnerer en prosentandel måling av revers 100 % – x RM [index] og navnet på oppføringen InputName (i forhold til forsyningsspenningen kontrolleren)
RMGetInvPercentNr funksjon (indeks: integer ; InputNr: integer): double ; / / Returnerer en prosentandel måling av revers 100 % – x RM [index] og antallet oppføringen InputNr (i forhold til matespenningen kontrolleren)
RMGetPercent funksjon (indeks: integer ; InputName: string): double ; / / Returnerer en prosentandel måling av RM [index] og navnet på oppføringen InputName (i forhold til forsyningsspenningen kontrolleren)
RMGetPercentNr funksjon (indeks: integer ; InputNr: integer): double ; / / Returnerer en prosentandel måling av revers 100 % – x RM [index] og navnet på oppføringen InputNr (i forhold til forsyningsspenningen kontrolleren)
RMGetDeviceOutputState funksjon (Devname: string ; OutputName: string): boolean ; / / Returnerer staten av produksjonen driver som heter Devname og ropte OutputName
RMGetDeviceInputState funksjon (Devname: string ; InputName: string): boolean ; / / Returnerer status sjåføren taste et navn og navnet på oppføringen Devname InputName
HMGetTemp funksjon (InputName: string): double ; / / Returtemperatur måling inngang kalt for HeatManagera InputName
HMGetTempNr funksjon (InputNr: integer): double ; / / Returtemperatur måling inngang nummer for HeatManagera InputNr (1 . . 16)
chk_int funksjon (st: string): integer ; / / Trygt å konvertere en streng til et heltall
Prosedyren update_status ; / / Oppdater status for alle driverne i tabellen (må utføres periodisk)
prosedyren Test_save ; / / Test prosedyre for å skrive resultatene til en tekstfil for enkel
Initialisere sjåføren og alle navnene er gjort når programmet startes (FormCreate)
prosedyren TForm1 . FormCreate (Sender: TObject) ;
begynne
bane: = getcurrentdir () ; / / Få dagens bane av programmet må være i katalogen % eHouse_DIR % \ BIN \
bane: = stringreplace (bane , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Få banen søknad eHouse – setter programmet banen eHouse
loadnames_rm ; / / Load kontrolleren navn ehouse1 – laster driverne navn eHouse en
init_heat_temperature_names ; / / Load sensorer heatManagera navn
readethernetdevs ; / / Load kontrollere ethernet eHouse navn – leseplate navn eHouse 2
Timer1 . Intervall: = 3000 ; / / Set syklisk oppgave intervall i millisekunder – Stiller seg tid til å begynne å sjekke sykliske data
Timer1 . Aktivert: = true ; / / Start automatiske oppgaver (statusoppdatering – inkluderer regelmessig kontroll av data
update_status ; / / Leser første status
end ;
Syklisk data kontroll gjøres av funksjonen Timer1 (Timer1Timer) kjører i et intervall av tid satt i parameter Timer1 . Intervall (i millisekunder) .
prosedyren TForm1 . Timer1Timer (Sender: TObject) ;
Var tf: textfile ;
begynne
update_status ; / / Konverterer status for sjåføren
Test_save ; / / For test skriver alle resultatene til en tekstfil
prøve / / opprette en markør filen for programmet KillExec . exe som kan ” se ” programmet før krasj
AssignFile (tf , bane + ‘ logs \ log – analizer . stp ‘ ) ;
/ / Varsle WDT Søknaden fungerer ved hjelp stampfile ” logg \ log – analizer . stp ”
omskrive (tf) ;
writeln (tf , ‘ 1 ‘ ) ;
endelig ;
closefile (tf) ;
end ;
end ;