[Gelöst] Im notify den Wert eines Dummys setzen

Begonnen von Invers, 14 März 2015, 14:11:35

Vorheriges Thema - Nächstes Thema

Invers

Ich möchte in einem Notify den Wert eines Dummys zuweisen. Das klappt aber leider nicht.
Im Dummy ist der Prozentwert der gewünschten Lautstärke hinterlegt, also z.B. 80

Das ist die Ansge, die funktioniert auch:
define fhemInitNotify notify global:INITIALIZED set MyTTS tts "fhem initialisiert."


Jetzt mit der Ergänzung, funktioniert nicht:
efine fhemInitNotify notify global:INITIALIZED set MyTTS volume [DU_aktLautst];;set MyTTS tts "fhem initialisiert."

Die Fehlermeldung im Log lautet:
2015.03.14 13:52:07 3: fhemInitNotify return value: volume level expects 0..100 percent

Kann mir bitte jemand sagen, was ich falsch mache?
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

flurin

#1
Zitat von: Invers am 14 März 2015, 14:11:35
Ich möchte in einem Notify den Wert eines Dummys zuweisen. Das klappt aber leider nicht.
Im Dummy ist der Prozentwert der gewünschten Lautstärke hinterlegt, also z.B. 80

Das ist die Ansge, die funktioniert auch:
define fhemInitNotify notify global:INITIALIZED set MyTTS tts "fhem initialisiert."


Jetzt mit der Ergänzung, funktioniert nicht:
efine fhemInitNotify notify global:INITIALIZED set MyTTS volume [DU_aktLautst];;set MyTTS tts "fhem initialisiert."

Die Fehlermeldung im Log lautet:
2015.03.14 13:52:07 3: fhemInitNotify return value: volume level expects 0..100 percent

Kann mir bitte jemand sagen, was ich falsch mache?

Versuchs mal so:

define fhemInitNotify notify global:INITIALIZED {my $var = Value("DU_aktLautst");; fhem("set MyTTS volume $var")};;set MyTTS tts "fhem initialisiert."

Gruss
flurin

Invers

Danke für den Tipp. Leider klappt das noch nicht so.
Da erhalte ich die Meldung:
2015.03.15 12:48:57 3: fhemInitNotify return value: Unknown command {my, try help.

Ich vermute mal, das gesamte Problem wäre vielleicht nicht da, wenn es ein Reading value und nicht nur ein Internal VALUE geben würde. Dann müsste man auch nicht solche Klimmzüge machen.

Kann man das nicht einfach nachprogrammieren, falls es daran liegt?
Vielleicht geht das ja auch gar nicht. Um das beurteilen zu können, habe ich zu wenig Ahnung.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

flurin

Zitat von: Invers am 15 März 2015, 13:02:49
Danke für den Tipp. Leider klappt das noch nicht so.
Da erhalte ich die Meldung:
2015.03.15 12:48:57 3: fhemInitNotify return value: Unknown command {my, try help.

Ich vermute mal, das gesamte Problem wäre vielleicht nicht da, wenn es ein Reading value und nicht nur ein Internal VALUE geben würde. Dann müsste man auch nicht solche Klimmzüge machen.

Kann man das nicht einfach nachprogrammieren, falls es daran liegt?
Vielleicht geht das ja auch gar nicht. Um das beurteilen zu können, habe ich zu wenig Ahnung.

Evtl. ist dies ein Semikolon Problem!

Das Doppelsemikolon ;; bezieht sich auf die Definition in fhem.cfg. Im DEF-Editor ist nur ein Semikolon nötig.

Versuch mal den Befehl im Eingabefeld (gleich wie in fhem.cfg) zu testen inkl. {} Klammern:

{my $var = Value("DU_aktLautst");;fhem("set MyTTS volume $var")}

Das müsste funktionieren.

Gruss
flurin

Invers

Ja, stimnmt, hatte ich gerade getestet. Selbe Idee.
define NY_Test notify Lampe_Korridor:on {my $var = Value("DU_aktLautst");;;; fhem("set MyTTS volume $var")};; set MyTTS tts fhem initialisiert.

Das funktioniert.
Vielen Dank für die Hilfe.

Trotzdem wäre es mit volume einfacher.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

flurin

Zitat von: Invers am 15 März 2015, 13:43:05
Trotzdem wäre es mit volume einfacher.

Mit DOIF geht es:

define di_fhemInit DOIF ([global:INITIALIZED]) (set MyTTS volume [DU_aktLautst], set MyTTS tts "fhem initialisiert.")

Invers

#6
Dann nehme ich doch lieber das. Ich wusste gar nicht, dass man das an dieser Stelle [global:INITIALIZED] benutzen kann/darf.
Vielen Dank.

EDIT:
_____________________________________
Schient leider doch nicht zu gehen, weil an der Stelle (nach Neustart von fhem) das Reading noch nicht existiert, laut LOG.
DI_fhemInit: reading does not exist: [global:INITIALIZED
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

flurin

#7
Zitat von: Invers am 15 März 2015, 14:32:28
Dann nehme ich doch lieber das. Ich wusste gar nicht, dass man das an dieser Stelle [global:INITIALIZED] benutzen kann/darf.
Vielen Dank.

EDIT:
_____________________________________
Schient leider doch nicht zu gehen, weil an der Stelle (nach Neustart von fhem) das Reading noch nicht existiert, laut LOG.
DI_fhemInit: reading does not exist: [global:INITIALIZED

Ja, stimmt!

Spontan fällt mir folgende Lösung ein:


define init dummy
attr init setList on off

define n_init notify global:INITIALIZED set init on

define di_fhemInit DOIF ([init] eq "on") (set MyTTS volume [DU_aktLautst], set MyTTS tts "fhem initialisiert.")


Das macht vor allem Sinn, wenn man "init" mehrfach nutzt.

Edit:

oder so was crazy  :)


define di_fhemInit DOIF ([{sprintf("%02d:%02d:%02d",$hour,$min,($sec+1)%60)}]) (set MyTTS volume [DU_aktLautst], set MyTTS tts "fhem initialisiert.")


Invers

Die Spontane Version klappt, wenn mann den Dummy hinterher wieder auf off setzt, denke ich.
Auf die Crazyversion würde ich ieber verzichten. LOL.
Ich werde aber mal offiziell im TextToSpeach-Thred anfragen, ob das Reading volume einprogrammiertr werden kann.

Vielen Dank für die ausführliche Unterstützung.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2