dev #97
@@ -1059,6 +1059,14 @@ sub WriteReadings {
 | 
			
		||||
                      if ( ref($v) eq 'ARRAY' );
 | 
			
		||||
 | 
			
		||||
                    #$v = encode_utf8($v);
 | 
			
		||||
                    $v = ' ' if (!defined $v);
 | 
			
		||||
                    Log3 $name, 4, "Gardena DEBUG DEBUG DEBUG stage 1 ".$decode_json->{abilities}[0]{properties}[$properties]{name} if ( $decode_json->{abilities}[0]{properties}[$properties]
 | 
			
		||||
                        {name} !~ /ethernet_status|wifi_status/ );
 | 
			
		||||
                    Log3 $name, 4, "Gardena DEBUG DEBUG DEBUG stage 2".$t if ( $decode_json->{abilities}[0]{properties}[$properties]
 | 
			
		||||
                        {name} !~ /ethernet_status|wifi_status/ );
 | 
			
		||||
                    Log3 $name, 4, "Gardena DEBUG DEBUG DEBUG stage 3".$v if ( $decode_json->{abilities}[0]{properties}[$properties]
 | 
			
		||||
                        {name} !~ /ethernet_status|wifi_status/ );
 | 
			
		||||
 | 
			
		||||
                    readingsBulkUpdateIfChanged(
 | 
			
		||||
                        $hash,
 | 
			
		||||
                        $decode_json->{abilities}[0]{properties}[$properties]
 | 
			
		||||
@@ -1315,17 +1323,16 @@ sub createHttpValueStrings {
 | 
			
		||||
        }    # park until next schedules or override
 | 
			
		||||
        elsif (defined($abilities)
 | 
			
		||||
            && defined($payload)
 | 
			
		||||
            && $abilities eq 'mower_timer' )
 | 
			
		||||
            && $abilities eq 'mower' )
 | 
			
		||||
        {
 | 
			
		||||
            my $valve_id;
 | 
			
		||||
            $method = 'PUT';
 | 
			
		||||
 | 
			
		||||
            
 | 
			
		||||
            $uri .=
 | 
			
		||||
                '/devices/'
 | 
			
		||||
              . $deviceId
 | 
			
		||||
              . '/abilities/'
 | 
			
		||||
              . $abilities
 | 
			
		||||
              . '/properties/mower_timer';
 | 
			
		||||
              . '/commands/manual_start';
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
        elsif (defined($abilities)
 | 
			
		||||
@@ -1561,7 +1568,7 @@ sub DeletePassword {
 | 
			
		||||
  ],
 | 
			
		||||
  "release_status": "stable",
 | 
			
		||||
  "license": "GPL_2",
 | 
			
		||||
  "version": "v2.6.1",
 | 
			
		||||
  "version": "v2.6.2",
 | 
			
		||||
  "author": [
 | 
			
		||||
    "Marko Oldenburg <fhemdevelopment@cooltux.net>"
 | 
			
		||||
  ],
 | 
			
		||||
 
 | 
			
		||||
@@ -72,9 +72,9 @@ use SetExtensions;
 | 
			
		||||
# try to use JSON::MaybeXS wrapper
 | 
			
		||||
#   for chance of better performance + open code
 | 
			
		||||
eval {
 | 
			
		||||
  require JSON::MaybeXS;
 | 
			
		||||
  import JSON::MaybeXS qw( decode_json encode_json );
 | 
			
		||||
  1;
 | 
			
		||||
    require JSON::MaybeXS;
 | 
			
		||||
    import JSON::MaybeXS qw( decode_json encode_json );
 | 
			
		||||
    1;
 | 
			
		||||
} or do {
 | 
			
		||||
 | 
			
		||||
    # try to use JSON wrapper
 | 
			
		||||
@@ -324,8 +324,8 @@ sub Set {
 | 
			
		||||
    elsif ( lc $cmd eq 'parkuntilnexttimer' ) {
 | 
			
		||||
        $payload = '"name":"park_until_next_timer"';
 | 
			
		||||
        if ( $mainboard_version > 10.30 ) {
 | 
			
		||||
            $payload   = '"properties":{"name":"mower_timer","value":0}';
 | 
			
		||||
            $abilities = 'mower_timer';
 | 
			
		||||
            $payload   = '"mowerTimer":0,"startingPointDistance":null,"areaId":null';
 | 
			
		||||
            $abilities = 'mower';
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    elsif ( lc $cmd eq 'startresumeschedule' ) {
 | 
			
		||||
@@ -339,13 +339,13 @@ sub Set {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    elsif ( lc $cmd eq 'startoverridetimer' ) {
 | 
			
		||||
        $payload = '"name":"start_override_timer","parameters":{"duration":'
 | 
			
		||||
          . $aArg->[0] * 60 . '}';
 | 
			
		||||
        if ( $mainboard_version > 10.30 ) {
 | 
			
		||||
            $payload = '"properties":{"name":"mower_timer","value":'
 | 
			
		||||
              . $aArg->[0] * 60 . '}';
 | 
			
		||||
            $abilities = 'mower_timer';
 | 
			
		||||
        }
 | 
			
		||||
        # $payload = '"name":"start_override_timer","parameters":{"duration":'
 | 
			
		||||
          # . $aArg->[0] * 60 . '}';
 | 
			
		||||
        # if ( $mainboard_version > 10.30 ) {
 | 
			
		||||
            $payload   = '"startingPointDistance":null,"areaId":null, "mowerTimer": '
 | 
			
		||||
              . $aArg->[0] * 60;
 | 
			
		||||
            $abilities = 'mower';
 | 
			
		||||
        # }  removed code < 10.30 api changes March 2024
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    elsif ( lc $cmd eq 'startpoint' ) {
 | 
			
		||||
@@ -617,7 +617,8 @@ sub Set {
 | 
			
		||||
 | 
			
		||||
        # all devices has abilitie to fall a sleep
 | 
			
		||||
        $list .= ' winter_mode:awake,hibernate';
 | 
			
		||||
    		return SetExtensions($hash, $list, $name, $cmd, @$aArg);
 | 
			
		||||
        return SetExtensions( $hash, $list, $name, $cmd, @$aArg );
 | 
			
		||||
 | 
			
		||||
        # return "Unknown argument $cmd, choose one of $list";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -1688,7 +1689,7 @@ sub SetPredefinedStartPoints {
 | 
			
		||||
    pump. Schedules can be disabled/enabled via fhem, defining or deleting them must be done via Gardena App or its web interface.<br>
 | 
			
		||||
</ul>
 | 
			
		||||
<br>
 | 
			
		||||
<div style="display: none">
 | 
			
		||||
<div>
 | 
			
		||||
  <a id="GardenaSmartDevice-set"></a>
 | 
			
		||||
  <li><a id="GardenaSmartDevice-set-parkUntilFurtherNotice">parkUntilFurtherNotice</a> - park mower and disable schedule</li>
 | 
			
		||||
  <li><a id="GardenaSmartDevice-set-parkUntilNextTimer">parkUntilNextTimer</a> - park mower until next schedule</li>
 | 
			
		||||
@@ -2154,7 +2155,7 @@ sub SetPredefinedStartPoints {
 | 
			
		||||
    Steckdosen-Adapter und Pumpe. Zeitpläne können über fhem pausiert/aktiviert werden, das Anlegen oder Löschen erfolgt
 | 
			
		||||
    derzeit nur über die App oder deren Web-Frontend.
 | 
			
		||||
</ul>
 | 
			
		||||
<div style="display: none">
 | 
			
		||||
<div>
 | 
			
		||||
  <a id="GardenaSmartDevice-set"></a>
 | 
			
		||||
  <li><a id="GardenaSmartDevice-set-parkUntilFurtherNotice">parkUntilFurtherNotice</a> - Parken des Mähers und Aussetzen des Zeitplans</li>
 | 
			
		||||
  <li><a id="GardenaSmartDevice-set-parkUntilNextTimer">parkUntilNextTimer</a> - Parken bis zum nächsten Start nach Zeitplan</li>
 | 
			
		||||
@@ -2683,7 +2684,7 @@ sub SetPredefinedStartPoints {
 | 
			
		||||
  ],
 | 
			
		||||
  "release_status": "stable",
 | 
			
		||||
  "license": "GPL_2",
 | 
			
		||||
  "version": "v2.6.1",
 | 
			
		||||
  "version": "v2.6.2",
 | 
			
		||||
  "author": [
 | 
			
		||||
    "Marko Oldenburg <fhemdevelopment@cooltux.net>"
 | 
			
		||||
  ],
 | 
			
		||||
 
 | 
			
		||||
@@ -1,2 +1,2 @@
 | 
			
		||||
UPD 2023-11-12_19:47:27 48890 FHEM/73_GardenaSmartBridge.pm
 | 
			
		||||
UPD 2023-11-05_21:51:38 126419 FHEM/74_GardenaSmartDevice.pm
 | 
			
		||||
UPD 2024-03-18_10:15:10 48866 FHEM/73_GardenaSmartBridge.pm
 | 
			
		||||
UPD 2024-03-17_20:57:32 126450 FHEM/74_GardenaSmartDevice.pm
 | 
			
		||||
		Reference in New Issue
	
	Block a user