NEWS
ioT Adapter Button triggern ohne EIN/AUS
-
@sauerm sagte in ioT Adapter Button triggern ohne EIN/AUS:
@dslraser ja schon, nur (soweit ich sagen kann sämtliche) "buttons" nicht
wie sprichst Du die Button an ? Über eine Routine ?
Edit: Und zeig mal den Script oder Blockly welches die Lautstärke dann steuert.
-
@dslraser Hatte deine Nachricht oben übersehen.
Coole Sache mit den unterschiedlichen Zonen! 🤯Jetzt verstehe ich auch, was alle mit den Routinen meinen... Schade, dass vorher alles wunderbar mit den Buttons funktioniert hat.
Also mindestens Anfang des Jahres funktionierte es bei mir noch so:Komplett ohne Alexa Routine.
Ich konnte einfach sagen: "Alexa, Denon lauter/leiser" -
@dslraser ich habe es nun ebenfalls über Routinen gelöst. Etwas umständlicher als einfach nur automatisch einen DP im Skript zu erstellen, aber zumindest funktioniert nun wieder alles.
Danke -
@sauerm
Dein Blockly sieht okay aus. Du könntest mal testen ob der Befehl funktioniert, wenn Du an Deinen lauter Befehl mal das Wörtchen an oder aus hinten drann sagst, oder sogar mal
Alexa, schalte denon lauter an. Wenn das funktionieren sollte, dann weißt Du das der Befehl ankommt, dann stelle einfach um auf zwei Routinen, da kannst Du dann einen normalen Satz sagen. Damit Alexa nichts verwechselt nehme ich als SmartNamen im iot immer irgendetwas was sie nicht verstehen kann, z.B. 13lauter13 oder sowas, dann funktioniert die Routine immer. Wenn es ein SmartName ist, den sie auch direkt verstehen und schalten könnte, dann gibt es Probleme.
Also SmartName mach lauter und Routine mach lauter wird nicht funktionieren. -
@dslraser Ich hatte vorher mal den Button auf switch geändert und dann "Alexa Denon lauter AN" getestet. Das funktioniert dann auch (aber ist ja furchtbar
).
Wenn ich den Button über die Objekte manuell "anklicke" funktionierte es auch.
Nun hab ich es so gelöst. Ich frage mich nur warum das geändert wurde.Das Skript so wie es war (mit den automatisch erstellenten Buttons) hat ja lange Zeit funktioniert und nach einem Update (habe nicht feststellen können was genau es war, aber wohl IOT) ging es plötzlich nicht mehr. Ohne, dass ich was geändert hätte.
Habe auch schon gesehen, dass andere das gleiche Problem haben. Auch auf GitHub, dort wurde das Issue aber geschlossen, weil der Ersteller sich ebenfalls mit Routinen beholfen hat -
@dslraser Ja, das habe ich mir bei deiner Deklaration im IOT Adapter schon gedacht
Ich habe es dann ähnlich gemacht und als SmartName "AVRLautstärkeErhöhen" genommen. Das sollte ebenfalls funktionieren (das sagt hier niemand und zudem ist bei Alexa "AVR" eh "Ahver" :D)
so far funktioniert nun alles wieder.Übrigens: Bei mir erstellt der Denon Adapter zusätzlich einen Alias mit dem Atribut SET. Das in IOT eingebunden lässt die Lautstärke über Prozent ändern.
"Alexa, Denon 20%" oder "Alexa, stelle Denon auf 20" (Bei Smartname "Denon") -
@sauerm
AVR wäre dann A. V. R.
(mit Punkt und Leerzeichen erkennt Alexa auch einzelne Buchstaben, so schalte ich dann TV Sender um)
-
@dslraser ah cool, nice to know, danke
In dem fall habe ich es mal andersherum ausgenutzt -
@sauerm
Alexa, schalte ZDF an (SmartName Z. D. F. ) funktioniert direkt, also ohne Umweg über Routinen, ebenfalls mit einem Button.
Meistens reicht auch Alexa, ZDF an (ohne schalte) -
@marting sagte in ioT Adapter Button triggern ohne EIN/AUS:
Allerdings kling es doof, wenn ich immer sagen muss Alexa, Saugroboter Küche saugen EIN. Ohne EIN wäre es viel angenehmer.
wenn ich einen Button im iot hinzufüge, mit Namen Sauger, reicht "schalte Sauger" oder "Sauger an", was allerdings nicht geht, wenn man ihn Küchensauger nennt
-
-
@sauerm warum soll das nicht gehen?
{ "common": { "name": "trigger_button", "role": "button", "type": "boolean", "desc": "Manuell erzeugt", "read": true, "write": true, "def": false, "smartName": false }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "0_userdata.0.trigger_button", "type": "state", "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1640004684205 }
-
@sauerm sagte in ioT Adapter Button triggern ohne EIN/AUS:
name": "AVR lauter"
das liegt wahrscheinlich an deinem Leerzeichen
-
@crunchip
Buttons sind eigentlich write-only (?)https://github.com/ioBroker/ioBroker/blob/master/doc/STATE_ROLES.md
-
@dslraser wenn ich einen DP anlege und danach die Rolle auf button ändere , ist read/write auf true
-
@crunchip
ich habe es mal mit nem Unterstrich versucht.Nach wie vor werden:
-
button die ich per Skript automatisch in den IOT Adapter (über SmartName) einfüge nicht ausgelöst ("XY unterstützt das nicht")
-
button die ich manuell in den IOT Adapter einbinden möchte nicht hinzugefügt (XY wurde nicht hinzugefügt)
Beim manuellen Hinzufügen eines Button zu IOT:
Bei automatischer Einbindung sieht der DP so aus:
{ "common": { "name": "AVR Lautstärke um 10 verringern", "read": true, "write": true, "type": "boolean", "role": "button", "def": true, "smartName": "Denon_leiser" }, "native": { "name": "AVR Lautstärke um 10 verringern", "read": true, "write": true, "type": "boolean", "role": "button", "def": true, "smartName": "Denon_leiser" }, "type": "state", "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1640015956934, "_id": "0_userdata.0.Devices.WZ.AVR.lautstaerke.leiser", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
EDIT:
habe mal deine DP Config übernommen. Und konnte so zumindest den DP manuell in IOT übernehmen (also ohne o.a. Fehlermeldung).
Ansonsten hat sich aber nichts geändert. Wenn ich sage: "Alexa, Denon leiser" - Kommt die Antwort: "Denon lauter unterstützt das nicht". -
-
@sauerm sagte in ioT Adapter Button triggern ohne EIN/AUS:
Wenn ich sage: "Alexa, Denon leiser" - Kommt die Antwort: "Denon lauter unterstützt das nicht".
nimm doch meinen DP und nenne ihn nur "leiser" und probier es mit
"A...mach leiser" oder "A...schalte leiser" -
@crunchip danke, habe ich jetzt auch mal ausprobiert.
leiser geht nicht, da sonst das Alexa Gerät priorisiert wird. "Schalte leiser" oder "Schalte leiser ein" find ich wieder unästhetisch.
Nenne ich den DP XY leiser und sage "A..., XY leiser" erhalte ich bei deinem DP ebenfalls "XY unterstützt das nicht". Sobald die Aussage keinen konkreten Schaltbefehl (AN/AUS) beinhaltet, kann der DP bei mir nicht getriggert werden.
Witzigerweise hatte ich vor dem Test das Problem, dass der Button bei Alexa zwar durchging (Bestätigungston vom Assistenten) allerdings passierte im Skript nichts (scheinbar wurde der Befehl nicht bis zum Objekt durchgereicht).