NEWS
Adapter: Worx Landroid v2.x.x
-
@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
-
Guten Tag erstmal,
Ich bin relative neu hier und befasse mich eigentlich mit Automatisierungstechnik im Industriebereich. Nun möchte ich für Zuhause viele IObroker Sachen umsetzten unter anderem der Worx Rasenmäher.
Ich habe schon ein laufendes Programm dieses möchte ich aber noch um einige Sachen ergänzen. unter anderem, möchte ich die nächste Startzone auslesen und abhängig von dieser dann die Arbeitszeit verkürzen.
Umgesetzt habe ich das alles so wie hier beschrieben https://www.smarthome-tricks.de/software-iobroker/blockly-zeichenfolge-parsen/
Nur leider kommt immer eine Fehler Meldung :
javascript.0 (19499) script.js.Rasenmäher: TypeError: (intermediate value)(intermediate value)(intermediate value).split is not a function
error javascript.0 (19499) at Object.<anonymous> (script.js.Rasenmäher:425:50)Ich kann damit noch nicht viel anfangen aber evtl.. hättet ihr die Güte mir weiterzuhelfen.
Vielen dank
-
Hallo,
ist es eigentlich normal das sich die "Klingen-Arbeitszeit" nicht mit der App abgleicht?
Wenn ich diese in der App zurücksetze, steht im Iobroker immer noch bei "totalBladeTime" die komplette Zeit seit Inbetriebnahme.
Obwohl ich jetzt schon zweimal in der App die Zeit auf 0 gesetzt habe? -
@jens-meyer sagte in Adapter: Worx Landroid:
wo finde ich den Dein Script für den Worx.
Mein Script für den Worx? Ich habe nicht den blassesten Schimmer, was Du meinst. Ich habe schon zig Skripte zu meinem Rasenmäher geschrieben. Was konkret meinst Du denn nun?
-
@nik82 Nimm Dir mal viel Zeit, um Dich in diese Thematik einzulesen:
-
@hsteinme
Hallo, das ging wohl um die startsequenz..
Was sich wohl erledigt hat…
Die Frage wäre jetzt was hast du den. Ich für scripte für den worx geschrieben? Zw würdest die zur Verfügung stellen?
DankePS: ich suche z.b. noch ein umrechnungsscript von Meter in km
Und Minuten in Stunden
Als Beispiel -
@jens-meyer sagte in Adapter: Worx Landroid:
Die Frage wäre jetzt was hast du den. Ich für scripte für den worx geschrieben?
Ich habe zum Teil "riesige" Skripte erstellt (teilweise mit einigen Hundert Lines of Code), die alle zu 100% auf meine eigene spezielle Umgebung ausgerichtet sind. Es gibt daher kaum Sinn, diese hier anzubieten.
ich suche z.b. noch ein umrechnungsscript von Meter in km
Dann lass Dein Skript den Meterwert durch 1000 dividieren. Dann hast Du Deinen km-Wert.
Und Minuten in Stunden
Schau Dir dazu mal die Funktion stundenMinuten im Skript in https://forum.iobroker.net/post/639998 an.
-
@hsteinme
danke