diff --git a/fhem/CHANGED b/fhem/CHANGED
index 7884e38ae..632ad14cf 100644
--- a/fhem/CHANGED
+++ b/fhem/CHANGED
@@ -1,5 +1,7 @@
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
# Do not insert empty lines here, update check depends on it.
+ - bugfix: 74_AutomowerConnect: Commandref corrections, fix start up warning
+ improve disableForIntervalls handling
- bugfix: 36_Shelly: store newkeys in helper after init
- feature: 36_Shelly: Add Gen3 Mini devices (fw gen2 compatibility)
Roller devices: use 'set ... pos' equivalent to 'pct'
diff --git a/fhem/FHEM/74_AutomowerConnect.pm b/fhem/FHEM/74_AutomowerConnect.pm
index 8bd03fbf6..e85dc282c 100644
--- a/fhem/FHEM/74_AutomowerConnect.pm
+++ b/fhem/FHEM/74_AutomowerConnect.pm
@@ -498,8 +498,8 @@ __END__
Anforderungen
- - Für den Zugriff auf die API muss eine Application angelegt werden, im Husqvarna Developer Portalangelegt und mit der Automower Connect API verbunden werden.
- - Währenddessen wird ein Application Key (client_id) und ein Application Secret (client secret) bereitgestellt. Diese sind für dieses Modul zu nutzen.
+ - Für den Zugriff auf die API muss eine Application im Husqvarna Developer Portal angelegt und mit der Automower Connect API verbunden werden.
+ - Währenddessen wird ein Application Key (client_id) und ein Application Secret (client secret) bereitgestellt. Diese Angaben sind im Zusammenhang mit der Definition eines Gerätes erforderlich.
- Das Modul nutzt Client Credentials als Granttype zur Authorisierung.
@@ -511,7 +511,7 @@ __END__
Beispiel:
define myMower AutomowerConnect 123456789012345678901234567890123456
Erstes Gerät: die Defaultmähernummer ist 0.
Es muss ein client_secret gesetzt werden. Es ist das Application Secret vom Husqvarna Developer Portal.
- set myMower <client secret>
+ set myMower client_secret <client secret>
@@ -537,7 +537,7 @@ __END__
ResumeSchedule
set <name> ResumeSchedule
- Startet im geplanten Interval den Mäher sofort, sonst zum nächsten geplanten Zeitpunkt
+ Startet im geplanten Intervall den Mäher sofort, sonst zum nächsten geplanten Zeitpunkt
Start
set <name> Start <number of minutes>
@@ -582,7 +582,7 @@ __END__
mowerScheduleToAttribute
set <name> mowerScheduleToAttribute
- Schreibt den Mähplan ins Attribut moverSchedule
.
+ Schreibt den Mähplan ins Attribut mowerSchedule
.
sendScheduleFromAttributeToMower
set <name> sendScheduleFromAttributeToMower
@@ -616,7 +616,7 @@ __END__
MowerData
get <name> MowerData
- Listet alle Daten des Mähers einschließlich Hashpfad auf ausgenommen das Positonsarray. Der Hashpfad kann zur Erzeugung von userReadings genutzt werden, getriggert wird durch e.g. device_state: connected oder mower_wsEvent: <status-event|positions-event|settings-event>.
+ Listet alle Daten des Mähers einschließlich Hashpfad auf, ausgenommen das Positonsarray. Der Hashpfad kann zur Erzeugung von userReadings genutzt werden, getriggert wird durch e.g. device_state: connected oder mower_wsEvent: <status-event|positions-event|settings-event>.
Beispiel: erzeugen des Reading serialnumber
mit dem Hashpfad $hash->{helper}{mower}{attributes}{system}{serialNumber}
attr <name> userReadings serialnumber:connected {$defs{$name}->{helper}{mower}{attributes}{system}{serialNumber}}
@@ -668,13 +668,13 @@ __END__
mapImageCoordinatesToRegister
attr <name> mapImageCoordinatesToRegister <upper left longitude><space><upper left latitude><line feed><lower right longitude><space><lower right latitude>
- Obere linke und untere rechte Ecke der Fläche auf der Erde, die durch das Bild dargestellt wird um das Bild auf der Fläche zu registrieren (oder einzupassen).
+ Obere linke und untere rechte Ecke der Fläche auf der Erde, die durch das Bild dargestellt wird, um das Bild auf der Fläche zu registrieren (oder einzupassen).
Format: Zeilenweise Paare von Longitude- u. Latitudewerten getrennt durch 1 Leerzeichen. Die Zeilen werden aufgeteilt durch (/\s|\R$/
).
Angabe der WGS84 (GPS) Koordinaten muss als Dezimalgrad erfolgen.
mapImageCoordinatesUTM
attr <name> mapImageCoordinatesUTM <upper left longitude><space><upper left latitude><line feed><lower right longitude><space><lower right latitude>
- Obere linke und untere rechte Ecke der Fläche auf der Erde, die durch das Bild dargestellt wird um das Bild auf der Fläche zu registrieren (oder einzupassen).
+ Obere linke und untere rechte Ecke der Fläche auf der Erde, die durch das Bild dargestellt wird, um das Bild auf der Fläche zu registrieren (oder einzupassen).
Format: Zeilenweise Paare von Longitude- u. Latitudewerten getrennt durch 1 Leerzeichen. Die Zeilen werden aufgeteilt durch (/\s|\R$/
).
Die Angabe der UTM Koordinaten muss als Dezimalzahl in Meter erfolgen.
Das Attribut muss nach dem Attribut mapImageCoordinatesToRegister gesetzt werden.
diff --git a/fhem/lib/FHEM/Devices/AMConnect/Common.pm b/fhem/lib/FHEM/Devices/AMConnect/Common.pm
index ad318dae4..911f3216f 100644
--- a/fhem/lib/FHEM/Devices/AMConnect/Common.pm
+++ b/fhem/lib/FHEM/Devices/AMConnect/Common.pm
@@ -457,7 +457,7 @@ sub FW_detailFn {
my ($FW_wname, $name, $room, $pageHash) = @_; # pageHash is set for summaryFn.
my $hash = $defs{$name};
my $type = $hash->{TYPE};
- return '' if( AttrVal($name, 'disable', 0) || !AttrVal($name, 'showMap', 1) );
+ return '' if( AttrVal($name, 'disable', 0) || !AttrVal($name, 'showMap', 1) || !$::init_done );
my $img = "$FW_ME/$type/$name/map";
my $zoom=AttrVal( $name,"mapImageZoom", 0.7 );
@@ -633,9 +633,18 @@ sub APIAuth {
my $type = $hash->{TYPE};
my $iam = "$type $name APIAuth:";
- if( IsDisabled( $name ) ) {
+ if ( IsDisabled( $name ) ) {
+
+ if ( IsDisabled( $name ) == 1 and ReadingsVal( $name, 'device_state', '' ) ne 'disabled' ) {
+
+ readingsSingleUpdate( $hash, 'device_state', 'disabled', 1 );
+
+ } elsif ( IsDisabled( $name ) == 2 and ReadingsVal( $name, 'device_state', '' ) ne 'temporarily disabled' ) {
+
+ readingsSingleUpdate( $hash, 'device_state', 'temporarily disabled', 1 );
+
+ }
- readingsSingleUpdate( $hash, 'device_state', 'temporarily disabled', 1 ) if ( ReadingsVal( $name, 'device_state', '' ) !~ /disabled/ );
RemoveInternalTimer( $hash );
InternalTimer( gettimeofday() + $hash->{helper}{retry_interval_apiauth}, \&APIAuth, $hash, 0 );
return undef;
@@ -1323,6 +1332,7 @@ sub Attr {
my $hash = $defs{$name};
my $type = $hash->{TYPE};
my $iam = "$type $name Attr:";
+
##########
if( $attrName eq "disable" ) {
if( $cmd eq "set" and $attrVal eq "1" ) {
@@ -2600,6 +2610,17 @@ sub FmtDateTimeGMT {
sub wsKeepAlive {
my ($hash) = @_;
+ my $name = $hash->{NAME};
+
+ if ( IsDisabled( $name ) == 2 ) {
+
+ RemoveInternalTimer( $hash );
+ DevIo_CloseDev( $hash ) if ( DevIo_IsOpen( $hash ) );
+ DevIo_setStates( $hash, "closed" );
+ InternalTimer( gettimeofday() + 1, \&APIAuth, $hash, 0 );
+
+ }
+
RemoveInternalTimer( $hash, \&wsKeepAlive);
DevIo_Ping($hash);
InternalTimer(gettimeofday() + $hash->{helper}{interval_ping}, \&wsKeepAlive, $hash, 0);