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

FunkOdyssey

Sorry für den Monolog.
Ich bin wieder zurück auf eine Version vom 22.01.2018.
Aber vorher habe ich noch ein paar Dinge ausprobiert:

Fakt ist, dass es egal ist, ob ich in der Config die Familie/Variante fest verdrahte oder die Autoerkennung nutze.

Ich habe festgestellt, wenn ich die ProgID 700 abrufe, dann friert BSB Lan ein:

RGT2->HEIZ QUR  700 Heizkreis 1 -  Betriebsart:
DC 87 00 0B 06 3D 2D 05 74 22 25
HEIZ->RGT2 ANS  700 Heizkreis 1 -  Betriebsart:


Und bei folgenden ProgIDs habe ich merkwürdige Sonderzeichen im SET-Bereich (ENUM?) der Weboberfläche. Ich meine auch, dass falsche bzw. keine Werte angezeigt wurde. Das hatte ich mir noch notiert. Mit allen anderen Versionen hatte ich hier eine korrekte Anzeige.

RGT2->HEIZ QUR 8000 Status -  Status Heizkreis 1:
DC 87 00 0B 06 3D 05 07 A3 D0 BA
HEIZ->RGT2 ANS 8000 Status -  Status Heizkreis 1: 104 - not found
DC 80 07 0D 07 05 3D 07 A3 00 68 47 EE
RGT2->HEIZ QUR 8003 Status -  Status Trinkwasser:
DC 87 00 0B 06 3D 05 07 A1 F0 F8
HEIZ->RGT2 ANS 8003 Status -  Status Trinkwasser: 95 - not found
DC 80 07 0D 07 05 3D 07 A1 00 5F 6F 3A
RGT2->HEIZ QUR 8005 Status -  Status Kessel:
DC 87 00 0B 06 3D 05 07 A9 71 F0
HEIZ->RGT2 ANS 8005 Status -  Status Kessel: 168 - not found
DC 80 07 0D 07 05 3D 07 A9 00 A8 59 63
RGT2->HEIZ QUR 8009 Status -  Status Brenner:
DC 87 00 0B 06 3D 05 0F 66 D0 FA
HEIZ->RGT2 ANS 8009 Status -  Status Brenner: 18 - not found
DC 80 07 0D 07 05 3D 0F 66 00 12 D0 F7

freetz

Ja, das Problem ist bei Schotty auch aufgetreten - mein etwas schmutziger Workaround, um aus 16-Bit Char Pointern 32-Bit Adressen zu erzeugen, um auf die gesamten 256kB des Mega zuzugreifen, basiert auf ein paar Annahmen, die durch die Speicherersparnis der neuen Geräteerkennung durcheinander gekommen sind. Bei einigen funktioniert es noch (u.a. bei mir), und bei Schotty lief es dann, als er das Logging Definement aktiviert hatte. Betroffen sind nur ENUM-Parameter, also solche, wo man ein Dropdown oder eine Auswahlliste angezeigt bekommt. Ich bin da dran.
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

Und das ist auch der Grund wieso er bei ProgID 700 abstürzt?

freetz

#1833
Ja, genau, das ist der Grund. Ich glaube, ich habe die Lösung auch schon gefunden: Bitte diejenigen, bei denen das Problem auftritt einmal folgendes machen:
In der BSB_lan.ino nach
findLine(10510
suchen und die 10510 gegen 8779 ersetzen.
Dazu noch die Zeile
    enumstr_offset = temp_offset1;
in
    enumstr_offset = temp_offset2;
ändern. Dann sollte es wieder funktionieren.
Update auf GitHub kommt zeitnah, ich arbeite nur gerade parallel an der JSON-Funktion, die gerade noch nicht so richtig läuft, von daher will ich da jetzt keinen halbgaren Code hochladen...
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

So, die gefixte Version ist jetzt auch auf GitHub. Darüber hinaus kann man nun auf folgende Art und Weisen via JSON auf BSB_LAN zugreifen:

1. über den URL-Befehl /J=a,c,b,d..., wobei a,b,... Parameter sind, die exportiert werden sollen.
2. Per HTTP POST Aufruf der URL /JQ (für Abfragen) und /JS (für das Setzen von Parametern). Folgende Parameter sind dabei möglich:
/JQ:
Senden:
"Parameter"
Empfangen:
"Parameter"
"Value"
"Unit"
"DataType"

/JS:
Senden:
"Parameter"
"Value" (nur numerisch)
"Type" (0 = INF, 1 = SET)
Empfangen:
"Parameter"
"Status" (0 = Fehler, 1 = OK, 2 = Parameter read-only)
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

#1835
Zitat von: FunkOdyssey am 18 Februar 2018, 17:59:54
So, und hier die schön sorgfältig getrennten Log-Zeilen. Ich habe aufgepasst, dass ich wirklich sauber logge. Aber ich habe nur 10 Historien aufgenommen. Es geht zwar bis zur Historie 20 weiter, aber wer braucht das schon, oder?

Also Ziel wäre schon, alle Parameter aufzunehmen, aber vielleicht lassen sich die CommandIDs auch einfach fortschreiben, das schaue ich dann mal.
Was mir aber jetzt aufgefallen ist, zumindest bei den Parametern 6800 und 6805, ist, dass die von Dir geloggten CommandIDs bereits hinterlegt sind, entweder "für alle" (DEV_ALL) oder für Deine Gerätefamilie (DEV_162_ALL). Allerdings ist es bei diesen Parametern, die zwei Werte zurückliefern natürlich nicht möglich, die in BSB-LAN einem einzigen Parameter zuzuordnen. Deswegen bin ich da dann so vorgegangen, dass ich die nächst höhere (freie) Parameternummer genommen habe. Bei 6800 ist es dann also so, dass 6800 das Datum enthält und 6801 den Fehlercode.

Bevor ich jetzt alle Deine geloggten Parameter daraufhin durchgehe, würde ich Dich bitten, das noch einmal kurz zu überprüfen. Denn wenn bei Dir das, was bei 6800 an der Therme mit 6800/6801 in BSB-LAN nicht übereinstimmt, dann liegt ggf. noch anderswo ein Fehler vor. Aber wenn es passt, dann würde ich Dich bitten, noch einmal zu kontrollieren, wo wirklich Unterschiede bestehen.

Danke!

EDIT: Wenn bei den Fehlerarten irgendwo steht "not found", dann heißt das nur, dass diese Fehlermeldung noch nicht entsprechend hinterlegt ist; der Parameter als solches aber funktioniert. In dem Fall bräuchte ich für jeden (Dir bekannten) Fehler eine Zuordnung "Fehlernummer - Klartext", damit ich das entsprechend hinterlegen kann. Das ist eine generelle Baustelle, wo auch von anderen geholfen werden kann, denn die Handbücher haben i.d.R. nur einen sehr begrenzten Fehlerkatalog abgedruckt...
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

Schotty

Moin zusammen,
ich sitze gerade an der Überarbeitung des Handbuchs.

User PaulM war so freundlich, zwei Beispielscripte für die Einbindung von BSB-LAN in HomeMatic zu schreiben, damit Einsteigern die Umsetzung leichter fällt.
Vielen Dank dafür schonmal an dieser Stelle!

Sollte jemand ein System benutzen, welches wir im Handbuch noch nicht aufgeführt haben (also irgendwas außer FHEM, openHAB und HomeMatic) ist er/sie herzlich 'eingeladen', ebenfalls ein oder zwei kurze Beispielscripte (bspw. zum Abruf und Setzen von Parametern) beizusteuern. Ziel ist, Beispiele für möglichst viele Systeme aufzuführen, so dass den jeweiligen Einsteigern eine kleine Starthilfe gegeben wird.

@freetz:
Zitat von: freetz am 18 Februar 2018, 23:01:30
1. über den URL-Befehl /J=a,c,b,d..., wobei a,b,... Parameter sind, die exportiert werden sollen.
Funktionieren da auch Parameterbereiche (also bspw. 6220-6228) oder nur einzelne, jeweils durch ein Komma getrennte Parameter?
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

freetz

Zitat von: Schotty am 19 Februar 2018, 10:04:22
@freetz:Funktionieren da auch Parameterbereiche (also bspw. 6220-6228) oder nur einzelne, jeweils durch ein Komma getrennte Parameter?

Nur einzelne, durch Komma getrennte Parameter!
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

PaulM

Skripte für Homematic-Anwender (EQ3)

Was machen die Skripte:

A. Heizung Abfrage und speichern als Systemvariable:

    Ferienbetrieb von-bis / Absenkniveau (632/633/648)
    Heiz- und Warmwasserbetrieb (700 / 1600 / 8700 / 8326 / 8743 / 8314 / 8830)
    Übertrag der von einem One-Wire Sensor gemessenen Raumtemperatur zur BSB (I10000)
    Protokollieren (für Auswertungen mit CUxD Highcharts)

B. Anweisungen zum Ändern des Betriebs von Heizung und Trinkwasser; damit Syntax-sichere Anweisungen von CCU an BSB gegeben werden können (wichtig z.B. auch wenn via VPN kein direkter Zugang zum BSB-Adapter möglich ist)

    700 0-3 (Heizbetrieb)
    1600 0-1 (Warmwasserbetrieb)

C. Abfrage der Tagesdurchschnitte /A und speichern als Systemvariable

D. Abfrage der angeschlossenen OneWire-Sensoren und speichern als Systemvariable

Die Skripte sind m.E. nichts wirklich Besonderes, sie sind methodisch mit "trial and error" entstanden und könnten dem einen oder anderen eine Hilfe sein, mehr ist es nicht.


Schotty

Zitat von: PaulM am 19 Februar 2018, 10:46:20
Skripte für Homematic-Anwender (EQ3)
[...]
Die Skripte sind m.E. nichts wirklich Besonderes, sie sind methodisch mit "trial and error" entstanden und könnten dem einen oder anderen eine Hilfe sein, mehr ist es nicht.
Super, vielen Dank PaulM! Das wird Einsteigern eine schöne Starthilfe sein!
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: freetz am 19 Februar 2018, 09:22:08
Also Ziel wäre schon, alle Parameter aufzunehmen, aber vielleicht lassen sich die CommandIDs auch einfach fortschreiben, das schaue ich dann mal.
Was mir aber jetzt aufgefallen ist, zumindest bei den Parametern 6800 und 6805, ist, dass die von Dir geloggten CommandIDs bereits hinterlegt sind, entweder "für alle" (DEV_ALL) oder für Deine Gerätefamilie (DEV_162_ALL). Allerdings ist es bei diesen Parametern, die zwei Werte zurückliefern natürlich nicht möglich, die in BSB-LAN einem einzigen Parameter zuzuordnen. Deswegen bin ich da dann so vorgegangen, dass ich die nächst höhere (freie) Parameternummer genommen habe. Bei 6800 ist es dann also so, dass 6800 das Datum enthält und 6801 den Fehlercode.

Zitat von: freetz am 19 Februar 2018, 09:22:08
Bevor ich jetzt alle Deine geloggten Parameter daraufhin durchgehe, würde ich Dich bitten, das noch einmal kurz zu überprüfen. Denn wenn bei Dir das, was bei 6800 an der Therme mit 6800/6801 in BSB-LAN nicht übereinstimmt, dann liegt ggf. noch anderswo ein Fehler vor. Aber wenn es passt, dann würde ich Dich bitten, noch einmal zu kontrollieren, wo wirklich Unterschiede bestehen.

Ja, es gibt Überschneidungen und Treffer mit dem aktuellen Code. So hatte ich hier im Thread auch bereits erwähnt, dass mir damals drei Zuordnungen nicht mehr korrekt sind. Nach genauerer Prüfung sind das aber nicht nur drei (bei mir) Falschzuordnungen, sondern auch ein paar mehr. Bei den Werten ist mir das nur halt direkt aufgefallen.

Ich hatte bisher auch noch nie überprüft, ob die ProgIDs/CommandIDs/Parameter in den vorherigen BSB-LAN-Versionen identisch mit meiner Therme sind. Die Auflistung der Fehlerkategorie war (in v0.32) halt korrekt und somit habe ich das nie hinterfragt. Die IDs waren mir hier nicht so wichtig.

Jetzt im aktuellen Code merke ich aber, dass halt schon einiges durcheinander ist. Nicht nur die Tatsache, dass die ProgIDs komplett abweichen. Damit könnte ich ja sogar leben. Nein, auch die Reihenfolge der Felder und auch fehlende Werte ist total anders.

Das war ein wenig schwierig, die aktuelle Ausgabe (Git-Code vom 21.01.2018) mit meiner Therme nebeneinanderzulegen. Ich habe das in Excel gemacht. Anbei auch ein Screenshot der Unterschiede. Gerne sende ich dir die Excel-Datei auch per E-Mail zu, damit du besser sortieren kannst.

Ich habe meine Telegramaufzeichnungen auch schon in zwei Teile zerlegt und bin deiner Systematik mit dem Inkrement +1 gefolgt.

Beispiel: Ein echtes 6801 habe ich an meiner Therme nicht.
6800 Historie 1 Datum/Zeit: 15.10.2016 14:08
6801 Historie 1 Fehlercode: 110: Störabschaltung STB (aus Telegram 6800)



Zitat von: freetz am 19 Februar 2018, 09:22:08
EDIT: Wenn bei den Fehlerarten irgendwo steht "not found", dann heißt das nur, dass diese Fehlermeldung noch nicht entsprechend hinterlegt ist; der Parameter als solches aber funktioniert. In dem Fall bräuchte ich für jeden (Dir bekannten) Fehler eine Zuordnung "Fehlernummer - Klartext", damit ich das entsprechend hinterlegen kann. Das ist eine generelle Baustelle, wo auch von anderen geholfen werden kann, denn die Handbücher haben i.d.R. nur einen sehr begrenzten Fehlerkatalog abgedruckt...

Kein Problem. Diesen Fall habe ich in der Fehlerkategorie auch gar nicht. Ich hatte ne Menge gleichartiger Fehler. :-)

freetz

Ok, ich verstehe - ich hatte nur am Anfang die 6800 und 6805 gecheckt, und die gingen (wobei mir dann erst aufgefallen ist, dass die 6800 auch in Deinem Post oben unter "passt" steht, das war etwas verwirrend).
Der Screenshot hilft schon mal weiter; grundsätzlich sollten die Parameternummern zwischen Therme und BSB-LAN schon übereinstimmen, und das lässt sich prinzipiell auch umsetzen, sind halt pro Parameter 1-2 Zeilen mehr in der cmd_tbl, aber das ist vom Speicher her vertretbar. Für's Erste solltem aber einmal die Parameter entsprechend der beschriebenen Funktion passend gemacht werden, da schau' ich dann jetzt noch mal auf die 6810+ CommandIDs.
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

Schotty

#1842
So, die überarbeitete und ergänzte Version des Handbuchs ist nun online.
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

FunkOdyssey

Danke, Schotty.

Vielen Dank für das stete Überarbeiten der Dokumentation. Diese Doku ist absolut hilfreich.
Gestern habe ich festgestellt, dass du - wahrscheinlich aus Gründen der Redundanzvermeidung - die deutschsprachigen KnowHow und FAQ-Dokumente unter https://github.com/fredlcore/bsb_lan/ geändert und auf das PDF verwiesen hast. Absolut nachvollziehbar, damit die Inhalte langfristig nicht auseinanderlaufen.

Wir hatten uns ja bereits per E-Mail über die Dokumentation als GitHub Pages (Beispiel: eBus-Adapter) unterhalten, welches eine schlanke und stets aktuelle Dokumentation ermöglicht. Mir ist danach eingefallen, dass man die Dokumentation natürlich auch noch viel einfacher machen kann. Und zwar im GitHub-Wiki des bsb_lan-Projektes. Freetz müsste dieses Feature halt nur in den Projekteinstellungen freischalten. Dies nur als Anregung. Natürlich müsste man dann alles neu strukturieren und neu aufbauen. Wer will das schon. :-)

Ich persönlich störe mich ein wenig am binären PDF-Format. Aber größtenteils nur, weil ich nie weiß, welche Version ich gerade vorliegen habe.
Kleiner Vorschlag: Könntest du im Dateinamen vielleicht nicht nur den Montasnamen, sondern das Tagesdatum verwenden? Ähnlich macht es Freetz ja auch in seinen Changelogs. Ist nur eine Idee. Merci.

Schotty

Danke  :D

Die GitHub-Pages wären evtl nochmal eine Variante, mal sehen ob und wann ich dazu Lust & Zeit habe - hinzu kommt, dass ich dann ja auch wieder zwei Versionen pflegen müsste, das kostet wieder mehr Zeit.. ;)

PDF finde ich persönlich wie gesagt insofern gut, als dass es eben druckerfreundlich ist (ich drucke mir sowas gerne aus und lege es in Reichweite) und man aufgrund des Inhaltsverzeichnisses etc auch beim Lesen am Rechner bequem Navigieren kann.

Bzgl Dateinamen:
freetz hatte gerade angemerkt, dass ich die Datums/Versionsagaben im Dateinamen lieber entfernen sollte, damit sich u.U. nicht zig Versionen auf dem Rechner ansammeln. Von daher werde ich es wohl so machen, dass ich das Datum dann mit auf die Titelseite hinzufüge (wo jetzt nur "Stand: Februar 2018" steht) und den Dateinamen wie von freetz gewünscht neutral halte.
Wär das ein Kompromiss..? ;)
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/