NEWS
Yahka und Roomba
-
Hallo,
bin neu mit ioBroker unterwegs und bin dabei homebridge abzusetzen.
Homebridge nutze ich derzeit nur noch für Wake On LAN von meinem Server, weil ich hier auch den Shutdown Befehl recht einfach geben kann.Zu meinem problem: Unser Roomba ist nun in ioBroker integriert und klappt auch gut. Allerdings frage ich mich wie ich mit Yahka nun Roomba wieder in HomeKit bekomme. Den Status lese ich aus dem Status Feld (roomba.0.states.status), wenn hier "run" steht, wird der Switch eingeschaltet, ansonsten ist der aus. Klappt auch soweit.
Aber wie kann ich gleichzeitig über diesen Switch den Roomba starten? Habe einen MultiState Switch eingebunden.
Bei read das Status Feld (roomba.0.states.status) und bei Write das _runCommand Feld (roomba.0.commands._runCommand) und über "script" bei value = 1 den "START" Befehl gegeben, ansonsten "STOP".Das runCommand Feld klappt allerdings nicht. Auch wenn ich direkt in der Objekt-Liste dort START eintrage, macht der Roomba keinen Mucks. Drücke ich den Start Button, legt er los. Aber bei runCommand soll man doch ein beliebiges Command ausführen – so habe ich es zumindest verstanden. Ansonsten gibt es ja auch keinen "toggleSwitch" den ich für ein und aus nutzen könnte, ebenso ist mir noch nicht einmal klar, wie ich einen Button triggern würde (aber Yahka State/MultiStat). Hier ein Screenshot meiner Config:

Wie verbindet ihr den Roomba mit Yahka? Muss doch ganz einfach gehen...
Danke für den kurzen Hinweis!
caom -
Ich habe das Ganze nun gelöst, indem ich einen eigenen Datenpunkt erstellt habe und mir dieser als "Steuerung" dient. Ich steuere ihn dann mit dem JS Adapter. Ich überwache die Werteänderung inu meinem Datenpunkt oder dem von Roomba und triggere dann die gegenstelle. Scheint zu gehen.
Hier der Code:
on({id: "0_userdata.0.roombaswitch", change: "any"}, function (obj) { if(obj.newState.val == 'run') { if(getState('roomba.0.states.status').val != 'run') { setState('roomba.0.commands.start', true); } } else { if(getState('roomba.0.states.status').val == 'run') { setState('roomba.0.commands.dock', true); } } }); on({id: "roomba.0.states.status", change: "any"}, function (obj) { if(obj.newState.val == "run") { setState('0_userdata.0.roombaswitch', 'run'); } else { setState('0_userdata.0.roombaswitch', ''); } }); -
Ich habe das Ganze nun gelöst, indem ich einen eigenen Datenpunkt erstellt habe und mir dieser als "Steuerung" dient. Ich steuere ihn dann mit dem JS Adapter. Ich überwache die Werteänderung inu meinem Datenpunkt oder dem von Roomba und triggere dann die gegenstelle. Scheint zu gehen.
Hier der Code:
on({id: "0_userdata.0.roombaswitch", change: "any"}, function (obj) { if(obj.newState.val == 'run') { if(getState('roomba.0.states.status').val != 'run') { setState('roomba.0.commands.start', true); } } else { if(getState('roomba.0.states.status').val == 'run') { setState('roomba.0.commands.dock', true); } } }); on({id: "roomba.0.states.status", change: "any"}, function (obj) { if(obj.newState.val == "run") { setState('0_userdata.0.roombaswitch', 'run'); } else { setState('0_userdata.0.roombaswitch', ''); } });@caom Könntest du eventuell posten, wie du das in yahka im Switch eingetragen hast? MultiState mit deinem Script? Danke.
edit: Ist egal, habs hinbekommen. Allerdings funktioniert mit dem Script direktes zurückschicken ins Dock nicht, da der Roomba nur jede Minute ein Status Update schickt. Wenn man den Status direkt nach dem Start command manipuliert, funktioniert es besser. Normalerweise schaltet man ja nicht direkt hintereinander an / aus.
-
@caom Könntest du eventuell posten, wie du das in yahka im Switch eingetragen hast? MultiState mit deinem Script? Danke.
edit: Ist egal, habs hinbekommen. Allerdings funktioniert mit dem Script direktes zurückschicken ins Dock nicht, da der Roomba nur jede Minute ein Status Update schickt. Wenn man den Status direkt nach dem Start command manipuliert, funktioniert es besser. Normalerweise schaltet man ja nicht direkt hintereinander an / aus.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden