Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Resol Adapter #32

Closed
dm82m opened this issue Jan 11, 2020 · 101 comments
Closed

Resol Adapter #32

dm82m opened this issue Jan 11, 2020 · 101 comments

Comments

@dm82m
Copy link

dm82m commented Jan 11, 2020

Hey Daniel,

ich bin aktuell nicht sicher welchen Resol Adapter ich mir sinnvollerweise kaufen sollte. Ich schwanke zwischen dem VBus LAN und KM2.

Mein Szenario sieht so aus, dass ich Home Assistant einsetze und dort gerne meinen Regler auslesen würde im in Erfahrung zu bringen, wie viel Energie meine Anlage z.B. heute abgegriffen hat. Ich möchte diese Information nutzen um die Warmwasser Aufbereitung meiner Heizanlage ein- bzw. ausschalten zu können.

Ich vermute aktuell, dass ich den LAN Adapter irgendwie per curl/wget ansprechen kann und dann ein JSON zurückbekomme in dem ich verschiedene Werte (ggf. einen den ich auch brauchen kann) zurück bekomme. Was ich aber nicht finden konnte war eine Schnittstellenbeschreibung. Grundsätzlich glaube ich, dass dieser LAN Adapter auch das ist was ich brauche.

Den KM2 interpretiere ich eher als Gerät, dass mir die Daten dann ins VBus Portal schickt und mir dort eben eine Auswertung u.s.w. ermöglicht. Auch da bin ich nicht sicher ob und wie ich die dann von mir benötigten Daten sinnvoll und automatisiert wieder auslesen könnte.

Ich hoffe Du kannst mir da etwas unter die Arme greifen.

Danke und Gruß
Dirk

@danielwippermann
Copy link
Owner

Huhu Dirk!

Ich vermute aktuell, dass ich den LAN Adapter irgendwie per curl/wget ansprechen kann und dann ein JSON zurückbekomme in dem ich verschiedene Werte (ggf. einen den ich auch brauchen kann) zurück bekomme.

Nein, der VBus/LAN-Adapter ist ein reiner Signalwandler ohne eigene Protokolllogik. Um Daten aus dem VBus/LAN-Adapter zu bekommen, müsstest Du Dich jedes mal damit verbinden, für gewisse Zeit die eintreffenden Daten aufzeichnen und dekodieren und dann selber JSON erzeugen.

Das KM2 wiederum hat ein solches API, das wird auch vom Web-Interface benutzt, um das aktuell angeschlossene Gerät anzuzeigen. Und Du kannst du VBus.net-Portal-Funktionalität deaktivieren, wenn Du es nur im LAN einsetzen möchtest.

Wenn Du es aber mit VBus.net verbunden lässt, gibt es auch dafür eine API-Dokumentation, mit der man die dort abgelegten Daten wieder auslesen kann. Die Doku gibt es auf Anfrage bei RESOL.

Wenn Du noch weitere Fragen hast, immer her damit :)

Bis dann,
Daniel

@dm82m
Copy link
Author

dm82m commented Jan 13, 2020

Top Danke für die Antwort.

Dann bestelle ich mal den KM2. Wo genau bekomme ich dir API Dokumentation für den KM2 bzw. die fürs VBus Portal her?

Primär würde mich interessieren, wie und welche Daten der KM2 im LAN und ohne VBus Portal zur Verfügung stellt.

@danielwippermann
Copy link
Owner

Das KM2 stellt eine maschinenlesbare Version der aktuell empfangenen Daten unter einem Webservice zur Verfügung. Weiter unten findest Du einen gekürzten Mitschnitt aus meinem KM2.

Die authId aus der Anfrage bekommst Du durch Einloggen. Dafür musst Du eine ähnliche Anfrage wie unten dargestellt absenden, die aber als method den Wert sessionLogin und als Parameter username und password enthält. Als Antwort bekommst Du dann die authId.

Die authId ist einige Zeit gültig, aber spätestens beim Neustart von KM2 wird die ungültig und das Einloggen muss wiederholt werden.

Ich hoffe, das hilft Dir beim Umgang mit dem KM2 schon mal weiter. Die Doku zum VBus.net-API kannst Du über einen der unter https://www.vbus.net/#/help-support beschriebenen Kanälen anfordern.

Bis dann,
Daniel


Anfrage

POST http://192.168.5.217/cgi-bin/resol-webservice HTTP/1.1
Content-Type: application/json

[{
    "id": "1",
    "jsonrpc": "2.0",
    "method": "dataGetCurrentData",
    "params": {
        "authId": "..."
    }
}]

Antwort

[{
    "jsonrpc": "2.0",
    "id": "1",
    "result": {
        "headers": [
            {
                "id": "00_0010_1221_10_0100",
                "description": "Regudis H-HT [Transm. station #1]",
                "channel": 0,
                "destination_address": 16,
                "source_address": 4641,
                "protocol_version": 16,
                "command": 256,
                "info": 0,
                "destination_name": "DFA",
                "source_name": "Regudis H-HT [Transm. station #1]",
                "fields": [
                    {
                        "id": "000_1_0",
                        "name": "Übergabestation Status",
                        "unit": "",
                        "unit_code": "None"
                    },
                    {
                        "id": "001_1_0",
                        "name": "Primärkreis Stellantrieb",
                        "unit": "%",
                        "unit_code": "Percent"
                    },
                    {
                        "id": "002_2_0",
                        "name": "Primärkreis Vorlauftemperatur",
                        "unit": " °C",
                        "unit_code": "DegreesCelsius"
                    },
                    {
                        "id": "004_2_0",
                        "name": "Primärkreis Rücklauftemperatur",
                        "unit": " °C",
                        "unit_code": "DegreesCelsius"
                    },
                    {
                        "id": "006_2_0",
                        "name": "Primärkreis Rücklaufmaximaltemperatur",
                        "unit": " °C",
                        "unit_code": "DegreesCelsius"
                    },
                    {
                        "id": "008_2_0",
                        "name": "Sekundärkreis Vorlauftemperatur",
                        "unit": " °C",
                        "unit_code": "DegreesCelsius"
                    },
                    {
                        "id": "010_2_0",
                        "name": "Sekundärkreis Vorlaufsolltemperatur",
                        "unit": " °C",
                        "unit_code": "DegreesCelsius"
                    },
                    {
                        "id": "012_2_0",
                        "name": "Sekundärkreis Rücklauftemperatur",
                        "unit": " °C",
                        "unit_code": "DegreesCelsius"
                    }
                ]
            },
            {
                "id": "00_0010_1230_10_0100",
                "description": "Regudis H-HT [DHW heating #0]",
                "channel": 0,
                "destination_address": 16,
                "source_address": 4656,
                "protocol_version": 16,
                "command": 256,
                "info": 0,
                "destination_name": "DFA",
                "source_name": "Regudis H-HT [DHW heating #0]",
                "fields": [
                    {
                        "id": "000_1_0",
                        "name": "Status",
                        "unit": "",
                        "unit_code": "None"
                    },
                    {
                        "id": "002_2_0",
                        "name": "NH1",
                        "unit": " °C",
                        "unit_code": "DegreesCelsius"
                    },
                    {
                        "id": "004_2_0",
                        "name": "NH2",
                        "unit": " °C",
                        "unit_code": "DegreesCelsius"
                    },
                    {
                        "id": "008_2_0",
                        "name": "TEin",
                        "unit": " °C",
                        "unit_code": "DegreesCelsius"
                    },
                    {
                        "id": "010_2_0",
                        "name": "TAus",
                        "unit": " °C",
                        "unit_code": "DegreesCelsius"
                    },
                    {
                        "id": "001_1_0",
                        "name": "Ladepumpe",
                        "unit": "%",
                        "unit_code": "Percent"
                    },
                    {
                        "id": "006_1_0",
                        "name": "Ventil",
                        "unit": "%",
                        "unit_code": "Percent"
                    },
                    {
                        "id": "007_1_0",
                        "name": "Anforderung",
                        "unit": "%",
                        "unit_code": "Percent"
                    }
                ]
            },
            {
                "id": "00_0010_5400_10_0100",
                "description": "DeltaTherm HC [Controller]",
                "channel": 0,
                "destination_address": 16,
                "source_address": 21504,
                "protocol_version": 16,
                "command": 256,
                "info": 0,
                "destination_name": "DFA",
                "source_name": "DeltaTherm HC [Controller]",
                "fields": [
                    {
                        "id": "000_2_0",
                        "name": "Temperature sensor 1",
                        "unit": " °C",
                        "unit_code": "DegreesCelsius"
                    },
                    ...
                ]
            },
            ...
        ],
        "headerset_stats": {
            "headerset_count": 1,
            "min_timestamp": 1579238367,
            "max_timestamp": 1579238367
        },
        "headersets": [
            {
                "timestamp": 1579238367,
                "packets": [
                    {
                        "header_index": 0,
                        "timestamp": 1579238361,
                        "field_values": [
                            {
                                "field_index": 0,
                                "raw_value": 2,
                                "value": "2"
                            },
                            {
                                "field_index": 1,
                                "raw_value": 0,
                                "value": "0"
                            },
                            {
                                "field_index": 2,
                                "raw_value": -28.8,
                                "value": "-28.8"
                            },
                            {
                                "field_index": 3,
                                "raw_value": -28.8,
                                "value": "-28.8"
                            },
                            {
                                "field_index": 4,
                                "raw_value": 50,
                                "value": "50.0"
                            },
                            {
                                "field_index": 5,
                                "raw_value": 20,
                                "value": "20.0"
                            },
                            {
                                "field_index": 6,
                                "raw_value": 0,
                                "value": "0.0"
                            },
                            {
                                "field_index": 7,
                                "raw_value": -28.8,
                                "value": "-28.8"
                            }
                        ]
                    },
                    {
                        "header_index": 1,
                        "timestamp": 1579238361,
                        "field_values": [
                            {
                                "field_index": 0,
                                "raw_value": 10,
                                "value": "10"
                            },
                            {
                                "field_index": 1,
                                "raw_value": 20,
                                "value": "20.0"
                            },
                            {
                                "field_index": 2,
                                "raw_value": 999.9,
                                "value": "999.9"
                            },
                            {
                                "field_index": 3,
                                "raw_value": 40,
                                "value": "40.0"
                            },
                            {
                                "field_index": 4,
                                "raw_value": 45,
                                "value": "45.0"
                            },
                            {
                                "field_index": 5,
                                "raw_value": 0,
                                "value": "0"
                            },
                            {
                                "field_index": 6,
                                "raw_value": 0,
                                "value": "0"
                            },
                            {
                                "field_index": 7,
                                "raw_value": 0,
                                "value": "0"
                            }
                        ]
                    },
                    {
                        "header_index": 2,
                        "timestamp": 1579238362,
                        "field_values": [
                            {
                                "field_index": 0,
                                "raw_value": 19.900000000000002,
                                "value": "19.9"
                            },
                            ...
                        ]
                    },
                    ...
                ]
            }
        ]
    }
}]

@dm82m
Copy link
Author

dm82m commented Jan 18, 2020

danke soweit. ich hatte folgendes an den resol support geschieben:

Könnt ihr mir bitte die API Dokumentation zum KM2 für den Zugriff im Netzwerk sowie für den Zugriff aufs VBus Portal schicken?

Falls ihr noch extra etwas habt das beschreibt was für Daten man abgreifen kann wäre das perfekt.

die antwort hat mich dann etwas verwundert:

Leider bieten wir keine umfängliche Unterstützung, für eigene Visualisierungslösungen an. Jedoch stellt unser Softwareleiter Daniel Wippermann, privat entsprechende Informationen bereit. Unter nachfolgendem Link gelangen Sie zu den verfügbaren Informationen. Link: https://github.com/danielwippermann/resol-vbus

kannst du mir evtl. die noch offenen fragen beantworten bzw. mir die api doku schicken?

danke dir!

@danielwippermann
Copy link
Owner

Sorry für die späte Antwort. Ich habe versucht, an eine VBus.net-API-Doku zu kommen, ist mir aber bisher noch nicht gelungen.

@dm82m
Copy link
Author

dm82m commented May 6, 2020

hey daniel, ich habe mir gerade den KM2 bestellt und würde mal beginnen ihn in vbus.net zu integrieren und zu schauen welche daten da so ankommen. danach überlege ich mir dann, was ich dann rausnehme bzw. in HomeAssistant anzeigen will und dann können wir ja noch mal sprechen ob vbus.net eine API hat oder ob ich den von dir oben beschrieben weg gehen muss. grüße dirk

@dm82m
Copy link
Author

dm82m commented May 7, 2020

sessionLogin

die method heißt nur login

ich habe zwar bisher keine doku für vbus.net bekommen, ist aber auch nicht nötig, da das abgreifen des km2 über deinen weg von oben super funktioniert. ich habe jetzt die daten in HomeAssistant und bin erstmal happy! DANKE!

@danielwippermann
Copy link
Owner

Super, freut mich! Dann mach ich das Issue hier erst einmal zu, wenn Du noch Infos brauchst, öffne bitte einfach ein neues!

Happy coding!

@chiefdeputy
Copy link

chiefdeputy commented Jan 31, 2022

Hallo,
erst mal entschuldigung, dass ich hier ein altes Issue raus hole.
Ich frage mich jedoch ob der Endpunkt resol-webservice auch mit einem DL2 funktioniert?
Egal was ich für eine JSON Payload (+ Header) schicke, ich bekomme immer Text als Antwort und zwar:

product = "DL2"
serial = "xxx"
version = "2.2.4"
build = "201909120704"
name = "DL2-xxx"
features = "vbus,dl2,jobparam"

Die JSON Daten bekomme ich mit "/dlx/download/live" (und zwar ohne Anfrage Header+Payload). Jedoch hat dm82m schon ein HomeAssistant plugin geschrieben, welches ich auch nutzen möchte.

Danke!

@dm82m
Copy link
Author

dm82m commented Jan 31, 2022

genau, aber mein plugin macht nichts anderes als den km2 auf der http schnittstelle über den endpunkt resol-webservice anzusprechen, sich einzuloggen und die daten abzugreifen und diese daten dann in home assistant zur verfügung zu stellen. ob und wie ein möglicher weg für den DL2 aussieht kann ich nicht sagen, da ich das gerät nicht habe. evtl. kann @danielwippermann da helfen.

hier ist mein plugin:
https://github.com/dm82m/hass-Deltasol-KM2

@chiefdeputy
Copy link

Ja, das habe ich schon gefunden 😄
Es funktioniert nur nicht einem DL2, da der Endpunkt resol-webservice anscheinend meine JSON POSTs ignoriert:

Der Text der Antwort ist immer plain wie oben beschrieben.

@dm82m
Copy link
Author

dm82m commented Feb 8, 2022

@chiefdeputy hat das inzwischen gelöst und in mein Plugin integriert. Wir können jetzt also in Home Assistant den KM2 und den DL2/DL3 einbinden! 🥳

@ChR-iSz
Copy link

ChR-iSz commented Jun 16, 2022

Eine Kostenfrage, da mit der vbus controller ehrlich gesagt mit über 200€ zu teuer ist.

Bin selbst Entwickler. Reicht der USB Controller nicht aus ? Kostet 80€. Raspberry dran und ein Wrapper für Homeassist programmiert, bzw. Daniel seine Tools zur Datenaufbereitung nutzen... 🤷‍♂️

@chiefdeputy
Copy link

Jop, möglich. Hab einen Python Wrapper für die Tools angefangen (mangels Java Kenntnissen). Komme aus Zeitgründen nicht mehr wirklich weiter:
https://github.com/chiefdeputy/Resol-EmSimulator
Einfach forken und USB Capability dem Addon hinzufügen. Plan war das ganze via MQTT mit hass zu verbinden. Aber wie gesagt...

@hoppel118
Copy link

Hallo Leute,

ich steige gerade von FHEM zu Home Assistant um. In FHEM konnte ich den Resol VBUS/LAN Adapter direkt einbinden.

Wenn ich euch jetzt hier richtig verstehe, müsste ich mir nun einen KM2 oder DL2/DL3 besorgen, damit es auch in Home Assistant funktioniert. DL2 bzw. DL3 sind mir für meinen Anwendungsfall etwas zu übertrieben (teuer).

Bevor ich jetzt bestelle... Kann bitte nochmal jemand folgendes bestätigen:

  • Resol VBUS/LAN Adapter kann bisher noch nicht in Home Assistant eingebunden werden
  • Resol KM2 kann in Home Assistant eingebunden werden

Ich bin leider kein Entwickler. Heißt, ich habe keine Ahnung, wie ich den VBUS/LAN Adapter zum Laufen bekomme, wenn es dafür noch kein Plugin gibt. Dem entsprechend würde ich in den Apfel beißen und den KM2 kaufen.

Danke euch und Gruß Hoppel

@dm82m
Copy link
Author

dm82m commented Jan 3, 2023

Ja das ist der aktuelle Stand. @chiefdeputy hat zwar mal einen Prototyp gebaut aber der ist nicht fertig und wird aktuell auch nicht weiter entwickelt. Mit dem KM2 und meinem Plugin kommst du an Deine Daten in Home Assistant.

https://github.com/dm82m/hass-Deltasol-KM2

@ChR-iSz
Copy link

ChR-iSz commented Jan 3, 2023

Hi @hoppel118,

ich habe den VBUS USB in Home Assistant am laufen. Da @danielwippermann eine nodejs API für die Live-Daten zur Verfügung stellt kannst du Dich selbstverständlich mit Home Assistant an die Daten anknüpfen.

Da ich die USB Variante habe habe ich einen Raspberry dazwischen geschaltet.

Link: https://www.amazon.de/Resol-Schnittstellenadapter-Adapter-Solarstation-Software/dp/B083SLYF72

@dm82m
Copy link
Author

dm82m commented Jan 3, 2023

@ChR-iSz kannst du deinen Aufbau noch etwas detaillierter beschreiben?

@dm82m
Copy link
Author

dm82m commented Jan 3, 2023

Das ist auch echt heftig. Im Mai 2020 hab icu 130€ für den KM2 bezahlt. Jetzt kostet der fast das doppelte…

@ChR-iSz
Copy link

ChR-iSz commented Jan 3, 2023

Hi @dm82m,

Gerne.

Raspberry PI:

  1. Den oben genannten Resol-Schnittstellenadaper per BUS Kabel (2 Adrig) an die Deltasol.
  2. USB Kabel vom Resol-Schnittstellenadaper in einem Raspberry stecken.
  3. @danielwippermann nodejs Server starten... ( USB Device korrekt setzen ).

Home Assistant fragt bei mir die API in Punkt 3 ab, und visualisiert die Daten. Siehe Screenshots...

IMG_6083

IMG_6064

IMG_6052

@dm82m
Copy link
Author

dm82m commented Jan 3, 2023

Dann läuft Home Assistant und der nodejs Server bei dir auf unterschiedlicher Hardware?

Und mit welchem Plugin hast du die visu gemacht?

und wie hast du die datenabfrage von HA zur API gemacht?

@hoppel118
Copy link

WOW!!! Habt ihr alle darauf gewartet, dass hier jemand eine Frage stellt. :D

Nein, im Ernst, super, dass das so schnell geht. ;)

Ja das ist der aktuelle Stand. @chiefdeputy hat zwar mal einen Prototyp gebaut aber der ist nicht fertig und wird aktuell auch nicht weiter entwickelt. Mit dem KM2 und meinem Plugin kommst du an Deine Daten in Home Assistant.

https://github.com/dm82m/hass-Deltasol-KM2

Danke für die Info. Dann habe ich schonmal die Bestätigung, dass ich mit dem KM2 auf der sicheren Seite bin.

ich habe den VBUS USB in Home Assistant am laufen. Da @danielwippermann eine nodejs API für die Live-Daten zur Verfügung stellt kannst du Dich selbstverständlich mit Home Assistant an die Daten anknüpfen.

Da ich die USB Variante habe habe ich einen Raspberry dazwischen geschaltet.

Einen Raspberry wollte ich jetzt ungern noch dazwischen hängen. Meinst du, dass die nodejs API auch mit dem VBUS/LAN Adapter funktioniert? Den hätte ich ja bereits hier und könnte das ausprobieren. Bin allerdings mit Home Assistant selbst noch nicht Mal ganz in Form.

Das ist auch echt heftig. Im Mai 2020 hab icu 130€ für den KM2 bezahlt. Jetzt kostet der fast das doppelte…

Ja, Wahnsinn. Die Teile sind alle ziemlich teuer geworden.

@dm82m
Copy link
Author

dm82m commented Jan 3, 2023

Doch das geht genauso mit dem Vbus/LAN Adapter. Allerdings musst du halt alles manuell bauen analog @ChR-iSz

@chiefdeputy hatte ja angefangen mit einer Integration in Home Assistant. Dann wäre keine zusätzliche Hardware nötig.

@ChR-iSz
Copy link

ChR-iSz commented Jan 3, 2023

Da ich einen Raspberry PI 4 nutze können Home Assistant und NodeJS auch auf der selben Hardware laufen. Dann werden die Daten halt von localhost geholt.

@hoppel118
VBUS/LAN passt doch. Sehe keinen Grund warum das nicht funktionieren sollte.
Installier @danielwippermann seine nodejs Scripte (auf welcher Hardware auch immer, bzw. direkt auf Deinem HomeAssistant Server) und verbinde dich zu dem VBUS/LAN Adapter. Die IP trägst du in der node config ein...

Auf dem HomeAssistant brauchst du keine zusätzlichen Plugins. Ich kann Dir meine config nachher mal raussuchen, wie ich die Home Assistant Anbindung gemacht habe...

@hoppel118
Copy link

hoppel118 commented Jan 3, 2023

OK, danke euch. Dann probiere ich das mit dem vorhandenen VBUS/LAN Adapter erstmal aus, bevor ich in neue Hardware investiere.

Da ich einen Raspberry PI 4 nutze können Home Assistant und NodeJS auch auf der selben Hardware laufen. Dann werden die Daten halt von localhost geholt.

Ich habe einen Openmediavault Server auf dem Docker und KVM laufen. Über KVM habe ich Home Assistant OS in einer virtuellen Maschine eingerichtet.

@hoppel118 VBUS/LAN passt doch. Sehe keinen Grund warum das nicht funktionieren sollte. Installier @danielwippermann seine nodejs Scripte (auf welcher Hardware auch immer, bzw. direkt auf Deinem HomeAssistant Server) und verbinde dich zu dem VBUS/LAN Adapter. Die IP trägst du in der node config ein...

Macht es deiner Ansicht nach Sinn diesen NodeJS Server direkt in HAOS aufzusetzen? Sorry, habe gerade noch keine Vorstellung, was nun genau zu tun ist... ;)

Kannst du mir nochmal einen Link zu @danielwippermann 's nodejs Scripte schicken?

Auf dem HomeAssistant brauchst du keine zusätzlichen Plugins. Ich kann Dir meine config nachher mal raussuchen, wie ich die Home Assistant Anbindung gemacht habe...

Darüber würde ich mich sehr freuen. Danke

@hoppel118
Copy link

Kannst du mir nochmal einen Link zu @danielwippermann 's nodejs Scripte schicken?

@ChR-iSz Meinst du das hier?

https://github.com/danielwippermann/resol-vbus

Features
Discovers LAN-enabled RESOL devices on the local network

Mit dem Feature sollte mein VBUS-LAN-Adapter dann automatisch erkannt werden. Hm..., wobei..., der Adapter befindet sich in einem separaten VLAN. Aber übergangsweise könnte ich das ändern und wenn alles läuft wieder zurückschieben.

@ChR-iSz
Copy link

ChR-iSz commented Jan 3, 2023

Genau:

https://github.com/danielwippermann/resol-vbus/tree/master/examples/json-live-data-server

@hoppel118
Copy link

Genau:

https://github.com/danielwippermann/resol-vbus/tree/master/examples/json-live-data-server

OK, damit kann ich etwas anfangen. Schick mir BITTE noch deine Home Assistant config. ;)

https://github.com/danielwippermann/resol-vbus/blob/master/examples/json-live-data-server/config.js.example

Verstehe ich es richtig, dass ich die Beispieldatei dann in die config.js übernehmen kann und lediglich die beiden folgenden Parameter zu meinem VBUS-Adapter anpassen muss?

host: '192.168.13.21',
password: 'vbus',

Muss mal sehen, wann ich die Zeit dazu finde. Jetzt bin ich auf jeden Fall schonmal angefixt.

Danke euch erstmal.

Gruß Hoppel

@chiefdeputy
Copy link

chiefdeputy commented Jan 3, 2023

Am das Ganze in HassOS zum Laufen zu bringe, müsste man es als AddOn einbinden. (AddOns in HassOS sind nichts anderes als Docker Container, welche mit dem Hass Core kommunzieren.)

Damit habe ich auch angefangen, schaffe es gerade aber zeitlich nicht weiter zu machen. (Letztes Jahr nochmal Nachwuchs bekommen). Wird also noch etwas auf Eis liegen.

Um es als Custom Component direkt hin zu bekommen, bräuchte man eine native Python API für den VBus. Das gibt's leider (noch) nicht.

@danielwippermann
Copy link
Owner

danielwippermann commented Jan 4, 2023

error undefined (letzte Zeile) deutet auf einen Fehler beim starten hin.... nicht getestet von mir.

Ich glaube, das ist noch eine Falschanzeige. Da wird irgendwo logger.error(err); aufgerufen, obwohl gar kein Fehler vorliegt und err deshalb undefined ist. Das könnt ihr erstmal ignorieren und ich merze das im nächsten Update des "json-live-data-server" aus

@dm82m
Copy link
Author

dm82m commented Jan 4, 2023

@danielwippermann also ich wollte das gerade bauen; sprich meine integration so erweitern, dass ich auch das einfache format parsen kann. das problem ist jetzt: da gibt es keine einheiten. in der antwort des KM2/DL2/DL3 steht immer noch eine unit dabei. die übernehme ich entsprechend auch nach home assistant.
die daten müsstest du aber haben oder? d.h. wenn du dem json-live-data-server doch einen zweiten endpoint spendierst, dann hätten wir alle daten oder?

@dm82m
Copy link
Author

dm82m commented Jan 4, 2023

@hoppel118 falls du kein bock auf manuelle konfiguration hast probier mal meine integration:

über hacs die 0.3.0b installieren: https://github.com/dm82m/hass-Deltasol-KM2

image

und dann folgendes in deine configuration.yaml und neustarten:

logger:
  default: warn
  logs:
    custom_components.deltasol: debug

sensor:
  - platform: deltasol
    host: 127.0.0.1:3333

@ChR-iSz
Copy link

ChR-iSz commented Jan 4, 2023

die daten müsstest du aber haben oder? d.h. wenn du dem json-live-data-server doch einen zweiten endpoint spendierst, dann hätten wir alle daten oder?

Würde eher zu einem erweitern der json plädieren, a la...

{
    "id": "00_0010_7E11_10_0100_000_2_0",
    "name": "Temperature collector",
    "rawValue": 10.200000000000001,
    "unit": "...xyz..."
},

@dm82m
Copy link
Author

dm82m commented Jan 4, 2023

Würde eher zu einem erweitern der json plädieren, a la...

ja würde schon noch ein paar mehr vorteile geben mit den vollen daten. da haben wir header und field ids. wir können also mehrere teilnehmer am bus auslesen usw. wie das hier in der "leichtgewichtigen" variante ist, weiß ich nicht...

@hoppel118
Copy link

@dm82m

und dann folgendes in deine configuration.yaml und neustarten:

logger:
  default: warn
  logs:
    custom_components.deltasol: debug

sensor:
  - platform: deltasol
    host: 127.0.0.1:3333

OK, super. War gerade dabei, alles hin und her zu kopieren.

Wird dann die config.js aus /config/addons verwendet, oder woher kennt deine Integration die IP und das Passwort des vbus/lan Adapters?

@hoppel118
Copy link

Warte mal... Verstehe ich es richtig, dass ich beides (die HACS-Integration und das Addon) brauche?

@dm82m
Copy link
Author

dm82m commented Jan 4, 2023

ja absolut korrekt: das addon brauchst du, damit dein vbus/lan ausgelesen wird. die integration übernimmt dann das überführen der daten aus dem addon nach home assistant. d.h. du brauchst dann in home assistant nicht mehr diese händische konfiguration und das mapping schreiben. all das macht dann die integration für dich.

@hoppel118
Copy link

OK, das macht Sinn.

Allerdings kommt nichts an. Das Addon habe ich nun auch nochmal von 0.0.2 zu 0.0.3 geupdated. Anschließend nochmal Home Assistant neu gestartet. Es bleibt dabei. Es werden keine Geräte bzw. Entitäten angelegt.

Hier das Log aus dem Addon:

s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
--- VERSIONS ---
nodejs version: v19.3.0
npm version: 9.2.0
--- DEVICES ---
/dev/tty
/dev/tty0
/dev/tty1
/dev/tty10
/dev/tty11
/dev/tty12
/dev/tty13
/dev/tty14
/dev/tty15
/dev/tty16
/dev/tty17
/dev/tty18
/dev/tty19
/dev/tty2
/dev/tty20
/dev/tty21
/dev/tty22
/dev/tty23
/dev/tty24
/dev/tty25
/dev/tty26
/dev/tty27
/dev/tty28
/dev/tty29
/dev/tty3
/dev/tty30
/dev/tty31
/dev/tty32
/dev/tty33
/dev/tty34
/dev/tty35
/dev/tty36
/dev/tty37
/dev/tty38
/dev/tty39
/dev/tty4
/dev/tty40
/dev/tty41
/dev/tty42
/dev/tty43
/dev/tty44
/dev/tty45
/dev/tty46
/dev/tty47
/dev/tty48
/dev/tty49
/dev/tty5
/dev/tty50
/dev/tty51
/dev/tty52
/dev/tty53
/dev/tty54
/dev/tty55
/dev/tty56
/dev/tty57
/dev/tty58
/dev/tty59
/dev/tty6
/dev/tty60
/dev/tty61
/dev/tty62
/dev/tty63
/dev/tty7
/dev/tty8
/dev/tty9
/dev/ttyS0
/dev/ttyS1
/dev/ttyS2
/dev/ttyS3
/dev/ttyUSB0
--- json-live-data-server ---
debug: Starting server...
debug: Connect to VBus data source...
info: Ready to serve from the following URLs:
info:     - http://127.0.0.1:3333/api/v1/live-data (internal)
info:     - http://172.30.33.4:3333/api/v1/live-data
debug: HeaderSet complete

und hier das Supervisor Log:

23-01-04 19:53:15 INFO (MainThread) [supervisor.host.manager] Host information reload completed
23-01-04 19:57:20 INFO (SyncWorker_0) [supervisor.docker.interface] Restarting ghcr.io/home-assistant/qemux86-64-homeassistant
23-01-04 19:57:29 INFO (MainThread) [supervisor.homeassistant.core] Wait until Home Assistant is ready
23-01-04 19:57:31 INFO (MainThread) [supervisor.resolution.evaluate] Starting system evaluation with state CoreState.RUNNING
23-01-04 19:57:32 INFO (MainThread) [supervisor.resolution.evaluate] System evaluation complete
23-01-04 19:57:32 INFO (MainThread) [supervisor.store.git] Update add-on https://github.com/adamoutler/Addons repository
23-01-04 19:57:32 INFO (MainThread) [supervisor.store.git] Update add-on https://github.com/esphome/home-assistant-addon repository
23-01-04 19:57:32 INFO (MainThread) [supervisor.store.git] Update add-on https://github.com/dm82m/hassio-addons repository
23-01-04 19:57:32 INFO (MainThread) [supervisor.store.git] Update add-on https://github.com/hassio-addons/repository repository
23-01-04 19:57:32 INFO (MainThread) [supervisor.store.git] Update add-on https://github.com/home-assistant/addons repository
23-01-04 19:57:32 INFO (MainThread) [supervisor.updater] Fetching update data from https://version.home-assistant.io/stable.json
23-01-04 19:57:33 WARNING (SyncWorker_0) [supervisor.addons.validate] Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of DeskPi Pro Active Cooling
23-01-04 19:57:34 WARNING (SyncWorker_2) [supervisor.addons.validate] Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of DeskPi Pro Active Cooling
23-01-04 19:57:34 INFO (MainThread) [supervisor.store] Loading add-ons from store: 83 all - 0 new - 0 remove
23-01-04 19:57:34 INFO (MainThread) [supervisor.store] Loading add-ons from store: 83 all - 0 new - 0 remove
23-01-04 19:57:38 INFO (MainThread) [supervisor.auth] Auth request from 'core_mosquitto' for 'mqtt'
23-01-04 19:57:38 INFO (MainThread) [supervisor.auth] Home Assistant not running, checking cache
23-01-04 19:57:45 INFO (MainThread) [supervisor.homeassistant.core] Detect a running Home Assistant instance
23-01-04 20:04:34 INFO (SyncWorker_1) [supervisor.docker.addon] Starting Docker add-on a14d3924/amd64-addon-resol-vbus with version 0.0.2
23-01-04 20:07:26 INFO (SyncWorker_4) [supervisor.docker.interface] Restarting ghcr.io/home-assistant/qemux86-64-homeassistant
23-01-04 20:07:34 INFO (MainThread) [supervisor.homeassistant.core] Wait until Home Assistant is ready
23-01-04 20:07:36 INFO (MainThread) [supervisor.resolution.evaluate] Starting system evaluation with state CoreState.RUNNING
23-01-04 20:07:36 INFO (MainThread) [supervisor.resolution.evaluate] System evaluation complete
23-01-04 20:07:37 INFO (MainThread) [supervisor.store.git] Update add-on https://github.com/adamoutler/Addons repository
23-01-04 20:07:37 INFO (MainThread) [supervisor.store.git] Update add-on https://github.com/home-assistant/addons repository
23-01-04 20:07:37 INFO (MainThread) [supervisor.store.git] Update add-on https://github.com/dm82m/hassio-addons repository
23-01-04 20:07:37 INFO (MainThread) [supervisor.store.git] Update add-on https://github.com/hassio-addons/repository repository
23-01-04 20:07:37 INFO (MainThread) [supervisor.store.git] Update add-on https://github.com/esphome/home-assistant-addon repository
23-01-04 20:07:37 INFO (MainThread) [supervisor.updater] Fetching update data from https://version.home-assistant.io/stable.json
23-01-04 20:07:38 WARNING (SyncWorker_0) [supervisor.addons.validate] Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of DeskPi Pro Active Cooling
23-01-04 20:07:38 WARNING (SyncWorker_2) [supervisor.addons.validate] Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of DeskPi Pro Active Cooling
23-01-04 20:07:38 INFO (MainThread) [supervisor.store] Loading add-ons from store: 83 all - 0 new - 0 remove
23-01-04 20:07:38 INFO (MainThread) [supervisor.store] Loading add-ons from store: 83 all - 0 new - 0 remove
23-01-04 20:07:44 INFO (MainThread) [supervisor.auth] Auth request from 'core_mosquitto' for 'mqtt'
23-01-04 20:07:44 INFO (MainThread) [supervisor.auth] Home Assistant not running, checking cache
23-01-04 20:07:51 INFO (MainThread) [supervisor.homeassistant.core] Detect a running Home Assistant instance
23-01-04 20:09:45 ERROR (MainThread) [supervisor.api.ingress] Stream error with http://172.30.33.3:8099/: Cannot write to closing transport
23-01-04 20:12:36 INFO (MainThread) [supervisor.resolution.check] Starting system checks with state CoreState.RUNNING
23-01-04 20:12:36 INFO (MainThread) [supervisor.resolution.checks.base] Run check for IssueType.IPV4_CONNECTION_PROBLEM/ContextType.SYSTEM
23-01-04 20:12:36 INFO (MainThread) [supervisor.resolution.checks.base] Run check for IssueType.DNS_SERVER_IPV6_ERROR/ContextType.DNS_SERVER
23-01-04 20:12:36 INFO (MainThread) [supervisor.resolution.checks.base] Run check for IssueType.NO_CURRENT_BACKUP/ContextType.SYSTEM
23-01-04 20:12:36 INFO (MainThread) [supervisor.resolution.checks.base] Run check for IssueType.SECURITY/ContextType.CORE
23-01-04 20:12:36 INFO (MainThread) [supervisor.resolution.checks.base] Run check for IssueType.DNS_SERVER_FAILED/ContextType.DNS_SERVER
23-01-04 20:12:36 INFO (MainThread) [supervisor.resolution.checks.base] Run check for IssueType.PWNED/ContextType.ADDON
23-01-04 20:12:36 INFO (MainThread) [supervisor.resolution.checks.base] Run check for IssueType.TRUST/ContextType.SUPERVISOR
23-01-04 20:12:36 INFO (MainThread) [supervisor.resolution.checks.base] Run check for IssueType.FREE_SPACE/ContextType.SYSTEM
23-01-04 20:12:36 INFO (MainThread) [supervisor.resolution.check] System checks complete
23-01-04 20:12:36 INFO (MainThread) [supervisor.resolution.evaluate] Starting system evaluation with state CoreState.RUNNING
23-01-04 20:12:36 INFO (MainThread) [supervisor.resolution.evaluate] System evaluation complete
23-01-04 20:12:36 INFO (MainThread) [supervisor.resolution.fixup] Starting system autofix at state CoreState.RUNNING
23-01-04 20:12:36 INFO (MainThread) [supervisor.resolution.fixup] System autofix complete
23-01-04 20:13:23 INFO (MainThread) [supervisor.backups.manager] Creating new partial backup with slug b972140c
23-01-04 20:13:23 INFO (MainThread) [supervisor.backups.manager] Backing up b972140c store Add-ons
23-01-04 20:13:28 INFO (SyncWorker_0) [supervisor.docker.addon] Export image a14d3924/amd64-addon-resol-vbus to /data/tmp/tmp_q09rx5x/image.tar
23-01-04 20:13:30 INFO (SyncWorker_0) [supervisor.docker.addon] Export image a14d3924/amd64-addon-resol-vbus done
23-01-04 20:13:30 INFO (MainThread) [supervisor.addons.addon] Building backup for add-on a14d3924_resol-vbus
23-01-04 20:15:00 INFO (MainThread) [supervisor.addons.addon] Finish backup for addon a14d3924_resol-vbus
23-01-04 20:15:00 INFO (MainThread) [supervisor.backups.manager] Creating partial backup with slug b972140c completed
23-01-04 20:15:00 INFO (SyncWorker_0) [supervisor.docker.addon] Updating image a14d3924/amd64-addon-resol-vbus:0.0.2 to a14d3924/amd64-addon-resol-vbus:0.0.3
23-01-04 20:15:00 INFO (SyncWorker_0) [supervisor.docker.addon] Starting build for a14d3924/amd64-addon-resol-vbus:0.0.3
23-01-04 20:15:00 INFO (MainThread) [supervisor.homeassistant.api] Updated Home Assistant API token
23-01-04 20:16:45 INFO (SyncWorker_0) [supervisor.docker.addon] Build a14d3924/amd64-addon-resol-vbus:0.0.3 done
23-01-04 20:16:45 INFO (SyncWorker_0) [supervisor.docker.interface] Stopping addon_a14d3924_resol-vbus application
23-01-04 20:16:49 INFO (SyncWorker_0) [supervisor.docker.interface] Cleaning addon_a14d3924_resol-vbus application
23-01-04 20:16:49 INFO (MainThread) [supervisor.addons] Add-on 'a14d3924_resol-vbus' successfully updated
23-01-04 20:16:49 INFO (SyncWorker_1) [supervisor.docker.interface] Cleanup images: ['a14d3924/amd64-addon-resol-vbus:0.0.2']
23-01-04 20:16:52 INFO (SyncWorker_1) [supervisor.docker.addon] Starting Docker add-on a14d3924/amd64-addon-resol-vbus with version 0.0.3
23-01-04 20:16:52 INFO (MainThread) [supervisor.updater] Fetching update data from https://version.home-assistant.io/stable.json
23-01-04 20:16:52 INFO (MainThread) [supervisor.store.git] Update add-on https://github.com/esphome/home-assistant-addon repository
23-01-04 20:16:52 INFO (MainThread) [supervisor.store.git] Update add-on https://github.com/hassio-addons/repository repository
23-01-04 20:16:52 INFO (MainThread) [supervisor.store.git] Update add-on https://github.com/dm82m/hassio-addons repository
23-01-04 20:16:52 INFO (MainThread) [supervisor.store.git] Update add-on https://github.com/home-assistant/addons repository
23-01-04 20:16:52 INFO (MainThread) [supervisor.store.git] Update add-on https://github.com/adamoutler/Addons repository
23-01-04 20:16:55 WARNING (SyncWorker_0) [supervisor.addons.validate] Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of DeskPi Pro Active Cooling
23-01-04 20:16:56 WARNING (SyncWorker_3) [supervisor.addons.validate] Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of DeskPi Pro Active Cooling
23-01-04 20:16:56 INFO (MainThread) [supervisor.store] Loading add-ons from store: 83 all - 0 new - 0 remove
23-01-04 20:16:56 INFO (MainThread) [supervisor.store] Loading add-ons from store: 83 all - 0 new - 0 remove
23-01-04 20:17:20 INFO (SyncWorker_2) [supervisor.docker.interface] Restarting ghcr.io/home-assistant/qemux86-64-homeassistant
23-01-04 20:17:29 INFO (MainThread) [supervisor.homeassistant.core] Wait until Home Assistant is ready
23-01-04 20:17:34 INFO (MainThread) [supervisor.resolution.evaluate] Starting system evaluation with state CoreState.RUNNING
23-01-04 20:17:34 INFO (MainThread) [supervisor.resolution.evaluate] System evaluation complete
23-01-04 20:17:35 INFO (MainThread) [supervisor.updater] Fetching update data from https://version.home-assistant.io/stable.json
23-01-04 20:17:35 INFO (MainThread) [supervisor.store.git] Update add-on https://github.com/esphome/home-assistant-addon repository
23-01-04 20:17:35 INFO (MainThread) [supervisor.store.git] Update add-on https://github.com/adamoutler/Addons repository
23-01-04 20:17:35 INFO (MainThread) [supervisor.store.git] Update add-on https://github.com/home-assistant/addons repository
23-01-04 20:17:35 INFO (MainThread) [supervisor.store.git] Update add-on https://github.com/hassio-addons/repository repository
23-01-04 20:17:35 INFO (MainThread) [supervisor.store.git] Update add-on https://github.com/dm82m/hassio-addons repository
23-01-04 20:17:37 WARNING (SyncWorker_2) [supervisor.addons.validate] Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of DeskPi Pro Active Cooling
23-01-04 20:17:38 WARNING (SyncWorker_3) [supervisor.addons.validate] Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of DeskPi Pro Active Cooling
23-01-04 20:17:38 INFO (MainThread) [supervisor.store] Loading add-ons from store: 83 all - 0 new - 0 remove
23-01-04 20:17:38 INFO (MainThread) [supervisor.store] Loading add-ons from store: 83 all - 0 new - 0 remove
23-01-04 20:17:45 INFO (MainThread) [supervisor.auth] Auth request from 'core_mosquitto' for 'mqtt'
23-01-04 20:17:45 INFO (MainThread) [supervisor.auth] Home Assistant not running, checking cache
23-01-04 20:17:55 INFO (MainThread) [supervisor.homeassistant.core] Detect a running Home Assistant instance

Ideen?

@danielwippermann
Copy link
Owner

die daten müsstest du aber haben oder? d.h. wenn du dem json-live-data-server doch einen zweiten endpoint spendierst, dann hätten wir alle daten oder?

Ja, han die Infos komme ich. Ich würde vorschlagen, einen zusätzlichen Endpoint "/api/v2/live-data" zu machen, der die Daten vom V1-Endpoint um die Unit erweitert. So geht auch nix bestehendes kaputt.

@dm82m
Copy link
Author

dm82m commented Jan 4, 2023

Ideen?

alle logs vom home assistant core mit deltasol bitte. am besten hier rein: dm82m/hass-Deltasol-KM2#22 , dann lagern wir die diskussion zu meinen addons/integration dorthin aus und sprechen hier drin nur um die änderungen die uns @danielwippermann zur verfügung stellt.

Ja, han die Infos komme ich. Ich würde vorschlagen, einen zusätzlichen Endpoint "/api/v2/live-data" zu machen, der die Daten vom V1-Endpoint um die Unit erweitert. So geht auch nix bestehendes kaputt.

ja kannst machen, eilt für mich aber nicht. danke.

@hoppel118
Copy link

@ChR-iSz Mir hats jetzt noch in den Fingern gejuckt. Ich habe nun folgende Rest Konfiguration in meiner configuration.yaml angelegt:

rest:
  - resource: http://homeassistant.home.arpa:3333/api/v1/live-data
    scan_interval: 60
    sensor:
      - name: "Resol.Solarkollektor"
        value_template: '{{value_json[0].rawValue | float|round(2) }}'
        unit_of_measurement: '°C' 
        json_attributes_path: "$[0]"
        json_attributes:
          - "name"
          - "rawValue"
      - name: "Resol.Boiler_unten"
        value_template: '{{value_json[1].rawValue | float|round(2) }}'
        unit_of_measurement: '°C' 
        json_attributes_path: "$[1]"
        json_attributes:
          - "name"
          - "rawValue"
      - name: "Resol.Boiler_mitte"
        value_template: '{{value_json[2].rawValue | float|round(2) }}'
        unit_of_measurement: '°C' 
        json_attributes_path: "$[2]"
        json_attributes:
          - "name"
          - "rawValue"
      - name: "Resol.Boiler_oben"
        value_template: '{{value_json[3].rawValue | float|round(2) }}'
        unit_of_measurement: '°C' 
        json_attributes_path: "$[3]"
        json_attributes:
          - "name"
          - "rawValue"
      - name: "Resol.Sonneneinstrahlung"
        value_template: '{{value_json[12].rawValue | int }}'
        unit_of_measurement: 'W/qm' 
        json_attributes_path: "$[12]"
        json_attributes:
          - "name"
          - "rawValue"
      - name: "Resol.Impulse_1"
        value_template: '{{value_json[13].rawValue | int }}'
        json_attributes_path: "$[13]"
        json_attributes:
          - "name"
          - "rawValue"
      - name: "Resol.Impulse_2"
        value_template: '{{value_json[14].rawValue | int }}'
        json_attributes_path: "$[14]"
        json_attributes:
          - "name"
          - "rawValue"
      - name: "Resol.Sensorkabelbruch"
        value_template: '{{value_json[15].rawValue | int }}'
        json_attributes_path: "$[15]"
        json_attributes:
          - "name"
          - "rawValue"
      - name: "Resol.Sensorkurzschluss"
        value_template: '{{value_json[16].rawValue | int }}'
        json_attributes_path: "$[16]"
        json_attributes:
          - "name"
          - "rawValue"
      - name: "Resol.Sensorabnutzung"
        value_template: '{{value_json[17].rawValue | int }}'
        json_attributes_path: "$[17]"
        json_attributes:
          - "name"
          - "rawValue"
      - name: "Resol.Relais1.Solarpumpe"
        value_template: "{% if value_json[18].rawValue == 100 %} on {% else %} off {% endif %}"
        json_attributes_path: "$[18]"
        json_attributes:
          - "name"
          - "rawValue"
      - name: "Resol.Relaisabnutzung"
        value_template: '{{value_json[27].rawValue | int }}'
        json_attributes_path: "$[27]"
        json_attributes:
          - "name"
          - "rawValue"
      - name: "Resol.Fehler"
        value_template: '{{value_json[28].rawValue | int }}'
        json_attributes_path: "$[28]"
        json_attributes:
          - "name"
          - "rawValue"
      - name: "Resol.Warnung"
        value_template: '{{value_json[29].rawValue | int }}'
        json_attributes_path: "$[29]"
        json_attributes:
          - "name"
          - "rawValue"
      - name: "Resol.Controller_Version"
        value_template: '{{value_json[30].rawValue | int }}'
        json_attributes_path: "$[30]"
        json_attributes:
          - "name"
          - "rawValue"
      - name: "Resol.Systemzeit"
        value_template: '{{value_json[31].rawValue | int }}'
        json_attributes_path: "$[31]"
        json_attributes:
          - "name"
          - "rawValue"
      - name: "Resol.WMZ1_Solar_Vorlauf"
        value_template: '{{value_json[32].rawValue | float|round(2) }}'
        unit_of_measurement: '°C' 
        json_attributes_path: "$[32]"
        json_attributes:
          - "name"
          - "rawValue"
      - name: "Resol.WMZ1_Solar_Ruecklauf"
        value_template: '{{value_json[33].rawValue | float|round(2) }}'
        unit_of_measurement: '°C' 
        json_attributes_path: "$[33]"
        json_attributes:
          - "name"
          - "rawValue"
      - name: "Resol.WMZ1_Volumeflow"
        value_template: '{{value_json[34].rawValue | int }}'
        unit_of_measurement: 'l/h'
        json_attributes_path: "$[34]"
        json_attributes:
          - "name"
          - "rawValue"
      - name: "Resol.WMZ1_Heatquantity"
        value_template: '{{value_json[35].rawValue | int }}'
        unit_of_measurement: 'Wh'
        json_attributes_path: "$[35]"
        json_attributes:
          - "name"
          - "rawValue"

Die ganzen Entitäten wurden angelegt und die Werte aktualisieren sich. Perfekt, dann habe ich das jetzt auch mal gemacht.

Kann man die Entitäten jetzt eigentlich auch irgendwie in einem Gerät zusammenfügen? Oder macht das keinen Sinn? (Bin neu bei Home Assistant. ;) )

Wie hast du diese Visualisierung hinbekommen?

Folgenden interessanten/informativen Link zum Thema Rest habe ich noch gefunden:

https://www.home-assistant.io/integrations/sensor.rest/

Wahnsinn! Als ich gestern mit diesem Thema begonnen habe, konnte ich mir noch nicht vorstellen, dass ich heute schon eine funktionierende Lösung habe, nachdem es bisher noch keine Integration bzw. kein Addon für den vbus/lan Adapter gab. Jetzt habe ich eine Rest Lösung und wir arbeiten bereits an einer HACS/Addon Integration.

So macht das Spaß. ;)

Vielen Dank nochmal, Gruß Hoppel

@dm82m
Copy link
Author

dm82m commented Jan 4, 2023

Noch eine Frage @danielwippermann: wenn der vbustouch-proxy das DL Interface hat - können wir nicht einfach auch den nehmen?

@ChR-iSz
Copy link

ChR-iSz commented Jan 5, 2023

@dm82m

Ich werde die Tage mal Dein Addon testen mit dem VBus/USB device.

Hast du die USB configuration lösen können? Du kannst auch --privileged in docker verwenden. Dann sollten alle devices vom Host durchgereicht werden.

siehe hier

@dm82m
Copy link
Author

dm82m commented Jan 5, 2023

@ChR-iSz ja gerne testen. Ich reiche aktuell alle mit „uart:“ „udev:“ und „usb:“ all diese Geräte ins addon. Beim Start des Addons gebe ich alle /dev/tty* Geräte aus. Ich hoffe das hilft dir das richtige Gerät dann für deine config zu finden.

@danielwippermann
Copy link
Owner

Noch eine Frage @danielwippermann: wenn der vbustouch-proxy das DL Interface hat - können wir nicht einfach auch den nehmen?

Ja, prinzipiell schon. Mein Bauchgefühl würde das aber ungern empfehlen. Da der "vbustouch-proxy" primär für Langzeitdatenspeicherung und Cloud-Dienst-Anbindung (wie MQTT) ausgerichtet ist, hat das Beispiel einen anderen Fokus (und "Live-Daten im DLx-Format" fallen eher zufällig mit ab :) ).

Ich habe heute morgen mal den "json-live-data-server" wie diskutiert erweitert, ich denke, dass ich das Ergebnis in den nächsten Minuten pushen werde. Dann melde ich mich nochmal...

@ChR-iSz
Copy link

ChR-iSz commented Jan 5, 2023

@hoppel118

Schicke Dir später noch die Glance config für die UI Visualisierung.
Ist einfach nur ein Hintergrundbild, wo du Deine Werte (Entitäten) per x,y Koordinaten auf die Karte setzen kannst, wie bei einem Grundriss...

@dm82m
Copy link
Author

dm82m commented Jan 5, 2023

Ich habe heute morgen mal den "json-live-data-server" wie diskutiert erweitert

Heißt die Unit mit eingebaut oder heißt das km2 Interface drauf geschoben?

@danielwippermann
Copy link
Owner

Ich habe heute morgen mal den "json-live-data-server" wie diskutiert erweitert

Heißt die Unit mit eingebaut oder heißt das km2 Interface drauf geschoben?

Beides.

Der neue HTTP-Endpoint /api/v2/live-data gibt jetzt Unit-Infos mit raus:

$ curl -s http://127.0.0.1:3333/api/v2/live-data | head -n 20
[
    {
        "id": "00_0010_7E21_10_0100_000_2_0",
        "name": "Flow set temperature (mapped)",
        "rawValue": 51.300000000000004,
        "unitCode": "DegreesCelsius",
        "unitFamily": "Temperature",
        "unitText": " °C"
    },
    {
        "id": "00_0010_7E21_10_0100_002_1_0",
        "name": "Operating state",
        "rawValue": 3,
        "unitCode": "None",
        "unitFamily": null,
        "unitText": ""
    }
]

Und die beiden Endpoints /cgi-bin/get_resol_device_information und /dlx/download/download simulieren den Live-Daten-Teil des DLx-Download-APIs:

$ curl http://127.0.0.1:3333/dlx/download/download?source=current&outputType=json
{
    "headersets":[{
        "timestamp":1672896988.004,
        "packets":[{
            "header_index":0,
            "timestamp":1672896988.004,
            "field_values":[{
                "field_index":0,
                "raw_value":51.3,
                "value":"51.3"
            },{
                "field_index":1,
                "raw_value":3,
                "value":"3"
            }]
        }]
    }],
    "headerset_stats":{
        "headerset_count":1,
        "min_timestamp":1672896988.004,
        "max_timestamp":1672896988.004
    },
    "headers":[{
        "id":"00_0010_7E21_0100",
        "description":"VBus 0: DeltaSol MX [Heizkreis #1]",
        "channel":0,
        "destination_address":16,
        "source_address":32289,
        "protocol_version":16,
        "command":256,
        "info":0,
        "destination_name":"DFA",
        "source_name":"DeltaSol MX [Heizkreis #1]",
        "fields":[{
            "id":"000_2_0",
            "name":"Flow set temperature",
            "unit":" °C",
            "unit_code":"DegreesCelsius"
        },{
            "id":"002_1_0",
            "name":"Operating state",
            "unit":"",
            "unit_code":"None"
        }]
    }],
    "language":"en"
}

@danielwippermann
Copy link
Owner

Heißt die Unit mit eingebaut oder heißt das km2 Interface drauf geschoben?

Oh, moment, das KM2 benutzt ja ein anderes API... Moment...

@dm82m
Copy link
Author

dm82m commented Jan 5, 2023

nene warte, passt schon: ich binde ja aktuell das KM2 und DL2/DL3 ein. der abruf beim DL2/DL3 war bisher halt http://{self.host}/dlx/download/live aber egal. die url von dir oben mit http://{self.host}/dlx/download/download?source=current&outputType=json hab ich schon eingebaut.

wie meldet sich denn /cgi-bin/get_resol_device_information - antwortet der dl2 oder dl3? -> gefunden: dl2

@danielwippermann
Copy link
Owner

nene warte, passt schon: ich binde ja aktuell das KM2 und DL2/DL3 ein. der abruf beim DL2/DL3 war bisher halt http://{self.host}/dlx/download/live aber egal. die url von dir oben mit http://{self.host}/dlx/download/download?source=current&outputType=json hab ich schon eingebaut.

wie meldet sich denn /cgi-bin/get_resol_device_information - antwortet der dl2 oder dl3? -> gefunden: dl2

Ja, genau, weil aktuell eh nur ein VBus-Kanal unterstützt wird, dann ist DL2 einfacher :)

Ich habe die KM2-Funktionen jetzt aber auch schon vorbereitet. Habe jetzt nen Termin, danach mach ich noch die Tests fertig und push das auch noch.

Und den /dlx/download/live pack ich auch noch dazu, ist ja Copy&Paste :)

Bis später...

@dm82m
Copy link
Author

dm82m commented Jan 5, 2023

/dlx/download/live würde dann direkt das json zurückgeben oder? ich mein das wäre natürlich die perfekteste lösung, dann brauch ich noch weniger url differenzierung machen bei mir...

@danielwippermann
Copy link
Owner

Ja.

@dm82m
Copy link
Author

dm82m commented Jan 5, 2023

also @danielwippermann das funktioniert jetzt auf jeden fall schonmal so. tausend dank dir! und wenn du den /dlx/download/live noch veröffentlichen willst, nehme ich den auch gerne! :)

@danielwippermann
Copy link
Owner

So... In a9204be sind noch folgende Endpoints dazugekommen:

  • /dlx/download/live gibt nochmal direkt die Live-Daten als DLx-kompatible JSON-Struktur zurück
  • /cgi-bin/resol-webserviceemuliert zumindest die dataGetCurrentData-JSONRPC-Method, die aber auch nur die selben Daten wie /dlx/download/live zurückgibt
  • /current/current_packets.vbus gibt die Live-Daten im "VBus Recording File Format" zurück (binär)

Wenn Euch noch was fehlt oder was nicht geht, meldet Euch bitte!

Ansonsten danke Euch allen für diesen konstruktiven "Sprint", hat Spaß gemacht!

@dm82m
Copy link
Author

dm82m commented Jan 5, 2023

mega! damit haben wir jetzt alles und es läuft! danke dir @danielwippermann für diese schnellen und erfolgreichen änderungen!

  1. add-on um resol-vbus zu starten liegt hier: https://github.com/dm82m/hassio-addons - hier fehlt auf jeden fall noch dokumentation (werde ich vmtl. noch machen)
  2. integration um einen km2/dl2/dl3 direkt oder über das zuvor genannte add-on auf einem vbus-lan/vbus-usb anzusprechen ist hier: https://github.com/dm82m/hass-Deltasol-KM2 (gerade nur eine beta, aber wenn die tests laufen, dann release ich das auch als final)

@ChR-iSz wenn du das mit usb noch testen willst wäre perfekt, schreib dann einfach hier dazu: dm82m/hassio-addons#8

@hoppel118 add-on test inkl. integration test besprechen wir ja bereits hier: dm82m/hass-Deltasol-KM2#22

@dm82m
Copy link
Author

dm82m commented Mar 19, 2024

mach dafür bitte hier ein neues issue auf: https://github.com/dm82m/hassio-addons/issues/new

@ChR-iSz
Copy link

ChR-iSz commented Mar 20, 2024

Dein USB Stick wird nicht erkannt. Gib mal lsusb ein und poste uns die Ausgabe

@pogo01
Copy link

pogo01 commented Mar 21, 2024

#101

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants