ioBroker / ioBroker.wolf

Connect WOLF heating, solar and domestic ventilation
MIT License
25 stars 16 forks source link

neue Datenpunkte + Anpassung der Datenwerte #93

Closed fred0815 closed 1 year ago

fred0815 commented 1 year ago

ich habe mir gestern das ISM8i von Wolf eingebaut und deinen Adapter installiert. Die Verbindung zwischen den beiden hat funktioniert und Daten wurden ausgelesen. Super toll!

Laut Dokumentation gibt es jetzt folgendene neue Datenpunkte

Kaskadenmodul 209 Gesamtmodulationsgradvorgabe 7) DPT_Scaling Out / In 4) % 210 Sammlersolltemperaturvorgabe 8) DPT_Value_Temp Out / In 4) °C 211 Betriebsart Heizen/Kühlen 9) DPT_Switch Out / In - BM-2 251 Erkennung verfügbare Heiz-/ Mischerkreise DPT_Value_1_Ucount Out / - - 355 Erkennung verfügbarer Geräte 1 DPT_Value_2_Ucount Out / - - 356 Erkennung verfügbarer Geräte 2 DPT_Value_2_Ucount Out / - - 357 Unterscheidung Heizgerätetyp (HG1) DPT_Value_1_Ucount Out / - - 358 Erkennung vorhandener Warmwasserkreise DPT_Value_1_Ucount Out / - - 359 Unterscheidung Heizgerätetyp (HG2) DPT_Value_1_Ucount Out / - - 360 Unterscheidung Heizgerätetyp (HG3) DPT_Value_1_Ucount Out / - - 361 Unterscheidung Heizgerätetyp (HG4) DPT_Value_1_Ucount Out / - - Heizgerät 1 364 Kesselsolltemperatur HG1 – lesen DPT_Value_Temp Out / - °C Heizgerät 2 365 Kesselsolltemperatur HG2 – lesen DPT_Value_Temp Out / - °C Heizgerät 3 366 Kesselsolltemperatur HG3 – lesen DPT_Value_Temp Out / - °C Heizgerät 4 367 Kesselsolltemperatur HG4 – lesen DPT_Value_Temp Out / - °C BM-2(0) 368 Vorlaufsolltemperatur dir. HK – lesen DPT_Value_Temp Out / - °C 369 Mischersolltemperatur MK1 – lesen DPT_Value_Temp Out / - °C 370 Mischersolltemperatur MK2 – lesen DPT_Value_Temp Out / - °C 371 Mischersolltemperatur MK3 – lesen DPT_Value_Temp Out / - °C Allgemein 372 Zuletzt aktiver Störcode DPT_Value_1_Ucount Out / - -

Könntet Ihr diese bitte implementieren? Zudem wäre es super, wenn die Betriebsart und die Programmwahl vom Typ DPT_HVACContrMode in den Iobroker objekten angepasst werden könnten Siehe punkt 8.7 in der Doku

Für die Datenpunkte „Betriebsart“ und „Programmwahl“ der Heizgeräte und Wohnraumlüftung sowie der Heiz-, Mischer- und Warmwasserkreise werden die Datentypen 20.102, 20.103 bzw. 20.105 verwendet (siehe 8.6.7). Wie die einzelnen Status darin mit den wolfspezifischen Definitionen verbunden sind, zeigen folgende Abschnitte

Die DP ID357, 359, 360, 361 geben jetzt Auskunft über die Heizgeräte-Typen. Könnt ihr die auch implementieren?

Die Datenpunkte 336-354 sowie 362 und 363, die bei mir im Log ignoriert werden, habe ich bei Wolf angefragt.

VG & Danke Tom

Firmware ISM8I: 1.70 (lt. doku gibt es jetzt die 1.8)

IOBROKER Plattform linux Betriebssystem linux Architektur arm CPUs 4 Geschwindigkeit 1500 MHz Modell ARMv7 Processor rev 3 (v7l) RAM 3.75 GB Node.js v16.18.1 (Es gibt eine neuere Version: v16.19.0) NPM 9.2.0 js.controller 4.0.24

iobroker.2023-01-10.log 3064356_Betriebsanleitung_ISM8I-EBus_Ethermet-Schnittstelle.pdf

Apollon77 commented 1 year ago

Hm ... 209 und 210 sind seit 2 jahren im Adapter drin! Aber ja rest inkl .der "Ucount" Datentypen fehlt noch.

fred0815 commented 1 year ago

Stimmt 209 und 210 waren mit enthalten. Bin gerade dabei die Daten mit aufzunehmen und ein paar Dinge anzupassen, wie z.B. Polling Intervall wird gespeichert, adapter namen werden in die objekte mit übernommen, bm01 entfernt, debug und info log meldungen angepasst.... melde mich, wenn ich soweit bin...

fred0815 commented 1 year ago

so, anbei mein aktueller Stand....Läuft bei mir seit einem Tag ohne Probleme...

Was habe ich gemacht:

main.js.txt datapoints.json.txt decoder.js.txt index_m.html.txt

Apollon77 commented 1 year ago

Wow cool ... magst mir das als "Pull request" machtn oder soll ich die files so übernehmen?

fred0815 commented 1 year ago

du kannst die Files so übernehmen... ;-)

Apollon77 commented 1 year ago

Ok, checke ich heute abend oder morgen und bereite GitHub version vor die ich dich dann bitten würde nochmal zu testen. ok?

fred0815 commented 1 year ago

na klar...und danke!

Apollon77 commented 1 year ago

Ok, ich habs mal geprüft ...

Frage:

              //eine Null vor ${bufVal.length.toString(16)}`, 'hex' weggenommen

Warum? Weil hat ja vorhwer auch funktioniert. Knn es sein das man nur sicherstellen muss das das "toString(16)" im zweifel 0-padded ist? kann es sein das werte bisher immer "so klein" waren das diese zusätzliche 0 qusi das padding war? Und jetzt sind werte ggf höher?

Ansonsten baue ich das msb/lsb Thema mal etwas generischer :-)

Apollon77 commented 1 year ago

Ok, updated GitHub (btw ... hast du auch encode für DP7 implmentiert und file vergessen? - das fehlt noch)

https://github.com/ioBroker/ioBroker.wolf/commit/bb14de328cbf40ebbea317071646f079baeea40e

fred0815 commented 1 year ago

ich habe nur nach der Doku den Aufbau nachvollzogen und da war für mich eine Null zu viel...

fred0815 commented 1 year ago

du kannst den Code gerne umbauen. Ich bin KEIN Vollblut Entwickler. Komme zwar aus der IT, habe aber seit Jahren einen ganz anderen Fokus... Demensprechend ist mein Code sicher nicht optimal...

hier der encode DP7 /**

fred0815 commented 1 year ago

ach, noch eine Sache. Der ISM8i soll alle 30 min seine volle Konfiguration, der nicht gesperrten bzw. nicht vorhandenen Geräte (Störung =1) senden. Fehlermeldungen können auch zu einer Sperrung führen. Leider sendet der ISM8i die volle Konf., inkl. der gesperrten Geräte, nur bei einem Neuaufbau der Verbindung einmal. Daher mein Gedanke, dass das Polling so angepasst wird, das es einen Verbindungsneuaufbau erzwingt (sock.end?). Was meinst du?

Soll mit dem neuen release Ende januar behoben sein

fred0815 commented 1 year ago

Mir ist heute noch ein Punkt aufgefallen. Beim decode von decodeDPT9 für den Datenpunkt 178 werden manchmal über 6500er Werte angezeigt. Das sollen wohl eher 0,65xxx kW sein und nicht 6500 kW.

Ist bei Wolf bekannt und muss aktuell im Skript abgefangen werden (siehe anbei) main.js.txt

fred0815 commented 1 year ago

so, jetzt sollte alles aktuell sein. Habe encoder und die neue Main angehängt. Könntest du die neue Version fertig machen, dass ich testen kann? Danke!!!

Apollon77 commented 1 year ago

Hi, also ich hab jetzt die letzten Änderungen noch nachgezogen. Wäre cool wenn Du mal die GitHub version testen würdest ... Danke. Schau dur auch gern im oben verlinkten changelog an was ich geändert hab

fred0815 commented 1 year ago

so, alles getestet... Läuft... ;-)

Apollon77 commented 1 year ago

Auch steuern? (wegen der 0 zuviel oder zu wenig und so)?

fred0815 commented 1 year ago

ja, das habe ich getestet und die erste Version wieder eingefügt. Die Anpassung von dir (toHex) hat zu einem Fehler geführt. Sollte im Changelog von main.js zu sehen sein.

Apollon77 commented 1 year ago

Also wie ist die zeile jetzt Bei dir?

fred0815 commented 1 year ago

const _buff_set = Buffer.concat([Buffer.from(0620F08000${(20 + bufVal.length).toString(16)}04000000F0C100${dp.toString(16)}000100${dp.toString(16)}000${bufVal.length.toString(16)}, 'hex'), bufVal], bufVal.length + 20);

Apollon77 commented 1 year ago

ok, then i replace that :-)

Apollon77 commented 1 year ago

GitHub updated

fred0815 commented 1 year ago

it works fine.... ;-) machst du ein neues Release draus?

Apollon77 commented 1 year ago

jupp, kommt heute abend

Apollon77 commented 1 year ago

ok, heute :-)