NEWS
Neuer Robonect HX Adapter
-
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
-
Fast genau 2 Jahre nach der ersten Vorstellung des Adapters hier im Forum, ist der Adapter gestern ins latest Repository aufgenommen worden. Ich möchte mich bei allen bedanken, die mir bei der Entwicklung geholfen und immer wieder neue Version getestet haben!
Da ich den Adapter ursprünglich für mich entwickelt habe, deckt er genau meinen Anwendungafall ab: Regelmäßig Daten abfragen und den Mähroboter bei Bedarf in die Ladestation schicken bzw. wieder starten lassen. Timer und alles andere konfiguriere ich über das Robonect WebUI.
Sofern Bedarf besteht und die Robonect API das hergibt, werde ich weitere Features implementieren. Theoretisch sollte alles machbar sein, dass auch über die Roboct Android App machbar ist. Bitte erstellt dafür im Adapter Repository auf GitHub einen Idea Issue.
Sollten Euch Bugs auffallen, möchte ich Euch bitten dafür einen Bug Issue auf GitHub zu erstellen.
Wenn der Adapter im Laufe der nächsten 2 Wochen bei mir problemlos läuft und ich auch ansonsten keine Probleme gemeldet bekomme, werde ich den Adapter in das ioBroker stable Repository aufnehmen lassen, damit er für jeden User zugänglich ist.
Hier nochmal der Link zum Robonect Adapter Repository auf GitHub:
https://github.com/braindead1/ioBroker.robonect/ -
Vielen Dank für das Update.
Ich musste nach Installation der Version 0.0.9 (von 0.0.4 kommend) die IP-Adresse des robonect-Moduls neu im Adapter konfiguieren. Ansonsten läuft bislang alles problemlos.
Gruß Marco
-
@braindead Vielen Dank dafür!
-
Freut mich, dass der Adapter bei Euch läuft!
-
@braindead Das hat genau gepasst - ich hatte letzte Woche angefangen Robonect über MQTT einzubinden
-
Danke für Deine Mühe... Schon super, wenn man sowas kann.. ich bin ein bisschen neidisch
Aber.. ich bleibe lieber bei MQTT... denn das Piepsen, wenn der Mäher abgefragt wird nervt dann doch meine Nachbarn, deren Terrasse 3 Meter neben meiner Roby-Garage ist... Das piepst ja auch nachts..
Wie wäre es denn, wenn Du den Adapter erweiterst und wahlweise die MQTT-Daten mit einbindest ?
-
@mameier1234 Ich sehe ehrlich gesagt keinen Sinn darin den Adapter um MQTT zu erweitern, weil es ja schon einen eigenen MQTT Adapter gibt, der auf das Protokoll spezialisiert ist.
Mein Mähroboter steht ein paar Meter weiter entfernt vom Haus und meine Nachbarn haben sich bisher noch nicht beschwert. Die meisten Informationen im Adapter sind in meinen Augen nice to have und bieten für die eigentliche Steuerung keinen Mehrwert. Wenn man diese Informationen nur einmal in der Stunde oder sogar gar nicht abfragt, dann hält sich das Piepen in Grenzen bzw. entfällt sogar ganz.
-
@mameier1234 Gegen das nächtliche Piepsen hilft:
- Lautsprecher abklemmen
- Abfrageintervalle sinnvoll setzen
- Nachts die Instanz beenden:
skript.xml (Sind noch ein paar Andere Skripte zum automatischen starten/stop im Export)
-
@darkiop Da kommt mir eine Idee: Wie wäre es, wenn man im Adapter eine Ruhezeit definieren könnte?
-
@braindead sagte in Neuer Robonect HX Adapter:
Ruhezeit definieren
Das ist eine absolut geniale Idee, bist du so nett un baust das ein? Bitte, bitte, ...