Dual-Thermometer - wie temperature2 für Alexa aufbereiten

Begonnen von oldman, 27 Januar 2022, 19:17:42

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

#15
Tja, dann gilt (wie immer) was Amazon nicht kann, kann man Alexa nicht beibringen... ;)

War unterwegs, daher halt (nur) der Verweis auf Wiki...
...dort hätte man es finden können... :)

EDIT: das bzgl. Events bleibt. Was alexa-fhem nicht mitkriegt, geht auch nicht an Amazon/Alexa...

EDIT: Alternative wäre eine Routine (wie ist die Luftfeuchte in XYZ) dann einen dummy o.ä. schalten und darauf dann mittels echodevice-Modul die "selbst erzeugte" Antwort ausgeben... Oder nat. Custom Skill...

Danke, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

locodriver

Eour habe ich gelöscht und eocr werde ich entsprechend anpassen...

Wenn ich die Amazonseite überfliege, so kann ich auch keine Feuchtigkeitssachen erkennen. Dann dürfte es wohl nicht so ohne weiteres gehen...
Oder muss man ein komplettes Homebridgemapping erstellen oder einen anderen Genericdevicetype wählen...?

Routinen wären auch ein Ansatz, aber die ziehen dann weitere dummies nach sich...
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

TomLee

ZitatRoutinen wären auch ein Ansatz, aber die ziehen dann weitere dummies nach sich...

Ein weiterer Ansatz:
Ein notify auf das voice-Reading "wie ist die Luffeuchtigkeit ..." von echodevice triggern lassen und im Ausführungsteil mit speak den Wert ausgeben lassen.

locodriver

Die Reaktion auf das Voice-reading dauert bis zu 30 s - das habe ich bei anderen Tests bemerkt. Lässt sich das "beschleunigen"?
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

TomLee

Attribut intervalvoice im ACCOUNT-Device von echodevice setzen, steht bei mir auf 8.

MadMax-FHEM

Kommt der Sprachtext auch im echodevice an, selbst wenn Alexa den "Befehl" ablehnt, was sie ja tut...

Ich habe für Routinen einen "Sammel-dummy" als Licht und je nach Routine einen anderen Dim-Wert.
Somit einen dummy für über 250 Routinen ;)

Mit homebridgeMapping kann man keine Befehle "erfinden".
Noch mal: was Amazon (für die jeweilige Sprache) nicht unterstützt wird Alexa auch nicht "verstehen" da kann man als homebridgeMapping angeben was man will.

homebridgeMapping passt nur Befehle/Zustände an die jeweils andere Seite an: Mapping eben... ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

locodriver

Zitat von: TomLee am 02 Februar 2022, 15:38:39
Attribut intervalvoice im ACCOUNT-Device von echodevice setzen, steht bei mir auf 8.

Wieder etwas gelernt... :)

ZitatIch habe für Routinen einen "Sammel-dummy" als Licht und je nach Routine einen anderen Dim-Wert.
Somit einen dummy für über 250 Routinen

So geht es natürlich auch, in der Art habe ich das für meine Steuerung des SAT-Receivers realisiert - ist etwas Fleißarbeit---

ZitatMit homebridgeMapping kann man keine Befehle "erfinden".

Ist schon klar, aber manchmal übersieht man ja eine Möglichkeit.

fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

TomLee

ZitatKommt der Sprachtext auch im echodevice an, selbst wenn Alexa den "Befehl" ablehnt, was sie ja tut...

Schon, aber egal was man sich einfallen lässt die Luftfeuchte abzufragen, zu allem hat Alexa mittlerweile irgendeine eine Antwort parat die stört.
Ich mein das war nicht immer so, "früher" wars je nach "Sprachbefehl" so, das der blaue Ring noch kurz an war und dann einfach abgebrochen wurde, wenn sie nichts mit dem Sprachbefehl anfangen konnte.

locodriver

#23
Ich habe mal etwas experimentiert...

Als erstes das Attribut "intervalvoice" mit dem Wert 8 - wie vorgeschlagen angelegt.

Dann ein DOIF hard codiert:

Internals:
   CFGFN     
   DEF        ([WZ_Echo_Dot:"^voice:.alexa.wie.ist.die.feuchtigkeit.im.arbeitszimmer$"]) (set WZ_Echo_Dot speak Im Arbeitszimmer beträgt die Luftfeuchtigkeit [AZ_Sensor:humidity] %)
DOELSEIF
([WZ_Echo_Dot:"^voice:.alexa.wie.ist.die.feuchtigkeit.im.wohnzimmer$"]) (set WZ_Echo_Dot speak Im Wohnzimmer beträgt die Luftfeuchtigkeit [WZ_Sensor:humidity] %)
   FUUID      6207cd15-f33f-b425-3566-5173ac44058f7453
   MODEL      FHEM
   NAME       Ask_states
   NOTIFYDEV  WZ_Echo_Dot,global
   NR         103626
   NTFY_ORDER 50-test2
   STATE      cmd_2
   TYPE       DOIF
   VERSION    25590 2022-01-30 11:30:21
   READINGS:
     2022-02-12 17:16:29   Device          WZ_Echo_Dot
     2022-02-12 16:44:00   cmd             2
     2022-02-12 16:44:00   cmd_event       WZ_Echo_Dot
     2022-02-12 16:44:00   cmd_nr          2
     2022-02-12 17:16:29   e_WZ_Echo_Dot_events microphone: false,deviceAddress:, DE,timeZoneId: Europe/Berlin
     2022-02-12 16:43:30   mode            enabled
     2022-02-12 16:44:00   state           cmd_2
   Regex:
     accu:
     collect:
     cond:
       WZ_Echo_Dot:
         0:
           &STATE     ^WZ_Echo_Dot$
         1:
           &STATE     ^WZ_Echo_Dot$
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::EventDoIf('WZ_Echo_Dot',$hash,'^voice:.alexa.wie.ist.die.feuchtigkeit.im.arbeitszimmer$',1)
     1          ::EventDoIf('WZ_Echo_Dot',$hash,'^voice:.alexa.wie.ist.die.feuchtigkeit.im.wohnzimmer$',1)
   do:
     0:
       0          set WZ_Echo_Dot speak Im Arbeitszimmer beträgt die Luftfeuchtigkeit [AZ_Sensor:humidity] %
     1:
       0          set WZ_Echo_Dot speak Im Wohnzimmer beträgt die Luftfeuchtigkeit [WZ_Sensor:humidity] %
     2:
   helper:
     NOTIFYDEV  WZ_Echo_Dot,global
     event      microphone: false,deviceAddress
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   WZ_Echo_Dot
     timerevent voice: alexa wie ist die feuchtigkeit im wohnzimmer
     triggerDev WZ_Echo_Dot
     timerevents:
       voice: alexa wie ist die feuchtigkeit im wohnzimmer
       voice_timestamp: 1644680633915
       BrowserUserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0
       BrowserLanguage: de,en-US;q=0.7,en;q=0.3
     timereventsState:
       voice: alexa wie ist die feuchtigkeit im wohnzimmer
       voice_timestamp: 1644680633915
       BrowserUserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0
       BrowserLanguage: de,en-US;q=0.7,en;q=0.3
     triggerEvents:
       microphone: false
       deviceAddress:
       timeZoneId: Europe/Berlin
     triggerEventsState:
       microphone: false
       deviceAddress:
       timeZoneId: Europe/Berlin
   internals:
   readings:
   trigger:
     all         WZ_Echo_Dot
   uiState:
   uiTable:
Attributes:
   do         always
   room       Test


Das funzt schon mal. Alexa antwortet zwar erst mit "das wird noch nicht unterstützt", aber danach kommt die Ansage.

Wie kann man das generalisieren?

1. Das man nicht den genauen Wortlaut verwenden muss sondern nur die Räume und die Werte (z.B. Temp., Feuchte, Fenster, Rolas) aus der Anfrage extrahiert werden? In etwa Trigger auf Raum und zusätzliche Bedingung Art der Anfrage (s.o.).

2. Nur je einen Abfragezweig für die verschiedenen Wertearten und nicht für jede einzelne Abfrage einen eigenen?
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

locodriver

Eine Abwandlung in der Art funzt leider nicht:

([WZ_Echo_Dot:"voice:küche$"] and [?WZ_Echo_Dot:voice] =~"feuchtigkeit") (set WZ_Echo_Dot speak In der Küche beträgt die Luftfeuchtigkeit [KU_Sensor:humidity] %)

Kann man möglicherweise grundsätzlich das gleiche Reading nicht für Trigger und Abfrage in einem DOIF-Zweig nutzen? Würde dann eventuell ein userreading helfen...?
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster

MadMax-FHEM

Du kannst den gesprochenen/empfangenen Satz auch an z.B. TEERKO, Babble, Talk2Fhem o.ä. "schicken".

Dort kannst du dann parametrisieren wie reagiert werden soll und wie/was für eine Antwort kommen soll...

Bzgl. DOIF kann ich nichts sagen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

locodriver

Da muss ich mich erst einlesen, mit diesen Modulen habe ich mich bisher noch nicht beschäftigt.
fhem 6.0 auf Rpi3 Bookworm
HM-LAN-CFG (FW 0.965), HM-MOD-UART, 2x HM-TC-IT-WM-W-EU, 4x HM-Sec-RHS und 3x HM-CC-RT-DN, 6x HM-LC-Bl1-FM mit je 1x Somfy-Motor,
2x HM-LC-SW2-FM für Licht und Lüfter, 2x HM-PB-6-WM55, Alexa, Jeelinkcross, CUL, CUNO2, IR-Blaster