NEWS
Neuer Robonect HX Adapter
-
@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.
-
@darkiop said in Neuer Robonect HX Adapter:
@braindead Gibt es eine Möglichkeit über die API den Timer zu bearbeiten?
Soweit ich weiß können Timer über die Robonect API gesetzt werden. Der Adapter kann es aber nicht. Momentan ist der Adapter dahingehend beschränkt, dass er fast alle verfügbaren Information abfragt und den Modus setzen kann.
@opossum said in Neuer Robonect HX Adapter:
Ich hatte nicht unter GitHub geschaut. Nun ist die 0.0.6 installiert, Fehler ist weg. Danke.
Gerne!
-
@braindead sagte in Neuer Robonect HX Adapter:
Modus setzen kann
Hierbei funktioniert "Auto", "Home" und "End of day", richtig?
-
@Latzi said in Neuer Robonect HX Adapter:
Hierbei funktioniert "Auto", "Home" und "End of day", richtig?
"Manual" sollte auch funktionieren. Probiers einfach mal aus.
-
@braindead
Cooles gadget
Manuell hat bei mir nicht funktioniert, ich denke der Robo erwartet weitere Infos