Brötje Ecotherm Plus an IPS

Moin,

ich bin auf der suche nach einer Möglichkeit eine Brötje Ecotherm Plus WGB 2N 20 an IPS anzubinden.

Hat jemand sowas am laufen? Es gibt hier im Forum schon ein paar Themen dazu, aber eine Lösung habe ich hier nicht gefunden.

Was ich im Netz gefunden habe ist das:
GitHub - fredlcore/bsb_lan: LAN interface for Boiler-System-Bus (BSB) and Local Process Bus (LPB) used by Elco Thision, Brötje and similar heating systems

Hatte das evtl jemand schon eingesetzt?

Hallo
ich habe eine erste Anbindung über 2 Scripte (Datacollecting und Aktionsscript) begonnen. Ich kann damit Werte auslesen und die Betriebsarten des Heizkreis 1 und der Warmwasser aufbereitung im Webfront ändern.
Ist das noch von interesse für Dich?
Gruß
Joachim

Hallo
hier eine kleine Übersicht wie ich meine Brötje Heizung mittels BSB-LAN Adapter an das IPS angebunden habe.
Zunächst Arduino Mega2560 mit Ethernetshield W5100 und BSB-LAN Modul (siehe GitHub - fredlcore/bsb_lan: LAN interface for Boiler-System-Bus (BSB) and Local Process Bus (LPB) and Punkt-zu-Punkt Schnittstelle (PPS) used by Elco Thision, Brötje and similar heating systems) ggf Doku (Handbuch zum BSB-LPB-LAN-Adapter | Online-Version des Handbuchs für den LAN-Adapter für Heizungssysteme mit BSB, LPB und PPS-Schnittstelle und die BSB-LAN-Software.)
!!Um Parameter setzen zu könne nbitte Kapitel 13.4 des handbuches beachten. Handbuch zum BSB-LPB-LAN-Adapter | Online-Version des Handbuchs für den LAN-Adapter für Heizungssysteme mit BSB, LPB und PPS-Schnittstelle und die BSB-LAN-Software.

Dann kann man schon damit beginnen die Anbindung an Symcon zu realisieren!
Dazu muss man im jetzigen Stadium aber noch einiges im Symcon von Hand setzen!
Wie zB. für jeden zu ändernden Parameter Profile generieren sowie ein Aktionsscript hinterlegen!

Hier das Aktionsscript:


<?
switch($_IPS['SENDER'])
 {
   case "WebFront":
      SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
      $value = $_IPS['VALUE'];
//
//[b] hier habe ich versucht etwas generich zu werden um nicht immer mit IDen zu arbeiten.
// leider muss das script hier an BSB Parameter und Name angepasst werden!! [/b]
// 
     $param = GetValueString(@IPS_GetObjectIDByName("700", @IPS_GetObjectIDByName("Heizkreis 1 - Betriebsart", 24887)));
   break;
   default:
      $value = "1";
      $param = "700";
   break;
 }
$handle = curl_init();
//
// [b]hier unten die IP des BSB-LAN Adapters eintragen[/b]
//
$url = 'http://<IP-Addr des BSB-LAN>/JS';
$postData =
    array(
          "Parameter" => $param,
          "Value" => $value,
          "Type" => "1"
);
curl_setopt_array($handle,
  array(
    CURLOPT_URL => $url,
    CURLOPT_POST       => true,
    CURLOPT_HEADER => 'Content-Type: application/json',
    CURLOPT_POSTFIELDS => json_encode( $postData ),
    CURLOPT_RETURNTRANSFER  => true,
  )
);
curl_close($handle);

?>

Und hier das Datacollecting script:


<?
//abzufragende Werte für Symcon WebFront,
$vars = array(    0    => 'Uhrzeit und Datum - Datum/Zeit',
                700  => 'Heizkreis 1 - Betriebsart',
                1600 => 'Trinkwasser - Trinkwasserbetrieb'
                );
//
//hier fehlt noch das automatische Einrichten der Symcon Variablen und der Profile aus dem JSON anhand der Vorgaben aus $vars
//zB mit http://<IP-Addr des BSB-LAN>/JK=ALL
//dann für alle Kategorien die Variablendefinitionen udn ENUMs  http://<IP-Addr des BSB-LAN>/JK=xx
//dann
               
foreach ($vars AS $key => $obj){
$json = file_get_contents("http://192.168.177.91/JQ=$key");
$data = json_decode($json, true);
$x = @IPS_GetVariableIDByName($obj, 24887 /*[LCN-Home\Haustechnik\Heizung]*/);
 switch ($data[$key]['dataType']) {
     case 1:
     SetValueInteger($x , $data[$key]['value']);
     break;
     case 5:
     SetValueString($x , $data[$key]['value']);
     break;
 }
}
?> 

Ich habe das hier schon in dem frühen Stadium geteilt weil ich nicht sehr versiert im Programmieren bin. Das geht mir nicht gut von der hand und ich hoffe das wir evt zusammen weitere Vereinfachungen bei der einbindung des BSB-LAN in IPS erstellen können.
Ich stelle mir zB vor das man die Variablen und scriptverbindungen in IPS automatisiert programmiert bekommt.
Auch die einrichtung der Profile.
die scripte (Aktions und Data collector) generischer macht.
etc.

Gruß
Joachim

Gruß
Joachim

Hallo Joachim,
Ich melde mal großes interesse an das es hier weiter geht.
Habe ca. 1 Woche gebraucht bis ich alle wichtigen CommandID´s passend zu meinem Regler rausgefunden habe.(RVA63.244)
Nun geht es an die einbindung in IPS und da haben mir deine 2 Scripte schonmal geholfen.
Villeicht finden sich ja noch ein paar Leute die auch den bsb-lan benutzen.

cu.
uriel2006

Ich habe die Tage nicht viel Zeit gehabt um hier wirklich voran zu kommen. Leider.
Hier Trotzdem ein erster Wurf eines Init Scriptes.
Ich hab mir hier diverse Werte aus dem BSB-LAN JSON Output in ein Array zusammengestellt um es als Basis zu nutzen daraus die Variablen und Profile anzulegen.
Aber dazu muss ich mich erst tiefer in die IPS Libraies einarbeiten.
Das config Array beinhaltet dazu die BSB-LAN Parameter ID udn die Namen unter denen es im Webfront angezeigt werden soll.
Aktuell stellt dieses Script aber erst mal nur die Werte zusammen und schreibt sie in ein Array.


<?

$config = array( 0    => 'Uhrzeit und Datum - Datum/Zeit',
				700  => 'Heizkreis 1 - Betriebsart',
				1600 => 'Trinkwasser - Trinkwasserbetrieb',
				7732 => 'Ein-/Ausgangstest - Vorlauftemperatur B1',
				7750 => 'Ein-/Ausgangstest - Trinkwassertemperatur B3'
				 );
// #######################################################################

$json = file_get_contents("http://192.168.177.91/JK=ALL"); 
$bsb_structure = json_decode($json,true);
//print_r($bsb_structure);
$bsb_catalogdetails = array();
$bsb_categories = array ();
$j = sizeof($bsb_structure);

foreach ($config as $paramId => $paramValues) {
	//print "ID: ".$paramId."
";
	$i=0;
	while ($i < $j){
		if ( $paramId >= $bsb_structure[$i]["min"] AND $paramId <= $bsb_structure[$i]["max"]) {
			$json = file_get_contents("http://192.168.177.91/JQ=".$paramId); 
			$bsb_categorie = json_decode($json,true); 
			foreach ($bsb_categorie as $id => $value){
				$value["category"]= $bsb_structure[$i]["name"];
				$bsb_categories[$id]=$value;
			}
			//print "struct $i
";
			$json = file_get_contents("http://192.168.177.91/JK=".$i); 
			$bsb_profile = json_decode($json,true);
			//print_r($bsb_profile);
			//print_r($bsb_profile[$paramId]["possibleValues"])."
";
			$bsb_categories[$paramId]["possibleValues"] =  $bsb_profile[$paramId]["possibleValues"];
			}	
	$i++;
	}
	// Zur auswertung wie viele Werte possibleValues hat.
	// Um daraus dann die Profile für dei Aktionsscripte zu erstellen. 
	//print "Anzahl ENUMs: ".sizeof($bsb_categories[$paramId]["possibleValues"])."
";
//print"#######################################################################
";
}
//print_r($bsb_catalogdetails);
print_r($bsb_categories);
?>

Hat hier schon irgendwer weiter gemacht? Sonst wäre das Thema bei mir demnächst dran.

Ich bin noch kein Stück weiter… :(:rolleyes:

Hallo Leute,

meine Schwagert hat eine Brötje Heizung und jetzt auch IPS ;).
Welche Hardware brauche ich damit ich die Werte in IPS sehen kann?

Gruß

Hallo sewo,

hängt ganz vom Model ab. Habe im Dezember 2018 eine neue Heizung von Brötje bekommen, da wurden optional drei Kommunikationsmodul angeboten. KNX, weiß ich nicht mehr und Modbus. Letzteres habe ich gekauft und habe auch schon ein Modul dazu (begonnen).

Joachim

Hallo Sewo
schau Dir dazu bitte den dritten Eintrag in diesem Thread genau an. Da sind Links zu den Grundlegenden Bausteinen und beschrieben wie du das IPS programieren musst.
Du brauchst einen Arduino Mega2560 mit Ethernetshield W5100 (ein Gehäuse und ein USB Netzteil sind noch angebracht)
und als Software auf dem Arduino das BSB-LAN Modul.
Damit Du die Software auf das Bord spielen kannst zudem noch die arduino Entwicklungsumgebung.
Die Software muss auch noch auf dein Netz abgestimmt werden, dh. Du musst die Configdatei anpassen! Dazu gibt es wie gesagt ein gut beschriebenes Handbuch. der link ist oben.
Dann hast Du erst mal nur für die Heizung bei Dir im Netzwerk ein WEB Interface gebaut! Dh. eine Seite auf der du die Heizung über deinen Browser abfragen kannst.
Dann musst Du noch das IPS programieren (Beispiel gibt es hier auch im Thread) das das IPS diesen „WebServer“ über die im Webserver integrierte JSON Schnittstelle abfragen kann.

Die Erfahrung zeigt das dieses Arduino System aber dazu neigt irgendwann auszusteigen. Dh gelegentliches Neustarten ist leider nötig.

Gruß
Joachim

Hallo Joachim,

was hast Du denn für ein Modell? Ich habe eine BLW NEO mit dem Kommunikationsmodell NEO-RKM und suche nach einer Anbindung über Modbus TCP.

Gruß
cypher0815

…meine heißt wohl „Brötje BBS EVO 15i“…

Brauchst Du noch andere Informationen zum Vergleich?

Joachim