[Modul] Gardena (6.0+)

Da bei mir der WS Client auch öfter mal hängt, habe ich mal ein altes Skript rausgekramt und angepasst:

<?php

// Quellen: http://www.ip-symcon.de/forum/f18/socketverbindung-geschlossen-verfuegungsstehungs-statusabfrage-9348/
########################## Konfig ##############################################
$WS_Client_id = 15589; //ID von WS Client (Gardena Cloud)
$inst = IPS_GetInstance($WS_Client_id);
$Gardena_Cloud_id = 20179; //ID von Gardena Cloud

// Socket-Status: 102 offen, 104 geschlossen, 200 Fehler
########################## Konfig Ende #########################################

switch($_IPS['SENDER']){
    case 'StatusEvent':
        if($inst['InstanceStatus'] >= 200){ // Fehlerbehandlung wenn Status = Fehler
//            IPS_LogMessage("Gardena Cloud", "Status: ".$_IPS['STATUSTEXT']." (".$_IPS['STATUS'].")")
            IPSLogger_Not("Gardena Cloud", "Status: ".$_IPS['STATUSTEXT']." (".$_IPS['STATUS'].")");
            GARDENA_UpdateWebSocket($Gardena_Cloud_id);
        }
        elseif($inst['InstanceStatus'] == 102){ // wenn Clientsocket "OK"
 //           IPS_LogMessage("Gardena Cloud", "Status: ".$_IPS['STATUSTEXT']." (".$_IPS['STATUS'].")")
            IPSLogger_Not("Gardena Cloud", "Status: ".$_IPS['STATUSTEXT']." (".$_IPS['STATUS'].")");
        }
    break;
}

Das Skipt anlegen und dann im Event Handler unter Statusereignis eintragen.

Wer kein IPSLogger installiert hat, die beiden Zeilen auskommentieren und die IPS_LogMessage aktivieren.

Damit wird Gardena_UpdateWebSocket nur ausgeführt, wenn der WS Client einen Fehler meldet. Keine unnötigen Trigger, wenn nichts passiert.

Wie sich das Skript im “Offline-Fall” verhält, konnte ich jetzt noch nicht testen.

Ich hoffe auch, dass der Fehler bald behoben wird.

edit: ich konnte gerade sehen, dass das Problem wohl genau nach 2 Stunden auftritt.

Gruß Rainer

Ich reihe mich ein, zumindest ist auch genau an den Stellen (Verbindung zu Gardena und Update des WebSockets zuletzt eine Änderung passiert laut github)

Ich nutze jetzt auch erst mal ein Skript zum zurücksetzen des Sockets bis ein Fix da ist.

@Parzival schaut hier heute gleich rein :slight_smile:

paresy

1 „Gefällt mir“

Es gibt ein Update auf dem Beta Kanal. Damit sollte die Verbindung bestehen bleiben.

2 „Gefällt mir“

auch mit dem Beta Update weiterhin fast auf die Sekunde genau nach 2 Stunden wieder eine Unterbrechung.

Gruß Rainer

Aufgrund der Meldung von @erpe habe ich heute frü bei mir geprüft, mein Socket steht noch.
Den Timer von meinem Event hatte ich gstern deaktiviert, dieser setzt also nicht zurück.
Für mich sieht es also Okay aus. Ich beobachte weiter.

Gruß,
Loerdy

@erpe Bekommst du bei der Unterbrechung immer noch den „Permission Denied“ Fehler? Könntest du nochmal schauen, ob du auch wirklich das neuste Beta Update erwischt hast? Im Zweifel nochmal Symcon neu starten. Wenn es dann immer noch nicht läuft, schau mal was im Debug der Cloud Instanz landet, sobald die Verbindung unterbrochen wird.

@Parzival Wo kann ich die Betaversion erkennen?
Ich habe in meinem Skript mal “Gardena_UpdateWebSocket” auskommentiert.

Die Verbindung bricht aber immer noch nach 2h ab, wird nun aber selbst - durch das Module - repariert.
Debug vom Gardena Cloud:

woher kommen diese 2h?

zu alten Fehlermeldungen kann ich dir leider nichts sagen. Da habe ich nichts aufgezeichnet.

Die 2 Stunden sind die Laufzeit des WebSockets, den wir von Gardena bekommen. Diese Logik des selbst neu verbinden ist mit einem der vorherigen Updates kaputt gegangen. Das Log zeigt die Funktionsweise, wie sie vorgesehen ist.

1 „Gefällt mir“

OK. Dann scheint ja alles wieder richtig zu funktionieren… :+1:

Danke

1 „Gefällt mir“

Kann ebenfalls bestätigen, der Fix in der BETA funktioniert auch bei mir :slight_smile: Danke Till.