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

numsi

Linkes TWIX
Rechtes TWIX
Murmel, murmel, Paketklebeband, hex-hex
Ich mache ja schon
Psst!
Brötchen=379Ahex, BigS=3092hex

Schotty

#1636
@numsi: Kannst du für den ZR2 bitte auch nochmal 6220-6228 abrufen und posten? Bisher haben wir nur den ZR1 in der Auflistung geführt. Danke
Nachtrag: Hat der ZR2 ebenfalls BSB & LPB oder nur eines von beiden?
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

numsi

ZR ohne EWM = ZR1 so wie der, den du hast
ZR +1EWM = ZR2 kommt in einem breiteren Gehäuse daher
ZR +2EWM = gibt es nicht offiziell, funktioniert aber hier als "ZR3"

Der Kopf ist identisch, immer mit BSB und LPB und Anschlüße für die Grundfunktionen
Der Unterschied zu den anderen ist nur in der Menge der Anschlüße/Funktionen
und die kommen mit den ErWeiterungsModulen dazu
Der ZR3 meldet sich identisch wie der ZR2, wie der ZR1
Psst!
Brötchen=379Ahex, BigS=3092hex

Schotty

Ah, ok, also ZR2 ebenfalls RVS46.530 -> yo, Fam107 gab's ja schon, sorry, mein Fehler, zu schnell gelesen.. ;)
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

Schotty

So, die ergänzte Version des Handbuchs hinsichtlich der Platinen-Geschichte (FunkOdyssey) ist nun bei GitHub online. Da ich momentan unterwegs bin und nur sehr laaaaangsaaaamen Internetzugang zur Verfügung habe, spare ich mir heute den Upload hier.. ;)
Ihr könnt ja mal gucken..
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

FunkOdyssey


freetz

So, nachdem numsi mir nun umfangreichere Logs geschickt hat, sieht es so aus, als würde man nicht darum herum kommen, neben der Gerätefamilie (6225) auch die Gerätevariante (6226) mit in die Identifizierung der passenden Parameter mit einzubeziehen.
Die bisherige Lösung hat auf der einen Seite den Charme, dass jede Gerätefamilie durch ein bestimmtes Bit repräsentiert werden. Bei einer 32-Bit Zahl (das ist das höchste, was der Arduino als zusammenhängende Zahl darstellen kann) wären das 32 verschiedene Gerätefamilien. Bisher haben wir 18 verschiedene gefunden - mit etwas "Glück" wären wir unter den 32 geblieben, aber sicher wäre auch das nicht gewesen.
Mit Einbeziehung der Gerätevariante wären es theoretisch 256 Gerätefamilien multipliziert mit 256 möglichen Gerätevarianten - also 65536 verschiedene Möglichkeiten. Das würde nur bedeuten, dass pro Parameter nicht wie jetzt je eine 32-Bit Zahl hinterlegt werden müsste (also 4 Byte), sondern acht 32-Bit Zahlen für die Gerätefamilie und genau so viele für die Gerätevariante - also 64 Byte pro Parameter. Bei größeren Rechnern mit mehr Speicher würde ich mir da keine großen Gedanken machen, aber bei mehr als 1000 Parametern und einem zusätzlichen Speicherbedarf von 60 Byte pro Parameter kommen wir da mit 60kB schon über die Kapazitäten des Arduino.

Meine Frage an die Programmierer unter Euch wäre nun: Gibt es eine sinnvolle(re) Möglichkeit, pro Parameter abzulegen, für welche Therme dieser gültig ist? Im Endeffekt sind es bisher maximal fünf verschiedene CommandIDs, die pro Parameter hinterlegt sind und entsprechend zugeordnet werden müssen. Allerdings gibt es eben weder innerhalb der Hersteller Einheitlichkeit, noch innerhalb der Gerätefamilien. Am deutlichsten wurde das in numsis Beispiel, da seine Brötje und meine Elco die gleiche Platine und Gerätefamilie haben, sich aber doch in relativ zentralen Parametern (wie z.B. Außentemperatur) unterscheiden. Meine Vermutung ist, dass das auch bei weiteren Fällen so sein wird, es den Nutzern nur noch nicht aufgefallen ist.

Freue mich von daher auf jeden Input/Tipp!

Gruß,

F.
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

#1642
Hmm. Irgendetwas ist komisch bei mir.
Ich habe eine bereits funktionierende Hardware und bin heute von 0.32 auf 0.41 (Aktuelles Git-Repo) gegangen.
Ich komme auch auf die Oberfläche, aber ich kann absolut keine Werte mehr abrufen.

Die Parameter 6223-6228 liefern mir auch keine Daten:
6223 query failed
6224 query failed 0.00
6225 query failed 0.00
6226 query failed 0.00
6227 query failed 0.00
6228 query failed


Konfiguration:

RAM: 5604 Bytes
Bus-System: BSB (7, 0)
Monitor Modus: 0
Verbositäts-Level: 1
Excluded GPIO pins: 10 11 12 13 50 51 52 53 62 63 64 65 66 67 68 69
MAC address: 00 80 41 19 69 90
Berechnung von 24h-Mittelwerten für die folgenden Parameter:
8700 - UNKNOWN command code
8326 - UNKNOWN command code


Ich kann nicht einmal mehr die Uhrzeit der Therme abfragen.

- PASSKEY und USER_PASS_B64 sind definiert.
- const int fixed_device_id = 0;
- LOGGER, IPWE, RESET, MAX auskommentiert
- BSB bus(68,69,7);
- uint8_t bus_type = bus.setBusType(0); 

Ich habe eine Brötje WBS 22E Gastherme.

Hat jemand einen Tipp für mich?

Dürfen die für den BSB Bus benutzten Ports überhaupt in den "Excluded GPIO pins" auftauchen?

freetz

Vergleiche mal Deine _config.h mit der aktuellen und lass dazu mal /M1 beim Aufruf der 622x-Parameter mitlaufen. Von dem was Du schreibst, ist erst mal alles korrekt soweit. Ich würde auf ein lockeres Kabel zum BSB tippen...
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

Ich habe die Config vollständig neu aufgesetzt. Die ist also frisch aus dem Git.

Mit /M1 sehe ich nun etwas:

6223 Konfiguration - Bisher unbekannte Geräteabfrage: unknown type 000014
6224 Konfiguration - Geräte-Identifikation: LMS14.001A100 0.00
6225 Konfiguration - Gerätefamilie: 162 162.00
6226 Konfiguration - Gerätevariante: 14 14.00
6227 Konfiguration - Objektverzeichnis-Version: 0.1 0.10
6228 Konfiguration - Bisher unbekannte Geräteabfrage: unknown type 000014

freetz

Na dann wird's daran gelegen haben - Gerätefamilie 162 ist schon hinterlegt, sollte also alles laufen. Kannst ja mal schauen, woran der Unterschied in den configs lag, was dann das Problem verursacht hat, dann passiert's vielleicht anderen nicht auch so.

Gruß,

F.
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

Nee. Falsch verstanden. Ich habe jetzt gerade nichts mehr geändert.
Als ich heute Mittag die 0.41 aufgesetzt hatte, bin ich komplett von vorne angefangen. Auch ne neue Config.

Ich komme nur an die Werte 6223-6228 mit /M1. Mehr sehe ich nicht.

Oder sollte ich jetzt const int fixed_device_id manuell auf 162 setzen?

freetz

Schreib' doch mal, was was der serielle Monitor beim Hochfahren ausgibt. Da schreibt er dann, welche Gerätefamilie erkannt wird. Und was zeigt er im Browser an, wenn Du die 6223-6228 Werte aufrufst? Es kann nicht sein, dass er im SerMo (nur auf den hat /M1 Einfluss) die Werte ausgibt, aber nicht im Web.
Und auch ohne erkannte Geräte-ID sollten über 80% der Parameter laufen, da sie für alle Geräte gleich sind.
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

Hmm, stimmt. Irgendetwas ist plötzlich anders. Und ich habe es gar nicht bemerkt, dass beim letzten Test auch die anderen Werte wieder auslesbar waren.

Ich kann wieder auf ein Großteil der (alten Werte aus 0.32) zugreifen. Vermutlich lag es daran, dass ich den BSB-Adapter angeschlossen hatte, als die Therme stromlos war. Ihr habt es ja auch im Handbuch und in der Config beschrieben, dass die Autoerkennung dann Probleme bereiten könnte. Ich bin mir zwar ziemlich sicher, dass ich bereits mehrere Resets und Neustarts nach dem Einschalten der Therme durchgeführt habe. Nichtesdestotrotz komme ich nun wieder an Daten.

Ich habe das auch nicht auf Anhieb bemerkt, weil
a) einige Parameter nicht mehr auslesbar sind (8700, 8009, 8310, Datum/Uhrzeit, etc.).
b) sich die Kategorien (wie Changelog beschrieben) zweimal erhöht haben (K30 in v.32 ist nun K32 in v.41)
c) die RegExp in meinem HTTPMOD-Device nicht mehr alle funktionieren, da leere Werte nun als "---" und nicht mit einer "0" angezeigt werden. Kann aber auch sein, dass ich das zuvor nie bemerkt habe und es immer schon so war. :-)

Schlussendlich sind aber scheinbar auch viele neue Parameter hinzugekommen. Da werde ich mir mal ne Minute gönnen und Verwertbares suchen. :-)

Was ich nur extrem schade finde (und das war hier im Thread vor kurzem auch schon Thema): Ich habe einige Parameter verloren, die die Therme aber lt. Handbuch anzeigen müsste.

8700 Diagnose Verbraucher - Aussentemperatur (unter 7730 noch vorhanden)
8310 Diagnose Erzeuger - Kesseltemperatur (unter 7760 noch vorhanden)
8009 Status - Status Brenner (wäre mir wichtig)
Diverse Parameter mit den Fehlercodes sind nicht vorhanden. Diese wären mir auch sehr wichtig: 6801, 6803, 6805, 6806, 6807,6809, 6810-6817

Die Codes dürften alle schon vorhanden sein, denn ich konnte die Parameter zuvor (vor der Auto-Erkennung) alle auslesen.

freetz

Also:

a) Die Parameter sind nicht mehr auslesbar, weil die Auto-Detection fehlgeschlagen ist. 8700 und die anderen Parameter sind solche, für die es mehrere CommandIDs gibt. Wenn Deine Gerätefamilie entweder unbekannt ist oder beim Start nicht richtig erkannt wurde, werden diese Parameter nicht angezeigt. Der Grund, warum es vorher angezeigt wurde, ist, dass es vorher eben nur eine CommandID für die entsprechenden Parameter gab. Wenn jetzt eine Gerätefamilie nicht für einen Parameter hinterlegt ist, weiß das Programm nicht, welcher der richtige ist. Und anstatt zwei oder mehrere (möglicherweise falsche) Kommandos an die Therme zu senden, wird dieser Parameter nicht angezeigt.
I.d.R. ist das erledgit, sobald die unbekannte Gerätefamilie in den Conde eingepflegt wird. Gerätefamilie 162 ist aber eigentlich hinterlegt, auch für Parameter 8700. Insofern sollte das klappen. Die Autoerkennung wird aber nur beim Hochfahren des Arduino durchgeführt, daher wie schon bereits gesagt: Schau' beim Hochfahren auf den SerMo und sieh nach, was für eine Gerätefamilie da erkannt wird. Wenn das nicht klappt, bleiben die genannten Parameter (für Dich) unbekannt.

b) Ja, die Kategorien haben sich geändert, aber das hat keine Auswirkung auf die Parameter. Falls Du nicht (unsinnigerweise, weil viel zu lange den Arduino und den Bus blockierend) ganze Kategorien parst, hat das auf Dich keine Auswirkung.

c) "---" wird bei deaktivierten Werten (also z.B. deaktivierten Zeitprogrammen) angezeigt. Das war immer so. Null wird dann angezeigt, wenn ein Wert auch wirklich Null ist (also z.B. 0 Grad Celsius).
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