Building Automation eHouse – Het creëren van een Windows-software overlays en aangepaste algoritmen

Home Automation eHouse met PC-software maakt het mogelijk om overlays voor de gebouwautomatisering systeem .
Hiermee kunt u uw eigen , individuele algoritmen , zijn niet geïmplementeerd in de firmware of driver software die de seriële controleert Home Automation eHouse .
Daartoe , wij bieden gebruikers de software broncodes (in Delphi 5) . Ze kunnen worden gecompileerd met nieuwere versies van Delphi of voor andere programmeertalen .
Wij hebben bewust gekozen voor deze archaïsche versies zoals ze zijn nu al gratis beschikbaar voor amateur-programma .
Ze werken net zo betrouwbaar op Windows XP , Vergezicht , Windows 7 zowel 32 als 64 bit .
Deze software heet eHouseLogAnalizer en deze logs sjabloon toepassingen die tekst bestanden te lezen up-to-date .
Het kan worden beheerd en gecontroleerd door toepassingen KillWdt . exe .
Belangrijkste kenmerken van de applicatie:

  • Het uitlezen van de status en de namen van alle stuurprogramma's
  • Lees status en de namen van alle bestuurders
  • Lees de metingen en de namen van alle stuurprogramma's meetingangen
  • Laad alle naar het interne programmageheugen , die verder kunnen worden verwerkt door een toepassing

De applicatie maakt gebruik van de status van de aangemaakte bestanden om tekst bestanden in een directory ‘ logs / status / ‘ uitbreiding ‘ . staat ‘ .
Het bestand wordt gelezen slechts bij veranderingen in de toepassing eHouse . exe .

Voor de verwerking verantwoordelijken zijn geladen in de volgende gevallen Records ” ehouse_rm_em_hm ” in de array RM .

Bovendien , gegevens worden bewaard HeatManager de volgende variabelen:
bonfire_status: string ; / / Status van vreugdevuur voor HeatManager – Status open haard verwarmingspaneel eHouse . exe
boiler_status: string ; / / Status van de ketel voor HM – status van de ketel verwarmingspaneel eHouse . exe
Solar_status: string ; / / Status van het zonnestelsel – status van zonne-energie paneel eHouse . exe
recuperator_status: string ; / / Status van herstel , ventilatie , luchtverwarming – status van verwarmings-ventilatie en warmteterugwinning
HADC: array [0 . . 15] van dubbele ; / / Warmte Temperaturen manager – temperatuurmetingen HeatManager
/ / Warmte-manager indexen voor directe toegang van HADC reeks – Constante temperatuur indices voor het direct aflezen van de temperatuur HeatManager
CNST HM_GWC = 3 ; / / GWC – Bodemwarmtewisselaar
HM_KOM1 = 4 ; / / Open haard Coat 1 – Bonfire watermantel 1
HM_KOMKONV = 5 ; / / Open haard konvekcyjne – convectie vreugdevuur
HM_KOM2 = 6 ; / / Fire vlak 2 – vreugdevuur watermantel 2 (back-up)
HM_TWEWN = 7 ; / / Interne kamertemperatuur – interne kamertemperatuur
HM_SOLAR = 9 ; / / Collector zon – zonnestelsel
HM_ZEWNPN = 8 ; / / Buitentemperatuur noorden – buitentemperatuur noorden
HM_ZEWNPD = 1 ; / / Externe temperatuur van het zuiden – buitentemperatuur zuiden
HM_KOC = 10 ; / / Temperatuur boiler – keteltemperatuur
HM_BANDOL = 11 ; / / CO / warm water tank naar beneden – hot watter aanslag onderaan
HM_REQIN = 12 ; / / Schone lucht recuperator ingang – recuperatie heldere lucht-ingang
HM_REQOUT = 13 ; / / Output recuperator huis – Verwarm recuperatie frisse blaaslucht om ruimte te – temperatuur
HM_NAG = 14 ; / / Temperatuur gecontroleerd drie – wegkraan voor verwarming en radiatoren – temperatuur na drie manieren cutoff voor boiler of ander verwarmingssysteem
HM_REQWYC = 15 ; / / Home recuperator extract vuil – recuperatie van huis vuile uitlaatgassen temp
HM_BANGORA = 2 ; / / Verwarming / boiler gora – warm water buffer TOP
HM_BANSRO = 0 ; / / Verwarming / warm water opslagtank een middel om – MIDDEN-warm water buffer
var HADCNames: array [0 . . 15] van de string ; / / De namen van de sensoren (meetingangen) HeatManagera
Basisfuncties EhouseLogAnalizer:
procedure init_heat_temperature_names ; / / Initialiseren en / of temperatuur sensoren lezen de namen van HM
procedure loadnames_rm ; / / Load RoomManagerĂłw namen (eHouse 1)
procedure readethernetdevs ; / / Leest de Ethernet-stuurprogramma namen (eHouse 2)
get_index_rm functie (str: String): integer ; / / Geeft de index van de tafel met roomManagerami zoeken op bestandsnaam status van
functie gb (chr: char): boolean ; / / Geeft een boolean waarde voor de leesstatus
adc_hm procedure (str: String ; index: integer) ; / / Converteert de string met opgenomen temperaturen van de statusregel lezen HeatManagera
adc_rm procedure (str: String ; index: integer) ; / / Converteert reeks van analoge metingen bij het lezen van de status RoomManagerĂłw
GBS-functie (b: boolean): String ; / / Schrijf boolean in tekstvorm (0 , 1)
RMDeviceIndexByName functie (str: String): integer ; / / Geeft de index van de tafel met RoomManagerami zoeken op naam bestuurder
RMGetOutputStateNr functie (index: integer ; OutputNr: integer): boolean ; / / Zet de uitgang staat RM [index] en het uitgangsnummer OutputNR
RMGetOutputState functie (index: integer ; OutputName: String): Boolean ; / / Geeft de output staat RM [index] en riep OutputName
RMGetInputStateNr functie (index: integer ; InputNr: integer): boolean ; / / Geeft de status van de ingang RM [index] en het aantal van binnenkomst InputNr
RMGetInputState functie (index: integer ; InputName: String): Boolean ; / / Geeft de status van de ingang RM [index] en de naam van het item InputName
RMGetTempNr functie (index: integer ; InputNr: integer): dubbel ; / / Geeft de RM temperatuur [index] en het aantal van binnenkomst InputNr
RMGetTemp functie (index: integer ; InputName: string): dubbel ; / / Geeft de RM temperatuur [index] en de naam van het item InputName
RMGetInvPercent functie (index: integer ; InputName: string): dubbel ; / / Geeft een percentage meting van reverse 100 % – x RM [index] en de naam van de positie InputName (ten opzichte van de voedingsspanning controller)
RMGetInvPercentNr functie (index: integer ; InputNr: integer): dubbel ; / / Geeft een percentage meting van reverse 100 % – x RM [index] en het inschrijvingsnummer InputNr (ten opzichte van de voedingsspanning controller)
RMGetPercent functie (index: integer ; InputName: string): dubbel ; / / Geeft een percentage meting van RM [index] en de naam van het item InputName (in relatie tot de voedingsspanning controller)
RMGetPercentNr functie (index: integer ; InputNr: integer): dubbel ; / / Geeft een percentage meting van reverse 100 % – x RM [index] en de naam van de positie InputNr (ten opzichte van de voedingsspanning controller)
RMGetDeviceOutputState functie (Devname: string ; OutputName: String): Boolean ; / / Geeft de toestand van de uitgang chauffeur genaamd Devname en riep OutputName
RMGetDeviceInputState functie (Devname: string ; InputName: String): Boolean ; / / Geeft de status van de input van de bestuurder de naam en de naam van het item Devname InputName
HMGetTemp functie (InputName: string): dubbel ; / / Terugkeer temperatuur van de meetingang opgeroepen tot HeatManagera InputName
HMGetTempNr functie (InputNr: integer): dubbel ; / / Terugkeer temperatuur van de meetingang nummer voor HeatManagera InputNr (1 . . 16)
chk_int functie (st: string): integer ; / / Veilig in een string te converteren naar een integer
procedure update_status ; / / Werk de status van alle stuurprogramma's op de tabel (moet periodiek worden uitgevoerd)
procedure Test_save ; / / Test procedure om de resultaten te schrijven naar een tekstbestand voor eenvoudige
Initialiseer de bestuurder en alle namen worden gemaakt zodra het programma wordt gestart (FormCreate)
procedure TForm1 . FormCreate (Sender: TObject) ;
beginnen
pad: = getcurrentdir () ; / / Haal de huidige pad van het programma moet in de directory % eHouse_DIR % \ BIN \
pad: = stringreplace (pad , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Haal pad van de toepassing eHouse – stelt de aanvraag pad eHouse
loadnames_rm ; / / Load controller namen ehouse1 – laadt de drivers naam eHouse 1
init_heat_temperature_names ; / / Load sensoren heatManagera naam
readethernetdevs ; / / Load controllers ethernet eHouse namen – het lezen van apparaatnamen eHouse 2
Timer1 . Interval: = 3000 ; / / Set cyclische taak interval in milliseconden – Hiermee stelt u de tijd om te beginnen met het controleren cyclische data
Timer1 . Ingeschakeld: = true ; / / Start de automatische taken (status update – omvat regelmatige controle van de gegevens
update_status ; / / Leest de eerste status
einde ;
Cyclische data controle wordt gedaan door de functie Timer1 (Timer1Timer) loopt in een interval van tijd ingesteld in de parameter Timer1 . Interval (in milliseconden) .
procedure TForm1 . Timer1Timer (Sender: TObject) ;
var tf: tekstbestand ;
beginnen
update_status ; / / Converteert de status van de bestuurder
Test_save ; / / Voor-test schrijft alle resultaten in een tekstbestand
try / / maak een marker bestand voor de toepassing KillExec . exe dat kan ” kijken naar ” toepassing voor crash
AssignFile (tf , pad + ‘ logs \ log – analizer . stp ‘ ) ;
/ / Hoogte WDT Die aanvraag correct werkt zegelbestand met behulp van ” log \ log – analizer . stp ”
herschrijven (tf) ;
writeln (tf , ‘ 1 ‘ ) ;
eindelijk ;
closefile (tf) ;
einde ;
einde ;