NEWS
Mit Routine IoBroker Zustand abfragen
-
Hallo möchte gerne mit einer Alexa Routine eine Zustand einer Steuerung abfragen.
Bsw. Routine " Alexa ist post da". Diese sollte dann mit den Blockly Skript den Zustand eines Bits meiner Steuerung prüfen und bei wahr oder unwahr jeweils ein unterschiedliche Routine starten.
Jedoch habe ich das Thema, das beim Start einer Routine mittels Sprache an Alexa der Zustand der Routine sich nicht startet und somit auch kein Blockly Ablauf gestartet wird.
Betätige ich jedoch den "simulierten Tastendruck" in Objekte so startet der Ablauf wie gewünscht.
-
Hi Tom,
normalerweise wäre das ja so:
ein SmartHome Device wird z.B. über den Cloud-Adapter angelegt und in Alexa erkannt. Dieses triggert einen Datenpunkt.
Das Alexa SmartHome Device kannst Du dann in eine Alexa-Routine aufnehmen die z.B. „Alexa, ist Post da“ heißt.
Beim Starten der Routine wird dann der Datenpunkt z.B. auf „true“ gesetzt und macht dann was.
Ist so Deine Konstellation?
-
Blick grad nicht ganz durch aber denke ja
Abfolge:
Sprache -> Alexa
Alexa -> führt Routine aus.
Routine -> sollte ein True oder false erzeugen mit welchen ich dann weiter arbeite
Wenn ein ein True oder false bekommen würde wüsste ich schon wie es weiter geht
-
Lösung wäre evtl. den State, den Du zum Triggern nimmst, statt als Rolle "button" als "switch" zu deklarieren,
und den dann über Cloud-Adapter zu steuern oder Alexa-History oder dergleichen zu steuern.
Dann bei "Änderung auf true" dein Skript ausführen und am Ende des Skripts den Wert des
States wieder auf false ändern.
-
das habe ich schon versucht jedoch wenn ich den Befehl sage ändert sich dies nicht
-
Achso also direkt im Skript ändern.
{
"from": "system.adapter.alexa2.0",
"ts": 1537791225437,
"common": {
"name": "ist post da",
"type": "boolean",
"role": "button",
"read": true,
"write": true
},
"native": {},
"acl": {
"object": 1638,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator",
"state": 1638
},
"_id": "alexa2.0.Echo-Devices.G090LF1072460LE6.Routines.f03a4460-f3cb-410b-b5bb-eeb79c349670",
"type": "state"
}
so schaut das aus wo soll ich was eintragen?
-
Äh .. was steuerst Du denn mit der Routine?
Der Button im Alexa2-Adapter ist dafür da um eine Routine vom ioBroker aus über Alexa zu starten,
aber nicht um ioBroker zu signalisieren, daß die Routine durch Alexa gestartet würde.
Somit müßte Du z.B. per Javascript-Adapter irgendwo einen Status anlegen,
den in den CLoud-Server hinterlegen und dann die Routine per Alexa-App so gestalten,
daß dieser Datenpunkt über die Alexa-Routine gesteuert wird.
Oder beio Alexa die Push-Benachrichtigung aktivieren und dann im alexa-Adapter
auf Einträge der History reagieren.
MfG Markus
-
Ah ok das wusste ich nicht. Danke für die Info. Dachte hier bekommt man ein Signal wenn die Routine gestartet ist.
Könntest du mir evtl. einen Link schicken oder kurz erklären wie ich im Javascript adapter einen Status anlege?
-
Javascript-Doku:
https://github.com/ioBroker/ioBroker.ja … ascript.md
Man kann natürlich auch manuell Datenpunkte anlegen.
Zum Beispiel unter Objekte einen Root-Knoten "datenpunkte.0" erstellen
und dort alle eigenen Datenpunkte ablegen.
Oder eben per Script. Dann tauchen die Datenpunkte unter "javascript.0" auf.
-
Ich hätte jetzt auch gedacht, dass man das "False" hinter der Routine nutzen kann. Bilde mir sogar ein, dass es schon einmal bei mir funktioniert hat. Einfach eine Routine mit beliebigen Text erstellen und ohne Ausführungsteil. Dann im ioBroker auf das FALSE als Trigger für ein Script gehen. Leider klappts jetzt bei mir nicht mehr
-
Hi, schaut mal hier den zweiten Post von mir an, eventuell hilft das ja weiter:
https://forum.iobroker.net/topic/21950/alexa-routine-triggert-state-sprachausgabe