Avkodning av binära status på flygledare hemautomation – fri källkod

Home Automation , Bygga Hantering eHouse – Avkodning status mikroprocessorn styrenheter
Home Automation emot av manöverpanelen är ansluten till LAN eller WiFi , via UDP (User Datagram Protocol) .
Standarden ram mottagningsstatus i binär form , med Controllers diskuterades i artikeln ” Intelligent Building eHouse controller status paket ” .
Avkodning ramen måste analysera varje bit av data från förpackningen .
Dessutom , varje typ av styrenhet:

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

Ha en skillnad i mängd digitala ingångar , mätingångarna , digitala utgångar , dimmer , övervakningsfunktioner och algoritmer som resultat , att uppgifterna i den vanliga ramen muterar beroende på typ av styrenhet .
Detta resulterar i behovet av avkodning av bit för bit för varje typ av styrenhet oberoende .
I fallet med genomförandet av alla typer av mikroprocessor styrenheter för att skapa och testa ramen avkodningsalgoritmen kan ta upp till en månad .
För att minimera denna tid till ett minimum , att underlätta redo att presentera algoritmen lånat från eHouse . exe ansökan , att automatiskt avkoda all information från den registeransvarige och data belastning i mallen register över pekskärmen (för tabletter) Windows XP , Vista , 7 , 8 .
Efter automatisk lastning av data i biblioteken eHouse programvara , med några rader kod , Du kan skapa din egen styralgoritmer eHouse systemet på några minuter .
Binär Ram avkodning programvara för eHouse status standarden är implementerad i mall bibliotek för panel . Det måste göras binärt , för direkt avkodning status från Ethernet-styrenheter utan eHouse . Exe ansökan tillsyn .
Avkodning hela ramen (för mikroprocessorn regulatorer eHouse1 RM , EM , HM) utförs genom förfarandet set_rm funktionen (str: array_of_char ; TCP_INDEX_INC: heltal) ;
parametrar är funktioner bufferten status och shift (offset) . Bufferten innehåller alla mottagna data från statusen . Offset beror på typen av överföring (utökad adress , normal , och andra framtida tillämpningar beroende på kommunikation algoritmer) .
Det fyller automatiskt matrisen status för varje styrenhet för sig och kan då direkt manipulera data eller data uppdateras automatiskt på paneler skärmen trycker .
Denna funktion aktiveras i händelse förfarande tar emot data från UDP socket komponent (TNMUDP – heter binär) i onDataReceived händelsen .
Mottagningen är som följer:
förfarande TForm1 . binaryDataReceived (Avsändare: TComponent ;
NumberBytes: Heltal ; FromIP: String ; Port: Integer) ;
var C: Array [0 . . 1024] av röding ;
MyStream: TMemoryStream ;
börja
Om filesystem_status avsluta sedan ; / / Om inget filsystem filesystem_status
MyStream: = TMemoryStream . Skapa ; / / Skapa en ström av data
binär . ReadStream (MyStream) ; / / Läs dataströmmen
MyStream . Läs (C [0] , NumberBytes) ; / / Läser buffert C
set_rm (C , 1) ; / / Konverterar binära data och laddar registren rm [index] för regulatorer eHouse 1
Test_save ; / / Test registrera utdata till en textfil för enkel användning
update_panel ; / / Läs in data för kontrollpanelen
slut ;
Det gör att du automatiskt och icke – invasiv insamling av data via ett lokalt nätverk eller Wi – Fi med paketet sänds via UDP (User Datagram Protocol) .
Vad mer kräver inte en öppen anslutning till servern endast lyssnar på port sändningen ‘ 6789 ‘ standard eller annan .
Fel länk , Nätverk , routrar resulterar inte i en suspension eller ospecificerade fel programvara (som i fallet med kommunikation med TCP-server) , men försvinner bara uppdatera data utan att påverka data eller lämplig server UDP klientprogram .

VARNING! . Om du skapar programvara på en Windows för eHouse Home Automation , är det nödvändigt att genomföra alla algoritmer i en applikation , som analyserar data och utför alla algoritmer och visualisera dem . Vi observerade ibland att 2 UDP lyssnaren uttaget inte kan existera på samma dator .
De viktigaste variablerna i biblioteket binära:
boiler_alarm: Boolean = false ; / / Panna Larm programmerad temperatur över
/ / Över – temperaturlarm panna
bonfire_stat: heltal ; / / Bonfire värme nivå 0 – 7 för binärt läge – anställningsform brand
/ / 0 – avfyra – värms inte
/ / 1 – Brand på / släckning => ; ; grön nivå < ; ; temp jacka (grön lysdiod blinkar) – löper blinkar grönt
/ / 2 – brand på => ; ; grön nivå> ; ; = Temp jacka> ; ; gul nivå – histeressis (grön LED) – grön
/ / 3 – brand på => ; ; gul nivå – histeressis> ; ; temp jacka> ; ; histeressis nivå + gul) (grön + gul LED) – grön – gul
/ / 4 – brand på => ; ; gul nivå + histeressis> ; ; temp jacka> ; ; röd nivå – histeressis (gul) – gul
/ / 5 – ovillkorlig => ; ; röd nivå – histeressis < ; ; temp jacka < ; ; histeressis nivå + röd (röd + gul LED) gul – röd
/ / 6 – ovillkorlig => ; ; temp jacka> ; ; histeressis nivå + röd (röd lysdiod konstant) – röd
/ / 7 – ovillkorlig => ; ; temp jacka> ; ; brasa larm (röd lysdiod blinkar) LARM – röda blinkningar
bonfire_sensor_error: Boolean = false ; / / Fel givare brasa för mycket olika vatten jacka temperaturgivare mellan två
/ / Error spis mantel temperaturgivare för stor skillnad
recuperator_status: sträng ; / / Status återhämtning , ventilation , luftvärme – rekuperator och ventilation status
recu_winter: Boolean = false ; / / Rekuperator vinter / sommar värmeväxlare aktiverat / avaktiverat – rekuperator vinter / sommar
recu_manual_amalva: Boolean = true ; / / Rekuperator auto / manuellt läge för AMALVA rekuperator (automatisk förvaltas av intern Controler AMALVA , manual för att eHouse HeatManager) / /
rekuperator AMALVA manuell / auto
went_cooler: Boolean = true ; / / Vattenkylare på / av för ventilation eller kallare i systemet återhämtning återhämtning eller GWC ON / OFF
went_gwc: Boolean = false ; / / GHE (jord värmeväxlare) Servomotor på / av – marken värmeväxlare motor på / av
went_aux_gwc_fan: Boolean = false ; / / Extra GWC fläkt / fläkt på / av-omkopplare för mark värmeväxlare – GWC fläkt
bonfire_dgp: Boolean = false ; / / Bonfire varmluft distributionssystem aktiveras / avaktiveras – Fan fördelning av varmluft från eldstaden DGP
ventilation_on: Boolean = false ; / / Ventilation arbetar för närvarande på / av – omfatta ventilation och värmeåtervinning
heater_pump: Boolean = true ; / / Pump för värme för ventilation på / av – pump värme och ventilation krets för radiatorer
three_ways_cutoff: integer = 0 ; / / Tre sätt cutoff riktning 0 av , Ökande nivå 1 , – Minskande nivå 1) rotationsriktning elektro – vägsventil
solar_pump: Boolean = false ; / / Solar pump på / av – sol pump
boiler_on: Boolean = false ; / / Panna aktiverat / avaktiverat – panna på / av
boiler_pump: Boolean = false ; / / Status av pannan pumpen på / av – pannans pump på / av
boiler_fuel_out: Boolean = false ; / / Panna slut på bränsle aproximate (räkna timmars uppvärmning) – uppskattade bränslebrist för fastbränslepanna (beräknat på grundval av Öppettiderna för pannan)
boiler_power_on: Boolean = false ; / / Panna supplay ström på / av ; – Panna ström på / av
boiler_fuel_supply_override: Boolean = false ; / / Åsidosätt supplyier panna (kontroll av eHouse / intern panna regulator) – Moderbolaget bränsletillförsel systemet eHouse på / av
bonfire_pump: Boolean = false ; / / Bonfire pumpstatus på / av – brandpump på / av
recu_speed: integer = 0 ; / / Rekuperator Speeed 0 . . 3 – rekuperator hastighet
recu_temperature: heltal ; / / Temperatur nivå RECU 0 . . 30C temperatur rekuperator för amalwa
_recu_mode: String = ‘ ‘ ; / / Återhämtning läge i texten som den HeatManager kontrollpanel (eHouse . exe) – rekuperator läge som kontrollpanelen ansökan HeatMAnagerem eHouse . exe
gick: string ; / / Text ventilation status som HeatManager Kontrollpanel (eHouse . exe) – ventilation status på samma sätt som i HeatManager panel av eHouse . exe
panna , sol: string ; / / Panna , Solar text HeatManager status som en kontrollpanel (eHouse . exe) – status pannan och solpanelen kontroll (HeatManager) eHouse . exe
Komi: string ; / / Text brasa status som HeatManager Kontrollpanel (eHouse . exe) – status som branden kontrollpanelen ansökan HeatManager eHouse . exe
Kontrollampor