Aufbau | |
Von ebus oder dlbus gelieferte Temperaturmeßwerte werden in einer C++ Class zusammengeführt.
Mit einer Logic werden dann je nach Temperatur unterschiedliche Ausgänge mit Hilfe von sispm gesteuert. Optimal geeignet für eine Solar-Steuerung oder einfach als Daten-Logger mit Web-Zugriff. Die graphische Aufbereitung der Daten ist noch in Arbeit. ![]() Die Daten der Eingänge werden über ein IP4 Netzwerk übertragen, dh. die Anzahl der Geräte, die Daten liefern, ist somit nur durch das Netzwerk begrenzt. Die Ausgänge (sispm) werden per USB geschalten und sind durch die Anzahl der Ports limitiert. Im Beispiel hier 1 x ebus, 2 x dlbus und 2 x sispm (8 geschaltene Steckdosen). | |
Monitor | |
Durch den eingebauten Web-Server hat man schnell Zugriff auf die Daten, zb. http://localhost:8887 oder über die URL vom Host. Die Anzeige aktualisiert sich bei einem Meßintervall von 60 sec alle 30 sec automatisch. ![]() Jede Messung wird einzeln, SQL-Formatiert in eine Text-Datei gespeichert, die sehr einfach in eine SQL-Datenbank übertragen werden kann. 0,1453531504,1453531033,-7.3,34.4,54.1,'Heizbetrieb',144,1300833120,-8.7,21.5,21.3,22.3,0.0,0.0,0,0,0,0,0,0,0,'','raspberrypi.(none)' Aktuelle Werten können auch über IP4 mit zb. echo "\n" | socat - tcp4-connect:localhost:8887 abgefragt werden, die Ausgabe ist CSV-Formatiert mit Feld-Namen. id=0,usec=1453926724,eb_usec=1453926223,eb_t1=4.3,eb_t2=31.4,eb_t3=49.9,eb_mode='Heizbetrieb',dl_dev_id=144,dl_usec=1301343540.... | |
Konfiguration /etc/bn-heat_masterd.txt | |
Minimale C-Syntax Konfiruation.log.level = 1 log.stdio = stderr log.syslog = 0 log.file = /var/log/bn-heat_masterd.log bn-heat_masterd.intervall = 60 bn-heat_masterd.host = 0.0.0.0 bn-heat_masterd.port = 8887 bn-heat_masterd.home = /var/bn-heat_master #bn-heat_masterd.node = node01.foo.com dlbus[0].Index = 0 dlbus[0].Host = pi dlbus[0].Port = 8886 ebus[0].Index = 0 ebus[0].Host = pi ebus[0].Port = 8888 heat_master.dl_t1 = dlbus[0].t1 heat_master.dl_t2 = dlbus[0].t2 heat_master.dl_t3 = dlbus[0].t3 heat_master.dl_t4 = dlbus[0].t4 heat_master.dl_a1 = dlbus[0].a1 heat_master.dl_a2 = dlbus[0].a2 heat_master.dl_a3 = dlbus[0].a3 heat_master.dl_usec = dlbus[0].dev_usec heat_master.dl_dev_id = dlbus[0].dev_id heat_master.eb_t1 = ebus[0].temperature outside heat_master.eb_t2 = ebus[0].temperature buffer heat_master.eb_t3 = ebus[0].temperature water heat_master.eb_mode = ebus[0].heatpump mode heat_master.eb_usec = ebus[0].master datetime html.Date/Time = heat_master.usec ; usec2string(); color=#00FF00 html.OTE Date/Time = heat_master.eb_usec; usec2string(); color=#0000FF html.Out = heat_master.eb_t1 html.Buffer = heat_master.eb_t2 html.Water = heat_master.eb_t3 html.OTE Status = heat_master.eb_mode html.Solar = heat_master.dl_t1 html.Buffer2 = heat_master.dl_t3 html.Solar In = heat_master.dl_t4 html.Solar Out = heat_master.dl_t2 html.A1 = heat_master.dl_a1 html.A2 = heat_master.dl_a2 html.A3 = heat_master.dl_a3 html.R1 = heat_master.ab_a1 html.R2 = heat_master.ab_a2 html.R3 = heat_master.ab_a3 html.R4 = heat_master.ab_a4 sispm[0].serial_number = 01:02:03:04:05 sispm[0].a1 = heat_master.ab_a1 sispm[0].a2 = heat_master.ab_a2 sispm[0].a3 = heat_master.ab_a3 sispm[0].a4 = heat_master.ab_a4 | |
ebus | |
Der ebusd liefert die Daten von zB. einer Ochsner Wärmepumpe. Für die Verbindung zum ebus braucht man eine externe Hardware, zu finden im Netz, welche die Daten auf USB convertiert. | |
dlbus | |
Gleich wie beim ebus werden die Daten vom dlbus auf USB convertiert. Die Elektronik sowie auch die Software ist im Paket bn-dlbus zu finden. | |
sispm | |
Die Ausgänge werden über eine EnerGenie Steckerleiste per USB gesteuert. Mit dem sispmctl Modul werden die einzelnen Stecker vom PC aus geschalten. http://sourceforge.net/projects/sispmctl/files/sispmctl/sispmctl-3.1/sispmctl-3.1.tar.gz md5sum 24693cae30d77c957f34cfb2c8159661 sispmctl-3.1.tar.gz sispmctl -s Gembird #0 USB information: bus 001, device 006 device type: 4-socket SiS-PM serial number: 01:02:03:04:05 | |
C++ Class | |
class _heat_master { public: long id; long usec; long eb_usec; double eb_t1; double eb_t2; double eb_t3; char eb_mode[50]; long dl_dev_id; long dl_usec; double dl_t1; double dl_t2; double dl_t3; ... ... ... };Die Variable heat_master wird von der class _heat_master abgeleitet, in dieser werden die Werte zusammengeführt. _heat_master heat_master; | |
Logic | |
Im File logic.cpp werden die Ausgänge je nach Temparatur gesteuert.double Buffer = heat_master.eb_t2; double Solar = heat_master.dl_t1; if ( Buffer + 5 < Solar ) { heat_master.ab_a1 = 1; //SolarPump ON } | |
Betrieb | |
Die App läuft optimal auf einem Raspberry Pi mit Linux, die Windows32/64 Portierung ist in Arbeit. | |