NEWS
Test Adapter Worx v0.4.x
-
@tazdevil20 sagte in Test Adapter Worx v0.4.x:
@Meistertr
Hoffe es ist ok. Habe ein pull request mit folgenden Änderungen eingestellt:- Hinzufügen von "sendCommand". Dadurch kann man alle (?) aktuell verfügbaren Commands an Worx AWS senden. Hatte dadurch gehofft, dass ich das Problem mit dem EdgeCut (M500 mit FW 3.07+) durch etwas spielen könnte.
- Entfernen von "math.round" für die totalTime/Distance/BladeTime. Hat nur bis zur ersten Stelle nach dem Komma gerundet. Fand ich nicht schön.
Habe auch noch in meinem Git Neigung, Steigung und Richtung integriert. Leider weiß ich nicht wie ich einen weiteren pull request stellen könnte. Der würde dann auch noch kommen.
Kommen diese Funktionen in der neuen Version? Mathematische Rundung find ich auch nicht gut - wie kann ich bei der aktuellen FW EdgeCut starten? Haben einen WR 105.SI mit der FW 3.52 / habe gestern auf EdgeCut gedrückt, der Roboter ist losgefahren, aber ohne zu mähen.
-
@LJSven
Hi,
das ist ein Problem von Worx. Aktueller Workaround ist ein Script welches EdgeCut startet.Ich habe in meinem Script einfach zu der aktuellen Zeit 2 Minuten hinzugezählt und die Parameter für das automatische Mähen entsprechend gesetzt mit der Option EdgeCut = true.
Kann gerade leider das Script nicht posten, da ich unterwegs bin. Kann ich bei Bedarf aber gerne noch machen. Als Vorwarnung: Das Script ist sicherlich Verbesserungswürdig, da ich einiges sicherlich zu kompliziert gebaut habe.
-
@tazdevil20 sagte in Test Adapter Worx v0.4.x:
@LJSven
Hi,
das ist ein Problem von Worx. Aktueller Workaround ist ein Script welches EdgeCut startet.Ich habe in meinem Script einfach zu der aktuellen Zeit 2 Minuten hinzugezählt und die Parameter für das automatische Mähen entsprechend gesetzt mit der Option EdgeCut = true.
Kann gerade leider das Script nicht posten, da ich unterwegs bin. Kann ich bei Bedarf aber gerne noch machen. Als Vorwarnung: Das Script ist sicherlich Verbesserungswürdig, da ich einiges sicherlich zu kompliziert gebaut habe.
Kannst du mir das schicken, wenn du "Zeit" hast?
-
@tazdevil20 bitte das Skript 'für alle' bereitstellen. danke
-
ich mach es so
müsst ihr aber einen Datenpunkt anlegen über den getriggert wird.
let worx = 'worx.0.id_des_mover'; let laufzeit = 60; let plusMinuten = 1; on({id: worx + '.mower.state', change: "ne"}, function (obj) { let stat = getState(worx + '.mower.state').val; if (!stat) { worxLos(new Date(), '00:00', 0); // wenn fertig dann wird wieder alles gelöscht } }); on({id: '0_userdata.0.draussen.worxKantenschnitt', change: "any"}, function (obj) { if (getState('0_userdata.0.draussen.worxKantenschnitt').val) { if (!getState(worx + '.mower.state').val) { // robi muss in der garage sein let jetzt = new Date(); jetzt.setMinutes(jetzt.getMinutes() + plusMinuten ); let los = new Date(jetzt); let startUm ; if (los.getMinutes() < 10) { startUm = los.getHours() + ':0' + los.getMinutes(); } else { startUm = los.getHours() + ':' + los.getMinutes(); } worxLos(los, startUm, laufzeit); } } }); function worxLos(zeitstempel, startUm, laufzeit) { switch (zeitstempel.getDay()) { case 0: setState(worx + '.calendar.sunday.startTime', startUm); setTimeout(function () { setState(worx + '.calendar.sunday.workTime', laufzeit); }, 1000 * 5); // warte 5 sekunden break; case 1: setState(worx + '.calendar.monday.startTime', startUm); setTimeout(function () { setState(worx + '.calendar.monday.workTime', laufzeit); }, 1000 * 5); // warte 5 sekunden break; case 2: setState(worx + '.calendar.tuesday.startTime', startUm); setTimeout(function () { setState(worx + '.calendar.tuesday.workTime', laufzeit); }, 1000 * 5); // warte 5 sekunden break; case 3: setState(worx + '.calendar.wednesday.startTime', startUm); setTimeout(function () { setState(worx + '.calendar.wednesday.workTime', laufzeit); }, 1000 * 5); // warte 5 sekunden break; case 4: setState(worx + '.calendar.thursday.startTime', startUm); setTimeout(function () { setState(worx + '.calendar.thursday.workTime', laufzeit); }, 1000 * 5); // warte 5 sekunden break; case 5: setState(worx + '.calendar.friday.startTime', startUm); setTimeout(function () { setState(worx + '.calendar.friday.workTime', laufzeit); }, 1000 * 5); // warte 5 sekunden break; case 6: setState(worx + '.calendar.saturday.startTime', startUm); setTimeout(function () { setState(worx + '.calendar.saturday.workTime', laufzeit); }, 1000 * 5); // warte 5 sekunden } }
-
Ich habe einen klein wenig anderen Ansatz.
Muss aber auch gestehen, dass ich glaube, dass ich aktuell noch ein Problem mit dem deaktivieren habe. Muss ich noch genauer Prüfen. Manche Variablen haben auch einen nicht perfekten Namen.@arteck
Du betrachtest nicht den Start um x:59. Dann würde bei dir der EdgeCut nicht starten.An zwei Stellen muss die eigene ID eingetragen werden. Muss ich noch anpassen, dass es nur noch eine Stelle ist.
var events = 'EigeneDatenpunkte.0.History.Events'; var MowerStatus = 'worx.0.!!!!mowerID!!!!.mower.status'; var script = "javascript.0.scriptEnabled.Garten.Mähroboter_Rasenkante"; var lastEdgeCut = "EigeneDatenpunkte.0.LandroidZuletztRasenkante" var workingtime = 10; var buffer = 2; var enabledschedule, setval; function EdgeCut() { var day, startzeittmp, currentHour, currentMin, starttime; day = getWeekday(); var schedule = 'worx.0.!!!!mowerID!!!!.calendar.' + day + "."; var currentHour, currentMin, currentMonth; var startzeittmp = new Date(); var gesamtzeit_start = new Date()/1; if (startzeittmp.getHours() < 10) { currentHour = '0' + startzeittmp.getHours();} else {currentHour = startzeittmp.getHours()}; currentMin = startzeittmp.getMinutes()+buffer; if (currentMin < 10) { currentMin = '0' + currentMin; } else { if (currentMin == 60) { currentMin = "00"; currentHour = currentHour +1}; if (currentMin == 61) { currentMin = "01"; currentHour = currentHour +1}; }; starttime = currentHour + ":" + currentMin; setState(schedule + "startTime", starttime); setval = setTimeout(function () { setState(schedule + "workTime", workingtime); }, 5000); setval = setTimeout(function () { setState(schedule + "borderCut", true); }, 10000); log(schedule + "worktime"); log("Schneide Rasenkante um " + starttime); setState(events, "Schneide Rasenkante um " + starttime); } function getWeekday() { var d = new Date(); var weekday = new Array(7); weekday[0] = "sunday"; weekday[1] = "monday"; weekday[2] = "tuesday"; weekday[3] = "wednesday"; weekday[4] = "thursday"; weekday[5] = "friday"; weekday[6] = "saturday"; var n = weekday[d.getDay()]; return n; }; EdgeCut(); on({id: MowerStatus, change: "ne"}, function (obj) { if(getState(MowerStatus).val >= 2 && enabledschedule === true) { setState(lastEdgeCut, formatDate(new Date(), 'DD.MM. hh:mm')); setState(schedule + "startTime", "00:00"); setval = setTimeout(function () { setState(schedule + "workTime", 0); }, 5000); setval = setTimeout(function () { setState(schedule + "borderCut", false); }, 10000); setState(script, false); }; });
Kritik und Verbesserungsvorschläge sind ausdrücklich gewünscht.
-
@tazdevil20 doch die minuten addition macht das automatisch.. das ist eine javascript funktion
var date = "2012-01-18T16:59"; let jetzt = new Date(date); jetzt.setMinutes(jetzt.getMinutes() + 1); let los = new Date(jetzt); let startUm = los.getHours() + ':' + los.getMinutes(); log ("wert zurück " + startUm);
-
@arteck
Danke. Habe ich bei mir mal angepasst. Muss ich später mal testen.Das Problem warum das Script nicht mehr gestoppt wurde habe ich auch gefunden. Wenn ich meine Tests durch habe kann ich es gerne nochmal bereitstellen. Allerdings arteck sein Script funktioniert ja scheinbar ohne Probleme.
-
Gibt es dieses Script auch als Blockly und ohne den internen Zeitplan? Ich habe es bei mir über den Google Calendar gelöst. Was muss ich genau machen, um den Kantenschnitt zu aktivieren? Wie ist die Folge?
-
@LJSven es gibt keine Reihenfolge.. du musst halt nur die Zeitplandaten eintragen ..
-
Seit heute habe ich neue Errors, hat das noch jemand?
worx.0 2020-05-30 08:50:01.144 error (16835) ERROR: StatusCodeError: 403 - "<html>\r\n<head><title>403 Forbidden</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>403 Forbidden</h1></center>\r\n</body>\r\n</html>\r\n" worx.0 2020-05-30 08:50:01.143 error (16835) Could not Connect to Worx Server: StatusCodeError: 403 - "<html>\r\n<head><title>403 Forbidden</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>403 Forbidden</h1></center>\r\n</body>\ worx.0 2020-05-30 08:50:00.948 info (16835) starting. Version 1.0.2 in /opt/iobroker/node_modules/iobroker.worx, node: v10.20.1, js-controller: 3.1.4
-
da steht doch forbidden. Geht die App noch, oder hast Du das Kennwort geändert ?
-
@skokarl
Die App läuft noch. "forbidden" ist ja keine Lösung, Neuanmeldung mit den Adapter bringt auch nichts.
Das Passiert bei Neuanmeldung:(16835) No mower found! {"_events":{},"_eventsCount":6,"_maxListeners":100,"USER":"***@***","PASS":"***,"adapter":{"logList":[],"aliases":{},"aliasPatterns":[],"objects":{
Die Adapterversion ist 1.0.2
-
@cvidal und du kannst dich mit denselben daten wie du diese im Adapter eingetragen hast auf
https://account.worxlandroid.com/login anmelden -
@arteck
Ja das Funktioniert. -
@arteck Aber scheint wieder zu laufen, der letzte Fehler war heute um 06:16Uhr, danach läuft der Adapter wieder. Ich hatte heute aber noch nichts geändert.
-
Hat nicht lange gehalten, fehler ist wieder da....
(14847) Onlinecheck: couldnt get data StatusCodeError: 403 - "<html>\r\n<head><title>403 Forbidden</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>403 Forbidden</h1></center>\r\n</body>\r\n
-
Hallo
Zunächst mal: Super Sache mit dem Worx Adapter!
Läuft bei mir seit ca. 6 Wochen.
Aber ich weiß nicht, ob ich etwas verpasst habe, ich sehe neu zwei Probleme:
(1) Seit ein paar Tagen geht der EdgeCut nicht mehr. Der Mäher fährt nur nich den Draht entlang. Ohne Messer. Egal welche Verzögerungszeit ich einstelle. Geht das etwa nur noch mit einer gescripteten Zeitplanänderung?
Interessanterweise ist es so, dass wenn ich den Mäher mit Der roten Stop-Taste anhalte und dann per Home-Taste am Gerät heimschicke, schaltet der das Messer an.
(2) Viel schlimmer ist, dass seit heute der Adapter den Online Status immer auf false hat. Nach dem Start des Adapters geht er auf true, dann nach einiger Zeit auf false und aktualisiert nichts mehr. Habe schon den kompletten iobroker neu gestartet, keine Änderung. Ich hoffe Worx hat da nichts unanständiges gemacht. In der App geht alles normal.
Im log sehe ich keine Fehlermeldungen.
Der Mäher ist ein M500 mit FW 3.08 und der Adapter is auf 1.02. -
@womi sagte in Test Adapter Worx v0.4.x:
Hallo
Zunächst mal: Super Sache mit dem Worx Adapter!
Läuft bei mir seit ca. 6 Wochen.
Aber ich weiß nicht, ob ich etwas verpasst habe, ich sehe neu zwei Probleme:
(1) Seit ein paar Tagen geht der EdgeCut nicht mehr. Der Mäher fährt nur nich den Draht entlang. Ohne Messer. Egal welche Verzögerungszeit ich einstelle. Geht das etwa nur noch mit einer gescripteten Zeitplanänderung?
Interessanterweise ist es so, dass wenn ich den Mäher mit Der roten Stop-Taste anhalte und dann per Home-Taste am Gerät heimschicke, schaltet der das Messer an.das ist leider nicht so ganz neu.
(2) Viel schlimmer ist, dass seit heute der Adapter den Online Status immer auf false hat. Nach dem Start des Adapters geht er auf true, dann nach einiger Zeit auf false und aktualisiert nichts mehr. Habe schon den kompletten iobroker neu gestartet, keine Änderung. Ich hoffe Worx hat da nichts unanständiges gemacht. In der App geht alles normal.
Im log sehe ich keine Fehlermeldungen.
Der Mäher ist ein M500 mit FW 3.08 und der Adapter is auf 1.02.Kann das sein, dass du ein Wlan Problem hast ?
Wenn der Mäher weiter weg ist, geht das Signal auf false ....... -
@skokarl
Danke für die schnelle Antwort!Zu (1): Ok, vielen Dank. Ich hatte sowas weiter oben gesehen, aber nicht den genauen Post und war mir Unsicher. Ich hätte schwören können, (auch schon mit FW 3.07) hatte ich anfangs Edge-Cut. Vielleicht wächst mein Gras am Rand so langsam
Dann muss ich nochmals an mein Mäh-Script ran.Zu (2): Mmh, ja, das WLan ist schwach. War es zwar vorgestern auch schon, aber wer weiß. Ich prüfe das mal genauer. Hast Du eine Erklärung, warum es mit der App trotzdem aktualisiert? Ist ja das gleiche WLan.