[Modul] Gardena (6.0+)

Das ist aber genau der Punkt der in dem Fall leider nicht funktioniert. Entweder ich kann die Daten des Zeitstempels wirklich in eine eigene Variable legen, wenn diese schon Gardena übermittelt werden.
VariableUpdated funktioniert einfach nicht. Der Zeitpunkt wann einzelne Werte von Sensor übertragen werden sind nämlich unterschiedlich siehe oben das Bild in der App.
IP-Symcon bekommt aber eiben die Daten in einem Schwung per Websocket und schriebt demnach auch alle Daten Zeitgleich in eine Variable. Der Zeitpunkt der Aktualisierung durch den Websocket steht aber leider in keinem direkten Zusammenhang mit dem Zeitpunkt wann der Sensor das letzte mal daten gesendet hat. Die Benachrichtigung kommt schließlich vom Gateway und nicht vom Sensor. Und genau deshalb schickt ja das Gateway einen separaten Zeitstempel über die API mit, damit man eben im Zweifelfall auch sehen kann das z.B. ein einzelner Sensor einen technischen Defekt hat und nicht mehr sendet.
Die Bodenfeuchte wird zum Bespiel in einem ganz anderem Intervall vom Sensor aktualisiert als die Temperatur. Und genau das steht in der App wann das letzte mal der Sensor einen Wert geschickt hat. Und dies kann man meines Wissens auch aus den Werten die über die Gardena App kommen rausziehen.

Die Device ID in der Instanz sollte nicht editierbar sein also enabled auf false stehen, die sollte zwar angezeigt werden, wird ja aber vom Konfigurator eingetragen. Wenn da mal jemand aus Spaß oder Versehen was ändert geht dann wahrscheinlich auch nix mehr, daher sollte das Feld nur angezeigt werden aber nicht editierbar sein.

Im Debug Fenster der Instanz steht nix, nur im Debug des Websockets. Wäre vielleicht gut noch ein Debug auf Ebene der Instanz zu ergänzen, dann sieht man auch was in der Instanz ankommt und kann falls doch mal was schief läuft spezifischer auf Fehlersuche gehen.

Hier bitte, wie Du siehst werden die Daten übertragen und diese haben nicht den gleichen Zeitstempel. Daher bringt mir das auch nichts wenn ich den Zeitstempel des Zeitpunkts nutzte wann die Daten reingekommen sind. Dieser stimmt nämlich nicht mit dem Zeitpunkt der Übermittlung des Sensors überein.

Es gibt aber sicher auch noch weitere Daten die nicht über die API kommen, da kann man dann halt nichts machen.

array (
  'id' => '4172fe22-1487-466b-b475-c324434c3819',
  'type' => 'SENSOR',
  'attributes' => 
  array (
    'soilHumidity' => 
    array (
      'value' => 47,
      'timestamp' => '2021-03-23T15:32:03.697+0000',
    ),
    'soilTemperature' => 
    array (
      'value' => 7,
      'timestamp' => '2021-03-23T17:02:37.542+0000',
    ),
    'ambientTemperature' => 
    array (
      'value' => 10,
      'timestamp' => '2021-03-23T16:26:31.035+0000',
    ),
    'lightIntensity' => 
    array (
      'value' => 1009,
      'timestamp' => '2021-03-23T16:26:31.087+0000',
    ),
  ),
)

Für mich sind die Daten zumindest interssant, aber ich bin nicht alle und ich maße mir auch nicht an für andere sprechen zu wollen. Wenn müssen sich dann eben andere mal dazu äüßern.

Funktioniert nicht da die Zeitstempel nicht übereinstimmen siehe oben.

Aber was ihr natürlich machen könnt den Zeitstempel der in IP-Symcon angegeben wird für die letzte Varibalenaktualisierung entsprechend dem tatsächlichen Zeitstempel des Sensors zu modifizieren bzw. zu manipulieren. Keine Ahnung ob so was überhaupt möglich ist in IP-Symcon. Dann könnte man das wiederum über IP-Symcon interne Funktionen abrufen, weil dann der Wert mit dem der Zeitstempel übermittelt wurde übereinstimmen würde mit dem Zeitpunkt der letzten Aktualisierung.

Die Icons sind übrigens da. Ich hatte nur vergessen die Profile vor dem Update zu löschen :grinning_face_with_smiling_eyes:

paresy

Ich habe mal versucht über den Module Store zu installieren über
GARDENA smart system
da wird bei mir aber nichts gefunden.

Sorry Fehler gefunden, war ein 5.5 da wird nix angezeigt. Alles in Ordnung also.

Wird das wahrscheinlich noch was zum Release der 5.6 oder eher nicht?

Hi paresy,

ich würde das Modul gerne ausprobieren, bekomme es aber nicht hin, die 5.6 zu nutzen. Ich bin auf Docker, habe in Portainer beim Container nach "„Duplicate/Edit“ unter „Image Configuration“ das Image „symcon/symcon:5.6-79“ eingetragen. Das wurde auch umgesetzt, in der Konsole unter Info ist aber immer noch die 5.5 ausgewiesen.

Wie komme ich auf die 5.6 und kann testen?

Danke und viele Grüße…

Du kannst ja mal symcon/Symcon:ninja probieren. Aber eigentlich sollte das andere auch gehen. Von wann soll denn die 5.5 sein? Sicher dass du auf dem richtigen System warst? Wo hast du die Version geprüft?

paresy

Im Portainer wird das Image auch angezeigt. In der Konsole wird jedoch unter Lizenzinformationen, dort unter Kernel noch die 5.5 angezeigt (Datum 13.3.2021). Ein Gardena-Modul wird nicht gefunden…

Apropos: Zum Downgrade reicht als Backup wie immer die Zip vom lib-Ordner, richtig?

Danke und viele Grüße…

Richtig.

Aber dann stimmt irgendwas nicht bei dir mit Docker oder Portainer. Denn wenn du das Image korrekt wählst, sollte dich definitiv korrekt „neu“ angelegt werden. (Im Prinzip wird der Container dabei ja gelöscht und neu angelegt)

paresy

Mit der Ninja hat es nun funktioniert…

VG!

Ich habe die Water Control und den Sensor…

Zunächst vielen Dank für das Modul. Folgendes ist mir aufgefallen beim ersten testen:

Beim Öffnen und Schließen der Water Control erhalte ich jeweils folgende Fehlermeldung:

Error: Notice: Undefined variable: Minutes
   Error in Script /var/lib/symcon/modules/.store/de.symcon.gardena/Gardena Valve/module.php on Line 124
  134 in IPSLibrary/app/core/IPSLogger/IPSLogger.inc.php (call IPSLogger_Out)
   44 in IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
  124 in modules/.store/de.symcon.gardena/Gardena Valve/module.php (call IPSLogger_PhpErrorHandler)
    3 in /- (call RequestAction)

In der App muss ich zudem zunächst aus „Aktion“ herausgehen, damit von Öffnen auf Schließen und umgekehrt aktualisiert wird.

Bei Öffnungsdauer ist bei mir 5 Minuten eingestellt. Wenn ich auf Öffnen gehe, öffnet er für 30 Minuten (das ist die Dauer des letzten Programms in der Gardena-App).

So viel ad hoc, ich werde weiter testen… VG!

Noch eines:

Bei Aktion heißt es „Schließen“, wenn geschlossen ist (und umgekehrt). Das ist missverständlich, da die nächste Aktion ja „Öffnen“ wäre im geschlossenen Zustand…

Und werden die Programme aus der Gardena-App noch integriert oder muss man sich entscheiden, ob man per Gardena oder per IPS programmiert?

Viele Grüße!

Der Fehler, der beim Öffnen und Schließen auftrat, ist behoben. Bei der Aktion wird jetzt weder Öffnen noch Schließen ausgewählt, da der Status der Aktivität Variable zu entnehmen ist.
Derzeit bietet die Gardena API keine Infomationen über die internen Zeitpläne an.
Eine neue Version des Moduls ist im Store online.

Till

Prima, vielen Dank…

Aus Anwendersicht wäre es wesentlich einfacher und handlicher, wenn die „Aktion“-Variable keine String- sondern eine Bool-Variable wäre. Das sollte doch auch aus technischer Sicht kein Problem sein, oder?

Viele Grüße!

Prinzipiell wäre es möglich. Es würde aber mehr „Handarbeit“ benötigen, da die aktuelle Implementation mit den neuen String Assoziationen sehr nah an der GARDENA API liegt. Außerdem hätten wir ein Problem sobald GARDENA sich einen weiteren Zustand überlegt. Ich vermute dein Einsatzzweck ist diese im PHP Skript zu verwenden?

Wir haben für viele Dinge bereits die neuen Aktionen hinzugefügt, welche es ab der 5.6 gibt. Die kannst du in Ereignisse und im kommenden Ablaufplan sehr bequem auswählen.

Zusätzlich kannst du die Aktion bzw. Befehl über den „Befehl hinzufügen“ Button im Skript hinzufügen. Dadurch muss man sich auch die Strings nicht merken. Hilft das?

paresy

Gib es was neues wegen einer Variable wegen Gerätename und Seriennummer?
Ich nehme heute meine Bewässerung wieder in Betrieb und werde auch mal dann Tests machen zum schalten der Ventile.

Um nicht lauter einzelne Popups in der Visualisierung zu erzeugen übergebe ich das Gerät mit allen Variablen. Da fehlt mir aber eben noch der Name und die Seriennummer, damit ich diese auch im Popup angezeigt bekomme.

Ansonsten müsste ich das händisch ergänzen. Was passiert eigentlich mit selbst erstellten Variablen in einer PHP Modul Instanz bleiben die immer erhalten oder können die eventuell durch irgendeinen Umstand auch verloren gehen?

Wenn man den Gerätename verändern könnte wäre das auch sehr praktisch dann muss man nicht zwingend in die Gardena App.

Du bleiben immer erhalten. Du kannst die also problemlos bei dir anlegen.
Aktuell haben wir nicht vor die Seriennummer oder Namen vom Gerät in einer Variable anzulegen.

paresy

Danke, paresy, das hilft. Momentan bekomme ich allerdings eine Fehlermeldung bei „Befehl“ hinzufügen; ich schaue mal in Ruhe…