[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.

fred_feuerstein

#1892
ich habe seit gestern ein neues Gardena-Device. Und zwar den GARDENA smart Dual Water Control (Art. 19034-20). Also wie der normale Smart Water Control, nur eben mit 2 steuerbaren Ventilen.
Dieser wurde über autocreate direkt angelegt als "watering_computer_dual".
Dieses Model gibt es allerdings noch nicht im Modul und wenn ich manuell auf "watering_computer" umstellen habe ich zwar entsprechende Set Einträge im Device, aber es fehlt natürlich die Steuerungsmöglichkeit der 2 Ventile.
Bspw. bei Timer-Einträgen steht bei jedem Eintrag die entsprechende valve_id dabei, also entweder 1 oder 2.

Falls jemand etwas am Modul erweitern kann und möchte, gebt Bescheid, was ggfs. an weiteren Infos benötigt wird.

Ist eine Erweitung eines neuen Device-Typs nur etwas für das GardenaSmartDevice-Modul oder muss auch die GardenaSmartBridge erweitert werden?

Gruß, Fred

NEU: FHEM auf Raspberry PI 5, OS: Bookworm, mit Z-Wave RaZberry-Modul, 868CUL (WMBUS), LaCrosseCUL (Temp) und knapp 300 Devices aller Art