bn-heat_master - 1.0.0

   
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.