LAN-Anbindung für BSB-Bus (Brötje, Elco Thision etc.)

Begonnen von justme1968, 29 November 2014, 19:50:40

Vorheriges Thema - Nächstes Thema

moarteen

Hi Gero,
a small, more generalistic question: for personal practical reasons I'm thinking of going to wifi. The library commands seem pretty similar. How straightforwardly can I modify your code for this? Is it as simple as doing the mods below?
Thanks,
Martin
ps: it's not worth spending too much time on this, you've already done wonders!
pps: would you trust an inherently flakier wifi connection compared to wired ethernet for this project?


#include <Ethernet.h>
->
#include <WiFi.h>


EthernetServer server(80);
EthernetClient client;
->
WiFiServer server(800;
WiFiClient client;

  Ethernet.begin(mac, ip);
  server.begin();
->
  WiFi.begin(mac, ip);
  server.begin();


client = server.available()
->
WiFiClient client = server.available();




in the setup loop, set up the wifi interface:

  // check for the presence of the shield:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present");
    // don't continue:
    while(true);
  }
 
  // attempt to connect to Wifi network:
  while ( status != WL_CONNECTED) {
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(ssid);
    // Connect to WPA/WPA2 network. Change this line if using open or WEP network:   
    status = WiFi.begin(ssid, pass);

    // wait 10 seconds for connection:
    delay(10000);
  }
  server.begin();
  // you're connected now, so print out the status:
  printWifiStatus();

moarteen

#241
Zitat von: numsi am 21 Januar 2016, 18:36:02
Der BSB Anschluss der Frontplatte/Bedienteil von oben nach unten:1 grau, 2 weiss, 3 braun, 4 gelb

Hi Numsi,
you really took the controller apart! :)
I don't know if this adds to your knowledge or not, but the service port on the front panel of your controller looks a lot like a Siemens ISR LMS14 and has BSB CL+ as pin 2 (starting from the top, green cable for me) and BSB CL- as pin 3 (next one down, green-white). I've used Gero's program to read values from the Broetje boiler with this controller using BSB.

Otherwise, I suspect that BSB CL+ and CL- pins are also present within the  X11 14 pinout segment on the top right of the board (see pict), in addition to the FB (Fernbedienung) ports (see pict). Seems like I should try using those since it's more elegant than hacking the front panel ;)

Cheers,
Martin

numsi

Hi   moarteen
My lmu is a WGB20C connected to the big SSR via LPB.
The front panel units are all the same even in your case with the new unit LMU14...something.

The colors i mentioned in my post were the colors of the original cable which runs from the frontpanel unit to the lmu.
Coming from the edge of the pcb of lmu or in my case ZR/SSR and runs to the frontpanel unit also to the edge of the pcb.
Sorry i wrote everything in german and yes you are right with your pining.
From top to bottom: grey, white, brown, yellow.
The green one from the short cable is connected but not used.
Only your connection at the front use a different color shown on your pic.

Maybe i should spend some more time at these pics to put some tags on for an overall view.

And yes CL+/- at front are the same as CL+/- at LMU/ZR/SSR/...
BusEM and BusBE are also the same and connected to CL+/- and FB as well.
The G+ is 12Vdc for backlight of the big room units.
Psst!
Brötchen=379Ahex, BigS=3092hex

gero

Zitat von: moarteen am 21 Januar 2016, 23:26:47
Hi Gero,
a small, more generalistic question: for personal practical reasons I'm thinking of going to wifi. The library commands seem pretty similar. How straightforwardly can I modify your code for this? Is it as simple as doing the mods below?
Thanks,
Martin
ps: it's not worth spending too much time on this, you've already done wonders!
pps: would you trust an inherently flakier wifi connection compared to wired ethernet for this project?

I never worked with a WiFi shield for arduino and do not know the library functions. You have to try it on your own, sorry.
If the wifi connection is reliable enough depends off what you are planning to do and how reliable the arduino wifi shield is working. But most of the problems with an unreliable connection can be handled in software.
Odroid C1 - CULV3-868, JeeLink
16 x TX 29 DTH
MAX!: 15x Heizkörperthermostat+, 2x Wandthermostat, 14x Fenserkontakt, 1x Ecotaster
FS20 S4A, FS20IRF, BSB-Heizungssteuerung über Atmega2560
Z-Wave: ZME_UZB1, Fibaro Wall Plug + Motion Sensor

moarteen

#244
Zitat von: numsi am 22 Januar 2016, 09:19:05
Sorry i wrote everything in german and yes you are right with your pining.
Na ja, es ist normal, auf eine Deutsche website, deutsch zu schreiben :) Es ist nur, dass mein Deutsch zu schwach ist, technisch zu reden. Vielen dank, dass Ihre alle Englisch auch koennen!

Jewe

Welche Spannung liegt an Pin 14 RX am Arduino an, wenn von der Heizung ein Signal kommt?

Ich messe 3,2 V wenn ich den Stecker ab stecke und 2,4 V wenn ich den Stecker an der Brötje einstecke.

Jens

Schotty

#246
Hi Jens,

ich habe den Gero-Adapter gerade erst fertig gebaut und ihn noch nicht an der Heizung gehabt, weiß also nicht, ob er auch wirklich funzt, daher unter Vorbehalt:
Mit Vin auf 5V (nach Geros Fotos) und einem 9V-Netzteil für den Arduino habe ich bei A14:Rx auf A15:Tx bzw. auch auf Gnd jeweils knappe 5V (4,95-4,96V) anliegen. Hilft Dir das irgendwie weiter..?

Gruß

EDIT: Habe gerade gesehen, dass Du am 08. Januar schon geschrieben hattest, dass bei Dir auch knapp 5V anliegen, also wohl wie bei mir. Sorry, dann war mein Posting wohl überflüssig. Bzw.: Wieso hast Du denn da dann jetzt nur 3,2V? Oder habe ich was falsch verstanden..?
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

Schotty

#247
Hallo allerseits,

ich hätte da auch noch Fragen:

1.) Ist es normal, dass sich der Arduino anscheinend aufhängt, wenn der Adapter noch nicht an der Therme hängt und ich trotzdem versuche, mir Unterkategorien anzeigen zu lassen? Also /K funktioniert, alles darüber hinaus scheint den Arduino zum Absturz zu bringen.

2.) Z.Zt. habe ich als CL+/CL--Leitung 0.75er Lautsprecherkabel (Litze) genommen. Weiß jemand, wie lang das Kabel dann so maximal sein darf? Bei irgendeiner Beschreibung hatte ich mal was bzgl. des LPB-Ports gelesen in Punkto Länge und Querschnitt, finde es nur nicht mehr wieder. Ich würde den Arduino nämlich gerne über dem Heizungskeller im WoZi haben, Kabel dann einfach durch ein altes Heizungsrohr runter zum Keller.

3.) Frage bzw. Bitte speziell @Gero: Wäre es möglich, dass Du Deinen FHEM-Code teilst? Z.Zt. lerne ich das HTTPMOD gerade erst mit einem DS18B20 und fühle mich noch meilenweit davon entfernt, die Heizungswerte abzurufen/zu loggen (geschweige denn Steuerungsbefehle zu senden).
Oder gibt es mittlerweile sogar ein FHEM-Modul dafür? Hast du EIN Device erstellt und dann mehrere Readings definiert für die jeweiligen Kategorien oder jeweils ein Device pro Kategorie?

4.) Da ich zumindest erstmal vorrangig das Taktverhalten monitoren würde und somit etliche Werte so oft wie möglich bräuchte (Brenner an, Kesseltemp., Brenner aus etc): Gibt es eine kritische Grenze bzgl. der Abfrageintervalle? Oder macht es der Steuerung nix aus, wenn ich alle paar Sekunden eine Anfrage schicken würde?

Fragen über Fragen.. ;)

Danke & Gruß
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

gero

Zitat von: Schotty am 30 Januar 2016, 17:30:05
1.) Ist es normal, dass sich der Arduino anscheinend aufhängt, wenn der Adapter noch nicht an der Therme hängt und ich trotzdem versuche, mir Unterkategorien anzeigen zu lassen? Also /K funktioniert, alles darüber hinaus scheint den Arduino zum Absturz zu bringen.
Normalerweise sollte das nicht passieren. Ich werde es sobald wie möglich nochmal testen.

Zitat von: Schotty am 30 Januar 2016, 17:30:05
2.) Z.Zt. habe ich als CL+/CL--Leitung 0.75er Lautsprecherkabel (Litze) genommen. Weiß jemand, wie lang das Kabel dann so maximal sein darf? Bei irgendeiner Beschreibung hatte ich mal was bzgl. des LPB-Ports gelesen in Punkto Länge und Querschnitt, finde es nur nicht mehr wieder. Ich würde den Arduino nämlich gerne über dem Heizungskeller im WoZi haben, Kabel dann einfach durch ein altes Heizungsrohr runter zum Keller.
In folgendem Dokument findest zu Einzelheiten zu den Kabellängen:
https://hit.sbt.siemens.com/HIT/DB/DE/de/Assets/17605.pdf
Ich habe anfangs ebenfalls ein 15m langes Lautsprecherkabel mit 0.75er Querschnitt verwendet -> keine Probleme.
Laut Dokument sollte alles unter 100m kein Problem sein.

Zitat von: Schotty am 30 Januar 2016, 17:30:05
3.) Frage bzw. Bitte speziell @Gero: Wäre es möglich, dass Du Deinen FHEM-Code teilst? Z.Zt. lerne ich das HTTPMOD gerade erst mit einem DS18B20 und fühle mich noch meilenweit davon entfernt, die Heizungswerte abzurufen/zu loggen (geschweige denn Steuerungsbefehle zu senden).
Oder gibt es mittlerweile sogar ein FHEM-Modul dafür? Hast du EIN Device erstellt und dann mehrere Readings definiert für die jeweiligen Kategorien oder jeweils ein Device pro Kategorie?
Ich verwende 4 verschiedene HTTPMOD Devices. Hier als Beispiel eines davon:

define ELCOSTATUS HTTPMOD http://192.168.178.89/8000/8003/8005/8300/8301/8730-8732/8820 180
attr ELCOSTATUS event-min-interval .*:1800
attr ELCOSTATUS event-on-change-reading .*
attr ELCOSTATUS reading0Name Status_HK1
attr ELCOSTATUS reading0Regex Status Heizkreis 1:[ \t]+([\d]+ [^<]*)
attr ELCOSTATUS reading1Name Status_TW
attr ELCOSTATUS reading1Regex Status Trinkwasser:[ \t]+([\d]+ [^<]*)
attr ELCOSTATUS reading2Name Status_Kessel
attr ELCOSTATUS reading2Regex Status Kessel:[ \t]+([\d]+ [^<]*)
attr ELCOSTATUS reading3Name Brennerstufe_1
attr ELCOSTATUS reading3Regex Brennerstufe T2:[ \t]+([\d]+)
attr ELCOSTATUS reading4Name Brennerstufe_2
attr ELCOSTATUS reading4Regex Brennerstufe T8:[ \t]+([\d]+)
attr ELCOSTATUS reading5Name Heizkreispumpe
attr ELCOSTATUS reading5Regex Heizkreispumpe Q2:[ \t]+([\d]+)
attr ELCOSTATUS reading6Name Trinkwasserpumpe
attr ELCOSTATUS reading6Regex Trinkwasserpumpe Q3:[ \t]+([\d]+)
attr ELCOSTATUS reading7Name HK_Mischer_Auf
attr ELCOSTATUS reading7Regex Heizkreismischer Auf Y1:[ \t]+([\d]+)
attr ELCOSTATUS reading8Name HK_Mischer_Zu
attr ELCOSTATUS reading8Regex Heizkreismischer Zu Y2:[ \t]+([\d]+)
attr ELCOSTATUS readingExpr $val=~s/[\r\n]//g;;$val
attr ELCOSTATUS room 2.00_Heizung
attr ELCOSTATUS timeout 30

Ich hoffe, dass hilft dir weiter.

Zitat von: Schotty am 30 Januar 2016, 17:30:05
4.) Da ich zumindest erstmal vorrangig das Taktverhalten monitoren würde und somit etliche Werte so oft wie möglich bräuchte (Brenner an, Kesseltemp., Brenner aus etc): Gibt es eine kritische Grenze bzgl. der Abfrageintervalle? Oder macht es der Steuerung nix aus, wenn ich alle paar Sekunden eine Anfrage schicken würde?
Ich habe irgendwo etwas von durchschnittlich 10 Telegrammen pro Sekunde gelesen. Das stellt aber mit Sicherheit noch nicht die Obergrenze dar. Du solltest im Hinterkopf behalten, dass du dir den Bus mit anderen Teilnehmern teilst und es nicht übertreiben. Die Frage ist, wie schnell deine Heizung taktet und wieviele Werte du wirklich brauchst.

Gruß,
Gero
Odroid C1 - CULV3-868, JeeLink
16 x TX 29 DTH
MAX!: 15x Heizkörperthermostat+, 2x Wandthermostat, 14x Fenserkontakt, 1x Ecotaster
FS20 S4A, FS20IRF, BSB-Heizungssteuerung über Atmega2560
Z-Wave: ZME_UZB1, Fibaro Wall Plug + Motion Sensor

Schotty

Hallo Gero!

Erstmal vielen Dank für Deine Antwort und vor allem für die super Infos! Damit hast Du mir sehr weiter geholfen!

Bis 15m Leitungslänge reicht bei mir locker aus, ich hatte befürchtet, das dürften eher nur so 3m oder so sein.

Was die Auslese-Frequenz betrifft, wären die kurzen Abfrage-Intervalle wirklich nur für den Brennerstatus etc. interessant. TWW, Außentemp etc. brauche ich natürlich nicht so häufig.
Gibt es eigtl. Probleme, wenn es zeitlich irgendwann mal zu Überschneidungen von den Anfragen kommen sollte? (Bspw. alle 10Sek Kesselkram, alle 30Min TWW o.ä.?)

Mit Bus-Teilnehmer meinst Du bspw. noch ein RGT? Ist z.Zt. nicht vorhanden, und kann ich mir dank Dir hoffentlich auch in Zukunft sparen, wenn ich es so wie Du hinbekomme, die Raumtemp per OneWire an die Therme zu schicken. Dazu hattest Du ja glaube ich bereits mal einen Codeschnipsel veröffentlicht, vielleicht steige ich da ja irgendwann auch mal durch..  ;)

Das HTTPMOD von Dir werde ich mir jetzt mal in Ruhe ansehen und mich bzgl. Logfiles und graphischer Darstellung weiter einlesen -  und mich dann hoffentlich auch bald mal trauen, den Adapter endlich anzuschließen..  ;)

Mir ist übrigens noch in deiner 'elco_overwiev.txt'-Datei etwas aufgefallen bzgl. der Programmnummern:
Du hast 500-506 als Zeitprogramm Heizkreis 1 Mo (500), Di (501) etc. bis So (506) definiert. Im entspr. ISR-Handbuch steht jedoch (wie dann bei dir nachfolgend ab HK2 auch richtig dargestellt) folgendes (alles für HK1 natürlich):

500 Vorwahl
501 1. Phase ein
502 1. Phase aus
503 2. Phase ein
504 2. Phase aus
505 3. Phase ein
506 3. Phase aus
516 Standardwerte

515, 535, 555 und 575 sind jeweils als 'Kopieren?' deklariert.

Keine Ahnung, ob das irgendwie 'wichtig' ist, wollte es dir nur kurz zur Info mitteilen.


Evtl. leicht OT: Ich hatte drei DS18B20 angeschlossen und als ein Device mit drei Readings per HTTPMOD ausgelesen, klappte irgendwann auch. Hin und wieder waren sie dann zwar mal verschwunden (einmal war es ein Kabelbruch dank spielfreudigem Kater, grrrr), aber soweit ging es. Einmal gaben sie mir jedoch alle als Wert -120°C an (jedoch nicht die falschen 85°C, von denen ich schonmal gelesen hatte) - hast Du dafür eine Erklärung? Bzw. was macht man denn, damit solche Falschwerte nachher beim Senden an die Therme keine große Berücksichtigung finden? Nur mal so interessehalber..
Momentan habe ich die drei als jeweils eigenes Device definiert (auch, da ich es letztlich mit der entsprechenden Darstellung nicht richtig hinbekommen hatte) und frage mit einigen Sekunden Verzögerung nacheinander ab, merkwürdigerweise fragt er dann allerdings öfter mal den gleichen ab und einen anderen wiederum einige Zeit gar nicht. Aber das verbuche ich erstmal unter Anfängerproblemen.


Also, nochmals herzlichen Dank und ein großes Kompliment für Deine Arbeit!!

Bis sicherlich bald mal wieder mit neuen Fragen  ::)

Gruß



Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

FunkOdyssey

Zitat von: gero am 01 Februar 2016, 10:59:41
In folgendem Dokument findest zu Einzelheiten zu den Kabellängen:
https://hit.sbt.siemens.com/HIT/DB/DE/de/Assets/17605.pdf

Wow, das Ding soll in meiner Brötje WBS 22E enthalten sein? Bzw. die Technik?
Kann man das irgendwie sicherstellen?

Schotty

Hi FunkOdyssey,

wenn ich mich nicht irre, sind die Siemens OCI-Geräte (600, 700 etc) Schnittstellengeräte ("Kommunikationseinheiten"), um deine Siemens-Heizungssteuerung mit einem Rechner verbinden zu können. Guck doch mal nach, welche Steuerung bei deiner WBS verbaut ist. Wenn du Glück hast und es eine Siemens ISR(-Plus) ist, dann findest du daran (hinten) evtl. einen sog. BSB-Anschluss (falls nur LPB, dann halte nach anderen CL-/CL+-gekennzeichneten Anschlüssen Ausschau), an den du dann den Gero-Adapter anschließen könntest. Etwas weiter vorne im Thread hat numsi auch etliches zu den verschiedenen Anschlüssen geschrieben.

Gruß
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

FunkOdyssey

#252
Danke, das hatte ich mir bereits durchgelesen. Ich hatte numsi auf der vorherigen Seite (http://forum.fhem.de/index.php/topic,29762.msg395806.html#msg395806) auch mal gefragt. Dort ist auch ein Screenshot enthalten.

Schotty

#253
Ah, ok..
Also laut BDA und diversen online-Anbieter-Produktbeschreibungen ist bei dir ja auch die ISR-Plus verbaut; Bus-EM-Stecker weiß ich leider nicht, aber der entsprechende Stecker für die FB-Anschlüsse auf deinem Foto ist ein sog. "Rast 5 - 3polig"-Stecker von Brötje: Art.-Nr. 627528 (Stecker Raumgerät RGT für ISR) müsste es sein (wobei du davon dann ja nur zwei Pole bräuchtest, einer ist laut numsi ja 12V für die Displaybeleuchtung des RGTs).
Falls der Stecker rechts oben auf deinem Bild bei QX2 nicht belegt ist, könnte evtl auch der passen, dann bräuchtest du keinen zu kaufen. Wenn frei, dann einfach mal abziehen und auf die 'Nasen' gucken bzw. testen ob er passt.
Gruß

EDIT: Habe gerade nochmal dein Foto angesehen, dort scheinen ja noch massenweise ungenutzte Stecker zu sein. Je nachdem, ob CL-/CL+ nebeneinander liegen bei den FB-Anschlüssen, würde evtl. auch einer der 2poligen aus der unteren Reihe passen (außer ATF, TWF und H6, die sind ja belegt). Oder einer der beiden 230V-Stecker, falls nicht beide belegt sind, oder eben der von QX1 oder QX2.

Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

FunkOdyssey

Jungs, ihr seid echt geil.
Eigentlich müsste es ja meine Aufgabe sein, meine eigene Anlage auf freie Stecker zu überprüfen. Aber ich bin nicht davon ausgegangen, dass die Rast-Stecker auf die FB-Anschlüsse passen. Ich war einfach zu vorsichtig mit meiner Therme bisher. :-)




Ich würde gerne mal eine Frage in die Runde stellen:
Ist jemand technisch in der Lage, den "Gero-Adapter" für mich zu erstellen? Natürlich würden die Unkosten erstatt werden. Ich mag zwar mit nem Lötkolben umgehen. Aber das Ergebnis ist meistens ne Katastrophe. Mit dem BSB-Adapter von Gero könnte ich mich übernehmen.

Wäre super, wenn mich jemand unterstützen könnte.