mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-03-09 20:57:11 +00:00
74_AutomowerConnect: Commandref corrections, fix start up warning, improve attribute disableForIntervalls handling
git-svn-id: https://svn.fhem.de/fhem/trunk@28310 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
c70037d3d3
commit
082924de8a
@ -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'
|
||||
|
@ -498,8 +498,8 @@ __END__
|
||||
<u><b>Anforderungen</b></u>
|
||||
<br><br>
|
||||
<ul>
|
||||
<li>Für den Zugriff auf die API muss eine Application angelegt werden, im <a target="_blank" href="https://developer.husqvarnagroup.cloud/docs/get-started">Husqvarna Developer Portal</a>angelegt und mit der Automower Connect API verbunden werden.</li>
|
||||
<li>Währenddessen wird ein Application Key (client_id) und ein Application Secret (client secret) bereitgestellt. Diese sind für dieses Modul zu nutzen.</li>
|
||||
<li>Für den Zugriff auf die API muss eine Application im <a target="_blank" href="https://developer.husqvarnagroup.cloud/docs/get-started">Husqvarna Developer Portal</a> angelegt und mit der Automower Connect API verbunden werden.</li>
|
||||
<li>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.</li>
|
||||
<li>Das Modul nutzt Client Credentials als Granttype zur Authorisierung.</li>
|
||||
<br>
|
||||
</ul>
|
||||
@ -511,7 +511,7 @@ __END__
|
||||
Beispiel:<br>
|
||||
<code>define myMower AutomowerConnect 123456789012345678901234567890123456</code> Erstes Gerät: die Defaultmähernummer ist 0.<br>
|
||||
Es muss ein <b>client_secret</b> gesetzt werden. Es ist das Application Secret vom <a target="_blank" href="https://developer.husqvarnagroup.cloud/docs/get-started">Husqvarna Developer Portal</a>.<br>
|
||||
<code>set myMower <client secret></code><br>
|
||||
<code>set myMower client_secret <client secret></code><br>
|
||||
<br>
|
||||
</ul>
|
||||
<br>
|
||||
@ -537,7 +537,7 @@ __END__
|
||||
|
||||
<li><a id='AutomowerConnect-set-ResumeSchedule'>ResumeSchedule</a><br>
|
||||
<code>set <name> ResumeSchedule</code><br>
|
||||
Startet im geplanten Interval den Mäher sofort, sonst zum nächsten geplanten Zeitpunkt</li>
|
||||
Startet im geplanten Intervall den Mäher sofort, sonst zum nächsten geplanten Zeitpunkt</li>
|
||||
|
||||
<li><a id='AutomowerConnect-set-Start'>Start</a><br>
|
||||
<code>set <name> Start <number of minutes></code><br>
|
||||
@ -582,7 +582,7 @@ __END__
|
||||
|
||||
<li><a id='AutomowerConnect-set-mowerScheduleToAttribute'>mowerScheduleToAttribute</a><br>
|
||||
<code>set <name> mowerScheduleToAttribute</code><br>
|
||||
Schreibt den Mähplan ins Attribut <code>moverSchedule</code>.</li>
|
||||
Schreibt den Mähplan ins Attribut <code>mowerSchedule</code>.</li>
|
||||
|
||||
<li><a id='AutomowerConnect-set-sendScheduleFromAttributeToMower'>sendScheduleFromAttributeToMower</a><br>
|
||||
<code>set <name> sendScheduleFromAttributeToMower</code><br>
|
||||
@ -616,7 +616,7 @@ __END__
|
||||
|
||||
<li><a id='AutomowerConnect-get-MowerData'>MowerData</a><br>
|
||||
<code>get <name> MowerData</code><br>
|
||||
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. <i>device_state: connected</i> oder <i>mower_wsEvent: <status-event|positions-event|settings-event></i>.<br>
|
||||
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. <i>device_state: connected</i> oder <i>mower_wsEvent: <status-event|positions-event|settings-event></i>.<br>
|
||||
Beispiel: erzeugen des Reading <code>serialnumber</code> mit dem Hashpfad <code>$hash->{helper}{mower}{attributes}{system}{serialNumber}</code><br><br>
|
||||
<code>attr <name> userReadings serialnumber:connected {$defs{$name}->{helper}{mower}{attributes}{system}{serialNumber}}</code></li>
|
||||
|
||||
@ -668,13 +668,13 @@ __END__
|
||||
|
||||
<li><a id='AutomowerConnect-attr-mapImageCoordinatesToRegister'>mapImageCoordinatesToRegister</a><br>
|
||||
<code>attr <name> mapImageCoordinatesToRegister <upper left longitude><space><upper left latitude><line feed><lower right longitude><space><lower right latitude></code><br>
|
||||
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).<br>
|
||||
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).<br>
|
||||
Format: Zeilenweise Paare von Longitude- u. Latitudewerten getrennt durch 1 Leerzeichen. Die Zeilen werden aufgeteilt durch (<code>/\s|\R$/</code>).<br>
|
||||
Angabe der WGS84 (GPS) Koordinaten muss als Dezimalgrad erfolgen.</li>
|
||||
|
||||
<li><a id='AutomowerConnect-attr-mapImageCoordinatesUTM'>mapImageCoordinatesUTM</a><br>
|
||||
<code>attr <name> mapImageCoordinatesUTM <upper left longitude><space><upper left latitude><line feed><lower right longitude><space><lower right latitude></code><br>
|
||||
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).<br>
|
||||
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).<br>
|
||||
Format: Zeilenweise Paare von Longitude- u. Latitudewerten getrennt durch 1 Leerzeichen. Die Zeilen werden aufgeteilt durch (<code>/\s|\R$/</code>).<br>
|
||||
Die Angabe der UTM Koordinaten muss als Dezimalzahl in Meter erfolgen.<br>
|
||||
Das Attribut muss nach dem Attribut mapImageCoordinatesToRegister gesetzt werden.<br>
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user