speechrecogn.template: bugs, Fragen, Anregungen

Begonnen von TomLee, 05 März 2020, 15:58:24

Vorheriges Thema - Nächstes Thema

TomLee

ZitatDas hieße wohl: siriName abfragen, analog alexaName.
Wieder mit allen Optionen, wäre die Frage, und ich wäre auch geneigt, das dahingehend zu "verfeinern", dass bei den weiteren sr-Varianten jeweils auch vorausgesetzt wird, dass der genericDeviceType noch gesetzt ist.
Ja, denke alles richtig erkannt. Keine Ahnung wie du das umsetzt aber wenn der genericDeviceType bereits durch die Vergabe eines alexaNamen (oder umgekehrt siriNamen) gesetzt wurde, braucht man genericDeviceType auch nicht für die nächste Namen-Abfrage vorhalten, ändert sich ja nix von sr-Variante zu sr-Variante, genericDeviceType ist bei beiden immer  gleich.

Beta-User

Na ja, der user hat es ja ggf. in jeder Stufe in der Hand, das genericDeviceAttribute zu löschen. Hat er alexa und siri und löscht bei alexa (1. Abfrage), dann macht siri keinen Sinn mehr, oder?
(usw.)

So sollte das passen:
name:speech_recognition_general_naming_master_template
filter:genericDeviceType=.+
order:10000200
desc:generic template to set attributes for identifying this device by speech recognition software. This template will call several sub-templates - dependent on the speech recognition solutions which are in use in your installation. Pls. do not use one of the subtemplates directly. Call e.g. with set xy attrTemplate speech_recognition_general_naming_master_template
option:{my @devices=devspec2array("TYPE=alexa");; $devices[0] ? return 1 : return 0}
set DEVICE attrTemplate speech_recognition_alexa_specials
option:{my @devices=devspec2array("TYPE=siri");; $devices[0] ? AttrVal("DEVICE","genericDeviceType","none") eq "none" ? 0 : 1 : 0 }
set DEVICE attrTemplate speech_recognition_siri_specials
option:{my @devices=devspec2array("TYPE=gassistant");; $devices[0] ? return 1 : return 0}

#######
# alexa specials

name:speech_recognition_alexa_specials
filter:NAME=speechrecognTesting
order:1000020a
desc:generic template to set speech recognition attribute alexaName, call e.g. with set xy attrTemplate speech_recognition_alexa_specials ALEXANAME=myAlexaName
option:{my @devices=devspec2array("TYPE=(alexa)");; $devices[0] ? return 1 : return 0}
#par:ALEXANAME;Please enter alexaName. Pls. enter something, even if you do not want any name to be set, use the offered radio option to skip naming instead!;{ AttrVal("DEVICE","alexaName",undef) }
par:ALEXAISNAME;Current attribute value alexaName;{ AttrVal("DEVICE","alexaName","(not set)") }
par:RADIO_SETalexaNAME;Set a new alexaName;{ undef }
par:RADIO_DoNotSetalexaName;Leave alexaName attribute empty;{ undef }
par:RADIO_Delete_gDT;Discard genericDeviceType attribute;{ undef }
option:{ RADIO_Delete_gDT }
deleteAttr DEVICE genericDeviceType
option:{ RADIO_DoNotSetalexaName }
option:{ RADIO_SETalexaNAME }
set DEVICE attrTemplate speech_recognition_request_alexaName

name:speech_recognition_request_alexaName
filter:NAME=speechrecognTesting
order:1000020b
desc:generic template to ask for alexaName attribute setting. Only intented for internal use by speech_recognition_request_alexaName
par:ALEXAISNAME;Current attribute value alexaName;{ AttrVal("DEVICE","alexaName","(not set)") }
par:ALEXANAME;Please enter alexaName. Current value: ALEXAISNAME;{ undef }
option:{my @devices=devspec2array("TYPE=(alexa)");; $devices[0] ? return 1 : return 0}
attr DEVICE alexaName ALEXANAME

####
#siri specials

name:speech_recognition_siri_specials
filter:NAME=speechrecognTesting
order:1000021a
desc:generic template to set speech recognition attribute alexaName, call e.g. with set xy attrTemplate speech_recognition_siri_specials ALEXANAME=myAlexaName
option:{my @devices=devspec2array("TYPE=(siri)");; $devices[0] ? return 1 : return 0}
par:RADIO_SETsiriNAME;Set a new siriName;{ undef }
par:RADIO_DoNotSetsiriName;Leave siriName attribute empty;{ undef }
par:RADIO_Delete_gDT;Discard genericDeviceType attribute;{ undef }
option:{ RADIO_Delete_gDT }
deleteAttr DEVICE genericDeviceType
option:{ RADIO_DoNotSetsiriName }
option:{ RADIO_SETsiriNAME }
set DEVICE attrTemplate speech_recognition_request_siriName

name:speech_recognition_request_siriName
filter:NAME=speechrecognTesting
order:1000021b
desc:generic template to ask for siriName attribute setting. Only intented for internal use by speech_recognition_request_siriName
par:SIRIISNAME;Current attribute value alexaName;{ AttrVal("DEVICE","siriName","(not set)") }
par:SIRINAME;Please enter siriName. Current value: SIRIISNAME;{ undef }
option:{my @devices=devspec2array("TYPE=(siri)");; $devices[0] ? return 1 : return 0}
attr DEVICE siriName SIRINAME
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

TomLee

Zitatname:speech_recognition_general_naming_master_template
filter:genericDeviceType=.+
order:10000200
desc:generic template to set attributes for identifying this device by speech recognition software. This template will call several sub-templates - dependent on the speech recognition solutions which are in use in your installation. Pls. do not use one of the subtemplates directly. Call e.g. with set xy attrTemplate speech_recognition_general_naming_master_template
option:{my @devices=devspec2array("TYPE=alexa");; $devices[0] ? return 1 : return 0}
set DEVICE attrTemplate speech_recognition_alexa_specials
option:{my @devices=devspec2array("TYPE=siri");; $devices[0] ? AttrVal("DEVICE","genericDeviceType","none") eq "none" ? 0 : 1 : 0 }
set DEVICE attrTemplate speech_recognition_siri_specials

option:{my @devices=devspec2array("TYPE=gassistant");; $devices[0] ? return 1 : return 0}

Komme erst später zum ausprobieren, aber genau dieser Ablauf will mir nicht in den Kopf/interessiert mich.
Was denn wenn beide Devices existieren, erst wird  attrTemplate speech_recognition_alexa_specials ausgeführt, es kommt das Dialogfenster für Alexa das wird bestätigt und dann ist doch Ende oder wird danach dann attrTemplate speech_recognition_siri_specials ausgeführt.

Beta-User

Nach dem, was ich von Rudi's damaliger Erläuterung im Kopf habe, wird jeweils alles nach "option:x" nur ausgeführt, wenn die wahr ist, und zwar bis zur nächsten Zeile, die ein wahr ergibt.
Was ich (noch) nicht weiß, ist, wann die Bedingungen ausgewertet werden, gehe aber davon aus, dass das jeweils dann ist, wann die Zeile "dran" ist - daher der Versuch, gleich das Ergebnis aus der alexa-option mit zu berücksichtigen.

Mal schauen, ob das funktioniert, ansonsten müßte man das in "Untertemplates" auslagern.

(partly OT:)
Bin grade dabei, die Tasmota-Geschichte (erst mal nur soweit erforderlich) umzubauen/anzupassen, und würde das ggf. dann versuchen, das (Zwischen-) Ergebnis morgen nach dem regulären Updatezeitpunkt ins svn zu schubsen. Wäre dann super, wenn ihr dann auch mal mit wachsamen Augen drübersehen könntet...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Beta-User

So, updates sind im svn, es wäre also heute Gelegenheit, Rückmeldung für eventuelle Korrekturen zu geben, bevor sich ab morgen "alle" beschweren ;D .

Da sind auch ein paar kleinere Versuche für die mehrkanaligen Tasmota-Geräte mit mit drin., Diesen Teil der Diskussion sollten wir aber in dem anderen Thread vertiefen, hier sollte es vorrangig darum gehen, dass alles funktioniert, wenn die betr. sr-templates _zurecht_ aufgerufen werden.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

TomLee

War doch klar das das nicht klappt, es werden beide option-Zweige im ersten Dialogfenster abgefragt, es sind ja aber Optionsfelder nur eins der sechs ist auswählbar, wähle ich eines bestätige mit OK werden keine weiteren Templates ausgeführt. Nur genericDeviceType wird gesetzt, Ende. siehe auch Bild im Anhang

Hab etwas gespielt, so mein ich passt alles wie vorgestellt :):

Zitatname:speech_recognition_general_naming_master_template
filter:genericDeviceType=.+
order:10000200
desc:generic template to set attributes for identifying this device by speech recognition software. This template will call several sub-templates - dependent on the speech recognition solutions which are in use in your installation. Pls. do not use one of the subtemplates directly. Call e.g. with set xy attrTemplate speech_recognition_general_naming_master_template
option:{my @devices=devspec2array("TYPE=alexa");; $devices[0] ? return 1 : return 0}
set DEVICE attrTemplate speech_recognition_alexa_specials
option:{my @devices=devspec2array("TYPE=gassistant");; $devices[0] ? return 1 : return 0}

#######
# alexa specials

name:speech_recognition_alexa_specials
filter:NAME=speechrecognTesting
order:1000020a
desc:generic template to set speech recognition attribute alexaName, call e.g. with set xy attrTemplate speech_recognition_alexa_specials ALEXANAME=myAlexaName
option:{my @devices=devspec2array("TYPE=(alexa)");; $devices[0] ? return 1 : return 0}
#par:ALEXANAME;Please enter alexaName. Pls. enter something, even if you do not want any name to be set, use the offered radio option to skip naming instead!;{ AttrVal("DEVICE","alexaName",undef) }
par:ALEXAISNAME;Current attribute value alexaName;{ AttrVal("DEVICE","alexaName","(not set)") }
par:RADIO_SETalexaNAME;Set a new alexaName;{ undef }
par:RADIO_DoNotSetalexaName;Leave alexaName attribute empty;{ undef }
par:RADIO_Delete_gDT;Discard genericDeviceType attribute;{ undef }
option:{ RADIO_Delete_gDT }
deleteAttr DEVICE genericDeviceType
option:{ RADIO_DoNotSetalexaName }
set DEVICE attrTemplate speech_recognition_siri_specials
option:{ RADIO_SETalexaNAME }
set DEVICE attrTemplate speech_recognition_request_alexaName

name:speech_recognition_request_alexaName
filter:NAME=speechrecognTesting
order:1000020b
desc:generic template to ask for alexaName attribute setting. Only intented for internal use by speech_recognition_request_alexaName
par:ALEXAISNAME;Current attribute value alexaName;{ AttrVal("DEVICE","alexaName","(not set)") }
par:ALEXANAME;Please enter alexaName. Current value: ALEXAISNAME;{ undef }
option:{my @devices=devspec2array("TYPE=(alexa)");; $devices[0] ? return 1 : return 0}
attr DEVICE alexaName ALEXANAME
option:{my @devices=devspec2array("TYPE=siri");; $devices[0] ? AttrVal("DEVICE","genericDeviceType","none") eq "none" ? 0 : 1 : 0 }
set DEVICE attrTemplate speech_recognition_siri_specials


####
#siri specials

name:speech_recognition_siri_specials
filter:NAME=speechrecognTesting
order:1000021a
desc:generic template to set speech recognition attribute alexaName, call e.g. with set xy attrTemplate speech_recognition_siri_specials ALEXANAME=myAlexaName
option:{my @devices=devspec2array("TYPE=(siri)");; $devices[0] ? return 1 : return 0}
par:RADIO_SETsiriNAME;Set a new siriName;{ undef }
par:RADIO_DoNotSetsiriName;Leave siriName attribute empty;{ undef }
par:RADIO_Delete_gDT;Discard genericDeviceType attribute;{ undef }
option:{ RADIO_Delete_gDT }
deleteAttr DEVICE genericDeviceType
option:{ RADIO_DoNotSetsiriName }
option:{ RADIO_SETsiriNAME }
set DEVICE attrTemplate speech_recognition_request_siriName

name:speech_recognition_request_siriName
filter:NAME=speechrecognTesting
order:1000021b
desc:generic template to ask for siriName attribute setting. Only intented for internal use by speech_recognition_request_siriName
par:SIRIISNAME;Current attribute value alexaName;{ AttrVal("DEVICE","siriName","(not set)") }
par:SIRINAME;Please enter siriName. Current value: SIRIISNAME;{ undef }
option:{my @devices=devspec2array("TYPE=(siri)");; $devices[0] ? return 1 : return 0}
attr DEVICE siriName SIRINAME

Beta-User

Hmmm, grins, war mir neu, dass auch die templates (nur?) der nächsten Ebene direkt aufgelöst zu werden scheinen...

Jetzt habe ich aber ein paar gedankliche Hänger bei dem neuen Vorschlag:
- Was passiert denn, wenn kein alexa-TYPE-Device da ist?
- Und warum nur dann siriName abfragen, wenn alexaName nicht gesetzt werden soll?

Klingt eher danach, als müßte man im "general"-template bereits mit diversen "RADIO"-Elementen spielen, und die eben ggf. dann in weiteren Untertemplates aufrufen, oder mehr Fälle abfangen...

Jedenfalls für die ersten beiden sr-Varianten könnte das hier funktionieren:
Zitatname:speech_recognition_general_naming_master_template
filter:genericDeviceType=.+
order:10000200
desc:generic template to set attributes for identifying this device by speech recognition software. This template will call several sub-templates - dependent on the speech recognition solutions which are in use in your installation. Pls. do not use one of the subtemplates directly. Call e.g. with set xy attrTemplate speech_recognition_general_naming_master_template
option:{my @devices=devspec2array("TYPE=alexa");; $devices[0] ? return 1 : return 0}
set DEVICE attrTemplate speech_recognition_alexa_specials
option:{my @devices=devspec2array("TYPE=siri");; my @alexas=devspec2array("TYPE=alexa");; ($devices[0] && !$alexas[0]) ? AttrVal("DEVICE","genericDeviceType","none") eq "none" ? 0 : 1 : 0 }
set DEVICE attrTemplate speech_recognition_siri_specials
option:{my @devices=devspec2array("TYPE=gassistant");; $devices[0] ? return 1 : return 0}

#######
# alexa specials

name:speech_recognition_alexa_specials
filter:NAME=speechrecognTesting
order:1000020a
desc:generic template to set speech recognition attribute alexaName, call e.g. with set xy attrTemplate speech_recognition_alexa_specials ALEXANAME=myAlexaName
option:{my @devices=devspec2array("TYPE=(alexa)");; $devices[0] ? return 1 : return 0}
#par:ALEXANAME;Please enter alexaName. Pls. enter something, even if you do not want any name to be set, use the offered radio option to skip naming instead!;{ AttrVal("DEVICE","alexaName",undef) }
par:ALEXAISNAME;Current attribute value alexaName;{ AttrVal("DEVICE","alexaName","(not set)") }
par:RADIO_SETalexaNAME;Set a new alexaName;{ undef }
par:RADIO_DoNotSetalexaName;Leave alexaName attribute empty;{ undef }
par:RADIO_Delete_gDT;Discard genericDeviceType attribute;{ undef }
option:{ RADIO_Delete_gDT }
deleteAttr DEVICE genericDeviceType
option:{ RADIO_DoNotSetalexaName }
option:{ RADIO_SETalexaNAME }
set DEVICE attrTemplate speech_recognition_request_alexaName
option:{my @siris=devspec2array("TYPE=siri");; my @alexas=devspec2array("TYPE=alexa");; ($siris[0] && $alexas[0]) ? AttrVal("DEVICE","genericDeviceType","none") eq "none" ? 0 : 1 : 0 }
set DEVICE attrTemplate speech_recognition_siri_specials
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

TomLee

Zitat- Was passiert denn, wenn kein alexa-TYPE-Device da ist?
Mir war klar das ich etwas übersehe, mit deinem Vorschlag klappts nur leicht angepasst wie u.a.

Zitat- Und warum nur dann siriName abfragen, wenn alexaName nicht gesetzt werden soll?
Vielleicht mag man das Gerät Homebridge bekannt machen, Alexa aber nicht ?

Zitatname:speech_recognition_general_naming_master_template
filter:genericDeviceType=.+
order:10000200
desc:generic template to set attributes for identifying this device by speech recognition software. This template will call several sub-templates - dependent on the speech recognition solutions which are in use in your installation. Pls. do not use one of the subtemplates directly. Call e.g. with set xy attrTemplate speech_recognition_general_naming_master_template
option:{my @devices=devspec2array("TYPE=alexa");; $devices[0] ? return 1 : return 0}
set DEVICE attrTemplate speech_recognition_alexa_specials
option:{my @devices=devspec2array("TYPE=siri");; my @alexas=devspec2array("TYPE=alexa");; ($devices[0] && !$alexas[0]) ? AttrVal("DEVICE","genericDeviceType","none") eq "none" ? 0 : 1 : 0 }
set DEVICE attrTemplate speech_recognition_siri_specials
option:{my @devices=devspec2array("TYPE=gassistant");; $devices[0] ? return 1 : return 0}

#######
# alexa specials

name:speech_recognition_alexa_specials
filter:NAME=speechrecognTesting
order:1000020a
desc:generic template to set speech recognition attribute alexaName, call e.g. with set xy attrTemplate speech_recognition_alexa_specials ALEXANAME=myAlexaName
option:{my @devices=devspec2array("TYPE=(alexa)");; $devices[0] ? return 1 : return 0}
#par:ALEXANAME;Please enter alexaName. Pls. enter something, even if you do not want any name to be set, use the offered radio option to skip naming instead!;{ AttrVal("DEVICE","alexaName",undef) }
par:ALEXAISNAME;Current attribute value alexaName;{ AttrVal("DEVICE","alexaName","(not set)") }
par:RADIO_SETalexaNAME;Set a new alexaName;{ undef }
par:RADIO_DoNotSetalexaName;Leave alexaName attribute empty;{ undef }
par:RADIO_Delete_gDT;Discard genericDeviceType attribute;{ undef }
option:{ RADIO_Delete_gDT }
deleteAttr DEVICE genericDeviceType
option:{ RADIO_DoNotSetalexaName }
deleteAttr DEVICE alexaName #optional falls Name zuvor vorhanden
set DEVICE attrTemplate speech_recognition_siri_specials
option:{ RADIO_SETalexaNAME }
set DEVICE attrTemplate speech_recognition_request_alexaName

name:speech_recognition_request_alexaName
filter:NAME=speechrecognTesting
order:1000020b
desc:generic template to ask for alexaName attribute setting. Only intented for internal use by speech_recognition_request_alexaName
par:ALEXAISNAME;Current attribute value alexaName;{ AttrVal("DEVICE","alexaName","(not set)") }
par:ALEXANAME;Please enter alexaName. Current value: ALEXAISNAME;{ undef }
option:{my @devices=devspec2array("TYPE=(alexa)");; $devices[0] ? return 1 : return 0}
attr DEVICE alexaName ALEXANAME
option:{my @siris=devspec2array("TYPE=siri");; my @alexas=devspec2array("TYPE=alexa");; ($siris[0] && $alexas[0]) ? AttrVal("DEVICE","genericDeviceType","none") eq "none" ? 0 : 1 : 0 }
set DEVICE attrTemplate speech_recognition_siri_specials



####
#siri specials

name:speech_recognition_siri_specials
filter:NAME=speechrecognTesting
order:1000021a
desc:generic template to set speech recognition attribute alexaName, call e.g. with set xy attrTemplate speech_recognition_siri_specials ALEXANAME=myAlexaName
option:{my @devices=devspec2array("TYPE=(siri)");; $devices[0] ? return 1 : return 0}
par:RADIO_SETsiriNAME;Set a new siriName;{ undef }
par:RADIO_DoNotSetsiriName;Leave siriName attribute empty;{ undef }
par:RADIO_Delete_gDT;Discard genericDeviceType attribute;{ undef }
option:{ RADIO_Delete_gDT }
deleteAttr DEVICE genericDeviceType
option:{ RADIO_DoNotSetsiriName }
deleteAttr DEVICE siriName #optional falls Name zuvor vorhanden
option:{ RADIO_SETsiriNAME }
set DEVICE attrTemplate speech_recognition_request_siriName

name:speech_recognition_request_siriName
filter:NAME=speechrecognTesting
order:1000021b
desc:generic template to ask for siriName attribute setting. Only intented for internal use by speech_recognition_request_siriName
par:SIRIISNAME;Current attribute value alexaName;{ AttrVal("DEVICE","siriName","(not set)") }
par:SIRINAME;Please enter siriName. Current value: SIRIISNAME;{ undef }
option:{my @devices=devspec2array("TYPE=(siri)");; $devices[0] ? return 1 : return 0}
attr DEVICE siriName SIRINAME

Beta-User

Zitat von: TomLee am 21 März 2020, 17:10:45
Vielleicht mag man das Gerät Homebridge bekannt machen, Alexa aber nicht ?
Dass es diese Option geben sollte, ist schon klar.

Mir ist nur nicht klar, warum das in speech_recognition_alexa_specials _innerhalb des Zweigs "RADIO_DoNotSetalexaName"_ stehen soll. Denn selbst wenn ein user erst den alexaName vergeben will, kann er doch _auch_ den siriName vergeben wollen, oder?
Daher der Versuch in meinem Code, das in einem _eigenen_ option-Zweig abzubilden (vermutlich wäre es dazu noch sinnvoll, dann RADIO_Delete_gDT gleich als "0" mitzugeben, damit man diese Option beim 2. Dialogfeld gar nicht mehr zu sehen bekommt (?) ?.

Aber so langsam dämmert mir: vermutlich kommt mit diesem option-Zweig wieder die "Doppel-"Abfrage mit den zu vielen "Radios", oder?
Dann brauchen wir in _beiden_ "gdt-nicht-löschen"-Zweigen diesen Aufruf...

Also im Ergebnis so (?):

Zitatname:speech_recognition_alexa_specials
filter:NAME=speechrecognTesting
order:1000020a
desc:generic template to set speech recognition attribute alexaName, call e.g. with set xy attrTemplate speech_recognition_alexa_specials ALEXANAME=myAlexaName
option:{my @devices=devspec2array("TYPE=(alexa)");; $devices[0] ? return 1 : return 0}
#par:ALEXANAME;Please enter alexaName. Pls. enter something, even if you do not want any name to be set, use the offered radio option to skip naming instead!;{ AttrVal("DEVICE","alexaName",undef) }
par:ALEXAISNAME;Current attribute value alexaName;{ AttrVal("DEVICE","alexaName","(not set)") }
par:RADIO_SETalexaNAME;Set a new alexaName;{ undef }
par:RADIO_DoNotSetalexaName;Leave alexaName attribute empty;{ undef }
par:RADIO_Delete_gDT;Discard genericDeviceType attribute;{ undef }
option:{ RADIO_Delete_gDT }
deleteAttr DEVICE genericDeviceType
option:{ RADIO_DoNotSetalexaName }
deleteAttr DEVICE alexaName #optional falls Name zuvor vorhanden
set DEVICE attrTemplate speech_recognition_siri_specials RADIO_Delete_gDT=0
option:{ RADIO_SETalexaNAME }
set DEVICE attrTemplate speech_recognition_request_alexaName
set DEVICE attrTemplate speech_recognition_siri_specials RADIO_Delete_gDT=0
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

TomLee

ZitatMir ist nur nicht klar, warum das in speech_recognition_alexa_specials _innerhalb des Zweigs "RADIO_DoNotSetalexaName"_ stehen soll.
Innerhalb speech_recognition_alexa_specials hab ich drei Optionen zur Auswahl
Set a new alexaName
Leave alexaName attribute empty
Discard genericDeviceType attribute

wenn ich keinen alexaNamen vergeben möchte, aber einen siriNamen, brauch ich weiterhin genericDeviceType, dann ist doch klar wenn ich mit Option Leave alexaName attribute empty alexaName leer lasse dann speech_recognition_siri_specials aufzurufen ?
Komme erstmal nicht mit warum Optionsfelder jetzt ausgeblendet werden müssen, der Vorschlag passt auf Anhieb nicht und keine Zeit mehr jetzt, erst wieder später/morgen.


define alexa alexa
define siri siri


Auf nem Testssystem und du könntest nachvollziehen warum, das nicht immer einfach zu erklären wieso und weshalb.

Beta-User

Hmm, dachte immer, dass man im Hintergrund mehr braucht zum testen. Ist in der Tat schräg, was da passiert und schade, dass das nicht klappen will, den alten Namen anzuzeigen, sofern vorhanden.

Na jedenfalls sind wir jetzt vermutlich einen weiteren Schritt weiter, auch wenn das noch nicht abschließend fertig getestet ist, aber so wie jetzt im svn (nochmal anders...) sieht es erst mal einigermaßen ok aus. Bin mal gespannt, was so an Rückmeldungen kommt...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

TomLee

ZitatDas Modul AttrTemplate ist indirekt Bestandteil der SetExtensions, das Modul kann von Modulautoren aber auch ohne diese mit in beliebige (Geräte-) Module mit eingebaut werden.

Kenne mich nicht aus, sind das große Anpassungen oder nur wenige Zeilen die man ergänzen müsste für die Variante ohne SetExtensions ?

Würde gerne ein neues sr-Template welches einfach nur die Attribute genericDeviceType und homebridgeMapping setzt, in einem Modul das bisher kein attrTemplate eingebaut hat, testen.




Zu der jetzigen SVN-Variante:

Bin der Meinung Leave alexaName attribute empty versteht der User so das nach Bestätigung der alexaName nicht mehr vorhanden ist (das kann vorkommen wenn man auf ein älteres Gerät das einem der Sprachassistenten zuvor bekannt war und nun ein Template angewendet wird), darum hatte ich in diesem Zweig deleteAttr DEVICE alexaName #optional falls Name vorgeschlagen.
Sonst wär doch besser etwas in der Art wie Keep alexaName/siriName

Beta-User

Eigentlich ist es nicht viel, was man ergänzen muß, damit AttrTemplate sauber eingebunden wird, siehe https://svn.fhem.de/trac/changeset/17769/#file2 => da ist die Erweiterung der SetExtensions drin, kann man analog in jedes andere Modul übernehmen...



Wegen set/keep werde ich nochmal schauen: Eigentlich sollte es kein Hexenwerk sein, das dahingehend zu berücksichtigen, dass man Punkte wie "keep current", "set new", "delete current" je nach Bedarf angezeigt bekommt, so was müßte mit denselben Mechanismen gehen wie das Ausblenden auf der 2. Stufe siri, wenn vorher alexa durch ist... 
(Das wäre dann nahe dem, was ich mit ALEXAISNAME immer erreichen wollte...).
Danke für den Schubs, jetzt wird langsam ein richtig ordentlicher Schuh draus :) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Beta-User

Zur Info: seit eben ist nochmal eine aktualisierte Fassung im svn, allerdings - nach einem freundlichen Hinweis auf die verbesserungsfähige Namensgebung - unter neuem Namen: speechcontrol.template.

Die Namen der einzelnen templates habe ich auch angepasst, die betreffenden Aufrufe in den meisten anderen template-files auch. Neu hinzugekommen ist jetzt beim alexa-template noch ein "skip"-Button, zumindest bei meinen Tests hier scheint das alles soweit zu funktionieren.

Dann wäre jetzt eigentlich gassistant an der Reihe...

(Und: gibt es eventuell noch weitere Sprachsteuerungsvarianten, die wir bisher nicht im Fokus hatten?)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

TomLee

In speechcontrol.template fehlen in den Templatenamen zwischen speech und control die Unterstriche oder andersrum in  mqtt2.template sind welche vorhanden die weg müssten.