diff --git a/fhem/CHANGED b/fhem/CHANGED
index 41ac93b09..00eeab88d 100644
--- a/fhem/CHANGED
+++ b/fhem/CHANGED
@@ -1,5 +1,6 @@
# 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
+ - feature: 74_AutomowerConnect: new events for errors related to the APIs
- bugfix: 76_SolarForecast: Illegal division by zero
- bufgix: 32_withings: improved token refresh timing
- change: 38_netatmo: improved disconnect handling on auth failure
diff --git a/fhem/FHEM/74_AutomowerConnect.pm b/fhem/FHEM/74_AutomowerConnect.pm
index dcd8bdbcf..f3533f593 100644
--- a/fhem/FHEM/74_AutomowerConnect.pm
+++ b/fhem/FHEM/74_AutomowerConnect.pm
@@ -546,6 +546,18 @@ __END__
+
+ additional Events
+
+ A List of Events generated besides readings events.
+
+ <device name>:AUTHENTIFICATION ERROR Error during Authentification.
+ <device name>:MOWERAPI ERROR Error while Connecting AutomowerConnect API.
+ <device name>:WEBSOCKET ERROR Error related to websocket connection.
+
+
+
+
Readings
-
@@ -1032,10 +1043,21 @@ __END__
attr <name> testing 1
Macht Befehle verfügbar, die mit Testing markiert sind.
-
+
+ zusätzliche Events
+
+ Eine Liste von Events zusätzlich zu den Readingsevents.
+
+ <device name>:AUTHENTIFICATION ERROR Fehler bei der Authentifizierung.
+ <device name>:MOWERAPI ERROR Fehler bei der Verbindung zur AutomowerConnect API.
+ <device name>:WEBSOCKET ERROR Fehler bei der Websocketverbindung.
+
+
+
+
Readings
diff --git a/fhem/lib/FHEM/Devices/AMConnect/Common.pm b/fhem/lib/FHEM/Devices/AMConnect/Common.pm
index 987a4fad7..cb49aeaf1 100644
--- a/fhem/lib/FHEM/Devices/AMConnect/Common.pm
+++ b/fhem/lib/FHEM/Devices/AMConnect/Common.pm
@@ -46,6 +46,7 @@ BEGIN {
AttrVal
CommandAttr
CommandDeleteReading
+ DoTrigger
FmtDateTime
FW_ME
FW_dir
@@ -808,6 +809,8 @@ sub APIAuthResponse {
RemoveInternalTimer( $hash, \&APIAuth );
InternalTimer( gettimeofday() + $hash->{helper}{retry_interval_apiauth}, \&APIAuth, $hash, 0 );
Log3 $name, 1, "$iam failed retry in $hash->{helper}{retry_interval_apiauth} seconds.";
+ DoTrigger($name, "AUTHENTICATION ERROR");
+
return undef;
}
@@ -962,12 +965,14 @@ sub getMowerResponse {
readingsSingleUpdate( $hash, 'device_state', "error statuscode $statuscode", 1 );
Log3 $name, 1, "$iam \$statuscode >$statuscode<, \$err >$err<, \$param->url $param->{url} \n\$data >$data<";
+ DoTrigger($name, "MOWERAPI ERROR");
}
RemoveInternalTimer( $hash, \&APIAuth );
InternalTimer( gettimeofday() + $hash->{helper}{retry_interval_getmower}, \&APIAuth, $hash, 0 );
Log3 $name, 1, "$iam failed retry in $hash->{helper}{retry_interval_getmower} seconds.";
+
return undef;
}
@@ -1092,6 +1097,8 @@ sub getMowerResponseWs {
readingsSingleUpdate( $hash, 'device_state', "additional Polling error statuscode $statuscode", 1 );
Log3 $name, 1, "$iam \$statuscode [$statuscode]\n\$err [$err],\n \$data [$data] \n\$param->url $param->{url}";
+ DoTrigger($name, "MOWERAPI ERROR");
+
}
@@ -1540,7 +1547,7 @@ sub Attr {
readingsSingleUpdate( $hash,'device_state','disabled',1);
RemoveInternalTimer( $hash );
- DevIo_CloseDev( $hash ) if ( DevIo_IsOpen( $hash ) );
+ DevIo_CloseDev( $hash );
DevIo_setStates( $hash, "closed" );
Log3 $name, 3, "$iam $cmd $attrName disabled";
@@ -2982,7 +2989,10 @@ sub wsCb {
my $type = $hash->{TYPE};
my $iam = "$type $name wsCb:";
my $l = $hash->{devioLoglevel};
- Log3 $name, ( $l ? $l : 1 ), "$iam failed with error: $error" if( $error );
+ if( $error ){
+ Log3 $name, ( $l ? $l : 1 ), "$iam failed with error: $error";
+ DoTrigger($name, "WEBSOCKET ERROR");
+ }
return undef;
}