NEWS
Neuer Robonect HX Adapter
-
@severendis Guten Morgen, gibt es eine Lösung zu dem Problem?
Mich hat es auch getroffen. Nach einer vermutlich unbewussten Aktion funktioniert der Zugriff auf den Mäher nicht mehr. Wie hier schon beschrieben, bringen Neuinstallation und einfache bzw. keine Kennwörter keine Besserung.Was wäre denn eine Alternative? Lässt sich mit IoBroker das JSON über die URL abfragen und die Werte daraus speichern?
-
@kreuzundkwer sagte in Neuer Robonect HX Adapter:
Lässt sich mit IoBroker das JSON über die URL abfragen und die Werte daraus speichern?
ja, das geht natürlich.
// Mähroboter // Werte holen ------------------------------------------------------------------------------------------------------------------------ function weiter() { var request = require('request'); request('http://192.168.xxx.xxx/json?user=xxx&pass=xxx&cmd=status', function (error, response, body) { if (!error && response.statusCode == 200) { log ("json = " + body); var obj = JSON.parse(body); var v_status = obj.status.status; if (v_status === 1) setState('javascript.0.Geräte.Mähroboter.Status', 'parkt'); if (v_status === 2) setState('javascript.0.Geräte.Mähroboter.Status', 'mäht'); if (v_status === 3) setState('javascript.0.Geräte.Mähroboter.Status', 'sucht die Ladestation'); if (v_status === 4) setState('javascript.0.Geräte.Mähroboter.Status', 'lädt'); if (v_status === 5) setState('javascript.0.Geräte.Mähroboter.Status', 'wartet auf Umsetzen im manuellen Modus'); if (v_status === 7) { setState('javascript.0.Geräte.Mähroboter.Status', 'Fehlerstatus'); log("Auslöser: Der Mähroboter hat Error !"); sendTo('telegram.0', { user: "Dieter", text: "Achtung, Achtung! \nDer Mähroboter hat Error.", parse_mode: 'HTML' }); } if (v_status === 8) setState('javascript.0.Geräte.Mähroboter.Status', 'Schleifensignal verloren'); if (v_status === 16) setState('javascript.0.Geräte.Mähroboter.Status', 'abgeschaltet'); if (v_status === 17) setState('javascript.0.Geräte.Mähroboter.Status', 'schläft'); setState('javascript.0.Geräte.Mähroboter.Duration', obj.status.duration); var v_mode = obj.status.mode; if (v_mode === 0) setState('javascript.0.Geräte.Mähroboter.Mode', 'Auto'); if (v_mode === 1) setState('javascript.0.Geräte.Mähroboter.Mode', 'manuell'); if (v_mode === 2) setState('javascript.0.Geräte.Mähroboter.Mode', 'Home'); if (v_mode === 3) setState('javascript.0.Geräte.Mähroboter.Mode', 'Demo'); setState('javascript.0.Geräte.Mähroboter.Battery', obj.status.battery); setState('javascript.0.Geräte.Mähroboter.Hours', obj.status.hours); setState('javascript.0.Geräte.Mähroboter.Messer', obj.blades.quality); setState('javascript.0.Geräte.Mähroboter.Wlan', obj.wlan.signal); setState('javascript.0.Geräte.Mähroboter.Temperatur', obj.health.temperature); setState('javascript.0.Geräte.Mähroboter.Luftfeuchtigkeit', obj.health.humidity); var v_timer_status = obj.timer.status; if (v_timer_status === 0) setState('javascript.0.Geräte.Mähroboter.Timer.Status', 'Deaktiviert'); if (v_timer_status === 1) setState('javascript.0.Geräte.Mähroboter.Timer.Status', 'Aktiv'); if (v_timer_status === 2) setState('javascript.0.Geräte.Mähroboter.Timer.Status', 'Standby'); if (obj.timer.next) { setState('javascript.0.Geräte.Mähroboter.Timer.next_date', obj.timer.next.date.substr(8,2) + "." + obj.timer.next.date.substr(5,2) + "."); setState('javascript.0.Geräte.Mähroboter.Timer.next_time', obj.timer.next.time.substr(0,obj.timer.next.time.length-3)); } else { log ('Timer.next: date und time nicht gesetzt - Diese Werte sind im json nicht vorhanden.'); setState('javascript.0.Geräte.Mähroboter.Timer.next_date', ''); setState('javascript.0.Geräte.Mähroboter.Timer.next_time', ''); } } else { log("Error = " + error); } }); } // alle 2 Minuten ------------------------------------------------------------------------------------------------------------------------ schedule("*/2 * * * *", function () { weiter(); // Werte holen });
-
-
@bahnuhr Danke dir. Bin grade über deinen Beitrag im Robonect Forum gestolpert. Da hast du ja auch alle Scripte veröffentlicht.
-
@kreuzundkwer sagte in Neuer Robonect HX Adapter:
@bahnuhr Danke dir. Bin grade über deinen Beitrag im Robonect Forum gestolpert. Da hast du ja auch alle Scripte veröffentlicht.
ja, musst aber mal schauen. die könnten schon älter sein.
Hier ist aktuell. -
@bahnuhr Hast du zufällig auch noch das passende Script zur Anlage der Variablen da? Das aus dem robonect Forum passt nicht mehr zu deinem Script mit der Abfrage.
Bin nun selbst tätig geworden. Habe den Pfad zu den Objekten angepasst und den Status für die Messer ergänzt:
// Mähroboter ------------------------------------------------------------------------------------------------------------- createState('javascript.0.Geräte.Mähroboter.Status','', {type: 'string',name: 'Status',read: true,write: true,role: 'per Script'}); createState('javascript.0.Geräte.Mähroboter.Duration',0, {type: 'number',name: 'Zeit in diesem Status',unit: 'Sekunden',read: true,write: true,role: 'per Script'}); createState('javascript.0.Geräte.Mähroboter.Mode','', {type: 'string',name: 'Mode',read: true,write: true,role: 'per Script'}); createState('javascript.0.Geräte.Mähroboter.Battery',0, {type: 'number',name: 'Akku',unit: 'Prozent',min: 0,read: true,write: true,role: 'per Script'}); createState('javascript.0.Geräte.Mähroboter.Hours',0, {type: 'number',name: 'Betriebstunden',unit: 'Stunden',min: 0,read: true,write: true,role: 'per Script'}); createState('javascript.0.Geräte.Mähroboter.Wlan',0, {type: 'number',name: 'Wlan Signalstärke',min: -110,read: true,write: true,role: 'per Script'}); createState('javascript.0.Geräte.Mähroboter.Auftrag',0, {type: 'number',name: 'Auftrag Betriebsmodus',min: 0,read: true,write: true,role: 'per Script'}); createState('javascript.0.Geräte.Mähroboter.Auftrag2',1, {type: 'number',name: 'Auftrag Start (=0) - Stop (=1)',min: 0,read: true,write: true,role: 'per Script'}); createState('javascript.0.Geräte.Mähroboter.Temperatur',0, {type: 'number',name: 'Temperatur',unit: '°C', read: true,write: true,role: 'per Script'}); createState('javascript.0.Geräte.Mähroboter.Luftfeuchtigkeit',0, {type: 'number',name: 'Luftfeuchtigkeit',unit: '%', read: true,write: true,role: 'per Script'}); createState('javascript.0.Geräte.Mähroboter.Messer',0,{type:'number',name: 'Messer', unit: '%', read: true,write: true,role: 'per Script'}); createState('javascript.0.Geräte.Mähroboter.Timer.Status','', {type: 'string',name: 'Timer-Status',read: true,write: true,role: 'per Script'}); createState('javascript.0.Geräte.Mähroboter.Timer.next_date','', {type: 'string',name: 'Timer-next-date',read: true,write: true,role: 'per Script'}); createState('javascript.0.Geräte.Mähroboter.Timer.next_time','', {type: 'string',name: 'Timer-next-time',read: true,write: true,role: 'per Script'}); createState('javascript.0.Geräte.Mähroboter.Mähauftrag.Uhrzeit_Start',"", {type: 'string',name: 'manueller Mähauftrag - Uhrzeit.Start',read: true,write: true,role: 'per Script'}); createState('javascript.0.Geräte.Mähroboter.Mähauftrag.Uhrzeit_Ende',"", {type: 'string',name: 'manueller Mähauftrag - Uhrzeit.Ende',read: true,write: true,role: 'per Script'}); createState('javascript.0.Geräte.Mähroboter.Mähauftrag.Uhrzeit_Auswahl_Start',"", {type: 'string',name: 'manueller Mähauftrag - Uhrzeit.Auswahl.Start',read: true,write: true,role: 'per Script'}); createState('javascript.0.Geräte.Mähroboter.Mähauftrag.Uhrzeit_Auswahl_Ende',"", {type: 'string',name: 'manueller Mähauftrag - Uhrzeit.Auswahl.Ende',read: true,write: true,role: 'per Script'}); createState('javascript.0.Geräte.Mähroboter.Mähauftrag.wie_lange',0, {type: 'number',name: 'manueller Mähauftrag - Auftrag wie lange',unit: 'Minuten', min: 0,read: true,write: true,role: 'per Script'}); createState('javascript.0.Geräte.Mähroboter.Mähauftrag.Mode_danach',"", {type: 'string',name: 'manueller Mähauftrag - Modus nach dem Auftrag',read: true,write: true,role: 'per Script'}); createState('javascript.0.Geräte.Mähroboter.Mähauftrag.Taster_ausführen',false, {type: 'boolean',name: 'manueller Mähauftrag - Taster _ ausführen',read: true,write: true,role: 'per Script'}); createState('javascript.0.Geräte.Mähroboter.Mähauftrag.Mitteilung',"", {type: 'string',name: 'manueller Mähauftrag - Mitteilung',read: true,write: true,role: 'per Script'}); createState('javascript.0.Geräte.Mähroboter.Auto_nachts',false, {type: 'boolean',name: 'nachts wieder auf Auto schalten',read: true,write: true,role: 'per Script'});
-
@All:
da der Adapter ja leider vor einiger Zeit den Dienst eingestellt hat, habe ich den in den letzten Tagen wieder ans Laufen gebracht, etwas modernisiert und erweitert.
Ich würde mich freuen, wenn ihr den mal testet. Vielleicht ist er ja nützlich - nicht zuletzt durch die Nutzung des Push-Services.v1.0.1 (2023-08-18)
(grizzelbee) Upd: Documentation got updated
(grizzelbee) Upd: Dependencies got updated
(grizzelbee) Upd: Some fixes to make adapter-checker happy
(grizzelbee) Upd: Updated git workflows
(grizzelbee) New: Dropped request.js since it's deprecated
(grizzelbee) New: Replaced request.js by axios.js for http requests
(grizzelbee) New: Added Webserver for Push-Service API
(grizzelbee) New: Added adapter-dev support
(grizzelbee) New: Added snyk plugin
(grizzelbee) New: Swapped Admin UI to V5viele Grüße
grizzelbee -
@grizzelbee schön das du bei dem Adapter weiter machst habe heute das update gemacht leider bekomme ich Ihn seither nicht mehr zulaufen. Wenn ich Einstellungen der Instanz aufrufen will habe ich folgende Meldung auf dem Bildschirm
Gruß Michael
-
Alles klar. Da war noch ein Problem in einer der Konfig-Dateien sodass die neue jsonConfig für die Admin-Oberfläche nicht mit ausgeliefert wurde.
V1.0.2 behebt das:
1.0.2 (2023-08-18)
(grizzelbee) Fix: Updated package.json to deliver jasonConfig.json5
-
@grizzelbee okay die wird mir noch nicht angezeigt dann warte ich mal ab
-
@grizzelbee
Wenn du json5 verwendet musst du eine neuere Admin Release (im io-package) verlangen. (Weiß im Moment nicht welche.) Bitte check dass - sonst finden die USer mit älterem Admin das File nicht. json5 ist erst später dazu gekommen. -
@grizzelbee sagte in Neuer Robonect HX Adapter:
V1.0.2 behebt das:
1.0.2 (2023-08-18)
(grizzelbee) Fix: Updated package.json to deliver jasonConfig.json5V1.0.2 läuft bei mir derzeit ohne Auffälligkeiten, Danke @Grizzelbee für's Übernehmen des Adapters
-
@grizzelbee jetzt habe ich folgendes Problem der Adapter wird grün aber gleich wieder rot immer im wechsel im log steht folgendes.
kann mir hier jemand helfen, danke
-
@michael-1975
Hast du IP, Benutzer und Passwort eingegeben und gespeichert? -
Danke, noch läuft bei mir v0.1.4 ohne Probleme, wenn die neue Version klappt, dann update ic
-
@latzi ja habe ich er wird auch kurz grün dann rot und dann wechselt er immer rot grün
-
Okay - der fährt aber mal richtig vor die Wand.
Ich brauche bitte mehr infos:
Versionen von:- NodeJs
- js-controller
- admin
- Robonect firmware
Einen Screenshot deiner Konfig.
Und dann schreib bitte mal ein debug-Log und schicke es mir - oder poste es hier. Aber Vorsicht bitte; ich glaube ich schreibe da noch Benutzernamen und passwort im Klartext raus.
Dann sehen wir weiter ...
viele Grüße
Grizzelbee -
@grizzelbee
NodeJS:18.16.0
Js controller:4.0.24
Admin:6.3.5
Robonect:
Konfig
ct.0
2023-08-18 21:30:40.859 debug doRegularPoll: false
robonect.0
2023-08-18 21:30:40.859 debug currentStatus: 17
robonect.0
2023-08-18 21:30:40.858 debug isRestTime: false
robonect.0
2023-08-18 21:30:40.858 debug pollType: Initial
robonect.0
2023-08-18 21:30:40.858 debug Data from poll: {"name":"Charly","id":"C14124","status":{"status":17,"distance":0,"stopped":false,"dooropen":false,"duration":17,"mode":0,"battery":99,"hours":2272},"timer":{"status":2,"next":{"date":"2023-08-18","time":"22:00:00","unix":1692396000}},"blades":{"quality":90,"hours":8,"days":7},"wlan":{"signal":-67},"health":{"temperature":34,"humidity":44},"clock":{"date":"2023-08-18","time":"21:30:39","unix":1692394239},"successful":true}
robonect.0
2023-08-18 21:30:40.858 debug API call to [http://192.168.178.193/api/json?user=xxxxxx&pass=xxxx&cmd=] with command [status] - done!
robonect.0
2023-08-18 21:30:40.856 debug {"name":"Charly","id":"C14124","status":{"status":17,"distance":0,"stopped":false,"dooropen":false,"duration":17,"mode":0,"battery":99,"hours":2272},"timer":{"status":2,"next":{"date":"2023-08-18","time":"22:00:00","unix":1692396000}},"blades":{"quality":90,"hours":8,"days":7},"wlan":{"signal":-67},"health":{"temperature":34,"humidity":44},"clock":{"date":"2023-08-18","time":"21:30:39","unix":1692394239},"successful":true}
robonect.0
2023-08-18 21:30:40.801 debug API call to [http://192.168.178.193/api/json?user=xxxxx&pass=xxxx&cmd=] with command [status] started
robonect.0
2023-08-18 21:30:40.801 debug Polling started
robonect.0
2023-08-18 21:30:38.381 info Rest period 2 not configured. Period will be ignored.
robonect.0
2023-08-18 21:30:38.381 info Rest period 1 not configured. Period will be ignored.
robonect.0
2023-08-18 21:30:38.364 info starting. Version 1.0.2 in /opt/iobroker/node_modules/iobroker.robonect, node: v18.16.0, js-controller: 4.0.24
robonect.0
2023-08-18 21:30:32.719 debug Plugin sentry Initialize Plugin (enabled=true)
robonect.0
2023-08-18 21:29:48.791 warn Terminated (UNCAUGHT_EXCEPTION): Without reason
robonect.0
2023-08-18 21:29:48.791 debug Plugin sentry destroyed
robonect.0
2023-08-18 21:29:48.791 info terminating
robonect.0
2023-08-18 21:29:48.790 info cleaned everything up...
robonect.0
2023-08-18 21:29:48.783 error Something went wrong
robonect.0
2023-08-18 21:29:48.783 error Error: Something went wrong at /opt/iobroker/node_modules/iobroker.robonect/main.js:409:35 at processTicksAndRejections (node:internal/process/task_queues:95:5)
robonect.0
2023-08-18 21:29:48.780 error unhandled promise rejection: Something went wrong
robonect.0
2023-08-18 21:29:48.780 error Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
robonect.0
2023-08-18 21:29:48.779 error Axios says: Error: Something went wrong
robonect.0
2023-08-18 21:29:48.779 debug "{"door": {"enabled": true, "state": {"open": false, "close": true}, "open": false, "close": false}, "arrested": false}, "successful": true}"
robonect.0
2023-08-18 21:29:48.739 debug API call to [http://192.168.178.193/api/json?user=xxxxx&pass=xxxxx&cmd=] with command [door] started
robonect.0
2023-08-18 21:29:48.739 debug API call to [http://192.168.178.193/api/json?user=xxxxx&pass=xxxxx&cmd=] with command [battery] - done!
robonect.0
2023-08-18 21:29:48.738 debug {"batteries":[{"id":0,"charge":99,"voltage":20475,"current":0,"temperature":271,"capacity":{"full":1600,"remaining":1599}}],"successful":true}
robonect.0
2023-08-18 21:29:44.647 debug API call to [http://192.168.178.193/api/json?user=xxxxxx&pass=xxxxxx&cmd=] with command [battery] started
robonect.0
2023-08-18 21:29:44.647 debug doRegularPoll: false
robonect.0
2023-08-18 21:29:44.647 debug currentStatus: 17
robonect.0
2023-08-18 21:29:44.647 debug isRestTime: false
robonect.0
2023-08-18 21:29:44.646 debug pollType: Initial
robonect.0
2023-08-18 21:29:44.646 debug Data from poll: {"name":"Charly","id":"C14124","status":{"status":17,"distance":0,"stopped":false,"dooropen":false,"duration":6363,"mode":0,"battery":99,"hours":2272},"timer":{"status":2,"next":{"date":"2023-08-18","time":"22:00:00","unix":1692396000}},"blades":{"quality":90,"hours":8,"days":7},"wlan":{"signal":-67},"health":{"temperature":34,"humidity":44},"clock":{"date":"2023-08-18","time":"21:29:44","unix":1692394184},"successful":true}
robonect.0
2023-08-18 21:29:44.646 debug API call to [http://192.168.178.193/api/json?user=xxxxx&pass=xxxxx&cmd=] with command [status] - done!
robonect.0
2023-08-18 21:29:44.644 debug {"name":"Charly","id":"C14124","status":{"status":17,"distance":0,"stopped":false,"dooropen":false,"duration":6363,"mode":0,"battery":99,"hours":2272},"timer":{"status":2,"next":{"date":"2023-08-18","time":"22:00:00","unix":1692396000}},"blades":{"quality":90,"hours":8,"days":7},"wlan":{"signal":-67},"health":{"temperature":34,"humidity":44},"clock":{"date":"2023-08-18","time":"21:29:44","unix":1692394184},"successful":true}
robonect.0
2023-08-18 21:29:44.591 debug API call to [http://192.168.178.193/api/json?user=xxxxx&pass=xxxxx&cmd=] with command [status] started
robonect.0
2023-08-18 21:29:44.591 debug Polling started
robonect.0
2023-08-18 21:29:42.648 info Rest period 2 not configured. Period will be ignored.
robonect.0
2023-08-18 21:29:42.648 info Rest period 1 not configured. Period will be ignored.
robonect.0
2023-08-18 21:29:42.634 info starting. Version 1.0.2 in /opt/iobroker/node_modules/iobroker.robonect, node: v18.16.0, js-controller: 4.0.24
robonect.0
2023-08-18 21:29:41.007 debug Plugin sentry Initialize Plugin (enabled=true)
robonect.0
2023-08-18 21:29:39.380 debug States connected to redis: 127.0.0.1:9000
robonect.0
2023-08-18 21:29:39.045 debug States create User PubSub Client
robonect.0
2023-08-18 21:29:39.045 debug States create System PubSub Client
robonect.0
2023-08-18 21:29:38.797 debug Redis States: Use Redis connection: 127.0.0.1:9000
robonect.0
2023-08-18 21:29:38.468 debug Objects connected to redis: 127.0.0.1:9001
robonect.0
2023-08-18 21:29:38.439 debug Objects client initialize lua scripts
robonect.0
2023-08-18 21:29:37.893 debug Objects create User PubSub Client
robonect.0
2023-08-18 21:29:37.892 debug Objects create System PubSub Client
robonect.0
2023-08-18 21:29:37.856 debug Objects client ready ... initialize now
robonect.0
2023-08-18 21:29:37.614 debug Redis Objects: Use Redis connection: 127.0.0.1:9001Passt das
-
Hmm. Leider sieht man im Debug Log jetzt die Exception nicht. Aber aufgrund deiner Config habe ich eine erste Vermutung:
Bei mir ist es so, dass ich keine Infos z.B. zum GPS abfragen kann. Dann passieren auch komische Dinge. Das hat auch der alte Adapter schon so gemacht - aber wie auch immer - guck mal bitte bei der Exception etwas genauer hin - da solltest Du einen Hinweis finden, welche Abfrage kaputt gegangen ist und die musst Du dann in der Config ausschalten.
Bei mir sieht das so aus:
GPS hat mein Gardena R40Li nicht, Garagentor habe ich auch keins und das Wetter habe ich nicht konfiguriert. Deshalb frage ich die auch nicht ab.
Und dann werde ich mich mal dransetzen und die Exceptions besser abfangen ...
wäre ja blöd wenn der Adapter jetzt schon fertig gewesen wäre. -
@grizzelbee also mit deinen Einstellungen sieht erstmal gut aus Garagentor habe ich aber wenn ich das Abfrage fängt er gleich an rumzuzicken.
Wenn du was brauchst von mir sag bescheid bin zwar nicht der Profi aber wenn ich helfen kann dann gerne.Gruß Michael
Bin das Wochenende allerdings nicht soviel am Rechner