Vitoconnect - Verbesserte Version

Begonnen von stefanru, 14 Dezember 2024, 23:32:17

Vorheriges Thema - Nächstes Thema

jemu75

Hallo,

ich bekomme seit einem Neustart meiner Heizung jetzt auch die Fehlermeldung "Device not found: Optolink prüfen"
Bei Neustart von Fhem ist kurz zu sehen, dass der Login an der API funktioniert. Aber danach bleibt dieser Fehler.

stefanru

Hi jemu75,

schick mir bitte mal alle deine am Device gesetzten Attribute und bitte auch die gw.json Datei.
Sollte sie nicht aktuell sein mach bitte ein set logResponseOnce.
Sag mir bitte auch mal was du unter set selectDevice zur Auswahl hast.

Da bin ich ja gespannt ob bei dir auch das Attribut vitoconnect_device umgefallen ist.

Danke und Gruß,
Stefan

jemu75

Hi Stefan,

vielen Dank erstmal für die schnelle Rückmeldung. Habe eben gesehen, dass mein FHEM-Log seit gestern mit unzähligen Einträgen vollgelaufen ist, da das Modul scheinbar sehr viele API-Anfragen gestellt hat. Seit heute Mittag meldet die API auch, dass die Anzahl der Anfragen überschritten ist.
2025.02.06 13:06:29 1: vitoconnect - Device not found: Optolink prüfen!
2025.02.06 13:08:18 1: vitoconnect - Anzahl der möglichen API Calls in überschritten!

Anbei erstmal ein List von meinem Device
Internals:
   DEF        xxx@xxx.de pw 120
   FUUID      xxx
   FVERSION   98_vitoconnect.pm:v0.6.3-s29620/2025-02-04
   NAME       vitoconnect
   NR         374
   Redirect_URI http://localhost:4200/
   STATE      Anzahl der möglichen API Calls in überschritten!
   TYPE       vitoconnect
   apiKey     xxx
   counter    0
   eventCount 5848
   intervall  120
   login      ok
   refresh_token xxx
   timeout    15
   user       info@jateam.de
   HELPER:
     PACKAGE    main
     VERSION    0.6.3
     VERSION_API unused
     VERSION_CTZ unused
     VERSION_ErrCodes unused
     VERSION_SMUtils 1.28.3
   READINGS:
   
Attributes:
   alias      Vitodens 343-F
   event-on-change-reading Soll_Temperatur,Solar_Sensor_Temperatur_Kollektor,Solar_Sensor_Temperatur_WW,WW-Isttemperatur,HK1-Vorlauftemperatur,Brenner_1_Modulation,Brenner_1_Starts,Brenner_1_aktiv,state
   group      Heizung
   room       HAR
   userReadings Soll_Temperatur {if(ReadingsVal("$name","HK1-Solltemperatur_reduziert_aktiv", 0) eq 1) {return ReadingsVal("$name","HK1-Solltemperatur_reduziert", 0)} else {return ReadingsVal("$name","HK1-Solltemperatur_normal", 0)}}
   vitoconnect_gw_readings 1
   vitoconnect_serial xxx

jemu75

Ach, vergessen.  ;D
Wo finde ich denn die gw.json?

stefanru

#94
Ok da fehlt die istallationID.

Eine serial hast du gesetzt, da steht nicht in echt xxx, oder?

Ich hätte erwartet das er die installationID von alleine füllt.
Da schaue ich nochmal im Coding was passiert wenn nur serial aber keine installationID gesetzt ist.
Ich schaue auch warum er da Runden dreht, sollte er nicht und die API Calls nicht aufbrauchen wenn er eh in Fehler geht.

Mach mal bitte ein set selectDevice und schicke dann nochmal die Attribute.
Die gw.json ist im fhem log Verzeichniss.

P.S.:
Sehr seltsam, er sollte die Attribut vitoconnect_installationID automatisch in deinem Fall erzeugen und laufen.
Ich werde deine Situation versuchen nachzustellen.

Auf jedenfall solltest du dein Problem lösen können sobald vitoconnect_installationID gesetzt ist.
Das sollte wenn es jetzt nicht automatisch geht mit einem set selectDevice passieren.
Falls das auch nicht geht kannst du die installationID im gw.json finden und manuell reinschreiben.

Deine API Calls werden heute Nacht um 12 bzw. 1 Uhr zurückgesetzt.
Danach sollte dann alles gehen sobald eine vitoconnect_installationID gesetzt ist.


Gruß,
Stefan


jemu75

Hallo Stefan,

ich hatte alle persönlichen Daten mit "xxx" ersetzt. An den Stellen waren (hoffentlich) korrekte Werte.
Anbei die gw.json

In dem List hatte ich noch das unterschlagen:
devices:
     7555115604618101:
       gatewayType Lancard
       installationId 4127
       version    1.2.12.0

Ich hoffe das hilft erstmal weiter  ;)

Beste Grüße
Jens :)

stefanru

#96
Wow, ja das hilft sehr, danke!

Deine InstallationID ist tatsächlich 4-stellig! Die kenne ich viel länger.
Ich prüfe beim Setzen von vitoconnect_installationID auf mindestens 5 Stellen und werfe einen Fehler, wenn sie kürzer ist.
Beim automatischen Setzen aus dem Coding wurde der Fehler nicht abgefangen.
Der Fehler an sich plant einen neuen Zyklus ein.
Das Coding lief aber weiter und führte im weiteren Verlauf zu einem weiteren Fehler wegen der fehlenden InstallationID, was zum Einplanen eines zweiten Zyklus führte.
Somit die vielen Timer und API-Calls.

Ich habe die Prüfung nun auf 2-stellige InstallationIDs entschärft, das Fehlerhandling repariert und es sollte nun alles klappen.
Bitte starte nach dem Update FHEM neu, damit alle Timer verschwinden.
Da sind sicher viele bei dir am Laufen.

Eine Frage in eigener Sache:
Als Gateway-Typ steht bei dir "Lancard".
Ist das eine Vitocal mit so einer ganz neuen LAN-Karte oder etwas Älteres, da die InstallationID wirklich sehr klein ist im Vergleich zu denen, die ich kenne.
Was für eine Anlage hast du?

Die neue Version ist schon im Git und wird morgen per Update in FHEM verfügbar sein.

Sorry für die Unannehmlichkeiten und die aufgebrauchten API Calls.
Mit so einer kurzen installationID hatte ich einfach nicht gerechnet.
Wie gesagt nachdem du die neue Version hast und durchgestartet sollte er im normalen Rythmus anfragen.
Deine API Calls werden für den Tag aufgebraucht sein, aber ab 12 bzw. 1 Uhr nachts sollte es dann wieder gehen.

Viele Grüße,
Stefan

jemu75

Hallo Stefan,

ich habe das Device einmal neu angelegt (dann "set passwort", dann "set apiKey") und danach update (+shutdown restart) gemacht.

jetzt sieht das list wie folgt aus: (email, apikey und refreshtoken habe ich hier im Post "ge-xxxt")
Internals:
   DEF        xxx@xxx.xx fakePassword 120
   FUUID      67a50988-f33f-b88d-0b0c-50293093ad8c460c
   FVERSION   98_vitoconnect.pm:v0.7.0-s29627/2025-02-06
   NAME       vitodens
   NR         447
   Redirect_URI http://localhost:4200/
   STATE      unbekannter Fehler, bitte den Entwickler informieren!
   TYPE       vitoconnect
   apiKey     xxx
   counter    0
   eventCount 7
   intervall  120
   login      ok
   refresh_token xxx
   selectedDevice 7555115604618101
   timeout    15
   user       xxx@xxx.de
   HELPER:
     PACKAGE    main
     VERSION    0.7.0
     VERSION_API unused
     VERSION_CTZ unused
     VERSION_ErrCodes unused
     VERSION_SMUtils 1.28.3
   READINGS:
     2025-02-07 10:05:45   state           unbekannter Fehler, bitte den Entwickler informieren!
   devices:
     7555115604618101:
       gatewayType Lancard
       installationId 4127
       version    1.2.12.0
Attributes:
   alias      Vitodens 343-F
   group      Heizung
   room       HAR
   vitoconnect_installationID 4127
   vitoconnect_serial 7555115604618101

stefanru

Hi jemu75,

das sieht aus wie erwartet, vitoconnect_installationID und vitoconnect_serial sind gesetzt.
Damit wird die Anfrage eigentlich richtig gestellt.
Könntest du mal Verbose hochstellen und mir die Ausgabe schicken?

Ich schaue mal in welchem Fall er in "unbekannter Fehler, bitte den Entwickler informieren!" hinein läuft.
Melde mich gleich wieder.

Gruß,
Stefan

stefanru

Ok, schau erstmal ins FHEM log.
Nach der Zeile "unbekannter Fehler, bitte den Entwickler informieren!"
Muss es eine weitere Zeile geben mit den Rückgabe Werten der API.
Da sollten wir erkennen was der API nicht passt.

Gruß,
Stefan

jemu75

aktuell sieht das log wie folgt aus
2025.02.07 10:07:45 1: vitodens - unbekannter Fehler: Bitte den Entwickler informieren!
2025.02.07 10:07:45 1: vitodens - statusCode: 400 errorType: DEVICE_COMMUNICATION_ERROR message:  error:
2025.02.07 10:09:46 1: vitodens - unbekannter Fehler: Bitte den Entwickler informieren!
2025.02.07 10:09:46 1: vitodens - statusCode: 400 errorType: DEVICE_COMMUNICATION_ERROR message:  error:
2025.02.07 10:11:46 1: vitodens - unbekannter Fehler: Bitte den Entwickler informieren!
2025.02.07 10:11:46 1: vitodens - statusCode: 400 errorType: DEVICE_COMMUNICATION_ERROR message:  error:
2025.02.07 10:13:46 1: vitodens - unbekannter Fehler: Bitte den Entwickler informieren!
2025.02.07 10:13:46 1: vitodens - statusCode: 400 errorType: DEVICE_COMMUNICATION_ERROR message:  error:
2025.02.07 10:15:47 1: vitodens - unbekannter Fehler: Bitte den Entwickler informieren!
2025.02.07 10:15:47 1: vitodens - statusCode: 400 errorType: DEVICE_COMMUNICATION_ERROR message:  error:
2025.02.07 10:17:47 1: vitodens - unbekannter Fehler: Bitte den Entwickler informieren!
2025.02.07 10:17:47 1: vitodens - statusCode: 400 errorType: DEVICE_COMMUNICATION_ERROR message:  error:
2025.02.07 10:19:48 1: vitodens - unbekannter Fehler: Bitte den Entwickler informieren!
2025.02.07 10:19:48 1: vitodens - statusCode: 400 errorType: DEVICE_COMMUNICATION_ERROR message:  error:
2025.02.07 10:21:48 1: vitodens - unbekannter Fehler: Bitte den Entwickler informieren!
2025.02.07 10:21:48 1: vitodens - statusCode: 400 errorType: DEVICE_COMMUNICATION_ERROR message:  error:
2025.02.07 10:23:49 1: vitodens - unbekannter Fehler: Bitte den Entwickler informieren!
2025.02.07 10:23:49 1: vitodens - statusCode: 400 errorType: DEVICE_COMMUNICATION_ERROR message:  error:
2025.02.07 10:25:49 1: vitodens - unbekannter Fehler: Bitte den Entwickler informieren!
2025.02.07 10:25:49 1: vitodens - statusCode: 400 errorType: DEVICE_COMMUNICATION_ERROR message:  error:
2025.02.07 10:27:50 1: vitodens - unbekannter Fehler: Bitte den Entwickler informieren!
2025.02.07 10:27:50 1: vitodens - statusCode: 400 errorType: DEVICE_COMMUNICATION_ERROR message:  error:
2025.02.07 10:29:50 1: vitodens - unbekannter Fehler: Bitte den Entwickler informieren!
2025.02.07 10:29:50 1: vitodens - statusCode: 400 errorType: DEVICE_COMMUNICATION_ERROR message:  error:
2025.02.07 10:31:50 1: vitodens - unbekannter Fehler: Bitte den Entwickler informieren!
2025.02.07 10:31:50 1: vitodens - statusCode: 400 errorType: DEVICE_COMMUNICATION_ERROR message:  error:
2025.02.07 10:33:51 1: vitodens - unbekannter Fehler: Bitte den Entwickler informieren!
2025.02.07 10:33:51 1: vitodens - statusCode: 400 errorType: DEVICE_COMMUNICATION_ERROR message:  error:
2025.02.07 10:35:51 1: vitodens - unbekannter Fehler: Bitte den Entwickler informieren!
2025.02.07 10:35:51 1: vitodens - statusCode: 400 errorType: DEVICE_COMMUNICATION_ERROR message:  error:
2025.02.07 10:37:52 1: vitodens - unbekannter Fehler: Bitte den Entwickler informieren!
2025.02.07 10:37:52 1: vitodens - statusCode: 400 errorType: DEVICE_COMMUNICATION_ERROR message:  error:
2025.02.07 10:39:52 1: vitodens - unbekannter Fehler: Bitte den Entwickler informieren!
2025.02.07 10:39:52 1: vitodens - statusCode: 400 errorType: DEVICE_COMMUNICATION_ERROR message:  error:
2025.02.07 10:41:52 1: vitodens - unbekannter Fehler: Bitte den Entwickler informieren!
2025.02.07 10:41:52 1: vitodens - statusCode: 400 errorType: DEVICE_COMMUNICATION_ERROR message:  error:
2025.02.07 10:43:53 1: PERL WARNING: Use of uninitialized value $a[1] in subtraction (-) at ./FHEM/99_Utils.pm line 21.
2025.02.07 10:43:53 1: PERL WARNING: Use of uninitialized value in subroutine entry at ./FHEM/99_Utils.pm line 21.

stefanru

#101
Ok,

jetzt wird es aber wild.
Die API scheint diesen Fehler auszuspucken.

Eine Idee wäre das irgendwie ein falsches Device verwendet wird. Vielleicht ist das bei so einem LAN Modul anders aufgebaut.
Kannst du bitte ein logRespnseOnce ausführen und mir alle .json Dateien aus dem FHEM Log Verzeichnis schicken?
Device ist per Standard 0.
Sollte es bei dir anders sein müssen kann man das per vitoconnect_device setzen.

Was sagt deine Anlage, ist sie verbunden mit Wifi oder LAN und hat sie Verbindung zu Viessmann?
Geht denn bei dir die ViCare App?
Wie ist da deine Anlage aufgebaut?

Du kannst auch gerne mal Verbose 5 einschalten und mir das log schicken.
Eventuell kann ich dann noch genau sehen welcher API Call das meldet.

Um einen Fehler im FHEM Modul auszuschließen kannst du eventuell nochmal mit einer alten Version des Moduls testen?
Ich würde dort den selben Fehler erwarten.


Gruß,
Stefan


jemu75

#102
Hi Stefan,

manchmal ist ne kurze Pause gut. Wollte eben nach dem Mittag das logReponseOnce machen und siehe da, meine Device ist wieder mit der API verbunden.  :D

Ich bin dir noch eine Antwort von gestern schuldig.
Ich habe eine Vitodens 343-F mit LAN-Modul (eingebaut 2016) hier stehen. Also nicht "ganz neu" ;)

Vielen Dank auf jeden Fall, dass Du dich hier so engagierst und super schnell reagiert hast. Ich finde es auch gut, dass Du das Modul weiterentwickelst.

Beste Grüße
Jens :)

stefanru

#103
Hi Jens,

puh, das ist gut.

Super, dass es jetzt geht und wir den Fehler mit der zu kurzen InstallationID und dem Fehlerhandling beheben konnten.
So wird das Modul immer robuster.
Den Fehler "DEVICE_COMMUNICATION_ERROR" nachdem alles gepasst hatte und der sich selbst geheilt hat verstehe ich aber nicht.
Vielleicht ein kurzzeitiges Problem mit der API.

Eventuell werde ich noch ein paar mehr Infos ins Device speichern, sodass ich beim List direkt sehen kann, was los ist, ohne nach gw.json fragen zu müssen.

Das gehe ich für eine nächste Version an.
Falls weitere Erweiterungswünsche bestehen, gerne melden.

P.S.: Was hast du da für ein cooles FHEM Design? FhemAPP, hatte ich noch gar nicht auf dem Schirm, schaue ich mir an.
Vielen Dank nochmal für deine Hilfe beim Finden der Bugs.

Viele Grüße,
Stefan

jemu75

Hi Stefan,

ich nutze FHEMApp als Frontend.

siehe auch:
Github bzw. auch hier im Forum unter dem Bereich Frontends.

Beste Grüße und einen schönen Start ins Wochenende!
Jens  :)