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

Schotty

#5535
Zitat von: Schotty am 25 März 2021, 13:08:53
kann aber sein, dass ich hier und da noch einen internen Link übersehen habe (in dem Fall wie immer gerne melden ;) )..
..bspw sämtliche Links im FAQ-Kapitel auf die anderen Kapitel, wie ich gerade erst bemerkt habe  ::)
EDIT: Jetzt sollte es passen..

@Luposoft: Falls du das Mega-Setup und eine alte Version von BSB-LAN nutzt und nicht auf die aktuelle Version updaten kannst, dann kannst du den Link des Buttons bei deiner Version in der Datei LANG_DE ändern (falls du das meintest). Einfach im Editor öffnen, nach "1coderookie" suchen und dann den entspr Link vom alten Kap 8 aufs neue Unterkapitel setzen: https://1coderookie.github.io/BSB-LPB-LAN/kap05.html#51-url-befehle
Danach natürlich speichern und die Version nochmal neu flashen ;)
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

Lucasm.00

Hallo,

Ich habe mir ein Setup bestellt für meine Brötje Therme.

Unzwar ein Originalen Arduino Due mit einen Wemos D1 Mini und den BSB Lan Adapter 4.1

Nun habe ich alles Programiert und Verlötet.

Der BSB Lan Adapter zeigt mit verbundener Therme die Kesseltemperatur an.

Der Wemos D1 Mini verbindet sich mit meinen WLAN ABER nun folgendes Problem, er verbindet sich nur mit dem WLAN wenn ich den BSB Adapter abziehe.

Wenn dieser Oben ist kommt nur die Meldung "Connection to YOURWLANNAME.... ... ... failed"

Ziehe ich den Adapter ab verbindet er sich Problemlos "Connection to MyWlan" danach "IP Adrese : 192.168.178
21"

Hat jemand irgendein Plan was das sein Könnte?

Der BSB Adapter ist mit RX1, TX1, SDA, SCL, 53 und GND verbunden.

Der Wemos D1 Mini : MISO, SCK, VCC 5V, GND, MOSI und Pin 12 (SS).

Dankeschön

freetz

Erst einmal die Bitte grundsätzlich das komplette SerMo-Log (bis zum Auftreten des Fehlers) als Textdatei zu schicken. Gestern hast Du mir die Logs als unvollständige und nicht gut lesbare Screenshots geschickt, und jetzt sind es Meldungen, die es so gar nicht gibt (für den Laien mag "Connection to YOURWLANNAME" und "Attempting to connect to WPA SSID:" das Gleiche sein, aber wenn ich danach im Code suche und nichts finde, ist das ärgerlich und ich muss dann raten).

Trotzdem glaube ich jetzt zu wissen, wo Dein Problem liegt: Du hast BSB-LAN das erste Mal mit aufgesteckter BSB-LAN Platine gestartet, aber da noch nicht die WiFi-Zugangsdaten eingetragen. Dann übernimmt BSB-LAN die Einstellungen aus der _config.h und schreibt sie in die Konfiguration auf dem EEPROM, das auch auf der Platine untergebracht ist.

In der Zwischenzeit hast Du vermutlich die WLAN-Zugangsdaten eingetragen. Wenn Du die BSB-LAN-Platine abziehst, kann BSB-LAN natürlich nichts vom EEPROM auf der Platine laden und nimmt dann die Einträge aus der _config.h, wo nun ja die richtigen Daten stehen, weswegen die Verbindung klappt.

Du musst also die falschen Werte im EEPROM überschreiben. Das geht in Deinem Fall vermutlich am einfachsten, wenn Du die korrekten WLAN-Werte in die _config.h einträgst, dort die Variable UseEEPROM auf 0 setzt und dann neu flashst. Dann kannst Du in der Web-Config die nun korrekten Werte auch ins EEPROM schreiben und anschließend noch einmal neu flashen, nun mit UseEEPROM wieder auf 1. Dann sollte alles klappen.

@Schotty: Wäre vielleicht gut, wenn wir diese Kurzanleitung bei einer falsch geflashten Konfiguration mit ins Handbuch aufnehmen würden, was meinst Du? Ich dachte ja ursprünglich, dass sowas i.d.R. nicht auftauchen sollte, aber man lernt nie aus ;)...
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/BSB-LAN

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

Lucasm.00

Vielen Lieben dank, hat alles funktioniert!

Läuft nun mit meiner Brötje WMC 20/33

freetz

Fein. Schickst Du uns dann bitte noch die Ausgabe von "Prüfe auf neue Parameter"? Danke.
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/BSB-LAN

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

Lucasm.00


Pat

Hallo zusammen,
ich habe erfolgreich die neue BSB lan Adapter Platine in Betrieb genommen und auch schon einige Scripte über meine homematic CCU3 am laufen, um verschiedene Parameter auszulesen. zum Beispiele Aussentemp, Status, Temp von WW usw. Allerdings habe ich das Gefühl, dass die verschieden Sripte, die auch alle unterschiedlich ausgelöst werden manchmal den BSB-lan Adapter blockieren und dann auch meine homematic. Andere Programme werden dann in diesem Moment nicht ausgeführt und blockieren die CCU3.
Nun meine Frage, ob dieses bekannt ist?
Ausserdem wäre es m.E. schön, wenn es ein Beispielscript geben würde, wo ich alle benötigten Parameter auslesen kann (editierbar) und auch zur Heizung schicken kann, um damit eine Innentemperatur geführte Regelung zu realisieren.
Bitte seid gnädig mit mir, falls diese Fragen schon alle gestellt und beantwortet wurden, aber es ist mir auch mit der Suchfunktion nicht möglich diese Antworten zu finden bei 370 Seiten. Ausserdem bin ich noch Anfänger, was Sripte und ähnliches angeht.

freetz

Der Arduino (und in unserem Anwendungsfall auch der ESP32) ist ein Single-Tasking-System, das nicht, wie ein Webserver, mehrere Anfragen gleichzeitig bearbeiten kann. Wenn ein externes Programm eine Liste von 20 Parametern abruft, dann ist der Arduino bzw. BSB-LAN damit ca. 20 Sekunden lang beschäftigt und kann keine andere Aufgabe währenddessen ausführen. Wenn das externe Programm dann gleichzeitig mehrere Anfragen gleichzeitig losschickt und der Timeout dort zu gering eingestellt ist (also z.B. 5 Sekunden), dann brechen die aufgestauten Anfragen nach dem Timeout ab.
Abhilfe schafft hier (wenn möglich) entweder alle Anfragen in einem Aufruf zu bündeln (also anstatt 3 x 10 Parameter einmal 30 Parameter abfragen), oder die einzelnen Abfragen zu einem unterschiedlichen Zeitpunkt zu starten. Also z.B. Abfrage 1 immer zur Minute 1, Abfrage 2 zur Minute 2 und Abfrage 3 dann zur Minute 3. Wenn alle mit einem 5-Minuten-Intervall abfragen, kommen sie sich nicht in die Quere.

Was Du mit dem Beispielscript und den auszulesenden Parametern meinst, verstehe ich nicht. Meine Ideen zur innengeführten Soll/Ist-Berechnung findest Du hier:
https://forum.fhem.de/index.php/topic,60900.msg522932.html
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/BSB-LAN

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

Pat

Hallo freetz, vielen Dank für deine schnelle Antwort.
Ja, das der Arduino nur eine Abfrage zur Zeit ausführen kann wusste ich. Das Problem ist aber eher, dass auch meine CCU3 das Sript erst vollstänig abarbeitet, bevor ein neues Programm in der CCU3 abgearbeitet werden kann. Die CU wartet sozusagen darauf, dass das Script fertig ist und startet erst dann das nächste interne homematic-Programm (was gar nichts mit der Heizungssteuerung zu hat). Deshalb meine Frage, ob das bekannt ist und ob man dieses vermeiden kann. Aber das ist eher ein homematic-Problem und hat hier nichts zu suchen.
Das mit den Beispielscripten hatte ich erwähnt, da ich selbst nicht in der Lage bin Scripte zu schreiben würde ich sie einfach nur für meine Aufgaben anpassen wollen. Ich benötige aber dafür Scripte für homematic. Es gibt einige Sripte, die im Handbuch für BSB-lan erwähnt wurden, aber ich bin mir nicht sicher, ob ich die so eins zu eins übernehmen kann. Gibt es soetwas wie eine Scriptsammlung für homematic mit BSB-lan?

freetz

Da ich selber keine HomeMatic habe, kann ich selber dazu nichts sagen, bzw. Dir Scripte empfehlen. Vielleicht hat einer der anderen User hier eine am Laufen?
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/BSB-LAN

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

sust

Moin,

Da wir heute wieder einen  Zeit-Tag hatten, bin ich auch daran erinnert worden, das im Web Menue Kapitel K0 nur die Heizungsparameter 5 und 6  (Sommerzeit) komplett funktionieren.
Die Datum und Zeit Parameter funktionieren nicht über das Webinterface.
Der Heizungsparameter 0 allerdings als HTTP Befehl über einen Webbrowser oder übers LAN.

Als ich vor einigen Tagen die 2.88 Software auf einem ESP32 getestet hatte, wurden  die kompletten Datum und Zeit Daten im Set Kästchen des Heizungsparameter 0 dargestellt. Das war bis dahin immer nur das Datum gewesen.
Der Set-Button hatte aber leider auch da keine Funktion.

Ist dazu was in näherer Zukunft was geplant? Das würde ich sehr begrüßen
Wenn die Heizungsparameter 1, 2 und 3 zusätzlich funktionieren würden wär das noch besser...

Ich verwende gerne das Webinterface auf einem Laptop als Bediengerät für die Heizung. Und dafür hätten diesen Funktionen schon einen Mehrwert.
Wenn das Webinterface wahrscheinlich wohl nicht von allzu vielen genutzt wird, ist es nun aber mal da, und jede Funktionserweiterung ein Mehrwert. Zumindest für einige.

freetz

Stimmt, da war noch was ;). Habe ich jetzt gefixt, das JavaScript formt den Eintrag nun so um, dass er dem URL-Befehl entspricht, so dass man die Uhrzeit direkt über das Webinterface setzen kann.

Woher die Parameter 1, 2 und 3 kommen, kann ich nicht sagen, denn sie haben die gleiche CommandID wie die komplette Uhrzeit. Möglicherweise zeigen einzelne Thermen diese so an und formen dann zusammen mit den anderen Datums- und Zeitkomponenten das komplette Zeit-Telegramm. BSB-LAN kann von daher nicht ohne weiteres nur das Datum ändern, weil gleichzeitig auch die Zeit mit gesetzt werden müsste. Wenn ich aber nun die Seite aufmache und erst nach einer Minute das Datum ändere und dann den Befehl absetze, würde die dann veraltete Uhrzeit übernommen und mitgeschickt. Das würde also über kurz oder lang zu einer ungenauen Uhrzeit führen. Der Aufwand, die Uhrzeit im Browser mitzählen zu lassen, wäre dann doch zu groß und auch nicht komplett fehlerfrei möglich (ich öffne die Seite z.B. auf dem Laptop, klappe den dann aber zu, weil gerade jemand an der Tür klingelt, so dass er in den Schlafmous geht, und der JavaScript-Code zum aktualisieren der Zeit läuft dann auch nicht weiter).

Von daher wäre die Überlegung, ob man die Parameter 1, 2 und 3 dann besser ganz rausnimmt. Sinnvoll wäre das gleich zu Beginn gewesen, dann hätte man Parameter 1 mit der kompletten Uhrzeit eingestellt und hätte damit halbwegs eine Parallele zum Parameter an der Heizung. Parameter 0 ist ja einer der virtuellen Parameter, wenn mich nicht alles täuscht, der aber jetzt von vielen schon verwendet wird, so dass eine Verschiebung von 0 auf 1 auch nicht so gut wäre (wobei wir ja momentan schon noch in der Phase der "breaking changes" sind). Müssen wir mal überlegen...
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/BSB-LAN

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

sust

Moin freetz,

Das du den 0er per Set nutzbar gemacht hast ist toll.
Nur muss ich dann mal sehen wie ich das meiner geliebten V0.44 beibring.
Aber trotzdem danke, das du so schnell reagiert hast.

Deine Anmerkungen zu den Parametern 1,2 und 3 stimmen aber nach meinen praktischen Recherchen nicht.
Das kann jeder  mit einer klitzekleinen Änderung im Code selbst checken.
Tauscht mal den Heizungsparameter 2 in der defs.h durch diesen hier aus:
{0x053D000B, CAT_DATUMZEIT,  VT_SUMMERPERIOD,  2, STR2,  0,   NULL,  DEFAULT_FLAG, DEV_ALL}, // [tt:MM ] - Uhrzeit und Datum - Tag/Monat


danach neu flashen.
Und dann funktioniert der Set für Heizungsparameter 2.

Bei allen Versuchen hab ich keine Änderung außer beim Kalendertag und Monat gesehen.
Ich hab den so auch in meiner Defs.h eingebaut, gerade wieder probiert(V0.44) und wieder wurde das Datum, nicht aber der Rest incl. Sekunden verändert.
Es fehlt natürlich nochwas: der verwendete case VT_SUMMERPERIOD ändert nicht den Wochentag.
Das zu ändern bedarf schon etwas mehr.
Soll heißen: Meine Programmierkenntnisse reichen dafür nicht... Ich kann nur den 1. Ansatz überblicken.
Ich würd aber sagen: da geht doch was.....


freetz

Also die Änderung kriegst Du problemlos in deine 0.44, weil Du nur die html_strings.h austauschen musst.

Das mit den Parametern 1 bis 3 ist interessant, und ich erinnere mich dunkel, dass das schon mal diskutiert wurde. Ich schaue mir das mal an, man muss dafür dann neue Datentypen schaffen, denn bisher haben wir zwar an der einen oder anderen Stelle, aber nicht so, wie hier in einem Kombi-Telegramm.

Was meinst Du mit "Wochentag"? Sowas wie "Mo" bis "So" wird doch nur bei PPS-Systemen geführt, bei BSB/LPB rechnet die Therme das ja intern automatisch um. Oder welchen Parameter meinst Du?
Alle Infos zur Anbindung von Heizungssystemen mit PPS-, LPB- bzw. BSB-Bus ans LAN gibt es hier:
https://github.com/fredlcore/BSB-LAN

Alle Infos zum WLAN-Interface "Robotan" für Ambrogio/Stiga/Wolf und baugleiche Rasenmähroboter:
https://github.com/fredlcore/robotan

sust

Hinsichtlich Wochentag hab ich mich an dem, was ich im source code der BSB_lan.ino gefunden hab, orientiert.
Da steht im case VT_DATETIME die Softwareparameterfolge 'param[0] bis param[8]'
Der parameter 4 lautet:'param[4]=dayofweek(d,m,y);'
Das hab ich als Funktion interpretiert die aus dem Wert für Tag, Monat und Jahr den Wochentag berechnet, und mit dem Telegramm zur Therme schickt.
Das ist allerdings ein Zahlenwert: Montag = 1, Sonntag  =7. Bei diesem mit Y06 ausgelesenem 0 er steht der Zahlenwert für Montag an 7 letzter Stelle im Antworttelegramm. 
0 Uhrzeit und Datum - Datum/Zeit: 29.03.2021 18:20:54
DC C2 0A 0B 06 05 05 00 0B 99 C5
DC 8A 42 14 07 05 05 00 0B 00 79 03 1D 01 12 14 36 01 7C 90

Versuche ich den Wochentag zu verbiegen und ändere ihn auf "Dienstag" und sende das gesamte Telegramm zur Therme, dann konnte ich den "Dienstag den 29.03.2021" in den meisten Fällen so abfragen, der wird aber "durch irgend jemanden" mit der Zeit korrigiert. Auf richtig "Montag der 29.03.2021"
Die schnellste Methode die Korrektur des Wochentags ist der Resetknopf. Danach war meine Falscheingabe immer sofort  zum Richtigen  korrigiert worden. Hab  aus der sofortigen Wirkung des Restknopfes angenommen, das BSB_ Lan das korrigiert. Ist dafür ein Abgleich der Heizungsdaten mit der  TimeLib verantwortlich? Oder macht das doch die Therme?
Wenn du die unsichere Berechnung automatisch durch die Therme/BSB_Lan und meine Behauptung das Flag "16" nur den Tag und den Monatswert verarbeiten lässt,nachvollziehen kannst, dann stehen wir noch vor diesem Problem: ein neuer case "Tag_Monat" kann zwar korrekt für alle 3 neuen Werte (Tag Monat und Wochentag) programmiert werden uns fehlt aber noch das richtige Flag um es der Therme übermitteln zu können.  Noch ist das unbekannt.
Durch "ausprobieren" könnte man da aber höchtswahrscheinlich was finden.
--Und da könnte jeder User helfen. --
Was meinst du mit neuem Datentyp? ist das was ich als 'case' bezeichnet habe?
case's für Jahr und Tag/Monat hab ich versucht zu "copy und pasten". Könnt ich dir zur Sichtung , Korrektur und Verbessereung überlassen.

Die html_strings.h werd ich dann mal austauschen. Danke für den Hinweis.