diff --git a/fhem/CHANGED b/fhem/CHANGED index ed03a3041..c184e5b12 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -1,5 +1,8 @@ # 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.pm: calculation of mowing area hull polygon, + some more info in InternalData and StatisticsData, + downloading of third party library for hull calculation - feature: 76_SolarForecast: options for conprice, feedprice and more - change: 49_SSCam: check SSChatBot/TelegramBot is disabled before send data - feature: 70_PylonLowVoltage: add specific Alarm readings, support of US5000 diff --git a/fhem/FHEM/74_AutomowerConnect.pm b/fhem/FHEM/74_AutomowerConnect.pm index 520af2ca7..7a73d306f 100644 --- a/fhem/FHEM/74_AutomowerConnect.pm +++ b/fhem/FHEM/74_AutomowerConnect.pm @@ -74,6 +74,7 @@ sub Initialize() { "mowerCuttingWidth " . "mowerSchedule:textField-long " . "mowingAreaLimits:textField-long " . + "mowingAreaHull:textField-long " . "propertyLimits:textField-long " . "weekdaysToResetWayPoints " . "numberOfWayPointsToDisplay " . @@ -81,7 +82,8 @@ sub Initialize() { "addPositionPolling:1,0 " . $::readingFnAttributes; - $::data{FWEXT}{AutomowerConnect}{SCRIPT} = "automowerconnect.js"; + $::data{FWEXT}{AutomowerConnect}{SCRIPT} = 'automowerconnect.js'; + $::data{FWEXT}{AutomowerConnectA}{SCRIPT} = '/automowerconnect/hull.js'; return undef; } @@ -101,6 +103,7 @@ __END__ =begin html +
set <name> cuttingHeight <1..9>
set <name> cuttingHeightInWorkArea <Id|name> <0..100>
set <name> stayOutZone_enable <Id|name>
attr <name> mapDesignAttributes <complete list of design-attributes>
set <name> defaultDesignAttributesToAttribute
to change its values. Some default values are
+ Load the list of attributes by set <name> defaultDesignAttributesToAttribute
to change its values. Design attributes with changed default values are mandatory in this attribute.
+ areaLimitsColor="#ff8000"
+ areaLimitsLineWidth="1"
+ areaLimitsConnector=""
+ hullColor="#0066ff"
+ hullLineWidth="1"
+ hullConnector="1"
+ hullResolution="40"
+ hullCalculate=""
+ propertyLimitsColor="#33cc33"
+ propertyLimitsLineWidth="1"
+ propertyLimitsConnector="1"
+ errorBackgroundColor="#3d3d3d"
+ errorFont="14px Courier New"
+ errorFontColor="#ff8000"
+ errorPathLineColor="#ff00bf"
+ errorPathLineDash=""
+ errorPathLineWidth="2"
+ chargingStationPathLineColor="#999999"
+ chargingStationPathLineDash="6,2"
+ chargingStationPathLineWidth="1"
+ chargingStationPathDotWidth="2"
+ otherActivityPathLineColor="#999999"
+ otherActivityPathLineDash="6,2"
+ otherActivityPathLineWidth="1"
+ otherActivityPathDotWidth="4"
+ leavingPathLineColor="#33cc33"
+ leavingPathLineDash="6,2"
+ leavingPathLineWidth="2"
+ leavingPathDotWidth="4"
+ goingHomePathLineColor="#0099ff"
+ goingHomePathLineDash="6,2"
+ goingHomePathLineWidth="2"
+ goingHomePathDotWidth="4"
+ mowingPathDisplayStart=""
+ mowingPathLineColor="#ff0000"
+ mowingPathLineDash="6,2"
+ mowingPathLineWidth="1"
+ mowingPathDotWidth="2"
+ mowingPathUseDots=""
+ mowingPathShowCollisions=""
+
attr <name> addPositionPolling <[1|0]>
attr <name> mowingAreaHull <use button 'mowingAreaHullToAttribute' to fill the attribute>
hullCalculate="1"
and there are more than 50 Points for activity MOWING.weekdaysToResetWayPoints
should be set to - and also the design attribute mowingPathUseDots
should be set to "1" until the hull is sufficient.
+
+ set <name> cuttingHeight <1..9>
set <name> cuttingHeightInWorkArea <Id|name> <0..100>
set <name> stayOutZone_enable <Id|zone name>
attr <name> mapDesignAttributes <complete list of design-attributes>
set <name> defaultDesignAttributesToAttribute
um die Werte zu ändern. Einige Vorgabewerte:
+ Lade die Attributliste mit set <name> defaultDesignAttributesToAttribute
um die Werte zu ändern. Nur Designattribute mit geänderten Standartwerten müssen in diesem Attribut enthalten sein.
+ areaLimitsColor="#ff8000"
+ areaLimitsLineWidth="1"
+ areaLimitsConnector=""
+ hullColor="#0066ff"
+ hullLineWidth="1"
+ hullConnector="1"
+ hullResolution="40"
+ hullCalculate=""
+ propertyLimitsColor="#33cc33"
+ propertyLimitsLineWidth="1"
+ propertyLimitsConnector="1"
+ errorBackgroundColor="#3d3d3d"
+ errorFont="14px Courier New"
+ errorFontColor="#ff8000"
+ errorPathLineColor="#ff00bf"
+ errorPathLineDash=""
+ errorPathLineWidth="2"
+ chargingStationPathLineColor="#999999"
+ chargingStationPathLineDash="6,2"
+ chargingStationPathLineWidth="1"
+ chargingStationPathDotWidth="2"
+ otherActivityPathLineColor="#999999"
+ otherActivityPathLineDash="6,2"
+ otherActivityPathLineWidth="1"
+ otherActivityPathDotWidth="4"
+ leavingPathLineColor="#33cc33"
+ leavingPathLineDash="6,2"
+ leavingPathLineWidth="2"
+ leavingPathDotWidth="4"
+ goingHomePathLineColor="#0099ff"
+ goingHomePathLineDash="6,2"
+ goingHomePathLineWidth="2"
+ goingHomePathDotWidth="4"
+ mowingPathDisplayStart=""
+ mowingPathLineColor="#ff0000"
+ mowingPathLineDash="6,2"
+ mowingPathLineWidth="1"
+ mowingPathDotWidth="2"
+ mowingPathUseDots=""
+ mowingPathShowCollisions=""
+
attr <name> addPositionPolling <[1|0]>
attr <name> mowingAreaHull <use button 'mowingAreaHullToAttribute' to fill the attribute>
hullCalculate="1"
und es mehr als 50 Wegpunkte der Aktivität MOWING gibt.weekdaysToResetWayPoints
sollte auf -
und das Designattribut mowingPathUseDots
sollte auf "1"
gesetzt werden, bis das Polygon die Hülle der Mähfläche zufriedenstellend abbildet.
+ 1 totalDriveDistance = totalRunningTime * '. sprintf( "%.2f", $hash->{helper}{mower}{attributes}{statistics}{totalDriveDistance} / $hash->{helper}{mower}{attributes}{statistics}{totalRunningTime} ) if ( $hash->{helper}{mower}{attributes}{statistics}{totalRunningTime} ); $ret .= '
2 totalRunningTime = totalCuttingTime + totalSearchingTime'; @@ -2541,7 +2631,7 @@ sub listInternalData { $ret .= '
'; $ret .= '
Used For Activities | Stack Name | Current Size | Max Size |
PARKED_IN_CS, CHARGING | cspos | ' . $csnr . ' | ' . $csnrmax . ' |
NOT_APPLICABLE with error time stamp | lasterror/positions | ' . $ernr . ' | - |
Link to APIs | Husqvarna Developer |
Authentification API URL | ' . AUTHURL . ' |
Automower Connect API URL | ' . APIURL . ' |
Websocket IO Device name | ' . WSDEVICENAME . ' |
Client-Id | ' . $hash->{helper}{client_id} . ' |
Grant-Type | ' . $hash->{helper}{grant_type} . ' |
User-Id | ' . ReadingsVal($name, '.user_id', '-') . ' |
Provider | ' . ReadingsVal($name, '.provider', '-') . ' |
Scope | ' . ReadingsVal($name, '.scope', '-') . ' |
Token Type | ' . ReadingsVal($name, '.token_type', '-') . ' |
Token Expires | ' . FmtDateTime( ReadingsVal($name, '.expires', '0') ) . ' |
Access Token | ' . ReadingsVal($name, '.access_token', '0') . ' |
Link to APIs | Husqvarna Developer |
Authentification API URL | ' . AUTHURL . ' |
Automower Connect API URL | ' . APIURL . ' |
Websocket IO Device name | ' . WSDEVICENAME . ' |
Client-Id | ' . $hash->{helper}{client_id} . ' |
Grant-Type | ' . $hash->{helper}{grant_type} . ' |
User-Id | ' . ReadingsVal($name, '.user_id', '-') . ' |
Provider | ' . ReadingsVal($name, '.provider', '-') . ' |
Scope | ' . ReadingsVal($name, '.scope', '-') . ' |
Token Type | ' . ReadingsVal($name, '.token_type', '-') . ' |
Token Expires | ' . FmtDateTime( ReadingsVal($name, '.expires', '0') ) . ' |
Access Token | ' . ReadingsVal($name, '.access_token', '0') . ' |
hull calculation (hull.js) | Server: ' . $hash->{helper}{FWEXTA}{url} . ' |