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

freetz

@Jewe: Ich weiß nicht, ob es das Gleiche ist, aber mir ist bei mir inzwischen auch etwas aufgefallen, was in die Richtung geht, aber das schlägt sich dann zumindest in den Logfiles nieder: Dort findet sich nämlich immer mal wieder die Zeile
THISION: Read callback: Error: http://192.168.1.50/S712=21: empty answer received

Wenn das mit dem Setzen der Raumtemperatur ein paar Mal hintereinander passiert, dann ist das Ergebnis, dass die Therme annimmt, dass keine Raumtemperatur übermittelt wird und schaltet dann auf AT-Führung um.
Weil ich im Browser aber auf den Aufruf der URL immer eine ordentliche Webseite angezeigt bekomme, habe ich mir das noch mal auf Kommandozeilenebene angesehen und die URL per wget aufgerufen.

Das Ergebnis war, dass relativ häufig erst mit einem (automatisch erfolgenden) wiederholten Aufruf die Webseite abgerufen werden konnte und ansonsten beim ersten Aufruf "empty response" (oder so ähnlich) als Rückmeldung erschien.
Als ich dann den SerMo habe mitlaufen lassen, wo eingehende URL-Anfragen ja ausgegeben werden, war zu erkennen, dass bei den "empty answer" Aufrufen nur 2-3 Leerzeilen auftauchen. Das heißt, dass die Anfrage bei BSB-LAN ankommt, auch als solche erkannt wird, aber entweder der HTTP-Header nicht korrekt ankommt oder nicht entsprechend verarbeitet wird. Manchmal klappt es aber auch beim ersten Anlauf, und so oder so ist es komisch, dass es dann spätestens immer beim zweiten Aufruf klappt.

Ob HTTPMOD bei einer "empty answer" einen Wiederholungsversuch unternimmt oder nicht, habe ich nicht herausfinden können. Zumindest gibt es keine Möglichkeit, das mit "attr" einzustellen (anders als bei einem timeout, den ich schon recht hoch gesetzt habe).

Das war zumindest bei mir der Grund, warum die Heizung immer mal wieder in letzter Zeit auf AT-Führung umgestellt hat, ohne, dass ich das so gesetzt hätte. Deine Logfiles scheinen dieses Problem allerdings nicht aufzuweisen (oder zumindest nicht in dem geposteten Teil), so dass ich nicht weiß, ob das auch bei Dir das gleiche Problem ist. So oder so muss ich mich da mal ransetzen und schauen, woher das kommt, weil mir das in älteren Versionen nicht aufgefallen ist...
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

Fox

Zitat von: freetz am 16 Januar 2020, 20:05:29
Das Ergebnis war, dass relativ häufig erst mit einem (automatisch erfolgenden) wiederholten Aufruf die Webseite abgerufen werden konnte und ansonsten beim ersten Aufruf "empty response" (oder so ähnlich) als Rückmeldung erschien.
Als ich dann den SerMo habe mitlaufen lassen, wo eingehende URL-Anfragen ja ausgegeben werden, war zu erkennen, dass bei den "empty answer" Aufrufen nur 2-3 Leerzeilen auftauchen.

Ich hab jetzt mal nebenbei versucht das im Code nach zu vollziehen, aber das war mir auf die schnelle nicht möglich. Der Code ist zum Querlesen doch etwas zu umfangreich ::)

Allerdings klingt die Beschreibung schon sehr nach einem Timing-Problem. Eventuell wird beim Empfang ein Puffer überschrieben, bevor er komplett ausgewertet ist, oder die Erstellung der Antwort wird durch einen Interrupt unterbrochen, so das hier Speicher überschrieben wird bevor die Daten versendet sind. Vielleicht könntest du dir parallel noch mal den Netzwerkverkehr angucken und / oder das Timing der Antworten, also ob sich die Antwortzeit im Fehlerfall nennenswert ändert.

Falls du das sowieso schon gemacht hast, dann ignorier einfach meinen Beitrag ;)

freetz

Danke für die Tipps, daran hatte ich noch nicht gedacht - das "Problem" ist nur, dass es sich nach erneutem Flashen nicht mehr reproduzieren lässt ;). Nun gehen alle Anfragen durch und im Log taucht die Fehlermeldung nicht mehr auf. Keine Ahnung, was das (positiv bzw. vorher negativ) beeinflusst haben könnte, aber @Jewe: vielleicht probierst Du mal die aktuellste Version auf GitHub aus und schaust, ob es damit immer noch Probleme gibt?
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

Fox

Eine Möglichkeit wäre ein Wechsel der Schnittstelle wenn du bei den vorherigen Versuchen noch mit der SoftSerial gearbeitet hast, da gibt es ja vermutlich längere Phasen mit deaktivierten Interrupts.
Wenn du bei den erneuten Versuchen aber jetzt mit der HW Serial arbeitest, dann fällt das weg. Oder die "Last" auf dem Netz ist jetzt geringer. Vielleicht solltest du einfach mehrere wget-Anfragen parallel laufen lassen.

freetz

Nein, es war in beiden Fällen HardwareSerial. Die Anfrage als solches kam auch an, nur nicht der HTTP-Header (also GET /...). Mehrere Anfragen gleichzeitig werden vermutlich in jedem Fall zu Problemen führen, der Arduino ist ja nur single tasking und dann wäre es eine Frage der timeouts. Hier war es aber ganz klar eine Frage eines Retrys und keine große Last, denn von FHEM kommt gerade mal einmal pro Minute eine Anfrage an BSB-LAN (die dann zwar diverse Parameter zur Abfrage enthält, aber das wird ja trotzdem nur über einen GET-Request abgewickelt).
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

Fox

Zitat von: freetz am 17 Januar 2020, 14:05:47
Nein, es war in beiden Fällen HardwareSerial. Die Anfrage als solches kam auch an, nur nicht der HTTP-Header (also GET /...). Mehrere Anfragen gleichzeitig werden vermutlich in jedem Fall zu Problemen führen, der Arduino ist ja nur single tasking und dann wäre es eine Frage der timeouts. Hier war es aber ganz klar eine Frage eines Retrys und keine große Last, denn von FHEM kommt gerade mal einmal pro Minute eine Anfrage an BSB-LAN (die dann zwar diverse Parameter zur Abfrage enthält, aber das wird ja trotzdem nur über einen GET-Request abgewickelt).

Ich meinte jetzt noch nicht mal zwingend fhem an BSB-LAN Anfragen, vielleicht sendet noch irgendein anderes Gerät (unsinnige) Anfragen an BSB-Lan, was dann vielleicht schon im Ethernet-Controller zu überschriebenen Puffern führt.

freetz

Wenn es http-Anfragen wären (und nur die nimmt BSB-LAN an), dann würde ich die ja auf dem SerMo sehen. Wenn ich mit wget die URL, die bei FHEM zu der "empty answer" Fehlermeldung führt, aufrufe, habe ich bis zum letzten Flashen gesehen, dass beim ersten Versuch auf dem SerMo nur eine leere Zeile ausgegeben wird, wohingegen dann beim (automatischen) zweiten Versuch der korrekte GET-Request protokolliert wird. Das war etwa bei 50% der hintereinander erfolgenden Aufrufe via wget reproduzierbar, jetzt nicht mehr. HTTPMOD macht anscheinend keine Retrys, so dass es dort eben zu dieser Fehlermeldung kam, die jetzt nicht mehr auftaucht.
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

freetz

Zitat von: Jewe am 16 Januar 2020, 17:44:06
habe das nun eine weile im Event-Monitor beobachtet. Dort sehe ich keine Unregelmässigkeiten. Die Temperatur ist nie auf 0 oder so.
Die Temperatur wird dann an das HTTPMOD Modul übertragen. Mir scheint es so, als ob es dann dort aus irgendwelchen, mir nicht erklärlichen Gründen verschwindet.

Also ich habe jetzt im Log bei jedem Temperatur-Setzen auch eine Antwort von BSB-LAN in den Logs gefunden, die sieht soweit auch in Ordnung aus, also keine Fehlermeldung oder so. Bei INF-Parametern wird ja aber kein dazugehöriger Parameter gleich wieder abgefragt, was bei 10000 ja auch sowieso nicht geht, weil der eben nur write-only ist. Was Du machen könntet, wäre ein Abruf des Parameters 8740 (falls es den bei Dir gibt), denn da ist die zuletzt übermittelte Raumtemperatur gespeichert. Dann würde man besser sehen, wann/wie oft/wodurch die Temperatur auf 0 geht (wobei auch ein Unterschied zwischen 0 und "---" relevant wäre).
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

miwi


carbonara

#4329
Hallo Leute,
ich habe mal eben die BSB-LAN Version vom 17.1.2020 getestet und stelle fest, das der Parameter 6020 einen falschen Wert (Rücklaufregler) zurück gibt.
Die Steuerung gibt den korrekten Wert (Heizkreis 2) zurück. Meine Heizung ist eine MHG ProCon E 25 vom Juli 2019 mit einer Erweiterung für FBHZ (HK2) und einer QAA55 (Raumtermostat) im Wohnzimmer am HK2.
Um die Parameter und ihre Werte der Steuerung auf der einen Seite und dem LAN-Adapter auf der anderen zu vergleichen, habe ich kleine Videos gedreht. Evtl ist das für die Entwickler ja interessant. Die Videos kann man hier anschauen: https://www.magentacloud.de/share/inh.4e-jl9#$/, das Passwort ist "bsb-lan".

In der Datei "Parameter" kann man Parameter (orange Spalten) finden, die ich an der manuellen Steuerung auslesen kann, die aber vom LAN-Adapter nicht erfasst werden.
Die Datei ist noch nicht vollständig!!!

viele Grüße Markus

PS: falls meine Erfahungen hier schon behandelt wurden, bitte nicht böse sein. Mir leistet der Adapter sehr gute Dienste um meine Heizung zu "verstehen" :)
BSB-LAN: Arduino DUE , Volkszähler, Synology DS920+

freetz

@miwi: Ich antworte auf Deine PN mal hier, damit auch die anderen Bescheid wissen und sich nicht nur über das kommentarlose Bild wundern (inhaltliche Diskussionen per PN weiterzuführen macht in meinen Augen keinen Sinn): Deinen Vorschlag, für die Erweiterung des Systems auf den ESP zu setzen, haben Ulf und ich im Vorfeld schon intensiv diskutiert. Ich kenne den ESP aus meinem "Robotan"-Projekt recht gut, aber die Tatsache, dass auf ihm ja auch ein kleines "Betriebssystem" läuft, an das man regelmäßig die Kontrolle zurück geben muss und man durch die damit zusammenhängenden Netzwerk-"Wartungsarbeiten" meiner Erfahrung nach immer mal mit kleinen Ausführungs-Aussetzern rechnen muss, ist es insbesondere für PPS nicht geeignet, da hier eine Verzögerung von mehr als einer halben Sekunde im falschen Moment für die Heizung nach einem Abbruch der Verbindung aussieht. Prinzipiell würde das neue Design auch am ESP funktionieren, aber sie hätte darüber hinaus nicht den Charme, dass wie jetzt geplant der Formfaktor erhalten bliebe und somit Gehäuse, Shields etc. weiter verwendet werden können. Aus diesem Grund haben wir uns für den Due entschieden, dessen einziger Nachteil (das fehlende EEPROM) sich für 30 Cent auf der neuen Platine nachrüsten lassen wird.
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

freetz

@carbonara: Danke für die ausführliche Rückmeldung zu Deiner Heizung! Das, was Du beschreibst, wären auf jeden Fall wichtige Infos, die wir für BSB-LAN bräuchten, um Deine Heizung korrekt abbilend zu können, allerdings werde ich weder aus den Videos noch aus der Tabelle schlau, was jetzt genau nicht passt, bzw. wie es geändert werden müsste.

Damit für beide Seiten die Arbeit so gering wie möglich ausfällt, gibt es im Handbuch ein eigenes Kapitel dafür:
https://1coderookie.github.io/BSB-LPB-LAN/kap10.html#101-ausf%C3%BChrliche-beschreibung-des-auslesens-neuer-telegramme-f%C3%BCr-einsteiger

Wenn Du uns die darauf aufbauenden Informationen schicken könntest, können wir die für Deine Heizung fehlenden bzw. fehlerhaften Parameter schnell nachtragen. Wenn User ihren eigenen Weg gehen, klappt das am Ende vielleicht auch, aber wir müssen uns dann in deren System eindenken und dann doch wieder rückfragen, wenn wichtige Infos fehlen. Falls Du das also noch einmal so rückmelden könntest, wie dort beschrieben, wäre das sehr hilfreich!
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

miwi

Zitat von: freetz am 18 Januar 2020, 23:21:57
@miwi: Ich antworte auf Deine PN mal hier, damit auch die anderen Bescheid wissen und sich nicht nur über das kommentarlose Bild wundern (inhaltliche Diskussionen per PN weiterzuführen macht in meinen Augen keinen Sinn):
Es ist nett, dass Du mir ausfuehrlich hier antwortest.  Eigentlich wollte ich Dir dieses neue Thema unterbreiten, ohne dass alle anderen sich ueber ungelegte Eier auch Gedanken machen muessen. Deshalb bin ich anderer Meinung, es kann doch sinnvoll sein, per PN miteinander zu reden.  Nur erlaubt die PN-Funktion anscheinend nicht, Anhaenge wie z. B. ein Bild mitzuschicken. 

Scherheinz

Die Gedanken über den ESP gabs doch schon mal hier, bin jetzt aber ehrlich gesagt zu faul zum Suchen... Der Due hat mich aber auch schon immer interessiert aber der Preis schreckt schon etwas ab. Mal sehen welche Richtung das Ganze geht...

Zum Abwechslung hätte ich aber auch mal wieder ein Problem. Wenn ich ein Update von FHEM mache wird danach die Aussentemperatur nicht mehr eingelesen. Es ist egal ob ich Parameter 7730 oder 8700 auswähle, es werden alle Temperaturen sauber eingelesen bis auf die Aussentemperatur.. Spiele ich eine ältere Version auf funktioniert es wieder. Hat jemand von euch eine Idee dazu?

Gruß


freetz

@miwi: Bei solchen Richtungsentsxheidungen finde ich es durchaus sinnvoll, die Expertise von anderen, die auch oder mehr Ahnung haben, mit einzubeziehen, und am Anfang ist ja jede Idee ein ungelegtes Ei...

@Scherheinz: Kannst Du sagen, welche Version (nicht mehr) funktioniert? Das Einzige, was mir auf die Schnelle einfällt, ist, dass ich die Bezeichnung irgendwann mir "ß" geschrieben habe, aber warum das beim Neustart ein Problem ist, weiß ich nicht, meldet das FHEM Log etwas dazu?

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