NEWS
Neuer Robonect HX Adapter
-
Hallo, seit dem Update auf 1.3.4 bekomme ich folg. Warnung
robonect.0 2023-10-23 15:53:52.071 warn Error returned from Robonect device: {"message":"Maximum number of redirects exceeded","name":"Error [ERR_FR_TOO_MANY_REDIRECTS]","stack":"Error [ERR_FR_TOO_MANY_REDIRECTS]: Maximum number of redirects exceeded\n at Function.AxiosError.from (/opt/iobroker/node_modules/iobroker.robonect/node_modules/axios/lib/core/AxiosError.js:89:14)\n at RedirectableRequest.handleRequestError (/opt/iobroker/node_modules/iobroker.robonect/node_modules/axios/lib/adapters/http.js:593:25)\n at RedirectableRequest.emit (node:events:513:28)\n at RedirectableRequest.emit (node:domain:489:12)\n at RedirectableRequest._processResponse (/opt/iobroker/node_modules/follow-redirects/index.js:371:10)\n at ClientRequest.RedirectableRequest._onNativeResponse (/opt/iobroker/node_modules/follow-redirects/index.js:62:10)\n at Object.onceWrapper (node:events:628:26)\n at ClientRequest.emit (node:events:525:35)\n at ClientRequest.emit (node:domain:489:12)\n at HTTPParser.parserOnIncomingClient (node:_http_client:701:27)","config":{"transitional":{"silentJSONParsing":true,"forcedJSONParsing":true,"clarifyTimeoutError":false},"adapter":["xhr","http"],"transformRequest":[null],"transformResponse":[null],"timeout":0,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN","maxContentLength":-1,"maxBodyLength":-1,"env":{},"headers":{"Accept":"application/json, text/plain, */*","User-Agent":"axios/1.5.1","Accept-Encoding":"gzip, compress, deflate, br"},"auth":{"username":"xxx","password":"yyy"},"params":{"cmd":"status"},"method":"get","url":"http://192.168.178.52/api/json"},"code":"ERR_FR_TOO_MANY_REDIRECTS","status":null} robonect.0 2023-10-23 15:53:52.071 error Maximum number of redirects exceededHab ich vielleicht was übersehen anzupassen?
Der ioBroker ist auf aktuellem Stand -
Hallo, seit dem Update auf 1.3.4 bekomme ich folg. Warnung
robonect.0 2023-10-23 15:53:52.071 warn Error returned from Robonect device: {"message":"Maximum number of redirects exceeded","name":"Error [ERR_FR_TOO_MANY_REDIRECTS]","stack":"Error [ERR_FR_TOO_MANY_REDIRECTS]: Maximum number of redirects exceeded\n at Function.AxiosError.from (/opt/iobroker/node_modules/iobroker.robonect/node_modules/axios/lib/core/AxiosError.js:89:14)\n at RedirectableRequest.handleRequestError (/opt/iobroker/node_modules/iobroker.robonect/node_modules/axios/lib/adapters/http.js:593:25)\n at RedirectableRequest.emit (node:events:513:28)\n at RedirectableRequest.emit (node:domain:489:12)\n at RedirectableRequest._processResponse (/opt/iobroker/node_modules/follow-redirects/index.js:371:10)\n at ClientRequest.RedirectableRequest._onNativeResponse (/opt/iobroker/node_modules/follow-redirects/index.js:62:10)\n at Object.onceWrapper (node:events:628:26)\n at ClientRequest.emit (node:events:525:35)\n at ClientRequest.emit (node:domain:489:12)\n at HTTPParser.parserOnIncomingClient (node:_http_client:701:27)","config":{"transitional":{"silentJSONParsing":true,"forcedJSONParsing":true,"clarifyTimeoutError":false},"adapter":["xhr","http"],"transformRequest":[null],"transformResponse":[null],"timeout":0,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN","maxContentLength":-1,"maxBodyLength":-1,"env":{},"headers":{"Accept":"application/json, text/plain, */*","User-Agent":"axios/1.5.1","Accept-Encoding":"gzip, compress, deflate, br"},"auth":{"username":"xxx","password":"yyy"},"params":{"cmd":"status"},"method":"get","url":"http://192.168.178.52/api/json"},"code":"ERR_FR_TOO_MANY_REDIRECTS","status":null} robonect.0 2023-10-23 15:53:52.071 error Maximum number of redirects exceededHab ich vielleicht was übersehen anzupassen?
Der ioBroker ist auf aktuellem Stand@aiouh sagte in Neuer Robonect HX Adapter:
ERR_FR_TOO_MANY_REDIRECTS
Das ist (soweit ich das verstehe) ein HTTP-/Netzwerkfehler und wird nicht durch den Adapter sondern durch den Robonect verursacht. Siehe: https://github.com/axios/axios/issues/4832
Ich selbst habe diesen Fehler bei mir auch noch nicht gesehen.
Hast Du im Robonect die aktuelle Firmware?
Das wäre so die erste Idee, die ich habe.@malz1902 sagte in Neuer Robonect HX Adapter:
bekomme seit dem Update wenn Robonect mal nicht erreichbar ist folgende Meldung:
Ich denke, die Antwort liegt bereits in deiner Frage:
Wenn der Robonect nicht erreichbar ist, gibt es einen Connection-Reset. Das halte ich erst einmal für normal. Wir können aber darüber diskutieren, ob man die wirklich sehen will. Aktuell tendiere ich noch zu einem: Ja, will man. -
@aiouh sagte in Neuer Robonect HX Adapter:
ERR_FR_TOO_MANY_REDIRECTS
Das ist (soweit ich das verstehe) ein HTTP-/Netzwerkfehler und wird nicht durch den Adapter sondern durch den Robonect verursacht. Siehe: https://github.com/axios/axios/issues/4832
Ich selbst habe diesen Fehler bei mir auch noch nicht gesehen.
Hast Du im Robonect die aktuelle Firmware?
Das wäre so die erste Idee, die ich habe.@malz1902 sagte in Neuer Robonect HX Adapter:
bekomme seit dem Update wenn Robonect mal nicht erreichbar ist folgende Meldung:
Ich denke, die Antwort liegt bereits in deiner Frage:
Wenn der Robonect nicht erreichbar ist, gibt es einen Connection-Reset. Das halte ich erst einmal für normal. Wir können aber darüber diskutieren, ob man die wirklich sehen will. Aktuell tendiere ich noch zu einem: Ja, will man.@grizzelbee Danke !! Mir ist zwar nicht klar weshalb das erst nach dem Adapter Update aufgetreten ist, so wie es aussieht war es aber die Firmware. Habe diese auf 1.3 aktualisiert und seitdem keine Warnungen mehr im log.
Im Changelog der FW steht etwas das passen "könnte", aber Hauptsache der Fehler ist wegFehler behoben: Unter Umständen wurde ein Request unendlich oft gesendet, wenn es eine Fehlfunktion des Mähers gab -
@Grizzelbee: Hallo, kann es sein, dass der Mode im Automodus im Mähbetrieb falsch in das Objekt geschrieben wird?
Weboberfläche Robonect:

ioBroker:

@afuerhoff
Ich kann deinem Gedankengang gerade leider nicht folgen.Wenn im Objektbaum zur selben Zeit etwas anderes steht als in der Visu (welcher auch immer), liegt es meines Erachtens und meiner Erfahrung nach in der Regel an einer falschen Konfig in der Visu, denn der Adapter gibt ja nur numerische Status aus - der Text kommt ja aus der Visu-Konfig. Und wenn dort der Zahl ein falscher Text zugeordnet ist ...
-
@afuerhoff
Ich kann deinem Gedankengang gerade leider nicht folgen.Wenn im Objektbaum zur selben Zeit etwas anderes steht als in der Visu (welcher auch immer), liegt es meines Erachtens und meiner Erfahrung nach in der Regel an einer falschen Konfig in der Visu, denn der Adapter gibt ja nur numerische Status aus - der Text kommt ja aus der Visu-Konfig. Und wenn dort der Zahl ein falscher Text zugeordnet ist ...
@grizzelbee
Das obere Bild kommt von Robonect. Das untere aus den Objekten. Hat nichts mit Visu zu tun.
Die Objekte werden doch aus deinem Adapter direkt erstellt.
Oder gab es evtl. eine Änderung zwischen verschiedenen Versionen, so dass das Objekt nicht mehr passt? -
@grizzelbee
Das obere Bild kommt von Robonect. Das untere aus den Objekten. Hat nichts mit Visu zu tun.
Die Objekte werden doch aus deinem Adapter direkt erstellt.
Oder gab es evtl. eine Änderung zwischen verschiedenen Versionen, so dass das Objekt nicht mehr passt?@afuerhoff
Ah! Okay. Jetzt bin ich gedanklich bei dir.
Das muss ich mir dann tatsächlich angucken ob es Differenzen zwischen der Anzeige in der Robonect WebUI und dem Adapter gibt. Das kann aber noch etwas dauern. Habe gerade keinen rechten Zugriff auf meine Dev-Umgebung. -
@afuerhoff
Ah! Okay. Jetzt bin ich gedanklich bei dir.
Das muss ich mir dann tatsächlich angucken ob es Differenzen zwischen der Anzeige in der Robonect WebUI und dem Adapter gibt. Das kann aber noch etwas dauern. Habe gerade keinen rechten Zugriff auf meine Dev-Umgebung. -
@Grizzelbee
Jetzt hab ich gerade gesehen, dass ich im Takt des Intervalls diese Meldung im Log habe.
Meine Android App sagt aber, dass er online ist. Auch auf die Robonect Web-Seite kann ich mich anmelden. Verbindung Adapter ist grün.No connection to lawn mower (Not able to ping it). Check network connection. -
Und noch ein Problem mit dem Push-Service. Das Log sagt es gibt ein Problem.

Konfiguration ist auf beiden Seiten die 192.168.178.113 eingetragen. Mit User und Passwort.
PS: Vorher war mal die 192.168.178.68 eingetragen.


Robonect sagt alles erfolgreich:

-
Und noch ein Problem mit dem Push-Service. Das Log sagt es gibt ein Problem.

Konfiguration ist auf beiden Seiten die 192.168.178.113 eingetragen. Mit User und Passwort.
PS: Vorher war mal die 192.168.178.68 eingetragen.


Robonect sagt alles erfolgreich:

Da ich meinen Robi zwischenzeitlich wegen Schneefalls in den Winterurlaub geschickt habe und deswegen gerade nicht so richtig debuggen kann, habe ich mal Issues dazu aufgemacht, damit das nicht in Vergessenheit gerät:
https://github.com/Grizzelbee/ioBroker.robonect/issues/37
https://github.com/Grizzelbee/ioBroker.robonect/issues/38
https://github.com/Grizzelbee/ioBroker.robonect/issues/39Falls sich irgend etwas dazu ergibt (@Alle: auch Bestätigungen der/des Bugs) bitte dort vermerken.
-
@opossum sagte in Neuer Robonect HX Adapter:
würdest Du uns vielleicht den Export zur Verfüging stellen?
sicherlich (Design ist geklaut - nicht meine Kreation)!
Um den Modus und Status als Klartext darstellen zu können, hab ich 2 Datenpunkte angelegt (werden mit folgenden Skripten befüllt), diese lauten bei mir:
-
javascript.0.Status.Flocki.Mode
-
javascript.0.Status.Flocki.Status
Skript für "Mode":
var Mode_akt; on({id: "robonect.0.status.mode", change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; Mode_akt = getState("robonect.0.status.mode").val; if (Mode_akt == 0) { setState("javascript.0.Status.Flocki.Mode", 'Auto', true); } else if (Mode_akt == 1) { setState("javascript.0.Status.Flocki.Mode", 'Manuell', true); } else if (Mode_akt == 2) { setState("javascript.0.Status.Flocki.Mode", 'Home', true); } else if (Mode_akt == 98) { setState("javascript.0.Status.Flocki.Mode", 'End of day', true); } else if (Mode_akt == 99) { setState("javascript.0.Status.Flocki.Mode", 'Job', true); } });Skript für "Status":
var Status_akt; on({id: "robonect.0.status.status", change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; Status_akt = getState("robonect.0.status.status").val; if (Status_akt == 0) { setState("javascript.0.Status.Flocki.Status", 'Unbekannt', true); } else if (Status_akt == 1) { setState("javascript.0.Status.Flocki.Status", 'Parken', true); } else if (Status_akt == 2) { setState("javascript.0.Status.Flocki.Status", 'Mähen', true); } else if (Status_akt == 3) { setState("javascript.0.Status.Flocki.Status", 'Suchen der Ladestation', true); } else if (Status_akt == 4) { setState("javascript.0.Status.Flocki.Status", 'Laden', true); } else if (Status_akt == 5) { setState("javascript.0.Status.Flocki.Status", 'Umsetzen', true); } else if (Status_akt == 7) { setState("javascript.0.Status.Flocki.Status", 'Fehler', true); } else if (Status_akt == 8) { setState("javascript.0.Status.Flocki.Status", 'Schleifensignal verloren', true); } else if (Status_akt == 16) { setState("javascript.0.Status.Flocki.Status", 'Abgeschaltet', true); } else if (Status_akt == 17) { setState("javascript.0.Status.Flocki.Status", 'Schlafen', true); } });Skript für die Mähtage:
var Timer_Tage; schedule('{"time":{"exactTime":true,"start":"18:24"},"period":{"days":1}}', function () { Timer_Tage = ''; if (getState("robonect.0.timer.0.weekdays.monday").val == true) { if (Timer_Tage == '') { Timer_Tage += 'Mo'; } else { Timer_Tage += ', Mo'; } } if (getState("robonect.0.timer.0.weekdays.tuesday").val == true) { if (Timer_Tage == '') { Timer_Tage += 'Di'; } else { Timer_Tage += ', Di'; } } if (getState("robonect.0.timer.0.weekdays.wednesday").val == true) { if (Timer_Tage == '') { Timer_Tage += 'Mi'; } else { Timer_Tage += ', Mi'; } } if (getState("robonect.0.timer.0.weekdays.thursday").val == true) { if (Timer_Tage == '') { Timer_Tage += 'Do'; } else { Timer_Tage += ', Do'; } } if (getState("robonect.0.timer.0.weekdays.friday").val == true) { if (Timer_Tage == '') { Timer_Tage += 'Fr'; } else { Timer_Tage += ', Fr'; } } if (getState("robonect.0.timer.0.weekdays.saturday").val == true) { if (Timer_Tage == '') { Timer_Tage += 'Sa'; } else { Timer_Tage += ', Sa'; } } if (getState("robonect.0.timer.0.weekdays.sunday").val == true) { if (Timer_Tage == '') { Timer_Tage += 'So'; } else { Timer_Tage += ', So'; } } if (Timer_Tage != '') { Timer_Tage += ' von '; Timer_Tage += String(('' + getState("robonect.0.timer.0.start_time").val)); Timer_Tage += ' bis '; Timer_Tage += String(('' + getState("robonect.0.timer.0.end_time").val)); Timer_Tage += ' Uhr'; } setState("javascript.0.Status.Flocki.Tage_Timer"/*Tage_Timer*/, Timer_Tage, true); });Wetterpause & Fehler an telegram senden:
var Flocki_Status_alt, timeout; on({id: "robonect.0.status.status"/*Current status*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; Flocki_Status_alt = getState("robonect.0.status.status").val; if (Flocki_Status_alt == 2 && (getState("javascript.0.Wetterstation.Regen_Tag").val >= 0.5 || getState("javascript.0.Wetterstation.Aussentemperatur").val <= 1)) { // Pause: bisherige Regenmenge > 0,5 l/m² oder Temp < 1°C -> Feierabend setState("robonect.0.status.mode"/*Current mode*/, 98); // -> Feierabend setState("javascript.0.Status.Flocki.Regenpause"/*Regenpause*/, ([formatDate(new Date(), "YYYY.MM.DD"),' ',formatDate(new Date(), "hh:mm:ss")].join('')), true); } else if (Flocki_Status_alt == 7) { // Fehler! Telegram-Nachricht senden timeout = setTimeout(function () { sendTo("telegram", "send", { text: (['Störung bei Flocki !!!','\n','Fehler: ',getState("robonect.0.error.0.message").val,'\n','am ',getState("robonect.0.error.0.date").val,' um ',getState("robonect.0.error.0.time").val,' Uhr!'].join('')) }); }, 120000); } });Und hier noch die View: Robonect_view.txt
WLAN-Empfang: Robonect_WLAN.txt
Fehlermeldungen: Robonect_error.txtmaterialdesign (in allen Varianten die es gibt) sind erforderlich!
Programmierung ist verbesserungswürdig (lerne gerade damit umzugehen) und vis ist eher als quick&dirty zu bezeichnen und noch nicht vollständig, z.B. Fehleranzeige, ...

@latzi
erstmal Danke für deine Scripte. Funktionieren nach Anpassungen super.
Jedoch bekomme ich keine Daten bei dem Script Mähtage. was genau muss ich da anpassen?
etwas bei Time?
Meine 2, Frage wär, wo du die letzte Mäh- und Ladezeit und die Strecken her bekommst? -
-
@latzi
erstmal Danke für deine Scripte. Funktionieren nach Anpassungen super.
Jedoch bekomme ich keine Daten bei dem Script Mähtage. was genau muss ich da anpassen?
etwas bei Time?
Meine 2, Frage wär, wo du die letzte Mäh- und Ladezeit und die Strecken her bekommst? -
@stimpy23 sagte in Neuer Robonect HX Adapter:
Jedoch bekomme ich keine Daten bei dem Script Mähtage. was genau muss ich da anpassen?
etwas bei Time?Hast du in den Einstellungen der Instanz den Timer aktiviert?

-
wie schauen die DP´s unter
robonect.0.timer.0.weekdaysaus (steht da bei irgendeinem Tagtrue?):
In Robonect sind auch Zeiten defniert?

-
@stimpy23
Wann hast du das Script erstellt? Heute? Es läuft nur 1 Mal am Tag
Zeig mal dein Script.
.