NEWS
Adapter: Worx Landroid v2.x.x
-
@hsteinme sagte in Adapter: Worx Landroid:
@hg6806 Markiere die sendCommand-Zeile im Objektbaum des Adapters, klicke ganz rechts auf das Bleistift-Symbol, aktiviere den Reiter RAW (EXPERTS ONLY) und schaue, was unter "states" steht:
"states": { "1": "Start", "2": "Stop", "3": "Home", "4": "Start Zone Taining", "5": "Lock", "6": "Unlock", "7": "Restart Robot", "8": "pause when follow wire", "9": "safe homing" }
Hallo,
Frage eines Noobs - kann ich den Robi aus einem "festgefahren Error" zurücksetzen?
Der M500 verirrt sich öfter im neuem Klettergerüst - wenn ich jetzt dann zwei Wochen im Urlaub bin möchte ich den da gerne resetten...Mfg
-
@habedere sagte in Adapter: Worx Landroid:
kann ich den Robi aus einem "festgefahren Error" zurücksetzen?
Da hast Du keine Chance. In einem Fehlerfall musst Du am Mäher selbst zunächst mit der START-Taste den Fehler quittieren und dann mit START und OK bzw. mit HOME und OK den Mäher wieder in Bewegung setzen.
Behördliche Sicherheitsvorschriften werden als Grund für diese Vorgehensweise genannt.
-
@semmy sagte in Adapter: Worx Landroid:
'use strict'; const startSequenceKey = "worx.0.999...999.areas.startSequence"; var Arr = JSON.parse(getState(startSequenceKey).val); Arr.unshift(Arr.pop()); setState(startSequenceKey, JSON.stringify(Arr));
Hallo
Ich habe Firmware 3.25 installiert und jetzt funktioniert das Script nicht mehr, kommt immer folgende Fehlermeldung:javascript.0 (9961) script.js.Mähroboter.Sequenz_verschieben: SyntaxError: Unexpected token , in JSON at position 1
Was kann das jetzt wieder sein?
Viele Grüße
Semmy -
@hsteinme sagte in Adapter: Worx Landroid:
@hsteinme sagte in Adapter: Worx Landroid:
Diese Logik kannst Du in einem kleinen Skript realisieren
So zum Beispiel:
'use strict'; const startSequenceKey = "worx.0.999...999.areas.startSequence"; var Arr = JSON.parse(getState(startSequenceKey).val); Arr.unshift(Arr.pop()); setState(startSequenceKey, JSON.stringify(Arr));
- In Zeile 3 wird der startSequence-String ausgelesen und in eine eindimensionale Tabelle konvertiert.
- Zeile 4: Arr.pop() liefert den rechten Wert der Tabelle und entfernt ihn dort, unshift stellt ihn an den Anfang der Tabelle.
- Zeile 5 konvertiert die Tabelle zurück in einen String der Art [x, ...,x] und stellt diesen wieder in startSequence ab.
Hallo
Ich habe Firmware 3.25 installiert und jetzt funktioniert das Script nicht mehr, kommt immer folgende Fehlermeldung:javascript.0 (9961) script.js.Mähroboter.Sequenz_verschieben: SyntaxError: Unexpected token , in JSON at position 1
Was kann das jetzt wieder sein?
Viele Grüße
Semmy -
@semmy : Welcher Wert steht denn vor dem Skriptlauf bei Dir in worx.0.999...999.areas.startSequence?
-
@hsteinme sagte in Adapter: Worx Landroid:
@semmy : Welcher Wert steht denn vor dem Skriptlauf bei Dir in worx.0.999...999.areas.startSequence?
Das steht davor:
const startSequenceKey = "worx.0. -
@semmy Missverständnis, 2. Versuch: Bevor Du das Skript startest, gehe bitte in den Objekte-Reiter zu dem Objekt worx.0.999...999.areas.startSequence und gib hier dessen Wert an.
-
@hsteinme Hier steht das: [0,1,2,0,1,2,0,0,1,2]
Hast du das gemeint? -
@semmy Ja. Das sieht aber sauber aus.
Du hast oben nur meine Version des Skriptes zitiert. Für die Fehlersuche wäre es aber nötig, Dein Skript hier vollständig zu posten (nach Maskierung der Seriennummer).
-
@hsteinme So sieht es aus:
'use strict';
const startSequenceKey = "worx.0.99999.areas.startSequence";
var Arr = JSON.parse(getState(startSequenceKey).val);
Arr.unshift(Arr.pop());
setState(startSequenceKey, JSON.stringify(Arr)); -
@hsteinme Hallo
Hast du schon einen Fehler entdeckt?Viele Grüße
Semmy -
Das sind doch die Start Zonen oder ?
Ich kämpfe auch gerade damit rum ... da ich diese zur Zeit Steuerung verwenden will.
.areas.actualAreaIndicator sagt dir wo er beim zählen ist und .areas.startSequence zeigt an wo er wann starten soll.
Ich würde gerne die Sequence auslesen abhängig vom Indicator auslesen und dann sagen wenn er in Zone 0 startet dann bitte die Arbeitszeit auf 30 min legen. Da die fläche so klein ist.
Kann mir einer sagen wie ich die sequenz [0,2,0,2,2,2,2,2,2,2] in blockly abhängig von Indicator 6 auslese damit ich eine Gleichung erstellen kann ?
-
@semmy sagte in Adapter: Worx Landroid:
So sieht es aus:
Das ist zu 100% mein Skript. Einen Übertragungsfehler können wir also ausschließen. Bitte lass mal testweise folgendes Skript laufen:
'use strict'; const startSequenceKey = "worx.999...999.areas.startSequence"; console.log('startSequence vorher: ' + getState(startSequenceKey).val); var Arr = JSON.parse(getState(startSequenceKey).val); console.log('Arr[0] vorher: ' + Arr[0]); Arr.unshift(Arr.pop()); console.log('Arr[0] nachher: ' + Arr[0]); console.log('startSequence nachher: ' + JSON.stringify(Arr)); setState(startSequenceKey, JSON.stringify(Arr));
Dann stell bitte alle zu diesem Zeitpunkt auftretenden Logdatei-Einträge zu Worx und Javascript vollständig hier rein.
-
@hsteinme ```Hallo, dieses steht jetzt im log.
2021-08-26 16:37:05.541 - info: javascript.0 (16111) Stop script script.js.Mähroboter.Test
2021-08-26 16:37:05.553 - info: javascript.0 (16111) Start javascript script.js.Mähroboter.Test
2021-08-26 16:37:05.562 - info: javascript.0 (16111) script.js.Mähroboter.Test: startSequence vorher: 0,1,2,0,1,2,0,0,1,2
2021-08-26 16:37:05.563 - info: javascript.0 (16111) script.js.Mähroboter.Test: registered 0 subscriptions and 0 schedules
2021-08-26 16:37:05.565 - error: javascript.0 (16111) script.js.Mähroboter.Test: SyntaxError: Unexpected token , in JSON at position 1
2021-08-26 16:37:05.566 - error: javascript.0 (16111) at JSON.parse ()
2021-08-26 16:37:05.567 - error: javascript.0 (16111) at script.js.Mähroboter.Test:4:16
2021-08-26 16:37:05.567 - error: javascript.0 (16111) at script.js.Mähroboter.Test:10:3
2021-08-26 16:37:05.568 - error: javascript.0 (16111) at Script.runInContext (vm.js:130:18) -
@semmy sagte in Adapter: Worx Landroid:
startSequence vorher: 0,1,2,0,1,2,0,0,1,2
Hoppala! Da fehlen ja die eckigen Klammern! Wer hat die denn geklaut? Laut Deiner Nachricht vom 24. Aug. 2021, 22:10 sind sie im Objekt-Reiter zu sehen, aber nun nicht mehr im Javaskript. In meiner ioBroker-Umgebung sind die Klammern im Skript vorhanden.
Da hat sich aber in Deiner Umgebung etwas schrecklich Grundlegendes geändert. Setzt Du die Javascript Version 5.2 ein? Dann ist hier der "Schuldige" geständig:
Ich habe jetzt einige Jahrzehnte beruflich in der Programmierwelt verbracht, aber dass es jemand wagt, einen derart dreisten Bruch in eine Programmierschnittstelle einzubauen, hätte ich mir in meinen kühnsten Träumen nicht vorstellen können
Also merke: Nicht alles, was auf einmal nicht mehr läuft, sollte man der Firmware des Mähers in die Schuhe schieben
Ich kann's in meiner Umgebung nicht testen. Probier bitte bei Dir aus, welche der beiden folgenden Skript-Variationen funktioniert:
'use strict'; const startSequenceKey = "worx.0.999...999.areas.startSequence"; var Arr = getState(startSequenceKey).val; Arr.unshift(Arr.pop()); setState(startSequenceKey, Arr);
'use strict'; const startSequenceKey = "worx.0.999...999.areas.startSequence"; var Arr = getState(startSequenceKey).val.split(','); Arr.unshift(Arr.pop()); setState(startSequenceKey, Arr.join(','));
-
@hsteinme Hallo, das erste hat funktioniert. Ich habe das zweite dann gar nicht mehr probiert.
Vielen Dank für die geniale Hilfe.Viele Grüße
Semmy -
@hsteinme
hallo, wo finde ich den Dein Script für den Worx.. habe schon paar Seiten zurück geblättert -
@jens-meyer sagte in Adapter: Worx Landroid:
@hsteinme
hallo, wo finde ich den Dein Script für den Worx.. habe schon paar Seiten zurück geblättertIst auf Seite 20 zu finden.
-
@semmy
vielen Dank,
du meinst post 20?
die GIthub seite geht da aber nicht mehr -
@jens-meyer Seite 20 vom 21.06.2021