AutomowerConnect: Unterschied zwischen den Versionen

Aus FHEMWiki
Zur Navigation springen Zur Suche springen
(→‎Tablet-UI/FTUI Version 2: Widget aus dem SVN)
 
(38 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Baustelle}}
{{Infobox Modul|
{{Infobox Modul|
|ModPurpose=Steuerung eines Husqvarna Mähroboter mit Connect Modul und Host für weitere Husqvarna Mähroboter
|ModPurpose=Steuerung eines Husqvarna Mähroboters mit Connect Modul
|ModType=d
|ModType=d
|ModForumArea=Sonstige Systeme
|ModForumArea=Sonstige Systeme
|ModTechName=75_AutomowerConnectDevice.pm 74_AutomowerConnect.pm
|ModTechName=74_AutomowerConnect.pm
|ModOwner=Ellert|ModFTopic=131661.0|ModCmdRef=AutomowerConnect AutomowerConnectDevice}}
|ModOwner=Ellert|ModFTopic=131661|ModCmdRef=AutomowerConnect}}
[[Datei:AutomowerConnectSymbol.svg|links|71x71px]]
[[Datei:AutomowerConnectSymbol.svg|links|71x71px]]
'''AutomowerConnect''' ist ein Modul zur Steuerung eines  Husqvarna Mähroboter mit Connect Modul (SIM) über Husqvarnas OpenAPI und dient als Host für weitere Husqvarna Mähroboter.
'''AutomowerConnect''' ist ein Modul zur Steuerung eines  Husqvarna Mähroboters mit Connect Modul (SIM) über Husqvarnas OpenAPI.


'''AutomowerConnectDevice''' ist ein Modul zur Steuerung weiterer  Husqvarna Mähroboter mit Connect Modul (SIM), wenn sie unter dem gleichen Account registriert sind. Das Modul erstellt Client-Geräte und benutzt ein Gerät des AutomowerConnect Moduls als Host.
Eine vollständige Beschreibung der Module enthält die Befehlsreferenz [https://commandref.fhem.de/commandref_DE.html#AutomowerConnect AutomowerConnect].


Eine vollständige Beschreibung der Module enthält die Befehlsreferenz [https://commandref.fhem.de/commandref_DE.html#AutomowerConnect AutomowerConnect] und [https://commandref.fhem.de/commandref_DE.html#AutomowerConnectDevice AutomowerConnectDevice].
Die Forenbeiträge sind unter {{Link2Forum|LinkText=74_AutomowerConnect, Husqvarnas OpenAPI |Topic=131661|Message=1258321}} zu finden.


Die Forenbeiträge sind unter {{Link2Forum|Area=Sonstige Systeme |Topic=131661.0 |LinkText=[Neue Module] 74_AutomowerConnect, 75_AutomowerConnectDevice, Husqvarnas OpenAPI }} zu finden.
== Eigenschaften ==
== Eigenschaften ==
* Dieses Modul etabliert eine Kommunikation zwischen der Husqvarna Cloud und FHEM, um einen Husqvarna Automower zu steuern, der mit einem Connect Modul (SIM) betrieben wird.
* Dieses Modul etabliert eine Kommunikation zwischen der Husqvarna Cloud und FHEM, um einen Husqvarna Automower zu steuern, der mit einem Connect Modul (SIM) betrieben wird.
* Es arbeitet als Device für einen Mähroboter und übernimmt die Rolle als Host für zusätzliche in der API registrierte Mähroboter.
* Es arbeitet als Device für einen Mähroboter. Für zusätzliche in der API registrierte Mähroboter ist für jeden Mäher ein extra Appilcation Key mit Application Secret zu verwenden.
* Zusätzliche Mähroboter sollten mit dem Modul AutomowerConnectDevice definiert werden. Die weiteren Erläuterungen treffen auch auf das Modul AutomowerConnectDevice zu, wenn es sich nicht um Host Eigenschaften handelt.
* Der Pfad des Mähroboters wird in der Detailansicht des FHEMWEB Frontends angezeigt.
* Der Pfad des Mähroboters wird in der Detailansicht des FHEMWEB Frontends angezeigt.
* Im Gegensatz zur Smartphone App können mehr als die 50 letzten Wegpunkte angezeigt werden, zu einer möglichen Kontrolle der Mähbereichsabdeckung.
* Im Gegensatz zur Smartphone App können mehr als die 50 letzten Wegpunkte angezeigt werden, zu einer möglichen Kontrolle der Mähbereichsabdeckung.
Zeile 27: Zeile 22:
* Die Karte muss als Rasterbild im webp, png oder jpg Format vorliegen.
* Die Karte muss als Rasterbild im webp, png oder jpg Format vorliegen.
* Es ist möglich alles was die API anbietet zu steuern, z.B. Mähplan, Scheinwerfer, Schnitthöhe und Aktionen wie, Start, Pause, Parken usw.
* Es ist möglich alles was die API anbietet zu steuern, z.B. Mähplan, Scheinwerfer, Schnitthöhe und Aktionen wie, Start, Pause, Parken usw.
* Die letzten und vorletzten Daten aus der API sind im Gerätehash gespeichert, eine Weiterverarbeitung ist daher möglich.
* Die letzten aus der API sind im Gerätehash gespeichert, eine Weiterverarbeitung ist daher möglich.
* Berechnung statistischer Daten (Geschwindigkeit im letzten Interval; gefahrene Strecke und übermähte Fläche für den aktuellen Tag, die aktuelle Woche, sowie für den letzten Tag und die letzte Woche.
* Berechnung statistischer Daten (Geschwindigkeit; gefahrene Strecke und übermähte Fläche für den aktuellen Tag, die aktuelle Woche, sowie für den letzten Tag und die letzte Woche.
 
* Es können eigene Zonen definiert werden.
== Grenzen der Husqvarna Automower Connect Open-API ==
* Die Schnitthöhe kann je Zone vorgegeben werden. Sie wird automatisch eingestellt, wenn der Mäher sich in der Zone befindet.
 
* Maximal 1 Request pro Sekunde und Application Key <ref>[https://developer.husqvarnagroup.cloud/apis/automower-connect-api#readme Automower Connect API Readme]</ref>.
* Maximal 10 000 Requests pro Monat und Application Key <ref>[https://developer.husqvarnagroup.cloud/apis/automower-connect-api#readme Automower Connect API Readme]</ref>.
* Der Mäher sendet seine Daten nur alle 10 Minuten, um den Datenverkehr zu begrenzen und Batterie zu sparen <ref>[https://developer.husqvarnagroup.cloud/apis/automower-connect-api#websocket Automower Connect API Websocket]</ref>.
* Daraus ergibt sich ein empfohlenes Abfrageinterval von 600 Sekunden, das führt zu ca. 4500<ref>genau 6*24*31</ref> Abfragen im Monat plus gesendete Befehle.


== Anforderungen ==
== Anforderungen ==
* Für den Zugriff auf die API muss eine Application angelegt werden, im [https://developer.husqvarnagroup.cloud/docs/get-started Husqvarna Developer Portal: Get Started].
* Für den Zugriff auf die API muss eine Application angelegt werden, im [https://developer.husqvarnagroup.cloud/docs/get-started Husqvarna Developer Portal: Get Started].
* Währenddessen wird ein Application Key (client_id) und ein Application Secret (client secret) bereitgestellt. Diese sind für dieses Modul zu nutzen.
* Währenddessen wird ein Application Key (client_id) und ein Application Secret (client secret) bereitgestellt. Diese sind für dieses Modul zu nutzen.
* Das Modul verwendet Client Credentials als Granttype zur Authentifizierung, die Redirect URL wird für diesen Authentifizierungstyp nicht benötigt (ggf. localhost (http://127.0.0.1) eintragen).
* Das Modul verwendet Client Credentials als Granttype zur Authentifizierung, die Redirect URL wird für diesen Authentifizierungstyp nicht benötigt (ggf. localhost (http://127.0.0.1) eintragen).


== Bedeutung der Werte des Reading state ==
== Bedeutung der Werte des Reading device_state ==
 
* <code>defined</code> Das Gerät wurde erfolgreich definiert, z.B. nach dem es erzeugt wurde oder nach einem Neustart.
* <code>defined</code> Das Gerät wurde erfolgreich definiert, z.B. nach dem es erzeugt wurde oder nach einem Neustart.
* <code>authentification</code> Das Gerät leitet die Authentifizierung ein und fordert ein Access Token an.
* <code>authentification</code> Das Gerät leitet die Authentifizierung ein und fordert ein Access Token an.
* <code>authenticated</code> Das Gerät wurde authentifiziert und hat ein Access Token erhalten und die Daten werden das erste Mal nach der Authentifizierung aus der API gelesen.
* <code>authenticated</code> Das Gerät wurde authentifiziert und hat ein Access Token erhalten und die Daten werden das erste Mal nach der Authentifizierung aus der API gelesen.
* <code>update</code> Das Gerät erneuert die Daten aus der API. Wann die Daten in der API zuletzt geändert wurden ist am Zeitstempel <code>status_Timestamp</code> abzulesen. <code>status_TimestampOld</code> zeigt die Änderungszeit im vorletzten Intervall an, sind beide Zeiten gleich oder <code>status_TimestampDiff</code> ist 0, gab es in den API-Daten keine Änderung.
* <code>update</code> Das Gerät erneuert die Daten aus der API. Wann die Daten in der API zuletzt geändert wurden ist am Zeitstempel <code>status_Timestamp</code> abzulesen. <code>status_TimestampDiff</code> zeigt die Zeitspanne zwischen den letzten beiden Statusänderungen an.
* <code>connected</code> Alles ist in Ordnung, es werden keine Abfragen ausgeführt. Nur in diesem Zustand können Befehle gesendet werden. Es erzeugt jedes Intervall ein Event, wenn die Daten über die API erfolgreich aus der Husqvarna Cloud geholt wurden. AutomowerConnectDevice wird durch diese Events getriggert.
* <code>connected</code> Alles ist in Ordnung. Nur in diesem Zustand können Befehle gesendet werden.
* <code>disabled</code> Das Gerät ist inaktiv. Es werden keine Befehle gesendet und keine Daten über die API geholt.
* <code>disabled</code> Das Gerät ist inaktiv. Es werden keine Befehle gesendet und keine Daten über die API geholt.
* <code>initialized</code> Das Gerät ist aktiv und beginnt zu arbeiten.
* <code>initialized</code> Das Gerät ist aktiv und beginnt zu arbeiten.
Zeile 55: Zeile 43:


== Erstellung einer Karte mit Hintergrundbild, Grundstücksgrenze, Mähbereich und zurückgelegtem Pfad des Mähroboters. ==
== Erstellung einer Karte mit Hintergrundbild, Grundstücksgrenze, Mähbereich und zurückgelegtem Pfad des Mähroboters. ==
Der Mähroboter liefert regelmäßig einen GPS-Datensatz von seinem Standort auf der Erde. Dieser GEO-Datensatz je ein Wert für die Longitude (Längengrad) und die Latitude (Breitengrad), ist nach WGS84 als Dezimalgrad angegeben. Damit ein GEO-Datensatz auf einem Bereich des Frontends dargestellt werden kann, muss eine Verbindung zwischen einer rechteckigen Fläche auf dem Frontend und einer rechteckigen Fläche auf der Erde in der auch jeder GEO-Datensatz liegen wird, hergestellt werden. Das entspricht der Registrierung in der digitalen Bildverarbeitung.
Der Mähroboter liefert regelmäßig einen GPS-Datensatz von seinem Standort auf der Erde. Dieser GEO-Datensatz je ein Wert für die Longitude (Längengrad) und die Latitude (Breitengrad), ist nach WGS84 als Dezimalgrad angegeben. Damit ein GEO-Datensatz auf einem Bereich des Frontends dargestellt werden kann, muss eine Verbindung zwischen einer rechteckigen Fläche auf dem Frontend und einer rechteckigen Fläche auf der Erde in der auch jeder GEO-Datensatz liegen wird, hergestellt werden. Das entspricht der Registrierung in der digitalen Bildverarbeitung.


Zeile 93: Zeile 80:


=== Grenzpunkte der Grundstücksgrenze ===
=== Grenzpunkte der Grundstücksgrenze ===
Die Darstellung der Grundstücksgrenze dient zur besseren Ermittlung der Mähbereichsgrenze. Wenn die Mähbereichsgrenze in Google Earth zur Koordinatenermittlung eingezeichnet wird, dann ist die Darstellung der Grundstücksgrenze eine Hilfe zur Orientierung. Die Grundstücksgrenzen können über die [https://geoportal.de/Anwendungen/Geoportale%20der%20L%C3%A4nder.html GEO-Portale der Länder] ermittelt werden. Je nach Ausgestaltung der Portale können an den Grenzpunkten Markierungen angebracht werden und dort die Koordinaten abgelesen werden oder kopiert werden. Die Koordinaten dieser Punkte können dann in das Attribut <code>propertyLimits</code> übernommen werden, teilweise Zentimeter genau. Und die ermittelte Grenzpunkte können in eine kml-Datei eingetragen werden und so die Grenze exakt in Google Earth dargestellt werden.
=== Aufbau der Kartendarstellung ===
Beim Laden der Detailansicht werden die mapDesignAttributes übertragen, die Ladestationskoordinaten, die Grundstücksgrenzkoordinaten, die Mähbereichsgrenzkoordinaten und die Koordinaten des bereits vorhanden Mäherpfades.
Wenn es neue Positionsdaten oder eine Fehlermeldung gibt werden nur diese Positionsdaten oder Fehlerdaten zur Aktualisierung der Karte übertragen.
Die Skalierung der GPS Daten auf die Bildgröße erfolgt mit den zum jeweiligen Darstellungszeitpunkt im Modul vorliegenden Umrechnungsfaktoren.
=== Zusammenspiel der zur Registrierung, Skalierung und Positionierung genutzten Attribute ===
Als Koordinaten der Ladestation wird zuerst die Mitte Deutschlands angenommen, wenn es Koordinaten des Mähers in der Ladestation gibt, dann wird der Mittelwert verwendet. Falls aber das Attribut für die Ladestationskoordinaten gesetzt ist, dann wird die Ladestation mit diesen Koordinaten angezeigt. Die berechnete Position der Ladestation verändert sich nur, wenn die Detailansicht neu geladen wird.
Wenn die Bildgröße <code>mapImageWidthHeight</code> nicht angegeben ist, wird '350 650' verwendet.
Wenn <code>mapImageCoordinatesToRegister</code> nicht angegeben ist, werden die Extremwerte der vorhandenen Positionsdaten genutzt.


Die Darstellung der Grundstücksgrenze dient zur besseren Ermittlung der Mähbereichsgrenze. Wenn die Mähbereichsgrenze in Google Earth zur Koordinatenermittlung eingezeichnet wird, dann ist die Darstellung der Grundstücksgrenze eine Hilfe zur Orientierung. Die Grundstücksgrenzen können über die [https://geoportal.de/Anwendungen/Geoportale%20der%20L%C3%A4nder.html GEO-Portale der Länder] ermittelt werden. Je nach Ausgestaltung der Portale können an den Grenzpunkten Markierungen angebracht werden und dort die Koordinaten abgelesen werden oder kopiert werden. Die Koordinaten dieser Punkte können dann in das Attribut <code>propertyLimits</code> übernommen werden, teilweise Zentimeter genau. Und die ermittelte Grenzpunkte können in eine kml-Datei eingetragen werden und so die Grenze exakt in Google Earth dargestellt werden.
Wenn <code>scaleToMeterXY</code> nicht angegeben ist, dann wird die Skalierung verwendet, die in der Mitte Deutschlands gilt (67425, 108886).
 
Wenn <code>mapImageCoordinatesUTM</code> angegeben wird und vorher <code>mapImageCoordinatesToRegister</code> angegeben wurde dann wird <code>scaleToMeterXY</code> für die Lage des Mähbereiches berechnet.


== Statistische Daten ermitteln ==
== Statistische Daten ermitteln ==
[[Datei:Koordinatentransformation Grad in Meter.png|rand|rechts|445x445px|Koordinatentransformaton auf der Webseite vom GDZ des BKG ]]
[[Datei:Koordinatentransformation Grad in Meter.png|rand|rechts|445x445px|Koordinatentransformaton auf der Webseite vom GDZ des BKG ]]
Damit statistische Daten, wie Streckenlänge, überfahrene Fläche und Geschwindigkeit berechnet werden können, muss eine Umrechnung der GEO-Daten von Grad in Meter erfolgen. Da die Erde ein Elipsoid ist, ist der Umfang der Erde vom Standort abhängig. Da ein Grad immer 1/360 des Umfangs ist und der Umfang vom Standort abhängt, hängt auch der Umrechnungsfaktor Meter pro Grad vom Standort ab. Deshalb muss ein Umrechnungsfaktor immer für den bestimmten Standort als Differenzenquotient berechnet werden und kann dann dort bei den kleinen Streckenlängen eines Mähbereiches ohne nennenswerten Fehler als konstant angenommen werden. Die Berechnung führt das Modul durch. Als Grundlage müssen jedoch die zu den Koordinaten des Attributes <code>mapImageCoordinatesToRegister</code> in Dezimalgrad, die passenden Koordinaten in Meter in das Attribut <code>mapImageCoordinatesUTM</code> eingetragen werden. Die Umrechnung kann auf der Website des [https://gdz.bkg.bund.de/koordinatentransformation GEO-Datenzentrums des Bundeamtes für Kartographie und Geodäsie, Koordinatenumrechnung] kostenlos durchgeführt werden, auch als Liste in Form einer Textdatei. Bei den Einstellungen ist die Reihenfolge der Koordinaten zu beachten (Longitude, Latitude). Stehen die zeilenweise umzurechnenden Daten in einer Textdatei ist das Windows-Zeilenende (CRLF) erforderlich. Höhenunterschiede werden bei den Berechnungen nicht berücksichtigt.
Damit statistische Daten, wie Streckenlänge, überfahrene Fläche und Geschwindigkeit berechnet werden können, muss eine Umrechnung der GEO-Daten von Grad in Meter erfolgen. Da die Erde ein Elipsoid ist, ist der Umfang der Erde vom Standort abhängig. Da ein Grad immer 1/360 des Umfangs ist und der Umfang vom Standort abhängt, hängt auch der Umrechnungsfaktor Meter pro Grad vom Standort ab. Deshalb muss ein Umrechnungsfaktor immer für den bestimmten Standort als Differenzenquotient berechnet werden und kann dann dort bei den kleinen Streckenlängen eines Mähbereiches ohne nennenswerten Fehler als konstant angenommen werden. Die Berechnung führt das Modul durch. Als Grundlage müssen jedoch die zu den Koordinaten des Attributes <code>mapImageCoordinatesToRegister</code> in Dezimalgrad, die passenden Koordinaten in Meter in das Attribut <code>mapImageCoordinatesUTM</code> eingetragen werden. Die Umrechnung kann auf der Website des [https://gdz.bkg.bund.de/koordinatentransformation GEO-Datenzentrums des Bundeamtes für Kartographie und Geodäsie, Koordinatenumrechnung] kostenlos durchgeführt werden, auch als Liste in Form einer Textdatei. Bei den Einstellungen ist die Reihenfolge der Koordinaten zu beachten (Longitude, Latitude). Stehen die zeilenweise umzurechnenden Daten in einer Textdatei ist das Windows-Zeilenende (CRLF) erforderlich. Höhenunterschiede werden bei den Berechnungen nicht berücksichtigt.
== Design der Karte ändern ==
[[Datei:mowerpath_dots_nobg.png|mini|200x315px|GPS Koordinaten als Punkte]]
Mit <code> set <name> defaultDesignAttributesToAttribute </code> werden die internen HTML-Attribute in das FHEM-Attribut <code>mapDesignAttributes</code> geschrieben.
In diesem Attribut können die HTML-Attribute geändert werden, um z.B. die Linienstärke, -farbe oder -stil anzupassen. Solange das Attribut gesetzt ist, werden die dort enthaltenen HTML-Attribute verwendet. Das Attribut muss den kompletten Satz der HTML-Attribute enthalten.
'''Beispiel:''' Statt Linien sollen die GPS-Koordinaten als Punkte dargestellt werden dazu ist <code>mowingPathUseDots="1"</code> zu setzen. Mit dieser Einstellung wird die Verteilung der Wegpunkte sichtbar.


== Einbindung der Karte in verschiedene Frontends ==
== Einbindung der Karte in verschiedene Frontends ==
Die Module AutomowerConnect und AutomowerConnectDevice stellen den Befehl <code>get <Gerätename> html</code> zur Verfügung, um den HTML-Kode für die Karte zu liefern.
Die Module AutomowerConnect und AutomowerConnectDevice stellen den Befehl <code>get <Gerätename> html</code> zur Verfügung, um den HTML-Kode für die Karte zu liefern.
Mit dieser Methode erfolgt die Einbindung in verschiedene Frontends.
Mit dieser Methode erfolgt die Einbindung in verschiedene Frontends.
Zeile 107: Zeile 115:


=== DOIF, uiTable ===
=== DOIF, uiTable ===
siehe [[DOIF/uiTable]] u. [[DOIF/uiTable_Schnelleinstieg]]
siehe [[DOIF/uiTable]] u. [[DOIF/uiTable_Schnelleinstieg]]
<syntaxhighlight lang="perl">
<syntaxhighlight lang="perl">
Zeile 116: Zeile 123:


=== FHEMWEB, weblink ===
=== FHEMWEB, weblink ===
<syntaxhighlight lang="perl">
<syntaxhighlight lang="perl">
defmod map_1 weblink htmlCode { fhem('get <device name> html', 1) }
defmod map_1 weblink htmlCode { fhem('get <device name> html', 1) }
Zeile 122: Zeile 128:
</syntaxhighlight>
</syntaxhighlight>


=== TabletUI, FTUI Widget Readingsgroup ===
=== Tablet-UI/FTUI Version 2 ===
 
Das Widget kann aus dem SVN geladen werden, wie hier beschrieben: [<nowiki/>[[Update#Einzelne Dateien aus dem SVN holen]]]
 
Die Dateien jquery.min.js und automowerconnect.js aus dem Verzeichnis pgm2 müssen im Head-Tag eingebunden werden und das Widget wie üblich als Div-Tag im Body.
 
<device name> ist durch den Namen des FHEM-Gerätes zu ersetzen, das den Mäher abbildet.
 
Die Einbindung erfolgt auf folgende Weise:
<syntaxhighlight lang="html">
<head>
.
.
.
  <script src="../pgm2/jquery.min.js"></script>
  <script src="../pgm2/automowerconnect.js"></script>
.
.
.
</head>
 
<body>
.
.
.
  <div
    data-type="automowerconnect"
    data-device="<device name>"
    data-jsonurl="/fhem/AutomowerConnect/<device name>/json"
  >
  </div>
.
.
.
</body>
</syntaxhighlight>
 
=== Tablet-UI/FTUI Version 3 ===


Die Karte wird durch die Verwendung des [[FTUI Widget Readingsgroup]] angezeigt.
Die Dateien jquery.min.js und automowerconnect.js aus dem Verzeichnis pgm2 müssen im Head-Tag eingebunden werden und die Karte als ftui-content im Body angelegt werden.
 
<device name> ist durch den Namen des FHEM-Gerätes zu ersetzen, das den Mäher abbildet.
 
Die Einbindung erfolgt auf folgende Weise:
<syntaxhighlight lang="html">
<head>
.
.
.
  <script src="../pgm2/jquery.min.js"></script>
  <script src="../pgm2/automowerconnect.js"></script>
.
.
.
</head>
 
<body>
.
.
.
<ftui-grid-tile row="1" col="1" >
    <ftui-content id="amc_automowerconnect" [content]="<device name>:system_name | getHTML('<device name>')" ></ftui-content>
</ftui-grid-tile>
<script type="text/javascript">
  $(document).ready(function(){
    setTimeout(AutomowerConnectUpdateJsonFtui, 2000, '/fhem/AutomowerConnect/<device name>/json');
    setInterval(AutomowerConnectUpdateJsonFtui, 30000, '/fhem/AutomowerConnect/<device name>/json');
  });
</script>
.
.
.
</body>
</syntaxhighlight>


=== FLOORPLAN ===
=== FLOORPLAN ===
Zeile 131: Zeile 208:


=== Dashboard ===
=== Dashboard ===
Siehe [[Dashboard]]
Siehe [[Dashboard]]


Zeile 148: Zeile 224:
[[Datei:Statistics.png|mini|Beispiel für eine Liste mit den Pfaden des Gerätehashes.]]
[[Datei:Statistics.png|mini|Beispiel für eine Liste mit den Pfaden des Gerätehashes.]]
Wenige Werte der Mowerdaten werden in [[Readings]] angezeigt. Wenn das nicht genügt, können [[Readings]] über das Attribut [[userReadings]] ergänzt werden.
Wenige Werte der Mowerdaten werden in [[Readings]] angezeigt. Wenn das nicht genügt, können [[Readings]] über das Attribut [[userReadings]] ergänzt werden.
Der Trigger für die [[userReadings]] ist <i>connected</i>.
Als Trigger gibt es vier grundsätzliche Möglichkeiten:
Den Hashpfad findet man in den Listen MowerData und StatisticsData.
 
* device_state: connected - alles was nur nachts aktualisiert wird ( [https://developer.husqvarnagroup.cloud/apis/automower-connect-api#openapi Automower Connect API: OpenAPI: Get data for a mower linked to a user] )
* mower_wsEvent: status-event - alle Daten, die mit Statusevents geliefert werden ( [https://developer.husqvarnagroup.cloud/apis/automower-connect-api#websocket Webesocket: status-event] )
* mower_wsEvent: positions-event - alle Daten, die mit Positonsevents geliefert werden ( [https://developer.husqvarnagroup.cloud/apis/automower-connect-api#websocket Webesocket: positions-event] )
* mower_wsEvent: settings-event - alle Daten, die mit Settingsevents geliefert werden ( [https://developer.husqvarnagroup.cloud/apis/automower-connect-api#websocket Webesocket: settings-event] )
 
Welche Daten, wie geliefert werden, ist aus den vorstehenden Links ersichtlich.
 
Den Hashpfad findet man in den Listen MowerData und StatisticsData oder über den in die Befehlszeile eingegebenen Befehl <code>{Dumper $defs{<name>}{helper}{mower}</code>.
 
'''Beispiel 1''': Erzeugen des Reading <code>serialnumber</code> mit dem Pfad des Gerätehashes <code>$hash->{helper}{mower}{attributes}{system}{serialNumber}</code>
<pre>
attr <device name> userReadings serialnumber:device_state:.connected {$defs{$name}->{helper}{mower}{attributes}{system}{serialNumber}}
</pre>


Beispiel: Erzeugen des Reading <code>serialnumber</code> mit dem Pfad des Gerätehashes <code>$hash->{helper}{mower}{attributes}{system}{serialNumber}</code>
'''Beispiel 2''': Erzeugen der [[Readings]] <code>lastLongitude</code> und <code>lastLatitude</code> mit dem Pfad des Gerätehashes <code>$hash->{helper}{mower}{attributes}{positions}[0]</code> zu den letzten bekannten Koordinaten.
<pre>
<pre>
attr <device name> userReadings serialnumber:connected {$defs{$name}->{helper}{mower}{attributes}{system}{serialNumber}}
attr <name> userReadings lastLatitude:mower_wsEvent:.positions-event {$defs{$name}->{helper}{mower}{attributes}{positions}[0]{latitude}},\
lastLongitude:mower_wsEvent:.positions-event {$defs{$name}->{helper}{mower}{attributes}{positions}[0]{longitude}}
</pre>
</pre>
== Steigerung der Rate für Positionsevents ==
Bei der Benutzung des Modul 98_AMConnectTools.pm wird ca. alle 30s während der Aktivitäten LEAVING, MOWING und GOING_HOME über die Websocketverbindung ein Positonsevent empfangen.
Das bedeutet es wird während des Mähens alle 30 s eine Position gesendet.
Um die Eventrate aufrecht zu erhalten, wird die inoffizielle API für den 1. Mäher alle 440 s abgefragt.
Das Modul schaltet sich inaktiv wenn sich alle Mäher in der Ladestation befinden.
Es ist nur aktiv, wenn mindestens ein Mäher die Station verlässt bis sich alle Mäher in der Station befinden.
Der Benutzername bzw. Emailadresse und das Passwort der Smartphoneapp wird für die Definition benötigt.
Vorbereitung
Die Datei 98_AMConnectTools.pm aus dem SVN laden. mit dem folgenden Befehl für die FHEM Befehlszeile.
{ Svn_GetFile('contrib/AutomowerConnect/98_AMConnectTools.pm', 'FHEM/98_AMConnectTools.pm') }
Danach reicht ein Reload des Moduls damit das Gerät definiert werden kann.
reload 98_AMConnectTools.pm
Definition
define AMConnectTools AMConnectTools <Emailadresse>
set AMConnectTools password <Passwort>


== Links ==
== Links ==
* [[Mähroboter_überwachen]]
* [[Mähroboter_überwachen]]
* [https://developer.husqvarnagroup.cloud/ Husqvarna Cloud]
* [https://developer.husqvarnagroup.cloud/ Husqvarna Cloud]
Zeile 166: Zeile 275:
* [[DOIF/uiTable_Schnelleinstieg]]
* [[DOIF/uiTable_Schnelleinstieg]]
* [[FHEM Tablet UI]]
* [[FHEM Tablet UI]]
* [[FTUI Widget Readingsgroup]]
* [[weblink]]
* [[weblink]]
* [[FLOORPLAN]]
* [[FLOORPLAN]]
Zeile 174: Zeile 282:
== Referenzen ==
== Referenzen ==
<references />
<references />
[[Kategorie:Mähroboter]]

Aktuelle Version vom 19. März 2024, 20:55 Uhr

AutomowerConnect
Zweck / Funktion
Steuerung eines Husqvarna Mähroboters mit Connect Modul
Allgemein
Typ Gerätemodul
Details
Dokumentation EN / DE
Thema
Support (Forum) Sonstige Systeme
Modulname 74_AutomowerConnect.pm
Ersteller Ellert
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!
AutomowerConnectSymbol.svg

AutomowerConnect ist ein Modul zur Steuerung eines Husqvarna Mähroboters mit Connect Modul (SIM) über Husqvarnas OpenAPI.

Eine vollständige Beschreibung der Module enthält die Befehlsreferenz AutomowerConnect.

Die Forenbeiträge sind unter 74_AutomowerConnect, Husqvarnas OpenAPI zu finden.

Eigenschaften

  • Dieses Modul etabliert eine Kommunikation zwischen der Husqvarna Cloud und FHEM, um einen Husqvarna Automower zu steuern, der mit einem Connect Modul (SIM) betrieben wird.
  • Es arbeitet als Device für einen Mähroboter. Für zusätzliche in der API registrierte Mähroboter ist für jeden Mäher ein extra Appilcation Key mit Application Secret zu verwenden.
  • Der Pfad des Mähroboters wird in der Detailansicht des FHEMWEB Frontends angezeigt.
  • Im Gegensatz zur Smartphone App können mehr als die 50 letzten Wegpunkte angezeigt werden, zu einer möglichen Kontrolle der Mähbereichsabdeckung.
  • Der Pfad kann mit einer beliebigen Karte hinterlegt werden.
  • Eine Grundstücks- und eine Mähbereichsgrenze kann dargestellt werden.
  • Die Lage der Ladestation kann gekennzeichnet werden.
  • Die Karte muss als Rasterbild im webp, png oder jpg Format vorliegen.
  • Es ist möglich alles was die API anbietet zu steuern, z.B. Mähplan, Scheinwerfer, Schnitthöhe und Aktionen wie, Start, Pause, Parken usw.
  • Die letzten aus der API sind im Gerätehash gespeichert, eine Weiterverarbeitung ist daher möglich.
  • Berechnung statistischer Daten (Geschwindigkeit; gefahrene Strecke und übermähte Fläche für den aktuellen Tag, die aktuelle Woche, sowie für den letzten Tag und die letzte Woche.
  • Es können eigene Zonen definiert werden.
  • Die Schnitthöhe kann je Zone vorgegeben werden. Sie wird automatisch eingestellt, wenn der Mäher sich in der Zone befindet.

Anforderungen

  • Für den Zugriff auf die API muss eine Application angelegt werden, im Husqvarna Developer Portal: Get Started.
  • Währenddessen wird ein Application Key (client_id) und ein Application Secret (client secret) bereitgestellt. Diese sind für dieses Modul zu nutzen.
  • Das Modul verwendet Client Credentials als Granttype zur Authentifizierung, die Redirect URL wird für diesen Authentifizierungstyp nicht benötigt (ggf. localhost (http://127.0.0.1) eintragen).

Bedeutung der Werte des Reading device_state

  • defined Das Gerät wurde erfolgreich definiert, z.B. nach dem es erzeugt wurde oder nach einem Neustart.
  • authentification Das Gerät leitet die Authentifizierung ein und fordert ein Access Token an.
  • authenticated Das Gerät wurde authentifiziert und hat ein Access Token erhalten und die Daten werden das erste Mal nach der Authentifizierung aus der API gelesen.
  • update Das Gerät erneuert die Daten aus der API. Wann die Daten in der API zuletzt geändert wurden ist am Zeitstempel status_Timestamp abzulesen. status_TimestampDiff zeigt die Zeitspanne zwischen den letzten beiden Statusänderungen an.
  • connected Alles ist in Ordnung. Nur in diesem Zustand können Befehle gesendet werden.
  • disabled Das Gerät ist inaktiv. Es werden keine Befehle gesendet und keine Daten über die API geholt.
  • initialized Das Gerät ist aktiv und beginnt zu arbeiten.
  • error Während der Authentifizierung, des Updates oder des Sendens ist ein Fehler aufgetreten, mehr dazu steht in der Logdatei.

Erstellung einer Karte mit Hintergrundbild, Grundstücksgrenze, Mähbereich und zurückgelegtem Pfad des Mähroboters.

Der Mähroboter liefert regelmäßig einen GPS-Datensatz von seinem Standort auf der Erde. Dieser GEO-Datensatz je ein Wert für die Longitude (Längengrad) und die Latitude (Breitengrad), ist nach WGS84 als Dezimalgrad angegeben. Damit ein GEO-Datensatz auf einem Bereich des Frontends dargestellt werden kann, muss eine Verbindung zwischen einer rechteckigen Fläche auf dem Frontend und einer rechteckigen Fläche auf der Erde in der auch jeder GEO-Datensatz liegen wird, hergestellt werden. Das entspricht der Registrierung in der digitalen Bildverarbeitung.

Flächenregistrierung

Zur Registrierung der Fläche auf dem Frontend und der Fläche auf der Erde dienen die Attribute mapImageWidthHeight und mapImageCoordinatesToRegister. Das Attribut mapImageWidthHeight legt die Flächengröße in Pixel fest, durch die Angabe der Breite und Höhe der Fläche. Die Angaben werden durch ein einziges Leerzeichen getrennt. Das Attribut mapImageCoordinatesToRegister legt die Fläche auf der Erde fest, in dem die GEO-Koordinaten der linken oberen Ecke und der rechten unteren Ecke der Fläche angegeben werden, auf der die Punkte der GEO-Datensätze liegen, die vom Mähroboter geliefert werden. Longitude und Latitude werden durch ein einziges Leerzeichen getrennt, so dass ein Datensatz einer Zeile entspricht. Beim Ermitteln der Eckpunkte kann gleichzeitig ein Bild als Hintergrund gespeichert werden.

Koordinaten ermitteln mit Google Earth Web

Dies ist die einfachste und schnellste Vorgehensweise. Da sich in Google Earth Web die Höhenverstärkung nicht abschalten lässt wird die Landschaft perspektivisch verzerrt, sodass eingezeichnete GEO-Datensätze als nicht korrekt positioniert erscheinen. Besser wird es, wenn Google Earth lokal installiert wird.

  • Google Earth starten.
  • Alle nicht benötigten Ebenen auschalten.
  • Den Standort der Mähfläche anzeigen.
  • In der 3D-Ansicht das Browserfenster und den Zoom so einstellen, dass die Mähfläche wie gewünscht angezeigt wird und die Nordausrichtung sicherstellen.
  • Ein neues Projekt anlegen
  • Eine Linie von der linken oberen Ecke in die rechte untere Ecke zeichnen.
  • Das Projekt als kml-Datei exportieren
  • Optional die Linie ausblenden und den durch die Linie markierten Bereich als Bildschirmausschnitt speichern.
  • Optional die Bildgröße in Pixel ermitteln, die Bilddatei wenn möglich als webp-Datei speichern um die Dateigröße zu reduzieren. Empfohlene Größe der Bilddatei sollte unter 100 kB liegen.
  • Optional das Bild in einem für FHEM zugänglichen Pfad ablegen. Im Dateinamen die Bildgröße angeben, z.B. map700x1200.webp, dann wird beim Setzen des Attributes mapImagePath das Attribut mapImageWidthHeight auf die Bildgröße gesetzt.
  • Die kml-Datei mit einem Texteditor öffnen und die Koordinaten kopieren und im richtigen Format in das Attribut mapImageCoordinatesToRegister eintragen.
  • Dabei beachten, dass in der kml-Datei drei Werte je Datensatz enthalten sind (Longitude, Latitude, und Altitude) die Höhendaten (Altitude) weglassen, Longitude und Latitude durch ein einziges Leerzeichen trennen und jeden Datensatz in eine eigene Zeile kopieren.

Koordinaten ermitteln mit Google Earth Pro

Mit Google Earth Pro kann die perspektivische Verzerrung minimiert werden und so ein genauerer Eindruck von der Lage eingezeichneter GEO-Datensätze erzeugt werden. Die Vorgehensweise ist ähnlich der mit Google Eart Web, folgendes ist dabei zusätzlich zu beachten:

  • Unter Tools Optionen 3D-Ansicht Dezimalgrad auswählen, Höhenverstärkung auf den kleinsten Wert setzen (0.01).
  • Unter Tools Optionen Navigation Beim zoomen nicht automatisch neigen auswählen.
  • Vor dem Zeichnen der Linie von der linken oberen Ecke zur rechten unteren Ecke unter Datei Speichern Bild speichern... Die Toolbar zum Bild speichern einschalten. Wenn das nicht gemacht wird, stimmen die Koordinaten der Linie nicht mit dem gespeicherten Bild überein, weil der Teil des Bildes, den die Toolbar verdeckt nicht gespeichert wird.

Grenzen darstellen

Darstellungsbeispiel

Die Grenzen des Mähbereiches können eingezeichnet werden. Je nach Vorarbeit (ausmessen von Lage und Länge der Begrenzungabschnitte, oder Orientierung an Geländepunkten wie Bäume, Mauern, Wege, Zäune, markante Grenzpunkte, usw.) kann die Begrenzung mehr oder weniger genau in Google Earth eingezeichnet werden. Die Koordinaten können wieder über eine kml-Datei gewonnen werden und je nach Art der Grenze in die Attribute mowingAreaLimits zur Darstellung der Mähflächengrenze oder propertyLimits zur Darstellung der Grundstücksgrenze, eingetragen werden.

Zweck der Darstellung der Mähflächengrenze

Die Darstellung der Mähflächengrenze zusammen mit dem Fahrweg des Mähroboters über einen längeren Zeitraum soll Aufschluss geben wie gleichmäßig die Fläche überfahrenen und gemäht wird.


Grenzpunkte der Grundstücksgrenze

Die Darstellung der Grundstücksgrenze dient zur besseren Ermittlung der Mähbereichsgrenze. Wenn die Mähbereichsgrenze in Google Earth zur Koordinatenermittlung eingezeichnet wird, dann ist die Darstellung der Grundstücksgrenze eine Hilfe zur Orientierung. Die Grundstücksgrenzen können über die GEO-Portale der Länder ermittelt werden. Je nach Ausgestaltung der Portale können an den Grenzpunkten Markierungen angebracht werden und dort die Koordinaten abgelesen werden oder kopiert werden. Die Koordinaten dieser Punkte können dann in das Attribut propertyLimits übernommen werden, teilweise Zentimeter genau. Und die ermittelte Grenzpunkte können in eine kml-Datei eingetragen werden und so die Grenze exakt in Google Earth dargestellt werden.

Aufbau der Kartendarstellung

Beim Laden der Detailansicht werden die mapDesignAttributes übertragen, die Ladestationskoordinaten, die Grundstücksgrenzkoordinaten, die Mähbereichsgrenzkoordinaten und die Koordinaten des bereits vorhanden Mäherpfades. Wenn es neue Positionsdaten oder eine Fehlermeldung gibt werden nur diese Positionsdaten oder Fehlerdaten zur Aktualisierung der Karte übertragen. Die Skalierung der GPS Daten auf die Bildgröße erfolgt mit den zum jeweiligen Darstellungszeitpunkt im Modul vorliegenden Umrechnungsfaktoren.

Zusammenspiel der zur Registrierung, Skalierung und Positionierung genutzten Attribute

Als Koordinaten der Ladestation wird zuerst die Mitte Deutschlands angenommen, wenn es Koordinaten des Mähers in der Ladestation gibt, dann wird der Mittelwert verwendet. Falls aber das Attribut für die Ladestationskoordinaten gesetzt ist, dann wird die Ladestation mit diesen Koordinaten angezeigt. Die berechnete Position der Ladestation verändert sich nur, wenn die Detailansicht neu geladen wird.

Wenn die Bildgröße mapImageWidthHeight nicht angegeben ist, wird '350 650' verwendet.

Wenn mapImageCoordinatesToRegister nicht angegeben ist, werden die Extremwerte der vorhandenen Positionsdaten genutzt.

Wenn scaleToMeterXY nicht angegeben ist, dann wird die Skalierung verwendet, die in der Mitte Deutschlands gilt (67425, 108886).

Wenn mapImageCoordinatesUTM angegeben wird und vorher mapImageCoordinatesToRegister angegeben wurde dann wird scaleToMeterXY für die Lage des Mähbereiches berechnet.

Statistische Daten ermitteln

Koordinatentransformaton auf der Webseite vom GDZ des BKG

Damit statistische Daten, wie Streckenlänge, überfahrene Fläche und Geschwindigkeit berechnet werden können, muss eine Umrechnung der GEO-Daten von Grad in Meter erfolgen. Da die Erde ein Elipsoid ist, ist der Umfang der Erde vom Standort abhängig. Da ein Grad immer 1/360 des Umfangs ist und der Umfang vom Standort abhängt, hängt auch der Umrechnungsfaktor Meter pro Grad vom Standort ab. Deshalb muss ein Umrechnungsfaktor immer für den bestimmten Standort als Differenzenquotient berechnet werden und kann dann dort bei den kleinen Streckenlängen eines Mähbereiches ohne nennenswerten Fehler als konstant angenommen werden. Die Berechnung führt das Modul durch. Als Grundlage müssen jedoch die zu den Koordinaten des Attributes mapImageCoordinatesToRegister in Dezimalgrad, die passenden Koordinaten in Meter in das Attribut mapImageCoordinatesUTM eingetragen werden. Die Umrechnung kann auf der Website des GEO-Datenzentrums des Bundeamtes für Kartographie und Geodäsie, Koordinatenumrechnung kostenlos durchgeführt werden, auch als Liste in Form einer Textdatei. Bei den Einstellungen ist die Reihenfolge der Koordinaten zu beachten (Longitude, Latitude). Stehen die zeilenweise umzurechnenden Daten in einer Textdatei ist das Windows-Zeilenende (CRLF) erforderlich. Höhenunterschiede werden bei den Berechnungen nicht berücksichtigt.

Design der Karte ändern

GPS Koordinaten als Punkte

Mit set <name> defaultDesignAttributesToAttribute werden die internen HTML-Attribute in das FHEM-Attribut mapDesignAttributes geschrieben. In diesem Attribut können die HTML-Attribute geändert werden, um z.B. die Linienstärke, -farbe oder -stil anzupassen. Solange das Attribut gesetzt ist, werden die dort enthaltenen HTML-Attribute verwendet. Das Attribut muss den kompletten Satz der HTML-Attribute enthalten.

Beispiel: Statt Linien sollen die GPS-Koordinaten als Punkte dargestellt werden dazu ist mowingPathUseDots="1" zu setzen. Mit dieser Einstellung wird die Verteilung der Wegpunkte sichtbar.

Einbindung der Karte in verschiedene Frontends

Die Module AutomowerConnect und AutomowerConnectDevice stellen den Befehl get <Gerätename> html zur Verfügung, um den HTML-Kode für die Karte zu liefern. Mit dieser Methode erfolgt die Einbindung in verschiedene Frontends. In den folgenden Beispielen muss <device name> durch den Namen des Gerätes ersetzt werden, das einen Automower steuert.

DOIF, uiTable

siehe DOIF/uiTable u. DOIF/uiTable_Schnelleinstieg

defmod map DOIF {}
attr map room Test
attr map uiTable fhem('get <device name> html', 1)

FHEMWEB, weblink

defmod map_1 weblink htmlCode { fhem('get <device name> html', 1) }
attr map_1 room Test

Tablet-UI/FTUI Version 2

Das Widget kann aus dem SVN geladen werden, wie hier beschrieben: [Update#Einzelne Dateien aus dem SVN holen]

Die Dateien jquery.min.js und automowerconnect.js aus dem Verzeichnis pgm2 müssen im Head-Tag eingebunden werden und das Widget wie üblich als Div-Tag im Body.

<device name> ist durch den Namen des FHEM-Gerätes zu ersetzen, das den Mäher abbildet.

Die Einbindung erfolgt auf folgende Weise:

<head>
.
.
.
  <script src="../pgm2/jquery.min.js"></script>
  <script src="../pgm2/automowerconnect.js"></script>
.
.
.
</head>

<body>
.
.
.
  <div
    data-type="automowerconnect"
    data-device="<device name>"
    data-jsonurl="/fhem/AutomowerConnect/<device name>/json"
  >
  </div>
.
.
.
</body>

Tablet-UI/FTUI Version 3

Die Dateien jquery.min.js und automowerconnect.js aus dem Verzeichnis pgm2 müssen im Head-Tag eingebunden werden und die Karte als ftui-content im Body angelegt werden.

<device name> ist durch den Namen des FHEM-Gerätes zu ersetzen, das den Mäher abbildet.

Die Einbindung erfolgt auf folgende Weise:

<head>
.
.
.
  <script src="../pgm2/jquery.min.js"></script>
  <script src="../pgm2/automowerconnect.js"></script>
.
.
.
</head>

<body>
.
.
.
<ftui-grid-tile row="1" col="1" >
     <ftui-content id="amc_automowerconnect" [content]="<device name>:system_name | getHTML('<device name>')" ></ftui-content>
</ftui-grid-tile>
<script type="text/javascript">
  $(document).ready(function(){
    setTimeout(AutomowerConnectUpdateJsonFtui, 2000, '/fhem/AutomowerConnect/<device name>/json');
    setInterval(AutomowerConnectUpdateJsonFtui, 30000, '/fhem/AutomowerConnect/<device name>/json');
  });
</script>
.
.
.
</body>

FLOORPLAN

Die Darstellung erfolgt über das Modul weblink. Siehe auch FLOORPLAN und Floorplan Installations-Leitfaden.

Dashboard

Siehe Dashboard

Einfaches Frontend für die FHEMWEB-Raumansicht

Frontendbeispiel mit den Attributen webCmd und webCmdLabel

Die Attribute können über Raw definition eingespielt werden, wenn der Gerätename geändert wird.

attr <device name> webCmd Pause:ParkUntilFurtherNotice:Park:ParkUntilNextSchedule:Start:ResumeSchedule:cuttingHeight:headlight
attr <device name> webCmdLabel Stop:\
:Park for:min\
:Run for:min ; ; ;\
:Height (1,5+:x0,5) cm Light

Readings ergänzen

Beispiel für eine Liste mit den Pfaden des Gerätehashes.

Wenige Werte der Mowerdaten werden in Readings angezeigt. Wenn das nicht genügt, können Readings über das Attribut userReadings ergänzt werden. Als Trigger gibt es vier grundsätzliche Möglichkeiten:

Welche Daten, wie geliefert werden, ist aus den vorstehenden Links ersichtlich.

Den Hashpfad findet man in den Listen MowerData und StatisticsData oder über den in die Befehlszeile eingegebenen Befehl {Dumper $defs{<name>}{helper}{mower}.

Beispiel 1: Erzeugen des Reading serialnumber mit dem Pfad des Gerätehashes $hash->{helper}{mower}{attributes}{system}{serialNumber}

attr <device name> userReadings serialnumber:device_state:.connected {$defs{$name}->{helper}{mower}{attributes}{system}{serialNumber}}

Beispiel 2: Erzeugen der Readings lastLongitude und lastLatitude mit dem Pfad des Gerätehashes $hash->{helper}{mower}{attributes}{positions}[0] zu den letzten bekannten Koordinaten.

attr <name> userReadings lastLatitude:mower_wsEvent:.positions-event {$defs{$name}->{helper}{mower}{attributes}{positions}[0]{latitude}},\
lastLongitude:mower_wsEvent:.positions-event {$defs{$name}->{helper}{mower}{attributes}{positions}[0]{longitude}}

Steigerung der Rate für Positionsevents

Bei der Benutzung des Modul 98_AMConnectTools.pm wird ca. alle 30s während der Aktivitäten LEAVING, MOWING und GOING_HOME über die Websocketverbindung ein Positonsevent empfangen. Das bedeutet es wird während des Mähens alle 30 s eine Position gesendet. Um die Eventrate aufrecht zu erhalten, wird die inoffizielle API für den 1. Mäher alle 440 s abgefragt. Das Modul schaltet sich inaktiv wenn sich alle Mäher in der Ladestation befinden. Es ist nur aktiv, wenn mindestens ein Mäher die Station verlässt bis sich alle Mäher in der Station befinden.

Der Benutzername bzw. Emailadresse und das Passwort der Smartphoneapp wird für die Definition benötigt.

Vorbereitung Die Datei 98_AMConnectTools.pm aus dem SVN laden. mit dem folgenden Befehl für die FHEM Befehlszeile.

{ Svn_GetFile('contrib/AutomowerConnect/98_AMConnectTools.pm', 'FHEM/98_AMConnectTools.pm') }

Danach reicht ein Reload des Moduls damit das Gerät definiert werden kann.

reload 98_AMConnectTools.pm

Definition

define AMConnectTools AMConnectTools <Emailadresse>
set AMConnectTools password <Passwort>

Links

Referenzen