Hallo zusammen,
nach langer Zeit bin ich wieder mal dazu gekommen, mich mit den Thema Einbindung meiner Heizung zu beschäftigen. Auch etwas aus der Not geboren, da mein Stromverbrauch gerade jedes Jahr ansteigt, und ich analysieren will woran es liegt.
Die Hauptschwierigkeit war, die EBUS Telegramme zu entschlüsseln. Dafür haben ganz viele in verschiedenen Foren Ihren Beitrag geleistet. Meine Erkenntnisse teile ich deshalb gerne. Ich habe die CSV dann durch ausprobieren und parallelem Durchscrollen der Menüs auf dem Controller der WP angepasst. CSV ist im Anhang. Hier war die Basis auf die ich aufbauen konnte: https://github.com/rellla/ebusd-configuration/blob/435d9ee4fe113edbfce16b894a89e62d1519d170/ebusd-2.1.x/de/TEM/bartl.csv
ebusd läuft auf dem selben raspberry pi wie symcon 5.0.
Als Hardware verwende ich den eBUS Koppler Ethernet von Esera. Der lag schon ein paar Jahre im Schrank. Obwohl bei ebusd steht, dass es damit wohl Schwierigkeiten gibt, geht es bei mir einwandfrei.
Lesend ist nun kein Problem.
Hab die Auswertung ganz pragmatisch gelöst, vielleicht gibt es programmiertechnisch elegantere Lösungen. Hier mal meine Skripte:
zum Auswerten der Variablen:
$werte = explode(";",$_IPS['VALUE']);
//print_r($werte);
switch ($werte[0]) {
case "00-004":
SetValueFloat(28964, $werte[5]);
break;
case "02-053":
SetValueString(18500, $werte[5]);
break;
case "00-015":
SetValueFloat(29675, $werte[5]);
break;
case "00-002":
SetValueFloat(39379, $werte[5]);
break;
case "23-001":
SetValueFloat(42190, $werte[5]);
break;
case "23-010":
SetValueFloat(48885, $werte[5]);
break;
case "00-007":
SetValueFloat(25115, $werte[5]);
break;
case "00-008":
SetValueFloat(28459, $werte[5]);
break;
case "00-070":
SetValueFloat(27797, $werte[5]);
break;
case "00-071":
SetValueFloat(56657, $werte[5]);
break;
case "00-072":
SetValueFloat(17002, $werte[5]);
break;
case "01-001":
SetValueFloat(57805, $werte[5]);
break;
case "03-058":
SetValueFloat(29210, $werte[5]);
break;
case "03-050":
SetValueString(52895, $werte[5]);
break;
case "00-000":
SetValueFloat(23520, $werte[5]);
break;
case "02-020":
SetValueFloat(28646, $werte[5]);
break;
}
Abfrage der Werte vom Bus:
<?
CSCK_SendText(51563, "read -f -c ww_ping temp_ist".chr(10).chr(13));
sleep(1);
CSCK_SendText(51563, "read -f -c wp_ping status".chr(10).chr(13));
sleep(1);
CSCK_SendText(51563, "read -f -c wm_stat puffer_temp_oben".chr(10).chr(13));
sleep(1);
CSCK_SendText(51563, "read -f -c hk_ping vl_temp_ist".chr(10).chr(13));
sleep(1);
CSCK_SendText(51563, "read -f -c wp_stat energie_kwh".chr(10).chr(13));
sleep(1);
CSCK_SendText(51563, "read -f -c wp_stat energie_mwh".chr(10).chr(13));
sleep(1);
CSCK_SendText(51563, "read -f -c wp_stat vl_temp_ist".chr(10).chr(13));
sleep(1);
CSCK_SendText(51563, "read -f -c wp_stat rl_temp_ist".chr(10).chr(13));
sleep(1);
CSCK_SendText(51563, "read -f -c wp_stat temp_hg".chr(10).chr(13));
sleep(1);
CSCK_SendText(51563, "read -f -c wp_stat wq_temp_out".chr(10).chr(13));
sleep(1);
CSCK_SendText(51563, "read -f -c wp_stat wq_temp_in".chr(10).chr(13));
sleep(1);
CSCK_SendText(51563, "read -f -c hk_stat raumtemp_soll".chr(10).chr(13));
sleep(1);
CSCK_SendText(51563, "read -f -c hk_param1 temp_behaglichkeit".chr(10).chr(13));
sleep(1);
CSCK_SendText(51563, "read -f -c hk_stat at".chr(10).chr(13));
sleep(1);
CSCK_SendText(51563, "read -f -c hk_stat at".chr(10).chr(13));
sleep(1);
CSCK_SendText(51563, "read -f -c hk_stat at_mittel".chr(10).chr(13));
sleep(1);
CSCK_SendText(51563, "read -f -c hk_ping betriebswahl".chr(10).chr(13));
?>
So, irgendwann steht noch das Schreiben auf den Bus an. Für die Änderung wesentlicher Parameter, bsp. Warmwassertemperatur, Behaglichkeit oder Betriebswahl der Heizung. Aber lesend tappe ich noch völlig im Dunkeln.
Variablenkonfiguration:
bartl eco 4 SHG.zip (9.9 KB)