NEWS
Adapter: Worx Landroid v2.x.x
-
Hallo Zusammen,
ich werde meine Worx jetzt bald in den Winterurlaub schicken, aber würde gern vorab die Daten in meine VIS bekommen, dabei habe ich aktuell ein Problem. Mein Worx soll laut Daten mehr als 323083m (323km) gefahren sein. (Dieses Jahr von April bis November).
Ich würde gern für das nächste Jahr, ganz neu alles aufzeichnen und berechnen.
Ich weiß nur nicht wie ich die richtigen Werte berechnet bekomme.
Ich möchte einfach nur die 323083 von der neue aktuellen Zahl abziehen. Also reine SUBTRAKTION machen, aber ich bekomme es nicht mal mit "blockly" hin :(.
Kann mir da jemand helfen oder kann man den WORX Reseten auf 0?
Gruß Ostpower
-
Hi,
probier mal folgendes Blockly-Skript zu importieren.
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="procedures_defcustomnoreturn" id="ORmhM@AO~Vbt~j|cDEnt" x="-463" y="-237"><mutation statements="false"><arg name="ID"></arg> <arg name="Init"></arg> <arg name="Name"></arg> <arg name="Einheit"></arg> <arg name="Min"></arg> <arg name="Max"></arg></mutation> <field name="NAME">newNumberDP</field> <field name="SCRIPT">Y3JlYXRlU3RhdGUoSUQsIEluaXQsIHsKICAgIHR5cGU6ICdudW1iZXInLAogICAgbmFtZTogTmFtZSwKICAgIHVuaXQ6IEVpbmhlaXQsCiAgICBtaW46IE1pbiwKICAgIG1heDogTWF4Cn0pOw==</field> <comment pinned="false" h="80" w="160">Datenpunkt Typ Zahl erzeugen</comment></block> <block type="procedures_callcustomnoreturn" id="Y]V[@NuL;Rok_d|laA52" x="-463" y="-187"><mutation name="newNumberDP"><arg name="ID"></arg> <arg name="Init"></arg> <arg name="Name"></arg> <arg name="Einheit"></arg> <arg name="Min"></arg> <arg name="Max"></arg></mutation> <value name="ARG0"><block type="text" id="PRN1198~0C{:.--DP:D;"><field name="TEXT">RasenmaeherJahresleistung</field></block></value> <value name="ARG1"><block type="math_number" id="Nq;1gp%XrBr@~Rg|cM:b"><field name="NUM">0</field></block></value> <value name="ARG2"><block type="text" id="GuiWt[BA{]N|b,zQI9PV"><field name="TEXT">RasenmaeherJahresleistung</field></block></value> <value name="ARG3"><block type="text" id="[;iM6O6hEOK7O;xyxi=/"><field name="TEXT">m</field></block></value> <value name="ARG4"><block type="math_number" id="kl,rbTpLzq0iRmV(l`]b"><field name="NUM">0</field></block></value> <value name="ARG5"><block type="math_number" id="gpYeG9D,;8c+tA.h#.0@"><field name="NUM">1e+22</field></block></value> <next><block type="on_ext" id="/pg`o*VOrF@{UzybLS[j"><mutation items="1"></mutation> <field name="CONDITION">ne</field> <value name="OID0"><shadow type="field_oid" id="~36EpE-Dh.%aRy]0dL{w"><field name="oid">landroid-s.0.mower.totalDistance</field></shadow></value> <statement name="STATEMENT"><block type="update" id="S,-y@#Ej9~m=utF99EPw"><mutation delay_input="false"></mutation> <field name="OID">javascript.0.RasenmaeherJahresleistung</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="math_arithmetic" id="07JQ6A7r)S3;gICtpvHI"><field name="OP">MINUS</field> <value name="A"><shadow type="math_number" id="lVEVi9L8HtNmh_swO3HM"><field name="NUM">1</field></shadow> <block type="get_value" id="2n}GZzT21;^JMGj6}zz]"><field name="ATTR">val</field> <field name="OID">landroid-s.0.mower.totalDistance</field></block></value> <value name="B"><shadow type="math_number" id="5_]u:s|;/t#^2C8NPg^*"><field name="NUM">5000</field></shadow></value></block></value></block></statement></block></next></block></xml>Dadurch wird ein Javascript DP mit Namen "RasenmäherJahresleistung" generiert und bei jeder Änderung der Gesamtstrecke aktualisiert. Den abzuziehenden Wert musst du nur noch anpassen. Steht probehalber auf 5000m.

-
Der Adapter für Worx Landroid, Kress, Landxcape und Ferrex Mäher wurde komplett neugeschrieben und unterstützt jetzt auch Node v18. Minimum ist Node v14.18.0
Aktuelle Anleitung befindet sich hier:
https://github.com/iobroker-community-adapters/ioBroker.worx/blob/master/docs/de/README.md.
.
.Alte nicht unbedingt aktuelle Anleitung:
Die Verbindung wird via Cloud aufgebaut und Daten werden via MQTT von Worx in den Adapter gepusht.
Es gibt verschiedene Order mit daten
activityLog das Aktivitätenprotokoll aus der App
areas Die Areas des Mähers
calendar Der Mähkalender des Mähers
modules Die verbauten Modules des Mähers
mower Aufbereite Informationen des Mähers sowie Steuerung des Mähers
product Produktinformationen zum Mäher
rawMqtt dieRohaten die via MQTT vom Mäher kommenMäher ab eine Zone oder Meterzahl starten lassen:
Setze areas.area_0 auf die Meterzahl des gewünschten Startpunktes
Setze areas.area_1, areas.area_2 und areas.area_3 jeweils auf 0
Setze areas.startSequence auf [0,0,0,0,0,0,0,0,0,0]worx.0.xx.mower.firmware_available -> Verfügbare Firmware
worx.0.xx.mower.firmware_available_date -> Datum Update der letzten Firmware
worx.0.xx.mower.firmware_available_all -> History der Firmware als JSON
Update der Daten 24Hworx.0.xx.product -> Informationen von eurem Mower welche Features, Board und Accessories er hat.
Update der Daten einmalig nach einem Neustart/Restartworx.0.xx.activityLog.last_update -> Letzte Aktualisierung
worx.0.xx.activityLog.payload -> Alle Aktivitäten der letzten 8 Tage als JSON
worx.0.xx.activityLog.manuell_update -> Ab hier wird es schwierig. Warum auch immer sehe ich in der APP sehr selten ein delay von 4 Minuten. Daher könnt ihr das Aktivitätenprotokoll mit diesem Button manuell neu abfragen. Ich habe in VIS oder iQontrol einen Button um das Protokoll zu aktualisieren. Bitte hier keinen Cron erstellen der den Button in einem Intervall auf true setzt. Hier gibt es ein Beschränkung von auslösen des Buttons...
Hier ein kleines Blockly als Beispiel zum auswerten des JSON. Kann natürlich auch für die Firmware angewendet werden.
BlocklySchedule setzen:
wochentagname/borderCut
wochentagname/startTime
wochentagname/workTimeDanach ein Timeout von 1,1 Sek. und worx.0.xxxxxxxxxxx.calendar.calJson_tosend auf true setzen.
In dieser Zeit darf natürlich nicht automatisch ein Update kommen, da die geänderten Zeiten wieder glöscht werden. Wenn das zu oft vorkommt, dann muss ich leider einen weiteren Datenpunkt hinzufügen der Updates von MQTT oder den 10 Minuten Refresh unterbindet.Das gleich gilt natürlich auch für diese:
mower.oneTimeWithBorder
mower.oneTimeWorkTimeUnd dann nach 1,1 Sek. worx.0.xxx.mower.oneTimeStart setzen
Update der Daten jede Minute wenn sich die Datenpunkte worx.0.xx.mower.error oder worx.0.xx.mower.status geändert haben.
worx.0.xx.rawMqtt.last_status.timestamp -> Letzte MQTT Update (Nicht der 10 Minuten Intervall vom rawMqtt). Hier wurde der Intervall alle 10 Minuten von Worx entfernt. Es kann nun vorkommen, dass Nachts >6 Stunden keine neuen Daten kommen.Bugfix:
Aktualisierung von rawMqtt alle 10 Minuten. Somit wird nun der DP worx.0.xx.rawMqtt.blade_work_time_reset aktualisiert
Bei einer Neuinstallation kommen keine Fehlermeldungen mehr die auf fehlende Datenpunkte hinweisen -
@m76 klar doch... Also es ging die ganze Zeit. Leider habe ich kein Mähroboter mehr und kann es nicht testen.
-
@ldittmar danke ich teste es und update - hatte gefragt, da bei dem neato botvac adapter das leider nicht möglich ist

@m76 said in Adapter: Worx Landroid:
@ldittmar danke ich teste es und update - hatte gefragt, da bei dem neato botvac adapter das leider nicht möglich ist

Sorry, muss mich korrigieren, es geht auch mit Neato Botvac, anscheinend lag das noch an der alten Firmware!
-
Hallo, habe heute den landroid adapter auch installiert, über die Admin webUI von iobroker, leider bekam ich diese Fehlermeldung und keine Daten außer, dass er connected=true ist:
landroid.0 2019-02-26 15:32:43.832 info starting. Version 1.0.3 in /opt/iobroker/node_modules/iobroker.landroid, node: v8.15.0
landroid.0 2019-02-26 15:32:43.701 error : message handler implemented, but messagebox not enabled. Define common.messagebox in io-package.json for adapter or delete message han...Wie kann ich das fixen?
-
Hallo, habe heute den landroid adapter auch installiert, über die Admin webUI von iobroker, leider bekam ich diese Fehlermeldung und keine Daten außer, dass er connected=true ist:
landroid.0 2019-02-26 15:32:43.832 info starting. Version 1.0.3 in /opt/iobroker/node_modules/iobroker.landroid, node: v8.15.0
landroid.0 2019-02-26 15:32:43.701 error : message handler implemented, but messagebox not enabled. Define common.messagebox in io-package.json for adapter or delete message han...Wie kann ich das fixen?
@m76 laut dem Log fehlt im Adapter die Einstellung, dass er Messages versenden darf.
Du kannst mal probieren es selbst lokal hinzuzufügen.
Unter "/opt/iobroker/node_modules/iobroker.landroid/io-package.json" musst du den Eintrag messagebox ergänzen:"compact": true, "messagebox": true, "subscribe": "messagebox" "license": "MIT",Das 'subscribe' musst du glaube ich auch hinzufügen, da es sonst auch nicht funktioniert und danach mal den Adapter neu starten.
-
@m76 laut dem Log fehlt im Adapter die Einstellung, dass er Messages versenden darf.
Du kannst mal probieren es selbst lokal hinzuzufügen.
Unter "/opt/iobroker/node_modules/iobroker.landroid/io-package.json" musst du den Eintrag messagebox ergänzen:"compact": true, "messagebox": true, "subscribe": "messagebox" "license": "MIT",Das 'subscribe' musst du glaube ich auch hinzufügen, da es sonst auch nicht funktioniert und danach mal den Adapter neu starten.
@thewhobox said in Adapter: Worx Landroid:
"compact": true,
"messagebox": true,
"subscribe": "messagebox"danke, das "subscribe" wusste ich nicht, ohne hatte ich schonprobiert :} - die Fehlermeldung ist weg, bekomme aber keine Daten rein außer connected.
-
@thewhobox said in Adapter: Worx Landroid:
"compact": true,
"messagebox": true,
"subscribe": "messagebox"danke, das "subscribe" wusste ich nicht, ohne hatte ich schonprobiert :} - die Fehlermeldung ist weg, bekomme aber keine Daten rein außer connected.
-
@m76 Werden denn alle Objeket korrekt angelegt?
Ändert sich der state "info.lastsync" nach dem eingestellten Interval in Sekunden?@thewhobox said in Adapter: Worx Landroid:
@m76 Werden denn alle Objeket korrekt angelegt?
Ändert sich der state "info.lastsync" nach dem eingestellten Interval in Sekunden?objekte sind da, lastsync ist nicht beschrieben, es klappt nur der ping
Hab im Code rumgewühlt, hier wird ja versucht auf port 80 der IP des landroid L zu connecten, aber laut nmap ist hier kein einziger Port offen? Huch? Hatte ich was übersehen?
-
@thewhobox said in Adapter: Worx Landroid:
@m76 Werden denn alle Objeket korrekt angelegt?
Ändert sich der state "info.lastsync" nach dem eingestellten Interval in Sekunden?objekte sind da, lastsync ist nicht beschrieben, es klappt nur der ping
Hab im Code rumgewühlt, hier wird ja versucht auf port 80 der IP des landroid L zu connecten, aber laut nmap ist hier kein einziger Port offen? Huch? Hatte ich was übersehen?
@m76 Hmm. Du könntest dir ja mal die Response ins Log schieben lassen. Also:
request(getOptions, function (error, response, body) { adapter.log.info(response.statusCode); adapter.log.info(response); adapter.log.info(body); if (!error && response.statusCode == 200) { try { data = JSON.parse(body); evaluateResponse(); } catch (e) { adapter.log.warn(e); } } });Ich denke mal, dass der StatusCode nicht 200 ist und er deswegen evaluateResponse nicht ausführen kann.
Edit: Was passiert wenn du die URL im Browser aufrufst? (http://" + ip + ":80/jsondata.cgi)
-
@m76 Hmm. Du könntest dir ja mal die Response ins Log schieben lassen. Also:
request(getOptions, function (error, response, body) { adapter.log.info(response.statusCode); adapter.log.info(response); adapter.log.info(body); if (!error && response.statusCode == 200) { try { data = JSON.parse(body); evaluateResponse(); } catch (e) { adapter.log.warn(e); } } });Ich denke mal, dass der StatusCode nicht 200 ist und er deswegen evaluateResponse nicht ausführen kann.
Edit: Was passiert wenn du die URL im Browser aufrufst? (http://" + ip + ":80/jsondata.cgi)
ja, aber ich sehe ja schon über nmap dass der port nicht offen ist, ein wget auf:
http://<ip>/jsondata.cgi
Connecting to <ip>:80... failed: Connection timed out.
Retrying.Ist das im Landroid L nicht mehr möglich?

-
@m76 Hmm dann hat er den Port nicht offen bzw unterstützt es nicht mehr.
Evtl gibt es ja auch in der APp ne Einstellung, aber ich kann das ohne Gerät nur vermuten.Jupp, danke dir für all die Hilfe, ich hab den Support mal angeschrieben... bestimmt geschlossen in der neuen Firmware... grummel
-
Hey Leute,
ich habe mir heute den neuen WORX Landroid M500 (WR141E) bestellt. Das ist das 2019er Modell.
Ist dieser auch mit dem Adapter kompatibel?VG
Modjo
@Modjo sagte in Adapter: Worx Landroid:
Hey Leute,
ich habe mir heute den neuen WORX Landroid M500 (WR141E) bestellt. Das ist das 2019er Modell.
Ist dieser auch mit dem Adapter kompatibel?VG
Modjo
ich schätze dass der schon die 5.X SW Version drauf hat dann musst du den Landroid-S adapter nehmen