NEWS
Neuer Robonect HX Adapter
-
@braindead
Das klingt echt weltklassig, vielen Dank - freu mich schon drauf -
@Latzi Ich habe den Adapter aktualisiert, so dass er jetzt mit Robonect v1.1b funktioniert. Grundsätzlich ist die Unterstützung älterere Firmwares aus Mangel an Support Möglichkeiten nicht angedacht. Ob der Adapter also auch mit älteren Robonect Versionen funktioniert, kann ich Dir nicht sagen. Vielleicht kannst Du das testen und mir Rückmeldung geben.
-
@braindead
nach Installation des neuen Adapters (und noch alter FW des Robonect) unveränderte Fehlermeldungen:2020-03-15 10:19:34.736 - info: host.Pi4-Server "system.adapter.robonect.0" enabled 2020-03-15 10:19:34.766 - info: host.Pi4-Server instance system.adapter.robonect.0 started with pid 4656 2020-03-15 10:19:36.961 - info: robonect.0 (4656) starting. Version 0.0.5 in /opt/iobroker/node_modules/iobroker.robonect, node: v10.19.0 2020-03-15 10:19:37.060 - info: robonect.0 (4656) Done 2020-03-15 10:19:39.847 - error: robonect.0 (4656) uncaught exception: Cannot read property '0' of undefined 2020-03-15 10:19:39.848 - error: robonect.0 (4656) TypeError: Cannot read property '0' of undefined at Request._callback (/opt/iobroker/node_modules/iobroker.robonect/lib/robonect.js:3961:84) at Request.self.callback (/opt/iobroker/node_modules/request/request.js:185:22) at Request.emit (events.js:198:13) at Request. (/opt/iobroker/node_modules/request/request.js:1161:10) at Request.emit (events.js:198:13) at IncomingMessage. (/opt/iobroker/node_modules/request/request.js:1083:12) at Object.onceWrapper (events.js:286:20) at IncomingMessage.emit (events.js:203:15) at endReadableNT (_stream_readable.js:1145:12) at process._tickCallback (internal/process/next_tick.js:63:19) 2020-03-15 10:19:39.850 - info: robonect.0 (4656) cleaned everything up... 2020-03-15 10:19:40.399 - info: robonect.0 (4656) terminating 2020-03-15 10:19:40.400 - info: robonect.0 (4656) Terminated (NO_ERROR): Without reason 2020-03-15 10:19:40.404 - info: robonect.0 (4656) terminating 2020-03-15 10:19:40.948 - error: host.Pi4-Server Caught by controller[0]: TypeError: Cannot read property '0' of undefined 2020-03-15 10:19:40.949 - error: host.Pi4-Server Caught by controller[0]: at Request._callback (/opt/iobroker/node_modules/iobroker.robonect/lib/robonect.js:3961:84) 2020-03-15 10:19:40.949 - error: host.Pi4-Server Caught by controller[0]: at Request.self.callback (/opt/iobroker/node_modules/request/request.js:185:22) 2020-03-15 10:19:40.949 - error: host.Pi4-Server Caught by controller[0]: at Request.emit (events.js:198:13) 2020-03-15 10:19:40.950 - error: host.Pi4-Server Caught by controller[0]: at Request. (/opt/iobroker/node_modules/request/request.js:1161:10) 2020-03-15 10:19:40.950 - error: host.Pi4-Server Caught by controller[0]: at Request.emit (events.js:198:13) 2020-03-15 10:19:40.950 - error: host.Pi4-Server Caught by controller[0]: at IncomingMessage. (/opt/iobroker/node_modules/request/request.js:1083:12) 2020-03-15 10:19:40.950 - error: host.Pi4-Server Caught by controller[0]: at Object.onceWrapper (events.js:286:20) 2020-03-15 10:19:40.950 - error: host.Pi4-Server Caught by controller[0]: at IncomingMessage.emit (events.js:203:15) 2020-03-15 10:19:40.950 - error: host.Pi4-Server Caught by controller[0]: at endReadableNT (_stream_readable.js:1145:12) 2020-03-15 10:19:40.950 - error: host.Pi4-Server Caught by controller[0]: at process._tickCallback (internal/process/next_tick.js:63:19) 2020-03-15 10:19:40.950 - info: host.Pi4-Server instance system.adapter.robonect.0 terminated with code 0 (NO_ERROR) 2020-03-15 10:19:40.951 - info: host.Pi4-Server Restart adapter system.adapter.robonect.0 because enabled 2020-03-15 10:19:54.916 - info: host.Pi4-Server "system.adapter.robonect.0" disabled
Ich aktualisiere jetzt mal die FW auf 1.1b und meld mich danach wieder. Hast du die ZeroConf auch upgedated?
Update: Nach dem Update auf FW-Version 1.1b läuft der Hase!!!
@braindead vielen Dank für die prompte Überarbeitung, jetzt hab ich wieder einiges zu "basteln" -
@Latzi Freut mich, dass der Adapter jetzt bei Dir läuft. Falls Dir noch etwas auffällt, wäre es sehr gut, wenn Du auf GitHub einen Issue erstellen könntest.
Ich habe den Adapter außerdem soweit vorbereitet, dass er in das Latest Repository von ioBroker aufgenommen werden kann. Mal gucken, wie lange das dauert und ob ich irgendetwas übersehen habe.
-
@braindead wird eine Weile dauern, bin gerade dabei eine Visualisierung zu basteln und mit der Unmenge an DP´s wird die möglicherweise bevorstehende Quarantäne sicherlich ausgefüllt.
Ich geb Bescheid, sobald mir etwas auffällt, herzlichen Dank nochmals. -
@braindead
Kann ich mit den DP´s auch aktiv eingreifen oder dienen sie nur der Anzeige?
Konkret geht es um folgendes:-
Im Fehlerfall möchte ich den Mäher neu starten (vorher den Fehler quittieren)
-
manuellen Mähauftrag erteilen (wie könnte das genau ausgelöst werden?)
Gibt es eine Funktionsbeschreibung?
-
-
@Latzi Im begrenzten Umfang kannst Du den Mähroboter über den Adapter steuern, indem Du den DP robonect.0.status.mode setzt. Möglich Werte sind "Auto", "Home", "Manual", "End of day" und "Job" (nicht vollständig implementiert).
Ich lasse meinen Mähroboter z.B. jeden Tag von 13 - 19 Uhr mähen. Da er keinen eingebauten Regensensor hat, habe ich mir ein Script bebastelt, dass den DP auf "Home" setzt, wenn mein Homematic Regensensor Regen meldet. Sobald es wieder trocken ist, wird der DP wieder auf "Auto" gesetzt.
Bzgl. des Fehlerfalls weiß ich nicht genau, was Du machen möchtest. Immer wenn mein Mähroboter einen Fehler gemeldet hat, musste ich aktiv zu ihm hin, den Fehler beseitigen und danach Im Tastenfeld den Fehler bestätigen. Den Adapter habe ich dabei nie gebraucht.
Auch einen manuellen Mähauftrag (das müsste "Job" sein) habe ich bisher nicht gebraucht, lasse mich aber gerne eines besseren belehren, wenn es dafür wirklich Bedarf gibt.
-
@braindead
bei mir kommt des öfteren "eingesperrt" und es reicht, den Fehler zu quittieren und wieder zu starten, daher die Frage (kann´s aber über das Robonect Online Tool auch erledigen).Hier mal meine bisher geschaffte Vis:
-
Wie quitiert man denn den Fehler in der WebUI? Vielleicht kann man das ja auch über die API machen.
Übrigens, tolle VIS! Aber Du solltest die Messer mal wechseln.
-
@braindead sagte in Neuer Robonect HX Adapter:
Aber Du solltest die Messer mal wechseln.
Stimmt, hab aber noch einige kleine Ästelchen rumliegen, da möchte ich keine neuen Messer "opfern".
Beim Online-Tool kommt ein Dialog, dass ein Fehler aufgetreten ist und der Fehler kann zurückgesetzt werden. Danach muss "Auto" gestartet werden. Wenn es das nächste mal vorkommt, mach ich ein paar Screenshots davon.
-
Hallo, @Latzi ,
Deine Vis sieht super aus, würdest Du uns vielleicht den Export zur Verfüging stellen?
Ich habe jetzt die Version 1.1b auf dem Modul, mein Karlchen (HQ 315x) piept in regelmäßigen Abständen. Kann man das irgendwo in der Software ausschalten? habe auch wiederrobonect.0 2020-03-16 15:15:12.830 error (19369) Error: read ECONNRESET robonect.0 2020-03-16 15:15:12.826 error (19369) Error: socket hang up
Funktioniert aber eigentlich alles.
-
@opossum Das Robonect Modul hält nicht alle Informationem im Speicher vor. Wenn die API Informationen abfragt, die nicht im Speicher sind, muss der Mähroboter dafür geweckt werden, was dieser mit einem Piepen bestätigt. Es gibt keine Möglichkeit das Piepen Softwareseitig zu verhindern. Du kannst den Adapter lediglich so einstellen, dass diese Information gar nicht erst abgefragt werden. Welche Abfragen das Piepen verursachen kann ich Dir nicht sagen, weil ich es nie getestet habe.
Bzgl. des Socket Fehlers: Hast Du die aktuelle Version des Adapters installiert? Ich habe dieses Problem bei mir nämlich nicht.
-
@braindead Hallo, ich habe den Adapter gerade installiert und es läuft sofort ganz gut. Viele Informationen die es über MQTT nicht gibt. Vielen Dank für die tolle Arbeit. Wenn es noch etwas zu testen gibt, kann ich gerne unterstützen.
Gruß Uwe -
Hallo, @braindead ,
danke für die Info.@braindead sagte in Neuer Robonect HX Adapter:
@opossum
....
Bzgl. des Socket Fehlers: Hast Du die aktuelle Version des Adapters installiert? Ich habe dieses Problem bei mir nämlich nicht.Installierte Version ist 0.0.4. Wegen des Pieptons, nicht so schlimm, meine Nachbarn haben mich nur gefragt. Es stört aber nicht.
-
Hallo, @Latzi,
Du hast auf Deiner Vis bei der Rubrik Messer Drehzahl und durchschnittl. Drehzahl. Welche Datenpunkte liegen dahinter? ich finde die nicht auf Anhieb. Vielen Dank für Deine Hilfe. Ich habe die Seite nun nachgebaut.
-
@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, ...
-
-
@opossum sagte in Neuer Robonect HX Adapter:
Welche Datenpunkte liegen dahinter?
-
robonect.0.motor.blade.average
-
robonect.0.motor.blade.speed
-
-
@opossum Der Socket Fehler kommt daher, dass der Adapter in den alten Versionen gleichzeitig mehrere API Calls an das Robonect Modul schickt. Die neueren Firmwares des Moduls lassen aber nur wenige gleichzeitige Calls zu und die anderen Calls werden dann abgebrochen.
Die aktuelle Version des Adapters wurde so umgebaut, dass die Calls nacheinander laufen. Bitte einmal die aktuelle Version installieren und testen, ob das Problem bei Dir behoben ist.
-
@braindead Gibt es eine Möglichkeit über die API den Timer zu bearbeiten?
-
Hallo, @braindead
@braindead sagte in Neuer Robonect HX Adapter:@opossum ...
Die aktuelle Version des Adapters wurde so umgebaut, dass die Calls nacheinander laufen. Bitte einmal die aktuelle Version installieren und testen, ob das Problem bei Dir behoben ist.Ich hatte nicht unter GitHub geschaut. Nun ist die 0.0.6 installiert, Fehler ist weg. Danke.