Bina Otomasyonu ehouse – Bir Windows yazılım bindirmeleri ve özel algoritmalar oluşturma

Ev Otomasyonu PC yazılımı ile eHouse Eğer bina otomasyon sistemi için bindirmeleri oluşturmanıza olanak sağlar .
Bu, kendi oluşturmanıza olanak sağlar , bireysel algoritmaları , Seri kontrol yazılımı veya sürücü yazılımı uygulanmamış Ev Otomasyonu eHouse .
Bu amaçla , biz (Delphi 5) yazılım kaynak kodları ile kullanıcılara sunmak . Onlar Delphi yeni sürümleri ile derlenen veya diğer programlama dilleri için kullanılabilir .
Onlar amatör programı için ücretsiz zaten mevcut olarak biz bilinçli bu arkaik sürümleri seçti .
Bunlar Windows XP gibi güvenilir bir şekilde çalışmak , Manzara , Windows 7 32 ve 64 bit .
Bu yazılım eHouseLogAnalizer ve güncel metin dosyalarını okumak bu günlükleri şablon uygulamaları denir .
Bu uygulamalar KillWdt tarafından yönetilir ve izlenebilir . exe .
Uygulamanın Anahtar özellikler:

  • Tüm sürücülerin durumunu ve adları üzerinden Okuma
  • Durumunu okuyun ve tüm sürücülerin adlarını girin
  • Girişleri ölçüm tüm sürücülerin ölçümleri ve isimleri okuyun
  • Dahili bir program hafızasına tüm veri yüklemek , bu ayrıca, bir uygulama tarafından işlenebilir

Uygulama dizinindeki metin dosyaları için oluşturulan dosyaların durumunu kullanır ‘ günlükler / durum / ‘ uzatma ‘ . durum ‘ .
Dosya yalnızca uygulamayı eHouse değişiklikleri durumunda okunur . exe .

Veri kontrolörleri aşağıdaki durumlarda Kayıt yüklenir ” ehouse_rm_em_hm ” Dizi RM listelenen .

Buna ek olarak , veri HeatManager aşağıdaki değişkenleri tutulur:
bonfire_status: string ; HeatManager için şenlik ateşi / / Durum – Durum şömine ısıtma paneli ehouse . exe
boiler_status: string ; HM Kazan / / Durum – Kazan ısıtma paneli ehouse durumu . exe
Solar_status: string ; Güneş sistemi / / Durum – güneş enerjisi paneli ehouse durumu . exe
recuperator_status: string ; Iyileşme / / Durum , havalandırma , hava ile ısıtma – ısıtma havalandırma ve ısı geri kazanım durumu
HADC: array [0 . . 15] double ; / / Isı Sıcaklıkları yöneticisi – sıcaklık ölçümleri HeatManager
HADC dizi doğrudan erişim için / / Isı yöneticisi indeksleri – Sıcaklık HeatManager doğrudan okuma Sabit sıcaklık endeksleri
SABİT HM_GWC = 3 ; / / GWC – Zemin Eşanjör
HM_KOM1 = 4 ; / / Şömine Coat 1 – Bonfire su ceketi 1
HM_KOMKONV = 5 ; / / Şömine konvekcyjne – konveksiyon bonfire
HM_KOM2 = 6 ; / / Yangın DÜZLEM 2 – şenlik ateşi su ceketi 2 (yedekleme)
HM_TWEWN = 7 ; / / İç oda sıcaklığı – iç oda sıcaklığında
HM_SOLAR = 9 ; / / Kollektör güneş – güneş sistemi
HM_ZEWNPN = 8 ; / / Dış sıcaklık kuzey – dış hava sıcaklığı kuzey
HM_ZEWNPD = 1 ; Güney / / Dış sıcaklık – dış hava sıcaklığı güney
HM_KOC = 10 ; / / Sıcaklık kazan – Kazan sıcaklık
HM_BANDOL = 11 ; / / / CO sıcak su tankı aşağı – Sıcak watter alt tampon
HM_REQIN = 12 ; / / Temiz hava reküperatör girişi – iyileşme açık hava girişi
= 13 HM_REQOUT ; / / Çıktı reküperatör ev – oda heaten nekahat taze hava üfler – sıcaklık
= 14 HM_NAG ; / / Sıcaklık üç kontrollü – ısıtma ve radyatör yollu vana – su ısıtıcı ya da diğer ısıtma sistemi için üç yol kesme sonra sıcaklık
HM_REQWYC = 15 ; / / Ana reküperatör özü kirli – ev kirli egzoz temp iyileşme
HM_BANGORA = 2 ; / / Isıtma / sıcak su tankı gora – Sıcak su tampon TOP
HM_BANSRO = 0 ; / / Isıtma / sıcak su depolama tankı bir araç – ORTA sıcak su tampon
var HADCNames: array [0 . . 15] string ; / / Sensörleri isimleri (girişler ölçüm) HeatManagera
Temel işlevler EhouseLogAnalizer:
prosedürü init_heat_temperature_names ; / / Initialize ve / veya sıcaklık sensörleri HM adlarını okumak
prosedürü loadnames_rm ; / / Yük RoomManagerĂłw isimleri (eHouse 1)
prosedürü readethernetdevs ; / / Ethernet sürücüsü adları (eHouse 2) Okur
get_index_rm fonksiyonu (str: string): integer ; / / Döndürür dosya adı durumuna göre roomManagerami arama ile tablonun indeksi
fonksiyonu gb (chr: char): boolean ; / / Okuma durumu için bir Boole değeri döndürür
adc_hm prosedürü (str: string ; index: integer) ; / / Okuma durumu HeatManagera arasında kaydedilen sıcaklıklar dize dönüştürür
adc_rm prosedürü (str: string ; index: integer) ; Durumu RoomManagerĂłw okurken / / Analog ölçümler dize dönüştürür
gbs fonksiyonu (b: boolean): String ; / / Metin şeklinde (0 boolean yazın , 1)
RMDeviceIndexByName fonksiyonu (str: string): integer ; / / Adını döndürür sürücüsü tarafından RoomManagerami arama tablonun indeksi
RMGetOutputStateNr fonksiyonu (index: integer ; OutputNr: integer): boolean ; / / Çıktı durumunu RM Dönüş [index] ve çıkış sayısını OutputNR
RMGetOutputState fonksiyonu (index: integer ; OutputName: string): boolean ; / / Döndürür çıkış durumu RM [index] ve OutputName seslendi
RMGetInputStateNr fonksiyonu (index: integer ; InputNr: integer): boolean ; / / Döndürür giriş RM durumunu [index] ve giriş InputNr sayısı
RMGetInputState fonksiyonu (index: integer ; InputName: string): boolean ; / / Döndürür giriş RM durumunu [index] ve giriş InputName adını
RMGetTempNr fonksiyonu (index: integer ; InputNr: integer): Çift ; / / RM sıcaklık döndürür [index] ve giriş InputNr sayısı
RMGetTemp fonksiyonu (index: integer ; InputName: string): Çift ; / / RM sıcaklık döndürür [index] ve giriş InputName adını
RMGetInvPercent fonksiyonu (index: integer ; InputName: string): Çift ; / / Döndürür ters 100 bir yüzdesi ölçüm % – x RM [index] ve giriş InputName adını (besleme gerilimi denetleyicisi ile ilgili olarak)
RMGetInvPercentNr fonksiyonu (index: integer ; InputNr: integer): Çift ; / / Döndürür ters 100 bir yüzdesi ölçüm % – x RM [index] ve giriş InputNr sayısı (besleme gerilimi denetleyicisi ile ilgili olarak)
RMGetPercent fonksiyonu (index: integer ; InputName: string): Çift ; / / Döndürür RM [index] yüzdesi ölçüm ve giriş InputName adını (besleme gerilimi denetleyicisi ile ilgili olarak)
RMGetPercentNr fonksiyonu (index: integer ; InputNr: integer): Çift ; / / Döndürür ters 100 bir yüzdesi ölçüm % – x RM [index] ve giriş InputNr adını (besleme gerilimi denetleyicisi ile ilgili olarak)
RMGetDeviceOutputState fonksiyonu (Devname: string ; OutputName: string): boolean ; / / Döndürür Devname denilen çıkış sürücü durumunu ve OutputName seslendi
RMGetDeviceInputState fonksiyonu (Devname: string ; InputName: string): boolean ; / / Döndürür sürücü girişi durumunu adını ve giriş Devname InputName adını
HMGetTemp fonksiyonu (InputName: string): Çift ; HeatManagera InputName çağrısında ölçme girişinin / / Dönüş suyu sıcaklığı
HMGetTempNr fonksiyonu (InputNr: integer): Çift ; HeatManagera InputNr için ölçüm giriş numarası (1 / / Dönüş suyu sıcaklığı . . 16)
chk_int fonksiyonu (st: string): integer ; / / Güvenli bir tamsayı bir dize dönüştürmek için
prosedürü update_status ; / / Tablo tüm sürücülerin durumunu güncelleyin (periyodik olarak çalıştırmak gerekir)
prosedürü Test_save ; / / Test prosedürü kolay bir metin dosyasına sonuçları yazmak için
Sürücü başlatma ve uygulama başlatıldığında bir kez tüm isimleri (FormCreate) yapılır
prosedürü TForm1 . FormCreate (Sender: TObject) ;
başlamak
yol: = getcurrentdir () ; / / Program akım yolu dizinde olmalıdır alın % eHouse_DIR % \ BIN \
yol: = stringreplace (yol , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Uygulama eHouse yolu alın – Uygulama yolu eHouse ayarlar
loadnames_rm ; / / Yük denetçi isimlerini ehouse1 – yükler sürücüleri adı eHouse 1
init_heat_temperature_names ; / / Yük sensörler heatManagera adı
readethernetdevs ; / / Yük denetleyicileri ethernet eHouse isimleri – aygıt adları eHouse 2 okuma
Timer1 . Interval: = 3000 ; Milisaniye / / Set siklik görev aralığı – Döngüsel veri denetimini başlatmak için saati ayarlar
Timer1 . Etkin: = true ; / / (Durum güncellemesini otomatik görevler başlayın – verilerin düzenli kontrolü içerir
update_status ; / / Ilk durum okur
uç ;
Döngüsel veri denetleme fonksiyonu Timer1 yapılır (Timer1Timer) parametresi Timer1 ayarlanmış bir zaman aralığında çalışır . Aralığı (milisaniye) .
prosedürü TForm1 . Timer1Timer (Sender: TObject) ;
var tf: textfile ;
başlamak
update_status ; / / Sürücünün durumunu dönüştürür
Test_save ; / Test için / bir metin dosyasına tüm sonuçlar yazıyor
try / / uygulama için bir işaretçi dosyası KillExec oluşturun . exe bu can ” izlemek ” Kazadan önce uygulama
AssignFile (tf , yolu + ‘ logs \ log – analizörü . stp ‘ ) ;
/ / Uygulamanın doğru stampfile kullanarak çalışmıyor Bu WDT bildir ” \ log log – analizörü . stp ”
yeniden (tf) ;
writeln (tf , ‘ 1 ‘ ) ;
nihayet ;
closefile (tf) ;
uç ;
uç ;