[73_GardenaSmartBridge, 74_GardenaSmartDevice] - Module für Gardena Smart System

Begonnen von CoolTux, 05 August 2017, 23:17:06

Vorheriges Thema - Nächstes Thema

BOFH

Zitat von: Spook112 am 04 Dezember 2025, 16:37:57Hi liebe Gemeinde der Gardena Nutzer,
Bei mir wird seit neuestem (kann  nicht genau sagen wie lange schon - ist mir heute das erste mal aufgefallen) im Status meines Gardena Smart Devices folgende Meldung angezeigt
Zitatsmart.gardena.com: Verbindungsaufbau abgelehnt (111)

Hat jemand eine Erklärung woher das kommt, bzw was die Ursache dafür sein könnte ?

Ist das generell noch ein Problem? Logins noch aktuell ?


Zitat von: StefanG am 17 April 2026, 19:51:46Hallo!

Als neuer Gardena-Benutzer hätte ich folgende Fragen zum Modul:
* Anscheinend wird unabhängig vom Attribut "interval" ein 180-Sekunden-Updateintervall verwendet, wie man auch am Interval "Gardena_TIME" sieht. Lässt sich das verkürzen?
* Bei meinem Mäher (Gardena Smart Sileno Sense 400) funktionieren weder die Befehle "parkUntilFurtherNotice", noch "parkUntilNextTimer", noch "startResumeSchedule", aber "startOverrideTimer" sehr wohl. Bei "startOverrideTimer" wird als state kurz "the command is processed" ausgegeben und der Befehl innerhalb von ein paar Sekunden ausgeführt (auch in der Gardena-App ersichtlich). Bei den anderen Befehlen wird 3 Minuten lang "send command to gardena cloud" ausgegeben, aber der Befehl ignoriert.
* Die Readings sind (abgesehen vom 180-Sekunden-Intervall) aktuell, d.h. werden korrekt gelesen.

Freue mich über jedes Feedback dazu. Danke vorab!



- 180 sekunden ist der kleinste wert der gesetzt werden kann,sollte. Gardena blockt dich, wenn du zu oft Daten abrufst.
- interessant wäre was smart.gardena.com für deinen mäher an befehle sendet. hast du denn Zeitpläne ?
RasPi 4
ZWave.me ZME_UZB (Fibaro Auge Gen.2)/ HM-USB2 (Thermostat | Hutschienen Relais | 1-/2fach Schalter) / Enigma2 / PhilipsTV / Philips HUE (GO|Bulb|Stripe (plus)) / Somfy IO Rollos / BOSCH HSG636XS6 / SONOS (P1, P3, P5 2.Gen, SUB, Bar)

hhhdg

Mir ist heute aufgefallen, dass die Readings valve-valves_connected und valve-valves_master_config mit Werten wie ARRAY(<random number>) mit jedem Update überschrieben wird.
Offensichtlich wurden ic24-valves_connected und ic24-valves_master_config umbenannt - seit 23.9.2025 kommen diese Werte.
Anbei ein Patch, der die Änderung im Datenstrom abwärtskompatibel aber mit Priorität auf der alten Benennung umsetzt. D.h. solange die alten Readings nicht gelöscht sind, gelten diese. Man kann also testen, ob die neuen Readings kommen und anschließend die alten von Hand löschen.
--- 74_GardenaSmartDevice.pm.r28833    2026-06-29 23:23:20.871224969 +0200
+++ 74_GardenaSmartDevice.pm    2026-06-30 00:31:46.406571790 +0200
@@ -587,20 +587,20 @@
 
        $list .=
 'closeAllValves:noArg resetValveErrors:noArg stopScheduleValve:select,'
-          . ReadingsVal( $name, 'ic24-valves_connected', '1' )
+          . ( ReadingsVal( $name, 'ic24-valves_connected', '' ) || ReadingsVal( $name, 'valve-valves_connected', '1' ) )
          . ' resumeScheduleValve:select,'
-          . ReadingsVal( $name, 'ic24-valves_connected', '1' )
+          . ( ReadingsVal( $name, 'ic24-valves_connected', '' ) || ReadingsVal( $name, 'valve-valves_connected', '1' ) )
          if ( AttrVal( $name, 'model', 'unknown' ) eq 'ic24' );
 
        foreach my $valve (
-            split( ',', ReadingsVal( $name, 'ic24-valves_connected', '1' ) ) )
+            split( ',', ( ReadingsVal( $name, 'ic24-valves_connected', '' ) || ReadingsVal( $name, 'valve-valves_connected', '1' ) ) ) )
        {
            $list .= ' manualDurationValve' . $valve . ':slider,1,1,90 '
              if ( AttrVal( $name, 'model', 'unknown' ) eq 'ic24' );
        }
 
        foreach my $valve (
-            split( ',', ReadingsVal( $name, 'ic24-valves_connected', '1' ) ) )
+            split( ',', ( ReadingsVal( $name, 'ic24-valves_connected', '' ) || ReadingsVal( $name, 'valve-valves_connected', '1' ) ) ) )
        {
            $list .= ' cancelOverrideValve' . $valve . ':noArg '
              if ( AttrVal( $name, 'model', 'unknown' ) eq 'ic24' );
@@ -758,6 +758,10 @@
                    . $propertie->{name} ne 'ic24-valves_connected'
                    && $decode_json->{abilities}[$abilities]{name} . '-'
                    . $propertie->{name} ne 'ic24-valves_master_config'
+                    && $decode_json->{abilities}[$abilities]{name} . '-'
+                    . $propertie->{name} ne 'valve-valves_connected'
+                    && $decode_json->{abilities}[$abilities]{name} . '-'
+                    . $propertie->{name} ne 'valve-valves_master_config'
                    && (  $decode_json->{abilities}[$abilities]{name} . '-'
                        . $propertie->{name} ) !~ /scheduling-timeslot_state_\d/
                    && ref( $propertie->{value} ) ne "HASH"
@@ -828,6 +832,26 @@
                    && $decode_json->{abilities}[$abilities]{name} . '-'
                    . $propertie->{name} eq 'ic24-valves_master_config' );
 
+                readingsBulkUpdateIfChanged(
+                    $hash,
+                    $decode_json->{abilities}[$abilities]{name} . '-'
+                      . $propertie->{name},
+                    join( ',', @{ $propertie->{value} } )
+                  )
+                  if ( defined( $propertie->{value} )
+                    && $decode_json->{abilities}[$abilities]{name} . '-'
+                    . $propertie->{name} eq 'valve-valves_connected' );
+
+                readingsBulkUpdateIfChanged(
+                    $hash,
+                    $decode_json->{abilities}[$abilities]{name} . '-'
+                      . $propertie->{name},
+                    join( ',', @{ $propertie->{value} } )
+                  )
+                  if ( defined( $propertie->{value} )
+                    && $decode_json->{abilities}[$abilities]{name} . '-'
+                    . $propertie->{name} eq 'valve-valves_master_config' );
+
                if ( ref( $propertie->{value} ) eq "HASH" ) {
                    my $sub_state = 0;
                    my $sub_value = 0;
@@ -1190,7 +1214,8 @@
        my $error_type        = 'ok';
        my @valves_connected =
          AttrVal( $name, 'model', 'unknown' ) eq 'ic24'
-          ? split( ',', ReadingsVal( $name, 'ic24-valves_connected', '' ) )
+          ? split( ',', ( ReadingsVal( $name, 'ic24-valves_connected', '' )
+                      || ReadingsVal( $name, 'valve-valves_connected', '1' ) ) )
          : '1';
 
        $has_schedule = 1
@@ -1975,8 +2000,8 @@
        <li>firmware-firmware_status - firmware status </li>
        <li>firmware-firmware_upload_progress - progress indicator of firmware update</li>
        <li>firmware-inclusion_status - inclusion status</li>       
-        <li>ic24-valves_connected - connected valves (comma separated)</li>
-        <li>ic24-valves_master_config - master valve (only if defined in Gardena app)</li>
+        <li>[ic24|valve]-valves_connected - connected valves (comma separated)</li>
+        <li>[ic24|valve]-valves_master_config - master valve (only if defined in Gardena app)</li>
        <li>radio-quality - percentage of the radio quality</li>
        <li>radio-state - radio state (bad/poor/good/undefined)</li> 
        <li>scheduling-scheduled_watering_end - next schedule ending time</li>
@@ -2442,8 +2467,8 @@
        <li>firmware-firmware_status - Firmware Status </li>
        <li>firmware-firmware_upload_progress - Firmwareupdatestatus in Prozent</li>
        <li>firmware-inclusion_status - Einbindungsstatus</li>       
-        <li>ic24-valves_connected - Verbundene Ventile (ID, kommagetrennt)</li>
-        <li>ic24-valves_master_config - Masterventil (nur, wenn in Gardena-App definiert)</li>
+        <li>[ic24|valve]-valves_connected - Verbundene Ventile (ID, kommagetrennt)</li>
+        <li>[ic24|valve]-valves_master_config - Masterventil (nur, wenn in Gardena-App definiert)</li>
        <li>radio-quality - Indikator f&uuml;r die Funkverbindung in Prozent</li>
        <li>radio-state - Verbindungsqualit&auml;t (schlecht/schwach/gut/Undefiniert)</li> 
        <li>scheduling-scheduled_watering_end - Endzeit des n&auml;chsten Zeitplans</li>

Wenn von anderen ebenfalls positiv getestet, würde ich mich freuen, wenn das offiziell ins Repository kommt.