Worx Landroid Anbindung ohne IOBroker möglich?

Begonnen von iceman, 05 April 2019, 11:37:45

Vorheriges Thema - Nächstes Thema

iceman

Hallo zusammen,

auf meinem Ubuntu Server läuft seit Jahren FHEM stabil mit diversen CULs, JeeLinks, Xiaomi BTLE Satelliten usw. Jetzt würde ich gern meinen neuen Landroid-S von worx in Fhem einbinden. Bisher habe ich allerdings nur den Umweg über IOBroker gefunden.

Meine Frage, geht es auch ohne den IOBroker (IOB)?

Denn, da eigentlich alles gut ohne IOB läuft würde ich die Installation gern vermeiden, da ich befürchte das das vielleicht meine bestehenden Anbindungen durcheinander bringt.

marv99

Hallo iceman,

vielleicht funktioniert das hier für Dich:
https://github.com/axelmohnen/fhem-landroid-s
Nach meinem Verständnis wird "nur" der IOBroker Adapter verwendet, aber keine IOBroker Instanz.
Benötigt wohl die Wolke.

Link ist aus dem Faden
https://forum.fhem.de/index.php/topic,55053.60.html


mrixs

#2
Hallo zusammen,

ich hab mir eine Lösung gebastelt ohne zusätzliche Module oder Server. Fhem baut dazu eine verschlüsselte MQTT Verbindung zur Worx Cloud (Amazon Server) auf.

Model: Worx Landroid M700 (WR142E) 2019

Vorarbeit ist die DeskApp von Eisha aus dem roboter-forum runterladen und mit dem Mäher zum laufen bringen
Quelle: https://www.roboter-forum.com/index.php?thread/22795-entwicklungsprojekt-worx-landroid-kress-mission-desktop-app/

Erster Schritt ist das AWS.p12 Zertifikat (im Verzeichniss von der DeskApp) in eine .cer und .key Datei mit Openssl zu zuerlegen.

openssl.exe pkcs12 -in AWS.p12 -out aws.cer -clcerts -nokeys -passin stdin
openssl.exe pkcs12 -in AWS.p12 -out aws.key -nocerts -nodes -passin stdin


Diese beiden Datein dann in Fhem Verzeichniss legen /opt/fhem

Quelle: https://www.roboter-forum.com/index.php?thread/41158-landroid-%C3%BCber-eine-mosquitto-mqtt-bridge-steuern-am-besipiel-von-openhab/&pageNo=1


Zweiter Schritt ist eine verschlüsselte MQTT Verbindung zum Amazon IOT Server aufbauen.

<AWS-Server:Port> = Amazon IOT Server, Port 8883
<UUID> = neue UUIDv1 generieren https://www.uuidgenerator.net/
<Board-ID> =  Kennung der Hauptplatione







JahrModelBoard-ID
2019WR142EPRM100
2019WR130EPRM100
---M800iDB504
------DB510
(Bitte um Infos hier für andere Modelle)
<MAC-Adresse> = Mac Adresse vom Roboter AABBCCDDEEFF



defmod MQTT_Worx MQTT2_CLIENT <AWS-Server:Port>
attr MQTT_Worx SSL 1
attr MQTT_Worx autocreate no
attr MQTT_Worx clientId android-<UUID>
attr MQTT_Worx keepaliveTimeout 600
attr MQTT_Worx mqttVersion 3.1.1
attr MQTT_Worx msgAfterConnect <Board-ID>/<MAC-Adresse>/commandIn {}
attr MQTT_Worx sslargs SSL_version:TLSv12 SSL_cert_file:aws.cer SSL_key_file:aws.key SSL_use_cert:1
attr MQTT_Worx subscriptions <Board-ID>/<MAC-Adresse>/commandOut



Dritter Schritt anlegen des eigentlichen Roboter Device:

wieder Board Id und Mac Adresse im Mqtt Topic anpassen:
<Board-ID> =  Kennung der Hauptplatione (WR142R = PRM100) (Bitte um Infos hier für andere Modelle)
<MAC-Adresse> = Mac Adresse vom Roboter AABBCCDDEEFF


defmod MQTT_Landroid MQTT2_DEVICE
attr MQTT_Landroid IODev MQTT_Worx
attr MQTT_Landroid jsonMap dat_rsi:dat_rssi\
dat_fw:firmware_version\
cfg_tm:update_time\
cfg_dt:update_date\
dat_bt_t:battery_temperature\
dat_bt_v:battery_voltage\
dat_bt_p:battery_percent\
cfg_sc_d_1_1:plan_6_start\
cfg_sc_d_1_2:plan_6_min\
cfg_sc_d_1_3:plan_6_border\
cfg_sc_d_2_1:plan_0_start\
cfg_sc_d_2_2:plan_0_min\
cfg_sc_d_2_3:plan_0_border\
cfg_sc_d_3_1:plan_1_start\
cfg_sc_d_3_2:plan_1_min\
cfg_sc_d_3_3:plan_1_border\
cfg_sc_d_4_1:plan_2_start\
cfg_sc_d_4_2:plan_2_min\
cfg_sc_d_4_3:plan_2_border\
cfg_sc_d_5_1:plan_3_start\
cfg_sc_d_5_2:plan_3_min\
cfg_sc_d_5_3:plan_3_border\
cfg_sc_d_6_1:plan_4_start\
cfg_sc_d_6_2:plan_4_min\
cfg_sc_d_6_3:plan_4_border\
cfg_sc_d_7_1:plan_5_start\
cfg_sc_d_7_2:plan_5_min\
cfg_sc_d_7_3:plan_5_border
attr MQTT_Landroid readingList <Board-ID>/<MAC-Adresse>/commandOut:.* { json2nameValue($EVENT, '', $JSONMAP) }
attr MQTT_Landroid room Mähroboter




So läuft das erstmal bei mir, mal schauen wie lange.

Bei der SetList brauch ich dann die Hilfe vom Forum, weil ich da weniger Erfahrung habe.

Viel Spass beim basteln.

Mr.1000V

Mein MaxMaeher  ist ein Worx Landroid S300 (WR130E) Mähroboter.
Letztes Jahr vorm Winterschlaf hat alles noch funktioniert, jetzt im Frühjahr ging über fhem nix mehr, über die App nur per Provider. Aber das Problem haben ja einige hier und so habe ich mich an die Anleitungen gehalten und alles samt nodejs deinstalliert, neues Konto bei Landroid angelegt usw....
Kaum macht man es richtig, geht es!
Aber was für ne show....drei Tage Arbeit.

Aber zum Thema Board...
Auch der Worx Landroid S300 (WR130E) meldet lt. Landroid DeskApp V0.0.22 ein Board names PRM100

Dies zur Info und viel Spaß beim Gras wachsen zugucken.
8)

Papaloewe

Vielen Dank mrixs für den Tipp.

Das hat schonmal funktioniert. Ich empfange die Readings meines Landroid vom AWS-MQTT Server.
Das war eigentlich noch viel einfacher, als der Weg über IOBroker, oder das npm-Modul.

Jetzt sollten wir noch eine schöne, vollständige FHEM-definition finden.
Mir sind noch ein paar Readings nicht klar und auch das Ansteuern / Senden fehlt noch.
Auf welchem Topic muss as erfolgen?

Gibt es eine einfache Möglichkeit den Errorcode und Statuscode in den entsprechenden Text zu mappen?
Mir fällt dazu bisher nur ein Userreading ein.

Hier meine bisherige Definition:
defmod MQTT2_android_096c7b3a_c822_4145_8408_5ab72eaa5b12 MQTT2_DEVICE android_096c7b3a_c822_4145_8408_5ab72eaa5b12
attr MQTT2_android_096c7b3a_c822_4145_8408_5ab72eaa5b12 IODev MQTT_Worx
attr MQTT2_android_096c7b3a_c822_4145_8408_5ab72eaa5b12 alias Shaun
attr MQTT2_android_096c7b3a_c822_4145_8408_5ab72eaa5b12 icon scene_robo_lawnmower
attr MQTT2_android_096c7b3a_c822_4145_8408_5ab72eaa5b12 jsonMap dat_rsi:wifi\
dat_fw:firmware\
dat_mac:mac_address\
dat_le:errrorcode\
dat_ls:statuscode\
dat_lk:lockstate\
dat_st_wt:total_time\
dat_st_d:total_distance\
dat_st_b:blade_time\
cfg_sn:serialnumber\
cfg_tm:last_update_time\
cfg_dt:last_update_date\
cfg_rd:rain_delay\
dat_bt_t:battery_temperature\
dat_bt_v:battery_voltage\
dat_bt_p:battery_percent\
dat_bt_nr:battery_loadcycles\
cfg_sc_d_1_1:Sun_start\
cfg_sc_d_1_2:Sun_min\
cfg_sc_d_1_3:Sun_border\
cfg_sc_d_2_1:Mon_start\
cfg_sc_d_2_2:Mon_min\
cfg_sc_d_2_3:Mon_border\
cfg_sc_d_3_1:Tue_start\
cfg_sc_d_3_2:Tue_min\
cfg_sc_d_3_3:Tue_border\
cfg_sc_d_4_1:Wed_start\
cfg_sc_d_4_2:Wed_min\
cfg_sc_d_4_3:Wed_border\
cfg_sc_d_5_1:Thu_start\
cfg_sc_d_5_2:Thu_min\
cfg_sc_d_5_3:Thu_border\
cfg_sc_d_6_1:Fri_start\
cfg_sc_d_6_2:Fri_min\
cfg_sc_d_6_3:Fri_border\
cfg_sc_d_7_1:Sat_start\
cfg_sc_d_7_2:Sat_min\
cfg_sc_d_7_3:Sat_border\
cfg_sc_p:correction
attr MQTT2_android_096c7b3a_c822_4145_8408_5ab72eaa5b12 readingList android_096c7b3a_c822_4145_8408_5ab72eaa5b12:DB510/F0FE6B415C26/commandOut:.* { json2nameValue($EVENT, '', $JSONMAP) }
attr MQTT2_android_096c7b3a_c822_4145_8408_5ab72eaa5b12 room Garten,MQTT2_DEVICE

eurofinder

Geht die Variante auch mit einem Model WR106SI?

Gruß
eurofinder
RPI3+; Raspbian Buster Lite; RPI-RF-MOD; piVCCU3, HMIP-eTRV-2, HmIP-SWDO, HmIP-SRH, HmIP-STHO, HmIP-SLO

Papaloewe


eurofinder

@Papaloewe:
Ah, OK. Dann werde ich das auch mal ausprobieren, ob ich den wieder zum Laufen bekomme:-)

Gruß und danke für die Rückmeldung
eurofinder
RPI3+; Raspbian Buster Lite; RPI-RF-MOD; piVCCU3, HMIP-eTRV-2, HmIP-SWDO, HmIP-SRH, HmIP-STHO, HmIP-SLO

WumpE

Zitat von: mrixs am 03 April 2020, 19:03:39
Hallo zusammen,

ich hab mir eine Lösung gebastelt ohne zusätzliche Module oder Server. Fhem baut dazu eine verschlüsselte MQTT Verbindung zur Worx Cloud (Amazon Server) auf.

Model: Worx Landroid M700 (WR142E) 2019

Vorarbeit ist die DeskApp von Eisha aus dem roboter-forum runterladen und mit dem Mäher zum laufen bringen
Quelle: https://www.roboter-forum.com/index.php?thread/22795-entwicklungsprojekt-worx-landroid-kress-mission-desktop-app/

Erster Schritt ist das AWS.p12 Zertifikat (im Verzeichniss von der DeskApp) in eine .cer und .key Datei mit Openssl zu zuerlegen.

openssl.exe pkcs12 -in AWS.p12 -out aws.cer -clcerts -nokeys -passin stdin
openssl.exe pkcs12 -in AWS.p12 -out aws.key -nocerts -nodes -passin stdin


Diese beiden Datein dann in Fhem Verzeichniss legen /opt/fhem

Quelle: https://www.roboter-forum.com/index.php?thread/41158-landroid-%C3%BCber-eine-mosquitto-mqtt-bridge-steuern-am-besipiel-von-openhab/&pageNo=1


Zweiter Schritt ist eine verschlüsselte MQTT Verbindung zum Amazon IOT Server aufbauen.

<AWS-Server:Port> = Amazon IOT Server, Port 8883
<UUID> = neue UUIDv1 generieren https://www.uuidgenerator.net/
<Board-ID> =  Kennung der Hauptplatione (WR142R, WR130E = PRM100) (Bitte um Infos hier für andere Modelle)
<MAC-Adresse> = Mac Adresse vom Roboter AABBCCDDEEFF



defmod MQTT_Worx MQTT2_CLIENT <AWS-Server:Port>
attr MQTT_Worx SSL 1
attr MQTT_Worx autocreate no
attr MQTT_Worx clientId android-<UUID>
attr MQTT_Worx keepaliveTimeout 600
attr MQTT_Worx mqttVersion 3.1.1
attr MQTT_Worx msgAfterConnect <Board-ID>/<MAC-Adresse>/commandIn {}
attr MQTT_Worx sslargs SSL_version:TLSv12 SSL_cert_file:aws.cer SSL_key_file:aws.key SSL_use_cert:1
attr MQTT_Worx subscriptions <Board-ID>/<MAC-Adresse>/commandOut



Dritter Schritt anlegen des eigentlichen Roboter Device:

wieder Board Id und Mac Adresse im Mqtt Topic anpassen:
<Board-ID> =  Kennung der Hauptplatione (WR142R = PRM100) (Bitte um Infos hier für andere Modelle)
<MAC-Adresse> = Mac Adresse vom Roboter AABBCCDDEEFF


defmod MQTT_Landroid MQTT2_DEVICE
attr MQTT_Landroid IODev MQTT_Worx
attr MQTT_Landroid jsonMap dat_rsi:dat_rssi\
dat_fw:firmware_version\
cfg_tm:update_time\
cfg_dt:update_date\
dat_bt_t:battery_temperature\
dat_bt_v:battery_voltage\
dat_bt_p:battery_percent\
cfg_sc_d_1_1:plan_6_start\
cfg_sc_d_1_2:plan_6_min\
cfg_sc_d_1_3:plan_6_border\
cfg_sc_d_2_1:plan_0_start\
cfg_sc_d_2_2:plan_0_min\
cfg_sc_d_2_3:plan_0_border\
cfg_sc_d_3_1:plan_1_start\
cfg_sc_d_3_2:plan_1_min\
cfg_sc_d_3_3:plan_1_border\
cfg_sc_d_4_1:plan_2_start\
cfg_sc_d_4_2:plan_2_min\
cfg_sc_d_4_3:plan_2_border\
cfg_sc_d_5_1:plan_3_start\
cfg_sc_d_5_2:plan_3_min\
cfg_sc_d_5_3:plan_3_border\
cfg_sc_d_6_1:plan_4_start\
cfg_sc_d_6_2:plan_4_min\
cfg_sc_d_6_3:plan_4_border\
cfg_sc_d_7_1:plan_5_start\
cfg_sc_d_7_2:plan_5_min\
cfg_sc_d_7_3:plan_5_border
attr MQTT_Landroid readingList <Board-ID>/<MAC-Adresse>/commandOut:.* { json2nameValue($EVENT, '', $JSONMAP) }
attr MQTT_Landroid room Mähroboter




So läuft das erstmal bei mir, mal schauen wie lange.

Bei der SetList brauch ich dann die Hilfe vom Forum, weil ich da weniger Erfahrung habe.

Viel Spass beim basteln.

Also ich habe es auch mal so probiert, leider connected mein MQTT2_Client immer wieder und disconnected sofort wieder...

Zitat2020.04.14 14:33:36.420 5: MQTT_Worx: sending CONNECT (16)8(0)(4)MQTT(4)(2)(2)X(0),android-a62f1cb9-c05c-4f0f-9e23-af2e40c8ad48
2020.04.14 14:33:36.420 5: SW: 103800044d51545404020258002c616e64726f69642d61363266316362392d633035632d346630662d396532332d616632653430633861643438
2020.04.14 14:33:36.422 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2020.04.14 14:33:36.463 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2020.04.14 14:33:36.466 5: MQTT_Worx: discarding DISCONNECT (224)(0)
2020.04.14 14:33:36.466 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/
2020.04.14 14:33:36.468 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 52.51.96.203
2020.04.14 14:33:36.590 5: MQTT_Worx: sending CONNECT (16)8(0)(4)MQTT(4)(2)(2)X(0),android-a62f1cb9-c05c-4f0f-9e23-af2e40c8ad48
2020.04.14 14:33:36.590 5: SW: 103800044d51545404020258002c616e64726f69642d61363266316362392d633035632d346630662d396532332d616632653430633861643438
2020.04.14 14:33:36.592 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)
2020.04.14 14:33:36.626 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 disconnected, waiting to reappear (MQTT_Worx)
2020.04.14 14:33:36.629 5: MQTT_Worx: discarding DISCONNECT (224)(0)
2020.04.14 14:33:36.629 5: HttpUtils url=https://a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883/
2020.04.14 14:33:36.631 4: IP: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com -> 63.33.36.242
2020.04.14 14:33:36.752 5: MQTT_Worx: sending CONNECT (16)8(0)(4)MQTT(4)(2)(2)X(0),android-a62f1cb9-c05c-4f0f-9e23-af2e40c8ad48
2020.04.14 14:33:36.753 5: SW: 103800044d51545404020258002c616e64726f69642d61363266316362392d633035632d346630662d396532332d616632653430633861643438
2020.04.14 14:33:36.755 1: a1optpg91s0ydf-ats.iot.eu-west-1.amazonaws.com:8883 reappeared (MQTT_Worx)

woran es liegt ? keinen schimmer....
muss man nicht noch irgendwie die email und pw mitgeben? oder reicht das zerlegte zertifikat ?
Über Mich: Stefan, Informatiker, Systementwicklung Prozessleittechnik
Server: NUC7i5 - Debian Docker
Container: FHEM,DEBMATIC,EMQX,NODERED,SONOS2MQTT,TRAEFIK,HOMEBRIDGE,DECONZ
Aktoren/Sensoren: HM-RF, HM-IP, EnergyCam, Shelly, MiLight, Hue, SONOS, OEG KMS-D+, Echo's, Worx
Frontends: Smartvisu 2.9

kjmEjfu

Zitat von: WumpE am 14 April 2020, 14:52:11
muss man nicht noch irgendwie die email und pw mitgeben? oder reicht das zerlegte zertifikat ?

sollte im Zertifikat hinterlegt sein.
Mit der Desktop App kannst du dich problemlos verbinden?
Migriere derzeit zu Home Assistant

WumpE

#10
Zitat von: kjmEjfu am 14 April 2020, 17:47:09
sollte im Zertifikat hinterlegt sein.
Mit der Desktop App kannst du dich problemlos verbinden?

ja mit desktop app geht

EDIT:
Ach sie da, mit fhem gehts jetzt auch, ohne änderung  :o
Über Mich: Stefan, Informatiker, Systementwicklung Prozessleittechnik
Server: NUC7i5 - Debian Docker
Container: FHEM,DEBMATIC,EMQX,NODERED,SONOS2MQTT,TRAEFIK,HOMEBRIDGE,DECONZ
Aktoren/Sensoren: HM-RF, HM-IP, EnergyCam, Shelly, MiLight, Hue, SONOS, OEG KMS-D+, Echo's, Worx
Frontends: Smartvisu 2.9

WumpE

Zitat von: Papaloewe am 10 April 2020, 19:09:24
Gibt es eine einfache Möglichkeit den Errorcode und Statuscode in den entsprechenden Text zu mappen?
Mir fällt dazu bisher nur ein Userreading ein.

attr MQTT_Landroid userReadings mowerStatusTxt {\
my %stateCodes = (\
0 => "Idle",\
1 => "Home",\
2 => "Start sequence",\
3 => "Leaving home",\
4 => "Follow wire",\
5 => "Searching home",\
6 => "Searching wire",\
7 => "Mowing",\
8 => "Lifted",\
9 => "Trapped",\
10 => "Blade blocked",\
11 => "Debug",\
12 => "Remote control",\
30 => "Going home",\
31 => "Zone Training",\
32 => "Edge cutting",\
33 => "Searching zone",\
34 => "Pause"\
);;;;\
\
        $stateCodes{ReadingsVal($name,"mowerStatus","0")}\
},\
mowerState {\
       my $status = ReadingsVal($name,"mowerStatus","0");;;;\
       my $error = ReadingsVal($name,"mowerError","0");;;;\
       my $return = "";;;;\
\
      if (($status eq 7 || $status eq 9) && $error eq 0) {\
           $return = "true";;;;\
      }else{\
           $return = "false";;;;\
      }\
\
      $return \
},\
mowerErrorTxt {\
my %errorCodes = (\
0 => "No error",\
1 => "Trapped",\
2 => "Lifted",\
3 => "Wire missing",\
4 => "Outside wire",\
5 => "Raining",\
6 => "Close door to mow",\
7 => "Close door to go home",\
8 => "Blade motor blocked",\
9 => "Wheel motor blocked",\
10 => "Trapped timeout",\
11 => "Upside down",\
12 => "Battery low",\
13 => "Reverse wire",\
14 => "Charge error",\
15 => "Timeout finding home",\
16 => "Mower locked",\
17 => "Battery temp out of range"\
);;;;\
\
        $errorCodes{ReadingsVal($name,"mowerError","0")}\
}


jo mit userReadings habe ich es
Über Mich: Stefan, Informatiker, Systementwicklung Prozessleittechnik
Server: NUC7i5 - Debian Docker
Container: FHEM,DEBMATIC,EMQX,NODERED,SONOS2MQTT,TRAEFIK,HOMEBRIDGE,DECONZ
Aktoren/Sensoren: HM-RF, HM-IP, EnergyCam, Shelly, MiLight, Hue, SONOS, OEG KMS-D+, Echo's, Worx
Frontends: Smartvisu 2.9

WumpE

für alle die es interessiert, hier mal mein DEFMOD

defmod MQTT_Landroid MQTT2_DEVICE
attr MQTT_Landroid DbLogExclude .*
attr MQTT_Landroid IODev MQTT_Worx
attr MQTT_Landroid jsonMap dat_rsi:announceWifiQuality\
dat_fw:announceFirmware\
dat_mac:announceMacAddress\
cfg_sn:announceSerialNumber\
cfg_tm:lastUpdateTime\
cfg_dt:lastUpdateDate\
dat_dmp_1:directionPitch\
dat_dmp_2:directionRoll\
dat_dmp_3:directionYaw\
dat_bt_t:batteryTemperature\
dat_bt_v:batteryVoltage\
dat_bt_p:batteryLevel\
dat_bt_nr:batteryChargeCycle\
dat_bt_c:batteryCharging\
dat_st_b:totalBladeTime\
dat_st_d:totalDistance\
dat_st_wt:totalTime\
dat_le:mowerErrorIndex\
dat_ls:mowerStatusIndex\
dat_lk:mowerLockState\
cfg_rd:mowerRainDelay\
cfg_sc_m:mowerActiveIndex\
cfg_sc_p:mowerTimeCorrection\
cfg_mz_1:areasArea1\
cfg_mz_2:areasArea2\
cfg_mz_3:areasArea3\
cfg_mz_4:areasArea4\
cfg_mzv_1:areasAreaAct1\
cfg_mzv_2:areasAreaAct2\
cfg_mzv_3:areasAreaAct3\
cfg_mzv_4:areasAreaAct4\
cfg_mzv_5:areasAreaAct5\
cfg_mzv_6:areasAreaAct6\
cfg_mzv_7:areasAreaAct7\
cfg_mzv_8:areasAreaAct8\
cfg_mzv_9:areasAreaAct9\
dat_lz:areasAreaActIndex\
cfg_sc_d_1_1:calendarWeekday0StartTime\
cfg_sc_d_1_2:calendarWeekday0WorkTime\
cfg_sc_d_1_3:calendarWeekday0BorderCut\
cfg_sc_d_2_1:calendarWeekday1StartTime\
cfg_sc_d_2_2:calendarWeekday1WorkTime\
cfg_sc_d_2_3:calendarWeekday1BorderCut\
cfg_sc_d_3_1:calendarWeekday2StartTime\
cfg_sc_d_3_2:calendarWeekday2WorkTime\
cfg_sc_d_3_3:calendarWeekday2BorderCut\
cfg_sc_d_4_1:calendarWeekday3StartTime\
cfg_sc_d_4_2:calendarWeekday3WorkTime\
cfg_sc_d_4_3:calendarWeekday3BorderCut\
cfg_sc_d_5_1:calendarWeekday4StartTime\
cfg_sc_d_5_2:calendarWeekday4WorkTime\
cfg_sc_d_5_3:calendarWeekday4BorderCut\
cfg_sc_d_6_1:calendarWeekday5StartTime\
cfg_sc_d_6_2:calendarWeekday5WorkTime\
cfg_sc_d_6_3:calendarWeekday5BorderCut\
cfg_sc_d_7_1:calendarWeekday6StartTime\
cfg_sc_d_7_2:calendarWeekday6WorkTime\
cfg_sc_d_7_3:calendarWeekday6BorderCut
attr MQTT_Landroid readingList DB510/F0FEAAAAAAAA/commandOut:.* { json2nameValue($EVENT, '', $JSONMAP) }
attr MQTT_Landroid setList mowerRainDelay:slider,0,30,1440 DB510/F0FEAAAAAAAA/commandIn {"rd":$EVTPART1}\
mowerTimeCorrection:slider,-100,1,100 DB510/F0FEAAAAAAAA/commandIn {"sc":$EVTPART1}\
startMower:noArg DB510/F0FEAAAAAAAA/commandIn {"cmd":1}\
pauseMower:noArg DB510/F0FEAAAAAAAA/commandIn {"cmd":2}\
stopMower:noArg DB510/F0FEAAAAAAAA/commandIn {"cmd":3}
attr MQTT_Landroid userReadings mowerActive {\
       my $return = (ReadingsVal($name,"mowerActiveIndex","0") eq 1 )? "true" : "false" ;;;;\
      $return \
},\
mowerStatusTxt {\
my %stateCodes = (\
0 => "Idle",\
1 => "Home",\
2 => "Start sequence",\
3 => "Leaving home",\
4 => "Follow wire",\
5 => "Searching home",\
6 => "Searching wire",\
7 => "Mowing",\
8 => "Lifted",\
9 => "Trapped",\
10 => "Blade blocked",\
11 => "Debug",\
12 => "Remote control",\
30 => "Going home",\
31 => "Zone Training",\
32 => "Edge cutting",\
33 => "Searching zone",\
34 => "Pause"\
);;;;\
\
        $stateCodes{ReadingsVal($name,"mowerStatusIndex","0")}\
},\
mowerState {\
       my $status = ReadingsVal($name,"mowerStatusIndex","0");;;;\
       my $error = ReadingsVal($name,"mowerErrorIndex","0");;;;\
       my $return = "";;;;\
\
      if (($status eq 7 || $status eq 9) && $error eq 0) {\
           $return = "true";;;;\
      }else{\
           $return = "false";;;;\
      }\
\
      $return \
},\
mowerErrorTxt {\
my %errorCodes = (\
0 => "No error",\
1 => "Trapped",\
2 => "Lifted",\
3 => "Wire missing",\
4 => "Outside wire",\
5 => "Raining",\
6 => "Close door to mow",\
7 => "Close door to go home",\
8 => "Blade motor blocked",\
9 => "Wheel motor blocked",\
10 => "Trapped timeout",\
11 => "Upside down",\
12 => "Battery low",\
13 => "Reverse wire",\
14 => "Charge error",\
15 => "Timeout finding home",\
16 => "Mower locked",\
17 => "Battery temp out of range"\
);;;;\
\
        $errorCodes{ReadingsVal($name,"mowerErrorIndex","0")}\
}
Über Mich: Stefan, Informatiker, Systementwicklung Prozessleittechnik
Server: NUC7i5 - Debian Docker
Container: FHEM,DEBMATIC,EMQX,NODERED,SONOS2MQTT,TRAEFIK,HOMEBRIDGE,DECONZ
Aktoren/Sensoren: HM-RF, HM-IP, EnergyCam, Shelly, MiLight, Hue, SONOS, OEG KMS-D+, Echo's, Worx
Frontends: Smartvisu 2.9

Jasimo

Moin,

tolle Sache, werde ich auch mal antesten.
Ich frage mich jedoch wieso bei der ClientID ein Android- vor die UUid muss. Hat das was mit der Worx-App zu tun unter welchem OS die läuft? Ich nutze jedoch iOS, will nicht wieder ne 24h Sperre von Worx bekommen, deshalb Frage ich lieber mal hier :-)
Gruß
Jan

Jasimo

Zitat von: Jasimo am 25 April 2020, 15:17:38
Moin,

tolle Sache, werde ich auch mal antesten.
Ich frage mich jedoch wieso bei der ClientID ein Android- vor die UUid muss. Hat das was mit der Worx-App zu tun unter welchem OS die läuft? Ich nutze jedoch iOS, will nicht wieder ne 24h Sperre von Worx bekommen, deshalb Frage ich lieber mal hier :-)
Gruß
Jan

Sieht gut aus. Klappt auch mit dem M800i (DB504)