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

Mir ist aber beim Testen deiner ca. 80 Parameter-Abfrage als URL-Befehl (nicht via MQTT, nutze ich nicht) gerade aufgefallen, dass ab einem gewissen Parameter / einer gewissen Anzahl (50, wenn ich mich nicht verzählt habe) anscheinend irgendwie 'abgebrochen' wird:
URL war:

url/700/710/712/720/6705/6710/6740/6741/6743/6745/6800/6801/6805/6806/6810/6811/6815/6816/6820/6821/6825/6826/6830/6831/6835/6836/6840/6841/6845/6846/6850/6851/6855/6856/6860/6861/6865/6866/6870/6871/6875/6876/6880/6881/6885/6886/6890/6891/6895/6896/8000/8003/8005/8009/8300/8301/8304/8308/8310/8312/8314/8311/8315/8323/8324/8326/8700/8703/8704/8740/8741/8742/8744/8830/8831/8950/8951

Anfrage laut SerMo:

16:33:51.571 -> GET /700/710/712/720/6705/6710/6740/6741/6743/6745/6800/6801/6805/6806/6810/6811/6815/6816/6820/6821/6825/6826/6830/6831/6835/6836/6840/6841/6845/6846/6850/6851/6855/6856/6860/6861/6865/6866/6870/6871/6875/6876/6880/6881/6885/6886/6890/6891/6895/6896/80
16:33:51.604 -> /700/710/712/720/6705/6710/6740/6741/6743/6745/6800/6801/6805/6806/6810/6811/6815/6816/6820/6821/6825/6826/6830/6831/6835/6836/6840/6841/6845/6846/6850/6851/6855/6856/6860/6861/6865/6866/6870/6871/6875/6876/6880/6881/6885/6886/6890/6891/6895/6896/8⸮
16:33:51.604 -> URL: 700/710/712/720/6705/6710/6740/6741/6743/6745/6800/6801/6805/6806/6810/6811/6815/6816/6820/6821/6825/6826/6830/6831/6835/6836/6840/6841/6845/6846/6850/6851/6855/6856/6860/6861/6865/6866/6870/6871/6875/6876/6880/6881/6885/6886/6890/6891/6895/6896/8⸮

Entferne ich vorne etliche Parameter, also verringere ich die Anzahl der abzufragenden Parameter, dann läuft er zwischen 6896 und 8000 problemlos weiter durch.

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: Schotty am 17 November 2020, 16:48:10
Belasse es bei dem default-Wert 0x42, das ist LAN im SerMo. Es sind keinerlei Funktionseinschränkungen bekannt, die bei einem als RGT2 definierten Adapter aufgrund der HK-Zuordnung u.U. geben kann.
Wenn es trotzdem RGT2 sein soll, dann bitte 0x07, auch wenn es mit 7 augenscheinlich zu funktionieren scheint..

Nur wenn BSB als RGT2 eingebunden wird, kann ich darüber ein Raumgerät simulieren. Ich übermittel regelmäßig eine gewichtete Innenraumtemperatur und sehe dann direkt, dass die Therme nun weiß, dass sie nicht mehr produzieren muss. Als RGT mit 6 ging das bei mir nicht.

Schotty

6 bzw 0x06 ist RGT1.
Solltest du also einen HK2 damit beeinflussen wollen, dann ging es bis v0.42 nur mit 0x07, also RGT2, ja (weil RGT1 in dem Fall den HK1 'bedient').
Ob ein HK2 auch mit dem Standard 0x42 = Geräteadresse 66 = LAN funktioniert, kann ich mangels HK2 leider nicht sagen. Wäre aber nett, wenn du das explizit nochmal testen könntest, dann kommt das als Hinweis noch mit ins Handbuch.
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: Schotty am 17 November 2020, 17:01:48
6 bzw 0x06 ist RGT1.
Solltest du also einen HK2 damit beeinflussen wollen, dann ging es bis v0.42 nur mit 0x07, also RGT2, ja (weil RGT1 in dem Fall den HK1 'bedient').
Ob ein HK2 auch mit dem Standard 0x42 = Geräteadresse 66 = LAN funktioniert, kann ich mangels HK2 leider nicht sagen. Wäre aber nett, wenn du das explizit nochmal testen könntest, dann kommt das als Hinweis noch mit ins Handbuch.

Habe ich mir notiert und ich werden das mal überprüfen.

Schotty

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

FunkOdyssey

Das ist mir doch bekannt. Wenigstens jetzt wieder. :-) Deswegen habe ich ja auch immer 7 für RGT2 genutzt.

Ich habe doch auch nur gefragt, ob ich den Wert 7 anstatt 0x07 schreiben darf? Die Wertigkeit ist ja identisch. Egal ob dezimal oder hexadezimal.
Ich werde natürlich nun die hexadezimale Schreibweise nutzen.
Ich frage nur so vorsichtig, weil ich natürlich nun jeden individuellen Konfigurationsparameter auf die Goldwaage legen. Also alle Abweichungen vom Default.

Schotty

Ist doch auch gut so, war ja nicht böse gemeint oder so. Nur wenn, dann bitte eben auch die 0x07 verwenden (auch wenn es mit einer bloßen 7 augenscheinlich bei mir eben funktioniert hat und der Adapter als RGT2 erkannt wurde). Ob das aber andere Auswirkungen hat/haben kann, weiß ich nicht.
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

FunkOdyssey

#4927
@Freetz:

Könntest du mir bitte die Syntax für den avrdude-Befehl für den Arduino Due nennen?
Ich versuche gerade von der Synology mit folgenden Befehl zu flashen, aber das klappt nicht.

avrdude -c cwiring -P/dev/ttyACM0 -b 19200 -p m16u2 -vvv -Uflash:w:BSB_lan.ino.arduino_due_x.bin:i

Bei dem Mega klappte es wie folgt:

avrdude -v -V  -patmega2560 -cwiring -P/dev/ttyUSB0 -b115200 -D -Uflash:w:BSB_lan.mega.bin:i

Danke.




Nachtrag 17.11.2020 22:43:27 Uhr

Ich habe nun herausgefunden, dass man es scheinbar mit bossac flashen muss. Das wird bei meiner Synology nun vermutlich schwierig. Marvell CPU.

Bei der Recherche, wie man bossac auf einer Syno installieren kann, bin ich über bekannte Namen gestolpert: https://arduino.stackexchange.com/questions/72699/how-to-access-native-usb-port-of-arduino-due-on-synology-nas

Du hast es also scheinbar geschafft. Kannst du sagen, wie du das gemacht hast? Danke.




Nachtrag 18.11.2020

Ich habe es mit der Synology aufgegeben und einen Linux-Rechner vorübergehend im Heizungsraum montiert. Innerhalb einer echten Debian-Umgebung ist alles viel einfacher. :-)

Ich teste aktuell.

Bauerranger

Morgen,

@Schotty

Vielen Dank fürs schnelle antworten. Also die schreib rechte sind bei der BSB Lan config aktiviert ( funktioniert ja übers web interface).
Dann werd ich mal den Ansatz nachgehen mit den Rules.

freetz

Sorry für die späte Rückmeldung, ich komme hier gerade nur begrenzt hinterher, weil ich erst einmal die Issues in GitHub versuche abzuarbeiten. Daher auch jetzt nur kurz:

- ob man nun 0x07 oder nur 7 schreibt, ist gleichgültig, es ist und bleibt eine ((hexa-)dezimale) 7. Wer mag, kann es auch binärt als 0b00000111 schreiben ;).

- Die gewichtete Raumtemperatur sende ich seit längerer Zeit von der ID 0x42 (dezimal 66) aus, allerdings steuere ich damit auch nur einen HK (HK 1). Zu HK2 weiß ich auch nur noch aus dem Kopf das, was im Handbuch steht.

- Auch wenn wir bei dem Due jetzt mehr Speicher haben, heißt das nicht, dass wir die Variablengrößen jetzt ins Endlose erweitern. Auch der URL-String, den Ihr im Browser eingebt, darf nur eine maximale Länge haben (wie viel steht im Code irgendwo). Aber ernsthaft, wieso fragt man 80 oder auch nur 50 Parameter in einem Rutsch ab? Wenn es wirklich nötig ist, kann man mit x-y ja auch Bereiche angeben, zur Not 0-9999 ;).

- Den Due kann man nicht mehr mit avrdude flashen, sondern mit bossac. Das habe ich mir für meine DS218+ selber über die Toolchain kompiliert. Zu erklären, wie das geht, würde hier zu weit führen, dafür gibt es umfangreiche Anleitungen im Internet, u.a. auch bei Synology selber (Stichwort: Toolchain). Für die DS213 habe ich es leider nicht geschafft, bossac zu kompilieren. Eine Alternative wäre u.U. der USB-Fernanschluss der Fritz-Box und dann von einem beliebigen PC aus flashen?
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

FunkOdyssey

Zitat von: FunkOdyssey am 16 November 2020, 22:57:57
Kann mir jemand einen Tipp geben, wie ich besser bzw. mehr debuggen kann?

Ich habe die aktuelle Git-Version von heute ca. 20:00 Uhr (20201116170250) eingespielt. Das Web-Interface stürzt nach wenigen Sekunden ab und ich komme nicht mehr ran. Das passiert mit einem getrennten Netzteil wie auch über USB. Das Shield wurde bereits bei einem Mega über Jahre erfolgreich genutzt. SD-Karte nicht eingelegt.

Ich sehe im Serial-Monitor keine besonderen Hinweise. Es ist nichts erkennbar.

Folgende Erweiterungen habe ich deaktiviert:
WEBSERVER
CONFIG_IN_EEPROM
WEBCONFIG

Außerdem habe ich eine statische IP gesetzt.

Verbose=1
Monitor=1

Ich teste gerade die die Version 2.0.14-20201117142051 von gestern Abend.
Diesmal habe ich seit einigen Stunden keine Probleme. BSB Lan läuft in nahezu der gleichen Konfiguration über Web und über MQTT perfekt.
Nun werde ich beobachten, ob ich noch die Abstürze nach einigen Tagen Laufzeit habe.


Zitat von: freetz am 18 November 2020, 16:41:57
Aber ernsthaft, wieso fragt man 80 oder auch nur 50 Parameter in einem Rutsch ab? Wenn es wirklich nötig ist, kann man mit x-y ja auch Bereiche angeben, zur Not 0-9999 ;).
Ich habe ich 80 Parameter ja einzeln in der Config hinterlegt. Mir ist neu, dass ich dort einen Bereich angeben kann.
Per URL geht das natürlich. Per MQTT muss das jedoch über die Config vorab festgelegt werden.
Früher habe ich über HTTPMOD aber auch die 80 Werte einzeln abgefragt, weil ich nicht immer ganze Bereiche auf einmal abfrage. Dadurch wollte ich die Abfragen ja bereits zeitlich optimieren. Sonst wäre der Overhead ja noch größer.

Schöner wäre es natürlich, wenn man irgendwo das Intervall für jeden Parameter hinterlegen könnte, so dass man per MQTT immer die Gesamtheit der Parameter übertragen muss. Dazu gab es neulich noch einen Vorschlag im Post: https://forum.fhem.de/index.php/topic,29762.msg1099136.html#msg1099136

Ich habe nun lange Zeit im Serial Monitor die Ausgabe beobachtet und die 80 Werte wurden sehr zügig ausgelesen und per MQTT (HEIZ->LAN) weitergeben.

Zitat von: freetz am 18 November 2020, 16:41:57

- Den Due kann man nicht mehr mit avrdude flashen, sondern mit bossac. Das habe ich mir für meine DS218+ selber über die Toolchain kompiliert. Zu erklären, wie das geht, würde hier zu weit führen, dafür gibt es umfangreiche Anleitungen im Internet, u.a. auch bei Synology selber (Stichwort: Toolchain). Für die DS213 habe ich es leider nicht geschafft, bossac zu kompilieren. Eine Alternative wäre u.U. der USB-Fernanschluss der Fritz-Box und dann von einem beliebigen PC aus flashen?

Danke für den Tipp. Ich habe mir halt nun mit einem Linux-Client im Heizungsraum beholfen. Mit meiner alten Synology hat mir das zu lange gedauert, eine Lösung zu finden.

freetz

Sorry, das mit dem Bereich bezog sich auf den URL-String. Bei MQTT und dem Logging geht das nicht. Bei jedem Parameter ein Intervall anzugeben würde knappen EEPROM-Speicher kosten. Wir haben ja nur 4kB dafür zur Verfügung.
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

Guten Morgen.
Ich hab in den letzten Tagen versucht mein BSB-Lan in Betrieb zu nehmen, bin aber bisher gescheitert, vielleicht hat ja jemand eine gute Idee, was ich verkehrt mache...
Das System besteht aus ATmega, W5100-Lan Shield & einer selbstgelöteten BSB-Platine. Als SW hab ich die 0.44 verwendet, in der BSB_Lan_Config.h hatte ich zunächst nur den Bus angepasst:
BSB bus(19,18)

Das passt auch, da ich beim Mega die HW-Serial-Schnittstelle verwende.

Der RX-Pfad scheint auch ganz wunderbar zu funktionieren, da ich gelegentlich auch die Nachrichten zwischen Bedienteil & Kessel sehe. Allerdings bekomme ich ständig nur "query failed" wenn BSB-Lan versucht etwas ab zu fragen (schon beim Start, deshalb erkennt er die Heizung schon gar nicht). Ich bin dann erst mal von einem Lötfehler ausgegangen, konnte aber nichts finden und auch die Spannungen sahen ganz passend aus.

Gestern konnte ich dann endlich mit einem Osziloskop nachmessen. Die RX-Nachrichten habe ich auch schön erkennen können, aber jedes Mal wenn ich versucht hab den Tastkopf an die Sendeseite zu hängen (bspw. direkt den Portpin zu messen ), hat es mir den Bus runtergezogen (LED geht aus).
Ich hab es dann ohne Heizung versucht, und am Ende komplett ohne BSB-Anbindung, aber ich hab es nicht geschafft auf der HW-Serial etwas raus zu senden. Eigentlich sollte die HW-Serial auch beim ATmega funktionieren, oder hab ich das falsch im Kopf gehabt?

Gruß Jan


freetz

Nein, das hast Du richtig in Erinnerung. Mit der Version 0.44 sollte HardwareSerial funktionierten, und wenn Du eingehende Nachrichten sehen kannst, ist das ja auch der Beleg. Wenn Du dann aber keine Parameter abfragen kannst, ist irgendwas im TX-Pfad im Argen. Was das genau ist, ob nun kalte Lötstelle, Kurzschluss oder defekter OK wird Dir niemand aus der Ferne sagen können. Wenn Du irgendwann nicht weiter kommst: Ich habe noch getestete Platinen hier, melde Dich einfach bei Interesse per E-Mail an bsb (ät) code-it.de
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 Jan,

Dein Problem mit dem Adapter kenn ich nur zu gut, ich hatte auch  die von dir beschriebenen Symptome.
Das senden ging bei mir auch nicht....bis eine Änderung am Adapter (V2)vorgenommen wurde. 

Ich hatte einen Bausatz von freetz ( V2) verwendet.  An welcher Adapterversion hast du dich für den Nachbau orientiert. V2,  V3 oder V4?


Gruß Bernd