Vitoconnect - Verbesserte Version

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

Vorheriges Thema - Nächstes Thema

stefanru

Danke, das schaue ich mir auf jeden fall mal an.

Schönes Wochenende,
Stefan

jemu75

Hallo Stefan,

ich wollte nochmal ein kurzes Feedback geben. Bei mir sind heute zeitweise nochmal Fehler im log aufgetaucht.

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.

Hast du einen Tipp, wie ich dem Problem noch besser auf den Grund gehen kann?

Grüße
Jens  :)

Schlimbo

Hallo Stefan,

vielen Dank noch mal für die Überarbeitung des Moduls und das einchecken ins SVN.

Das Passwort und APIkey Löschen hat noch nicht funktioniert, da $kName nicht gesetzt wird.
Ich habe es bei mir jetzt mal abgeändert, so funktioniert es:
#####################################################################################################################
# verschlüsselte Werte löschen
#####################################################################################################################
sub DeleteKeyValue {
    my ($hash,$kName) = @_;    # Übergabe-Parameter
    my $name = $hash->{NAME};

    Log3( $name, 5,$name." - called function Delete()" );

    my $index = $hash->{TYPE}."_".$hash->{NAME}."_passwd";
    setKeyValue( $index, undef );
    my $index = $hash->{TYPE}."_".$hash->{NAME}."_apiKey";
    setKeyValue( $index, undef );

    return;
}

Was mir noch aufgefallen ist (war glaube ich auch schon bei dem alten Modul):
Das Reading heating.controller.serial.value hat bei mir nur eine reihe an Replacement Character.
heating.controller.serial.value  ����������������in der resource_**.json sieht es so aus:
    {
      "feature": "heating.controller.serial",
      "gatewayId": "********",
      "deviceId": "0",
      "timestamp": "2025-02-05T13:08:27.006Z",
      "isEnabled": true,
      "isReady": true,
      "apiVersion": 1,
      "uri": "https://api.viessmann.com/iot/v2/features/installations/******/gateways/*******1/devices/0/features/heating.controller.serial",
      "properties": {
        "value": {
          "type": "string",
          "value": "����������������"
        }
      },
      "commands": {}
    },
Scheint als schon von der API so zu kommen, Ist das bei euch auch so?

Viele Grüße
Schlimbo

Schlimbo

In der Viessmann API Doku habe ich gerade gesehen, dass es auch eine Datenbank der Fehlercodes gibt:
https://documentation.viessmann.com/service-documents/v3#service-documents_List_Errors_From_Database

eine komplette Liste kann mit
https://api.viessmann.com/service-documents/v3/error-database?materialNumber=7733738&countryCode=DE&languageCode=de
abgerufen werden.

oder nur einen einzelnen error code mit:
https://api.viessmann.com/service-documents/v3/error-database?materialNumber=7733738&errorCode=c2&countryCode=DE&languageCode=de

Die materialNumber sind die ersten 7 Stellen der Seriennummer (device.serial).

Über das Modul bekommt man im Reading "device.messages.errors.raw.entries" den Fehler Code z.b.:
"customer, a0, warning, 2025-02-03T17:25:19.000Z"

Es wäre super, wenn das Modul bei vorhandenem "Error-Code" die Fehlermeldungen in Klartext anzeigen könnte.


stefanru

Hi,
bin gerade in Urlaub. Schaue mir das alles an wenn ich zurück bin. Fehlercodes könnte ich nachschlagen und abspeichern.
Könnte man auch in einem ErrorLast Reading speichern so dass der letzte Fehler erhalten bleibt.
Die Steuerzeichen habe ich in meinem json nicht gesehen.
Über den Communication Error muss ich mal Nachdenke und Nachlesen. Kann es sein dass du wirklich kurzzeitig die Verbindung verlierst?

Viele Grüße,
Stefan