Decodifica lo stato binario di controllori di automazione domestica – codice sorgente libero

Home Automation , Building Management eHouse – Decodifica lo stato di controllori a microprocessore
Home Automation ricevuto dal pannello di controllo collegato alla rete LAN o Wi-Fi , via UDP (User Datagram Protocol) .
Lo standard di ricezione del telaio in forma binaria , con Controllori è stato discusso nell'articolo ” Intelligent Building eHouse pacchetto di controllo di stato ” .
Decodifica il telaio deve analizzare ogni bit di dati da pacco .
Inoltre , ogni tipo di controllo:

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

Avere una differenza nella quantità di ingressi digitali , Ingressi di misura , uscite digitali , dimmer , funzioni di monitoraggio e algoritmi che risultato , che i dati nel mutare telaio standard a seconda del tipo di controllore .
Ciò comporta la necessità di decodifica il bit per bit per ciascun controllore indipendente .
Nel caso della realizzazione di tutti i tipi di controllori a microprocessore per creare e testare l'algoritmo di decodifica telaio può richiedere fino a 1 mese .
Per minimizzare questo tempo al minimo , per facilitare pronti a presentare l'algoritmo preso in prestito da eHouse . exe applicazione , per decodificare automaticamente tutte le informazioni dal controller e caricare i dati nei registri modello di pannello a sfioramento (per le tavolette) di Windows XP , Vista , 7 , 8 .
Dopo un caricamento automatico dei dati in librerie software di eHouse , con poche righe di codice , è possibile creare il proprio controllo eHouse algoritmi di sistema in pochi minuti .
Struttura del software di decodifica binaria dello standard di stato eHouse è implementato nella libreria di modelli per il pannello . Si deve essere fatto binario , diretto dello stato decodifica da controller Ethernet senza eHouse . Exe applicazione di supervisione .
Decodifica l'intero fotogramma (per controllori a microprocessore eHouse1 RM , EM , HM) è effettuata dalla funzione set_rm procedura (str: array_of_char ; TCP_INDEX_INC: integer) ;
parametri sono funzioni dello stato del buffer e lo spostamento (offset) . Il buffer contiene tutti i dati ricevuti dallo stato . Offset dipende dal tipo di trasmissione (indirizzo esteso , normale , ed altre applicazioni future dipendono algoritmi di comunicazione) .
Si riempie lo stato della matrice per ogni controller individualmente e possono quindi manipolare direttamente i dati oi dati di aggiornamento automatico su pannelli touch screen .
Questa funzione si attiva in caso di procedura di ricezione dati dal componente UDP socket (TNMUDP – chiamato binario) in caso onDataReceived .
La ricezione è il seguente:
procedura TForm1 . binaryDataReceived (Sender: TComponent ;
NumberBytes: Integer ; FromIP: String ; Porta: Integer) ;
var C: array [0 . . 1024] di char ;
MyStream: TMemoryStream ;
iniziare
se filesystem_status quindi uscire ; / / Se il file di sistema filesystem_status
MyStream: = TMemoryStream . Creare ; / / Creazione di un flusso di dati
binario . ReadStream (MyStream) ; / / Leggi il flusso di dati
MyStream . Leggi (C [0] , NumberBytes) ; / / Carica il buffer di C
set_rm (C , 1) ; / / Converte i dati binari e carica il rm registri [index] per i controller eHouse 1
Test_save ; / / Test registrare l'output in un file di testo per il funzionamento facile
update_panel ; / / Carica i dati per il pannello di controllo
fine ;
Esso consente di automaticamente e non – raccolta invasiva di dati su una LAN o Wi – Fi con la trasmissione tramite pacchetto UDP (User Datagram Protocol) .
Che altro non richiede una connessione aperta al server è in ascolto solo sulla porta di trasmissione ‘ 6789 ‘ inadempimento o altro .
Errori di collegamento , Rete , router non comportare una sospensione o errori software non specificati (come nel caso di comunicazione con TCP server) , ma scompare solo aggiornare i dati senza influire sui dati o adatto UDP applicazioni client-server .

ATTENZIONE! . Se si crea software di controllo su un Windows per Home Automation eHouse , è necessario implementare tutti gli algoritmi in un'applicazione , che analizza i dati ed esegue tutti gli algoritmi e visualizzarli . Abbiamo osservato a volte che 2 socket di ascolto UDP non può esistere sullo stesso PC .
Le variabili più importanti del binario biblioteca:
boiler_alarm: Boolean = false ; / / Caldaia allarme temperatura allarme programmato in precedenza
/ / Over – Allarme temperatura della caldaia
bonfire_stat: integer ; / / Riscaldamento livello Falò 0 – 7 per modalità binaria – status occupazionale fuoco
/ / 0 – sparare – non scalda
/ / 1 – Fire on / estinzione => ; ; Livello verde < ; ; Temperatura giacca (LED verde lampeggiante) – scade lampeggia in verde
/ / 2 – fuoco su => ; ; Livello verde> ; ; Temp = giacca> ; ; livello giallo – histeressis (LED verde) – verde
/ / 3 – fuoco su => ; ; livello giallo – histeressis> ; ; Temperatura giacca> ; ; histeressis livello + giallo) (verde + giallo led) – verde – giallo
/ / 4 – fuoco su => ; ; livello giallo + histeressis> ; ; Temperatura giacca> ; ; livello rosso – histeressis (giallo) – giallo
/ / 5 – incondizionata => ; ; livello rosso – histeressis < ; ; Temperatura giacca < ; ; histeressis livello + rosso (rosso + giallo led) giallo – rosso
/ / 6 – incondizionata => ; ; Temperatura giacca> ; ; histeressis livello + rosso (LED rosso costante) – rosso
/ / 7 – incondizionata => ; ; Temperatura giacca> ; ; falò di allarme (LED rosso lampeggiante) ALLARME – lampeggia in rosso
bonfire_sensor_error: Boolean = false ; / / Errore di falò sensori troppo diversi sensori di temperatura dell'acqua giacca tra due
/ / Errore camino mantello sensori di temperatura differenza troppo grande
recuperator_status: string ; / / Stato di recupero , ventilazione , riscaldamento aria – recuperatore e lo stato di ventilazione
recu_winter: Boolean = false ; / / Recuperatore inverno / estate modalità scambiatore di calore attivato / disattivato – recuperatore inverno / estate
recu_manual_amalva: boolean = true ; / / Recuperatore automatico / manuale modalità per AMALVA recuperatore (auto gestito da interno controler AMALVA , manuale eHouse HeatManager) / /
Recuperatore AMALVA manuale / automatica
went_cooler: boolean = true ; / / Acqua on / off per la ventilazione o raffreddamento nel recupero recupero del sistema o GWC ON / OFF
went_gwc: Boolean = false ; Servomotore / / GHE (scambiatore di calore terra) on / off – terra scambiatore di calore del motore on / off
went_aux_gwc_fan: Boolean = false ; / / Ausiliario GWC ventilatore / ventilatore interruttore on / off per lo scambiatore di calore a terra – Ventilatore GWC assistito
bonfire_dgp: Boolean = false ; / / Bonfire calda sistema di distribuzione dell'aria attivato / disattivato – Fan di distribuzione dell'aria calda dal camino DGP
ventilation_on: Boolean = false ; / / La ventilazione è attualmente lavorando on / off – includono ventilazione e recupero di calore
heater_pump: boolean = true ; / / Pompa di calore per la ventilazione on / off – pompa del circuito di riscaldamento e di ventilazione per radiatori
three_ways_cutoff: integer = 0 ; / / Tre modi di taglio direzione 0 off , Aumentare il livello 1 , – Diminuendo il livello 1) la direzione di rotazione elettro – vie
solar_pump: Boolean = false ; / / Pompa solare on / off – pompa solare
boiler_on: Boolean = false ; / / Caldaia attivato / disattivato – Caldaia on / off
boiler_pump: Boolean = false ; / / Stato della pompa della caldaia on / off – pompa della caldaia on / off
boiler_fuel_out: Boolean = false ; / / Caldaia di carburante indicativi (conteggio ore di riscaldamento) – carenza di carburante stimati per caldaia a combustibile solido (calcolato sulla base delle ore di funzionamento della caldaia)
boiler_power_on: Boolean = false ; / Potenza supplay / caldaia on / off ; – Potenza caldaia on / off
boiler_fuel_supply_override: Boolean = false ; / / Override supplyier caldaia a combustibile (controllo eHouse / regolatore di caldaia interna) – Capogruppo il controllo del combustibile sistema eHouse erogazione on / off
bonfire_pump: Boolean = false ; / Stato della pompa / Bonfire on / off – pompa antincendio on / off
recu_speed: integer = 0 ; / / Recuperatore Speeed 0 . . 3 – Recuperatore di velocità
recu_temperature: integer ; / / Livello di temperatura di 0 RECU . . 30C temperatura recuperatore per amalwa
_recu_mode: string = ‘ ‘ ; / / Recupero in modalità testo come HeatManager pannello di controllo (eHouse . exe) – modalità recuperatore come controllo eHouse pannello delle applicazioni HeatMAnagerem . exe
andato: string ; / Stato di ventilazione / testo come un pannello di controllo HeatManager (eHouse . exe) – ventilazione stato lo stesso che nel pannello di HeatManager eHouse . exe
caldaia , solare: stringa ; / / Caldaia , Solar HeatManager testo di stato come un pannello di controllo (eHouse . exe) – lo stato della caldaia e il solare pannello di controllo (HeatManager) eHouse . exe
komi: string ; / Stato falò / Testo come un pannello di controllo HeatManager (eHouse . exe) – status di anti-incendio e eHouse pannello delle applicazioni HeatManager . exe
Controllo Luci