Decoding status biner pengendali otomatisasi rumah – gratis source code

Home Automation , Gedung Manajemen eHouse – Decoding status pengendali mikroprosesor
Home Automation diterima oleh panel kontrol yang terhubung ke LAN atau WiFi , melalui UDP (User Datagram Protocol) .
Penerimaan standar bingkai statusnya dalam bentuk biner , dengan Controller telah dibahas dalam artikel ” Gedung eHouse cerdas controller status paket ” .
Decoding frame perlu menganalisis setiap bit data dari pak .
Tambahan , setiap jenis kontroler:

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

Memiliki perbedaan dalam jumlah input digital , pengukuran input , digital output , dimmer , pemantauan fungsi dan algoritma yang dihasilkan , bahwa data dalam bingkai standar bermutasi tergantung pada jenis kontroler .
Hal ini menyebabkan kebutuhan untuk decoding bit demi sedikit untuk setiap jenis kontroler independen .
Dalam kasus pelaksanaan semua jenis pengendali mikroprosesor untuk membuat dan menguji algoritma bingkai decoding bisa memakan waktu hingga 1 bulan .
Untuk meminimalkan waktu ini untuk minimum , untuk memfasilitasi siap untuk menyajikan algoritma dipinjam dari eHouse . aplikasi exe , untuk secara otomatis men-decode semua informasi dari kontroler dan data beban ke dalam catatan template dari panel sentuh (untuk tablet) Windows XP , Pemandangan , 7 , 8 .
Setelah otomatis memuat data ke dalam perpustakaan eHouse software , dengan beberapa baris kode , Anda dapat membuat kontrol Anda sendiri sistem algoritma eHouse dalam beberapa menit .
Biner Bingkai decoding perangkat lunak standar Status eHouse diimplementasikan di perpustakaan template untuk panel . Hal ini perlu dilakukan biner , untuk status decoding langsung dari pengendali Ethernet tanpa eHouse . Exe aplikasi pengawasan .
Decoding seluruh frame (untuk pengendali mikroprosesor eHouse1 RM , EM , HM) dilakukan oleh fungsi set_rm prosedur (str: array_of_char ; TCP_INDEX_INC: integer) ;
parameter adalah fungsi dari status buffer dan pergeseran (offset) . Buffer berisi semua data yang diterima dari status . Offset tergantung pada jenis transmisi (alamat diperpanjang , normal , dan aplikasi masa depan lainnya tergantung pada algoritma komunikasi) .
Secara otomatis mengisi status array untuk kontroler masing-masing individu dan kemudian dapat langsung memanipulasi data atau update data secara otomatis pada panel layar sentuh .
Fungsi ini diaktifkan dalam prosedur acara menerima data dari komponen soket UDP (TNMUDP – disebut biner) dalam acara onDataReceived .
Penerimaan adalah sebagai berikut:
Prosedur TForm1 . binaryDataReceived (Sender: TComponent ;
NumberBytes: Integer ; FromIP: String ; Port: Integer) ;
var C: array [0 . . 1024] dari char ;
MyStream: TMemoryStream ;
mulai
jika filesystem_status kemudian keluar ; / / Jika file tidak ada sistem filesystem_status
MyStream: = TMemoryStream . Menciptakan ; / / Buat aliran data
biner . ReadStream (MyStream) ; / / Baca data stream
MyStream . Baca (C [0] , NumberBytes) ; / / Banyak C penyangga
set_rm (C , 1) ; / / Mengkonversi biner data dan beban register rm [index] untuk pengendali eHouse 1
Test_save ; / / Test merekam output ke file teks untuk operasi mudah
update_panel ; / / Load data untuk panel kontrol
akhir ;
Hal ini memungkinkan Anda untuk secara otomatis dan non – invasif pengumpulan data melalui LAN atau Wi – Fi dengan siaran paket melalui UDP (User Datagram Protocol) .
Apa lagi tidak memerlukan koneksi terbuka untuk server hanya mendengarkan pada siaran pelabuhan ‘ 6789 ‘ default atau lainnya .
Kesalahan link , Jaringan , router tidak mengakibatkan suspensi atau kesalahan perangkat lunak yang tidak ditentukan (seperti dalam kasus komunikasi dengan TCP server) , namun hilang hanya memperbarui data tanpa mempengaruhi data atau server aplikasi UDP client yang cocok .

PERINGATAN! . Jika Anda membuat perangkat lunak kontrol pada Windows untuk Home Automation eHouse , perlu untuk menerapkan semua algoritma dalam satu aplikasi , yang menganalisis data dan melakukan semua algoritma dan memvisualisasikan mereka . Kami mengamati bahwa kadang-kadang 2 soket pendengar UDP tidak dapat eksis pada PC yang sama .
Yang paling penting variabel dalam biner perpustakaan:
boiler_alarm: Boolean = false ; / / Boiler alarm diprogram alarm suhu di atas
/ / Lebih – suhu alarm boiler
bonfire_stat: integer ; / / Bonfire pemanasan level 0 – 7 untuk mode biner – kerja Status api
/ / 0 – menembakkan – tidak panas
/ / 1 – Kebakaran di / pemadam => ; ; hijau tingkat < ; ; suhu jaket (LED hijau berkedip) – berakhir berkedip hijau
/ / 2 – api pada => ; ; Tingkat hijau> ; ; = Jaket Temp> ; ; kuning tingkat – histeressis (LED hijau) – hijau
/ / 3 – api pada => ; ; kuning tingkat – histeressis> ; ; suhu jaket> ; ; histeressis tingkat + kuning) (hijau + kuning leds) – hijau – kuning
/ / 4 – api pada => ; ; Tingkat kuning + histeressis> ; ; suhu jaket> ; ; merah tingkat – histeressis (kuning) – kuning
/ / 5 – bersyarat => ; ; merah tingkat – histeressis < ; ; suhu jaket < ; ; histeressis Tingkat + red (merah + kuning leds) kuning – merah
/ / 6 – bersyarat => ; ; suhu jaket> ; ; histeressis tingkat + merah (red LED konstan) – merah
/ / 7 – bersyarat => ; ; suhu jaket> ; ; bonfire alarm (LED merah berkedip) ALARM – merah berkedip
bonfire_sensor_error: Boolean = false ; / / Kesalahan sensor api unggun terlalu jauh berbeda air sensor suhu jaket Antara Dua
/ / Kesalahan perapian sensor suhu mantel perbedaan terlalu besar
recuperator_status: string ; / / Status penyembuhan , ventilasi , udara pemanas – recuperator dan status ventilasi
recu_winter: Boolean = false ; / / Recuperator dingin / musim panas penukar modus diaktifkan / dinonaktifkan – recuperator dingin / panas
recu_manual_amalva: boolean = true ; / / Recuperator auto / manual mode untuk amalva recuperator (auto dikelola oleh internal controler amalva , manual untuk eHouse HeatManager) / /
recuperator amalva manual / auto
went_cooler: boolean = true ; / / Air dingin on / off untuk ventilasi atau pendingin dalam penyembuhan penyembuhan sistem atau GWC ON / OFF
went_gwc: Boolean = false ; / / ERK (ground heat exchanger) servomotor on / off – tanah penukar panas bermotor on / off
went_aux_gwc_fan: Boolean = false ; / / Auxiliary GWC ventilator / fan on / off untuk tanah penukar panas – GWC fan dibantu
bonfire_dgp: Boolean = false ; / / Bonfire udara sistem distribusi panas diaktifkan / dinonaktifkan – Fan distribusi udara panas dari perapian DGP
ventilation_on: Boolean = false ; / / Ventilasi saat ini bekerja on / off – termasuk ventilasi dan pemulihan panas
heater_pump: boolean = true ; / / Pompa untuk pemanas untuk ventilasi on / off – pompa pemanas dan sirkuit ventilasi untuk radiator
three_ways_cutoff: integer = 0 ; / / Tiga cara cutoff arah 0 off , Meningkatkan tingkat 1 , – Penurunan tingkat 1) arah rotasi elektro – arah katup
solar_pump: Boolean = false ; / / Pompa on / off Surya – surya pompa
boiler_on: Boolean = false ; / / Boiler diaktifkan / dinonaktifkan – boiler on / off
boiler_pump: Boolean = false ; / / Status dari pompa boiler on / off – boiler pompa on / off
boiler_fuel_out: Boolean = false ; / / Boiler kehabisan bahan bakar aproximate (menghitung jam pemanasan) – Diperkirakan bahan bakar kekurangan untuk boiler bahan bakar padat (dihitung atas dasar jam operasi boiler)
boiler_power_on: Boolean = false ; / / Boiler supplay power on / off ; – Boiler power on / off
boiler_fuel_supply_override: Boolean = false ; / / Override supplyier bakar boiler (kontrol oleh eHouse / controller boiler internal) – Induk bahan bakar dikendalikan sistem pengiriman eHouse on / off
bonfire_pump: Boolean = false ; / / Bonfire pompa Status on / off – pompa kebakaran on / off
recu_speed: integer = 0 ; / / Recuperator Speeed 0 . . 3 – recuperator kecepatan
recu_temperature: integer ; / / Suhu tingkat reçu 0 . . 30C Suhu recuperator untuk amalwa
_recu_mode: string = ‘ ‘ ; / / Penyembuhan modus dalam teks karena HeatManager panel kontrol (eHouse . exe) – recuperator modus sebagai panel kontrol eHouse aplikasi HeatMAnagerem . exe
pergi: string ; / / Teks ventilasi statusnya sebagai panel kontrol HeatManager (eHouse . exe) – ventilasi status sama seperti pada panel HeatManager dari eHouse . exe
ketel , surya: string ; / / Boiler , Teks surya HeatManager status sebagai Control Panel (eHouse . exe) – status boiler dan panel surya kontrol (HeatManager) eHouse . exe
Komi: string ; / / Teks api unggun statusnya sebagai panel kontrol HeatManager (eHouse . exe) – status sebagai api panel kontrol eHouse aplikasi HeatManager . exe
Kontrol Lampu