Dekoding av binære status av hjemme automasjon kontrollere – fri kildekode

Home Automation , Building Management eHouse – Dekoding status av mikroprosessor kontrollerne
Home Automation mottatt av kontrollpanelet koblet til LAN eller WiFi , via UDP (User Datagram Protocol) .
Standarden ramme mottaket i binær form , med Controllers ble diskutert i artikkelen ” Intelligent Building eHouse kontrolleren status pakke ” .
Dekoding rammen må analysere hver bit av data fra pakken .
I tillegg , hver type kontroller:

  • RoomManager
  • ExternalManager
  • HeatManager
  • InputExtender
  • CommManager
  • LevelManager
  • EthernetRoomManager

Ha en forskjell i mengden av digitale innganger , måling innganger , digitale utganger , dimmere , overvåkingsfunksjoner og algoritmer som resultat , at dataene i den standard ramme mutere avhengig av kontrolleren .
Dette resulterer i behovet for å dekode den litt etter litt for hver type av kontrolleren uavhengig .
I tilfelle av gjennomføringen av alle typer mikroprosessor kontrollere for å opprette og teste en ramme dekodingsalgoritme kan ta opptil en måned .
For å minimere denne gangen til et minimum , å legge til rette klar til å presentere algoritmen lånt fra eHouse . exe program , automatisk dekode all informasjon fra kontrolleren og laste inn data i malen registreringer av berøringspanel (for tabletter) Windows XP , Vista , 7 , 8 .
Etter automatisk lasting av data inn i eHouse programvare biblioteker , med noen få linjer med kode , du kan lage din egen kontroll algoritmer eHouse system på noen få minutter .
Binary Frame dekoding programvare av eHouse status standard er implementert i malen bibliotek for panel . Det må gjøres binær , for direkte dekoding status fra Ethernet-kontrollere uten eHouse . Exe program tilsyn .
Dekoding hele rammen (for mikroprosessor kontrollere eHouse1 RM , EM , HM) utføres ved fremgangsmåten set_rm funksjonen (str: array_of_char ; TCP_INDEX_INC: integer) ;
parametere er funksjoner av buffer status og shift (offset) . Bufferen inneholder alle de mottatte data fra status . Offset avhenger av hvilken type overføring (utvidet adresse , normal , og andre fremtidige søknader avhenger av kommunikasjon algoritmer) .
Det fyller automatisk matrisen status for hver kontrolleren individuelt og kan deretter direkte manipulere data eller oppdatere data automatisk på skjermen berøringspanelene .
Denne funksjonen er aktivert i hendelsesprosedyren av motta data fra UDP socket komponent (TNMUDP – kalt binær) i tilfelle onDataReceived .
Resepsjonen er som følger:
prosedyren TForm1 . binaryDataReceived (Sender: TComponent ;
NumberBytes: integer ; FromIP: String ; Port: Integer) ;
Var C: array [0 . . 1024] av røye ;
MyStream: TMemoryStream ;
begynne
hvis filesystem_status deretter avslutte ; / / Hvis det ikke filsystemet filesystem_status
MyStream: = TMemoryStream . Lag ; / / Lag en strøm av data
binære . ReadStream (MyStream) ; / / Les datastrømmen
MyStream . Les (C [0] , NumberBytes) ; / / Laster buffer C
set_rm (C , 1) ; / / Konverterer de binære data og laster registrene rm [indeks] for kontrollere eHouse en
Test_save ; / / Test registrere utgang til en tekstfil for enkel betjening
update_panel ; / / Load data for kontrollpanelet
end ;
Det gjør at du automatisk og ikke – invasiv samling av data over et lokalt nettverk eller Wi – Fi med pakken kringkasting via UDP (User Datagram Protocol) .
Hva mer krever ikke en åpen tilkobling til serveren bare lytter på port kringkasting ‘ 6789 ‘ standard eller annen .
Feil kobling , Nettverk , rutere ikke resultere i en suspensjon eller uspesifisert programvarefeil (som i tilfellet av kommunikasjon med TCP server) , men forsvinner bare oppdatere dataene uten at det påvirker data eller egnet server UDP klientprogram .

ADVARSEL! . Hvis du oppretter kontroll programvare på en Windows for eHouse Home Automation , er det nødvendig å gjennomføre alle algoritmer i ett program , som analyserer dataene og utfører alle algoritmer og visualisere dem . Vi observerte noen ganger at to UDP lytteren socket ikke kan eksistere på samme PC .
De viktigste variabler i biblioteket binær:
boiler_alarm: Boolean = false ; / / Boiler alarm alarm programmert temperatur over
/ / Over – temperaturalarm kjele
bonfire_stat: integer ; / / Bonfire oppvarming nivå 0 – 7 for binærmodus – sysselsetting status brann
/ / 0 – fyre av – varmer ikke
/ / 1 – Brann på / slokking => ; ; grønn nivå < ; ; temp jakke (grønn LED blinker) – utløper blinker grønt
/ / 2 – brann på => ; ; grønn nivå> ; ; = Temp jakke> ; ; gul nivå – histeressis (grønn LED) – grønn
/ / 3 – brann på => ; ; gul nivå – histeressis> ; ; temp jakke> ; ; histeressis nivå + gul) (grønn + gul LED) – grønn – gul
/ / 4 – brann på => ; ; gul nivå + histeressis> ; ; temp jakke> ; ; red nivå – histeressis (gul) – gul
/ / 5 – ubetinget => ; ; red nivå – histeressis < ; ; temp jakke < ; ; histeressis nivå + rød (rød + gul LED) gul – red
/ / 6 – ubetinget => ; ; temp jakke> ; ; histeressis nivå + rød (rød LED konstant) – red
/ / 7 – ubetinget => ; ; temp jakke> ; ; bål alarm (rød LED blinker) ALARM – røde blinkene
bonfire_sensor_error: Boolean = false ; / / Feil sensorer bål for mye forskjellige vann jakke temperatursensorer mellom to
/ / Feil peis mantel temperatursensorer for stor forskjell
recuperator_status: string ; / / Status for rekreasjon , ventilasjon , luft oppvarming – recuperator og ventilasjon status
recu_winter: Boolean = false ; / / Recuperator vinter / sommer varmeveksler modus aktiveres / deaktiveres – recuperator vinter / sommer
recu_manual_amalva: boolean = true ; / / Recuperator auto / manuell modus for AMALVA recuperator (auto administrert av intern controler AMALVA , for å eHouse HeatManager) / /
recuperator AMALVA manuell / automatisk
went_cooler: boolean = true ; / / Vannkjøler av / på for ventilasjon eller kjøligere i systemet rekreasjon rekreasjon eller GWC ON / OFF
went_gwc: Boolean = false ; / / GHE (bakken varmeveksler) Servomotor på / av – bakken varmeveksler motor on / off
went_aux_gwc_fan: Boolean = false ; / / Ekstra GWC ventilator / vifte / på-bryter for bakken varmeveksler – GWC fan assistert
bonfire_dgp: Boolean = false ; / / Bonfire varm luft distribusjonssystem aktiveres / deaktiveres – Fan distribusjon av varm luft fra peisen DGP
ventilation_on: Boolean = false ; / / Ventilasjon jobber for tiden på / av – inkludere ventilasjon og varmegjenvinning
heater_pump: boolean = true ; / / Pumpe for varmeapparatet for ventilasjon av / på – varmepumpe og ventilasjon krets for radiatorer
three_ways_cutoff: integer = 0 ; / / Tre måter cutoff retning 0 av , Økende nivå 1 , – Avtagende nivå 1) rotasjonsretningen elektro – veisventilen
solar_pump: Boolean = false ; / / Solar pumpe på / av – solarpumpen
boiler_on: Boolean = false ; / / Boiler aktivert / deaktivert – kjele på / av
boiler_pump: Boolean = false ; / / Status for Kjelpumpe på / av – kjele pumpe på / av
boiler_fuel_out: Boolean = false ; / / Boiler tom for drivstoff aproximate (telle timer oppvarming) – estimerte drivstoff knapphet for fast brensel (beregnet på grunnlag av driftstimer av kjelen)
boiler_power_on: Boolean = false ; / / Boiler supplay power on / off ; – Kjele power on / off
boiler_fuel_supply_override: Boolean = false ; / / Override supplyier brensel (kontroll av eHouse / intern kjele kontrolleren) – Parent kontrollert drivstoff levering system eHouse på / av
bonfire_pump: Boolean = false ; / / Bonfire pumpe status på / av – brannpumpe på / av
recu_speed: integer = 0 ; / / Recuperator speeed 0 . . 3 – recuperator hastighet
recu_temperature: integer ; / / Temperatur nivå av reçu 0 . . 30C temperatur recuperator for amalwa
_recu_mode: string = ‘ ‘ ; / / Recuperation modus i teksten slik den HeatManager kontrollpanel (eHouse . exe) – recuperator modus som kontrollpanelet søknad HeatMAnagerem eHouse . exe
gikk: string ; / / Tekst ventilasjon status som HeatManager Kontrollpanel (eHouse . exe) – ventilasjon status det samme som i HeatManager panel av eHouse . exe
kjele , solar: string ; / / Boiler , Solar tekst HeatManager status som Kontrollpanel (eHouse . exe) – status av kjelen og solcellepanelet kontroll (HeatManager) eHouse . exe
Komi: string ; / / Tekst bål status som HeatManager Kontrollpanel (eHouse . exe) – status som brannsentralen søknad HeatManager eHouse . exe
Kontroll Lights