NEWS
ioT Adapter Button triggern ohne EIN/AUS
-
@sauerm
ich habe zwei Routinen. (auch mit eigenen DP als Button. )Alexa, mach lauter.
Alexa, mach leiser.

Zusätzlich läuft bei mir ein Blockly, welches prüft, ob die Lautstärke aktuell über meine VU oder über meinen Denon geregelt wird. Ausserdem prüft das Blockly welcher ECHO angesprochen wurde und steuert dann die Lautstärke am passenden Gerät. (Wohnzimmer/Schlafzimmer)
Funktioniert schon sehr lange so.


@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 :) -
@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"@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. -
@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 :relieved: -
@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 Ja, das habe ich mir bei deiner Deklaration im IOT Adapter schon gedacht :D
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") -
@dslraser Ja, das habe ich mir bei deiner Deklaration im IOT Adapter schon gedacht :D
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)
-
@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 :blush: -
@dslraser ah cool, nice to know, danke :)
In dem fall habe ich es mal andersherum ausgenutzt :blush:@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) -
Hallo Zusammen,
ich möchte gerne mit dem ioT Adapter einen Datenpunkt triggern. Leider ist es nicht möglich einen Datenpunkt des Typs Button in den ioT Adapter zu integrieren, so habe ich es mit einen state versucht. Soweit funktioniert es, wenn ich anschließend mittels Alexa versuche den Datenpunkt zu ändern (Alexa, Datenpunkt ein/aus).
Ich möchte allerdings den Datenpunkt ohne den Status (ein/aus) triggern. Ist dies möglich?
Hintergrund:
Ich möchte per Alexa meinen Roborock Saugroboter steuern. Da der Roborock Adapter die Datenpunkte des Typs Buttons hat, würde ich dies mit einem Blockly Skript lösen.
Allerdings kling es doof, wenn ich immer sagen muss Alexa, Saugroboter Küche saugen EIN. Ohne EIN wäre es viel angenehmer.Den workaround mittels Einer Alexa Routine kenne ich und der funktioniert auch. Ich möchte dies jedoch sauberer lösen. Vor allem, da es sehr mühselig ist, die ganzen Routinen anzulegen.
Vielen Dank schon mal für eure Hilfe
lg
Martin
@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
-
@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 }


-
@dslraser danke für den Tipp. Hat leider nicht geändert :/
{ "common": { "name": "AVR lauter", "read": false, "write": true, "type": "boolean", "def": true, "role": "button", "smartName": { "de": "Denon lauter", "smartType": "SWITCH" } }, "native": {}, "type": "state", "_id": "javascript.0.Eigene_Datenpunkte.WZ.AVR.Lautstaerke.lauter", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1639606309989 }Das ist beim Versuch den DP im IOT Adapter manuell hinzuzufügen kurz aufgetaucht. Vielleicht hilft das?

@sauerm sagte in ioT Adapter Button triggern ohne EIN/AUS:
name": "AVR lauter"
das liegt wahrscheinlich an deinem Leerzeichen
-
@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 }


@crunchip
Buttons sind eigentlich write-only (?)https://github.com/ioBroker/ioBroker/blob/master/doc/STATE_ROLES.md

-
@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
-
@sauerm sagte in ioT Adapter Button triggern ohne EIN/AUS:
name": "AVR lauter"
das liegt wahrscheinlich an deinem Leerzeichen
@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". -
-
@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).