Einladung zum Beta-Test: "FHEMlazy" zur einfacheren Alexa-Integration

Begonnen von gvzdus, 23 Dezember 2018, 15:30:36

Vorheriges Thema - Nächstes Thema

grappa24

#840
Niemand einen (Lese)Tipp für mich zum Einsatz von homebridgeMapping und genericDeviceType? Insb. im Zusammenhang mit einem MultiRoomSpeaker (Steuerung des PlayStatus, Auswahl des Channels, ...)? Oder bin ich hier falsch im thread?
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

Esjay

Zitat von: grappa24 am 27 September 2019, 09:08:27
Niemand einen (Lese)Tipp für mich zum Einsatz von homebridgeMapping und genericDeviceType? Insb. im Zusammenhang mit einem MultiRoomSpeaker (Steuerung des PlayStatus, Auswahl des Channels, ...)? Oder bin ich hier falsch im thread?


Jap falscher Theard. https://forum.fhem.de/index.php/topic,95272.870.html

Über genericDeviceType media - den find ich allerdings bei mir nicht, wo kommt der denn her? Einfach über die Kommandozeile eingeben "attr Heos genericDeviceType media" Nur weil es in dem Drop-Down nicht ist, heißt es nicht, dass es nicht da ist ;-)

Würde es in der Art versuchen

InputController:reading=playStatus,cmd=channel,values=1;2;usw
PlaybackController:playback,values=play;stop;

Schau aber bitte nochmal ins Log, ob Alexa alles richtig erkennt. Wenn nicht, Log vll in dem anderen Theard posten, und auf weitere Hilfe hoffen.

Gruß



MadMax-FHEM

Zitat von: grappa24 am 27 September 2019, 09:08:27
Niemand einen (Lese)Tipp für mich zum Einsatz von homebridgeMapping und genericDeviceType? Insb. im Zusammenhang mit einem MultiRoomSpeaker (Steuerung des PlayStatus, Auswahl des Channels, ...)? Oder bin ich hier falsch im thread?

Eventuell bringt dich auch das weiter: https://forum.fhem.de/index.php/topic,60244.msg974748.html#msg974748

Ist zwar "nur" ein Dummy aber man kann daran ja sehen was wie funktioniert (zumindest denke ich das)...

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)

grappa24

sorry, wenn ich jetzt hier in dem thread weiterschreibe.

Ich hab mal folgendes versucht: PlaybackController:playback,values=play;stop ChannelController:reading=Channel,cmd=1;2;3

Dann steht im Log: [9/27/2019, 4:23:05 PM] [FHEM] HEOSPlayer376628887 is media
[9/27/2019, 4:23:05 PM] [FHEM] HEOSPlayer376628887 has
[9/27/2019, 4:23:05 PM] [FHEM]   Custom Volume [volume;cached]
[9/27/2019, 4:23:05 PM] [FHEM]   Mute [mute]
[9/27/2019, 4:23:05 PM] [FHEM]   PlaybackController [playback]
[9/27/2019, 4:23:05 PM] [FHEM]   ChannelController [Channel]
  2019-09-27 16:23:05 caching: HEOSPlayer376628887-volume: 14
[9/27/2019, 4:23:05 PM] [FHEM]     caching: Custom Volume: 14 (as number; from '14')
  2019-09-27 16:23:05 caching: HEOSPlayer376628887-mute: off


Das einzige, was jetzt funktioniert ist "Alexa, mache HEOS lauter", was gleichzeitig den Speaker einschaltet. Aber "Alexa, HEOS abspielen" oder "Alexa, nächster Kanal auf HEOS" oder so geht nicht.

Entweder fehlt mir da noch was oder ich mache einen kompletten Denkfehler ?
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

Toto1973

Ich häng mich da mal dran!
Ich möchte gerne einen Dummy, der als GenricDeviceType media hat, verschiedene Eingänge schalten.
Im Netzt habe ich das hier gefunden:
hombridgeMapping InputController:reading=<reading>,cmd=<cmd>,values=HDMI+1;HDMI+2;XBOX

Wie muss ich das denn nun ergänzen / ändern, damit Alexa weis, was ich will?
Irgendwie blicke ich das nicht!
Hier noch mein kompletter code:

defmod dreamscreen_dummy dummy
attr dreamscreen_dummy alexaName Umschalter
attr dreamscreen_dummy alexaRoom Wohnzimmer
attr dreamscreen_dummy alias DreamScreen 4K
attr dreamscreen_dummy genericDeviceType media
attr dreamscreen_dummy group TV
attr dreamscreen_dummy homebridgeMapping InputController:reading=state,cmd=WebCmd,values=HDMI+1;;HDMI+2;;XBOX
attr dreamscreen_dummy room Wohnzimmer
attr dreamscreen_dummy setList HDMI 1 HDMI 2 HDMI 3 XBOX
attr dreamscreen_dummy webCmd HDMI 1:HDMI 2:XBOX
Raspberry PI2, Rademacher DuoFern Stick, CUL, 2 x SCC,  JeeLink 868 Mhz, JeeLink 433 Mhz, 3x Magic UFO LED WiFi Controller, 4x MAX BC-RT-TRX-CyG, 2x MAX Fensterkontakt, 5x Rademacher Gurtwickler, 6x TX29DTH-it, 2x TX25-it als Helligkeitssensor, 1X HM-ES-PM, 6x Sonoff, 7x G-Homa, PIR-1000

MadMax-FHEM

#845
Eventuell mal hier schauen: https://wiki.fhem.de/wiki/FHEM_Connector_f%C3%BCr_Amazon_Alexa

Dort sind Beispiele drin/sollten...

Besser ein list statt Auszug der config...

Du brauchst (bei einem Dummy) sicher noch "Code" (DOIF, Notify+Sub in myUtils, ...) um auch tatsächlich was zu bewirken...

Siehe hier (als Beispiel): https://forum.fhem.de/index.php/topic,60244.msg974748.html#msg974748

Evtl. geht es aber in Deutsch noch (gar) nicht...
...bin etwas unsicher.
Bei Amazon steht Deutsch wohl bei Kanal dabei...
...Andre (justme1968) meinte aber irgendwo kürzlich, dass noch nicht.

Aber das sieht man im alexa-fhem Log...

Siehe auch hier: https://forum.fhem.de/index.php/topic,81324.msg978903.html#msg978903

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)

justme1968

für media und kanäle bzw. eingänge geht es.

frei definiert für beliebige geräte geht es in deutschland noch nicht.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Toto1973

Vielen Dank für die Hinweise!
Das habe ich mir schon alles angesehen. Nur verstehe ich nicht wirklich, wie dieses Mapping funktioniert bzw. wie ich es zusammen bauen muss, damit was von Alexa zurück kommt.
Ich gehe davon aus, das ich einfach dieses mapping richtig setzten muss und schon bekomme ich ein Feedback/Alexa schaltet das dummy. Weshalb ich da noch eine Sub brauche, erschließt sich mir, bis jetzt, noch nicht
Raspberry PI2, Rademacher DuoFern Stick, CUL, 2 x SCC,  JeeLink 868 Mhz, JeeLink 433 Mhz, 3x Magic UFO LED WiFi Controller, 4x MAX BC-RT-TRX-CyG, 2x MAX Fensterkontakt, 5x Rademacher Gurtwickler, 6x TX29DTH-it, 2x TX25-it als Helligkeitssensor, 1X HM-ES-PM, 6x Sonoff, 7x G-Homa, PIR-1000

MadMax-FHEM

#848
Ich muss zugeben, dass homebridgeMapping auch nicht meine Stärke ist.
Ich hab einfach rumprobiert bis es ging... ;)

EDIT: siehe hier https://forum.fhem.de/index.php/topic,97887.msg911520.html#msg911520

Zunächst ist wichtig, dass das Gerät richtig erkannt wird.
Dabei hilft genericDeviceType und passende Readings.

Damit ist ein homebridgeMapping oft schon unnötig bzw. deutlich einfacher...

Nun zum warum beim Dummy noch DOIF/Notify und Sub:

Durch die Sprachansage ändert sich (beim Dummy) ja "nur" das zugehörige Reading.
Sonst nichts...
Wenn dir das schon reicht, brauchst du nat. nichts weiter... ;)

Wenn aber was passieren soll, dann entweder gleich die entspr. Befehle angeben (homebridgeMapping) oder eben auf die Readingänderung reagieren und das gewünschte tun...

Allerdings wenn es ein Gerät gibt, welches direkt Befehle für das zu schaltende hat: warum dann ein Dummy!?

In meinem verlinkten Beispiel mit Dummy hatte ich das ja bereits erläutert.
Also wozu notify/sub und warum ich einen Dummy genommen habe... ;)

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)

Toto1973

#849
Also zum steuern habe ich ein Doif.
Das heisst, wenn sich der state des Dummy ändert, wird entsprechend über das DOIF geschaltet. Das funktioniert.
Das was ich aber nicht hinbekomme, ist diese mapping. Irgendwas muss ich da noch falsch haben. Ich werde weiter suchen und probieren :-)
P.S.: Was mir fehlt ist ein konkretes Beispiel mit Media und dem korektem mapping.
Alexa sagt immer nur, das weiß ich nicht!
Raspberry PI2, Rademacher DuoFern Stick, CUL, 2 x SCC,  JeeLink 868 Mhz, JeeLink 433 Mhz, 3x Magic UFO LED WiFi Controller, 4x MAX BC-RT-TRX-CyG, 2x MAX Fensterkontakt, 5x Rademacher Gurtwickler, 6x TX29DTH-it, 2x TX25-it als Helligkeitssensor, 1X HM-ES-PM, 6x Sonoff, 7x G-Homa, PIR-1000

MadMax-FHEM

#850
Wenn Alexa sagt das weiß ich nicht, liegt es (verm. erst mal) nicht am Mapping sondern an der "Wort-Wahl" ;)

Das ist die erste "Hürde", also dass Alexa auch versteht was du meinst und es "zuordnen" kann zu etwas was sie kennt (also beispielsweise einem Gerät in deinem Zoo)...

Daher habe ich ja in meinem Dummy-Beispiel auch für mich mal notiert (comment) was sprachlich funktioniert ;)

Und selbst da kommt ab und zu, dass sie nicht weiß ;)

Dann schaue ich im Verlauf und gebe Feedback...
...das hilft dann über die Zeit ;)


Denn wenn das schon nicht geht kommt auch erst mal gar nichts bei alexa-fhem an.

Wenn das mal klappt aber bei fhem nicht das passiert was erwartet wird/wurde, dann im alexa-fhem Log schauen was angekommen ist und was alexa-fhem dann daraus gemacht hat.
Anhand von dem kann man dann schauen was wo wie anders muss (meist homebridgeMapping)...

Bei meinem Dummy-Beispiel sollte man aber sehen wie was geht und was dann weiter muss (also Notify/Sub etc.)...
...und es ändern sich erst mal auch nur die passenden Readings (nicht [zwingend] der state)...

Poste doch mal ein list deines Dummy oder Gerätes was du eigentlich steuern willst, vielleicht braucht es den Dummy ja gar nicht (ich habe ja meine Gründe für den Dummy dargelegt / es würde mit entsprechend umfangreicherem homebridgeMapping und jetzt mit dem neuen Verstärker sicher auch ohne Dummy gehen)...

Viel Erfolg, 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)

Toto1973

Ich versuche mich jetzt mal heran zu tasten.
Dazu habe ich mal Dein Beispiel genommen:
Internals:
   FUUID      5d8f1ac4-f33f-206e-8f3a-8c547ad6c4781d3e
   NAME       dreamscreen_dummy
   NR         680
   STATE      Musik
   TYPE       dummy
   READINGS:
     2019-09-29 10:43:10   state           Musik
Attributes:
   alexaName  Umschalter
   alexaRoom  Wohnzimmer
   alias      DreamScreen 4K
   genericDeviceType media
   group      TV
   readingList HDMI 1 HDMI 2 HDMI 3 PHONO VIDEO 1
   room       Wohnzimmer
   setList    HDMI 1 HDMI 2 HDMI 3 PHONO VIDEO 1


Dieser Dummy steuert dann mein DOIF:
Internals:
   DEF        ([dreamscreen_dummy] eq "Video 1") (({system('/opt/fhem/DreamScreenComander.py -m 1&');;}))
DOELSEIF ([dreamscreen_dummy] eq "PHONO") ({system('/opt/fhem/DreamScreenComander.py -m 2&');;})
DOELSEIF ([dreamscreen_dummy] eq "HDMI 1") ({system('/opt/fhem/DreamScreenComander.py -s 0&');;})
DOELSEIF ([dreamscreen_dummy] eq "HDMI 2") ({system('/opt/fhem/DreamScreenComander.py -s 1&');;})
DOELSEIF ([dreamscreen_dummy] eq "HDMI 3") ({system('/opt/fhem/DreamScreenComander.py -s 2&');;})

   FUUID      5d8f1c00-f33f-206e-db8c-6cc062b1435738c0
   MODEL      FHEM
   NAME       dreamscreen_doif
   NR         681
   NTFY_ORDER 50-dreamscreen_doif
   STATE      initialized
   TYPE       DOIF
   VERSION    19786 2019-07-05 21:47:08
   READINGS:
     2019-09-29 18:47:58   cmd             0
     2019-09-29 18:47:58   mode            enabled
     2019-09-29 18:47:58   state           initialized
   Regex:
     accu:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::InternalDoIf($hash,'dreamscreen_dummy','STATE') eq "Video 1"
     1          ::InternalDoIf($hash,'dreamscreen_dummy','STATE') eq "PHONO"
     2          ::InternalDoIf($hash,'dreamscreen_dummy','STATE') eq "HDMI 1"
     3          ::InternalDoIf($hash,'dreamscreen_dummy','STATE') eq "HDMI 2"
     4          ::InternalDoIf($hash,'dreamscreen_dummy','STATE') eq "HDMI 3"
   devices:
     0           dreamscreen_dummy
     1           dreamscreen_dummy
     2           dreamscreen_dummy
     3           dreamscreen_dummy
     4           dreamscreen_dummy
     all         dreamscreen_dummy
   do:
     0:
       0          ({system('/opt/fhem/DreamScreenComander.py -m 1&');;})
     1:
       0          {system('/opt/fhem/DreamScreenComander.py -m 2&');;}
     2:
       0          {system('/opt/fhem/DreamScreenComander.py -s 0&');;}
     3:
       0          {system('/opt/fhem/DreamScreenComander.py -s 1&');;}
     4:
       0          {system('/opt/fhem/DreamScreenComander.py -s 2&');;}
     5:
   helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
   internals:
     0           dreamscreen_dummy:STATE
     1           dreamscreen_dummy:STATE
     2           dreamscreen_dummy:STATE
     3           dreamscreen_dummy:STATE
     4           dreamscreen_dummy:STATE
     all         dreamscreen_dummy:STATE
   itimer:
   uiState:
   uiTable:
Attributes:
   group      Sonstiges
   room       DOIFs


Im Prinzip geht es ja nur um das Dummy. Wenn ich das per Alexsa scahlten kann, geht ja alles.
Raspberry PI2, Rademacher DuoFern Stick, CUL, 2 x SCC,  JeeLink 868 Mhz, JeeLink 433 Mhz, 3x Magic UFO LED WiFi Controller, 4x MAX BC-RT-TRX-CyG, 2x MAX Fensterkontakt, 5x Rademacher Gurtwickler, 6x TX29DTH-it, 2x TX25-it als Helligkeitssensor, 1X HM-ES-PM, 6x Sonoff, 7x G-Homa, PIR-1000

MadMax-FHEM

#852
Deine setList kann so nicht stimmen: Leerzeichen-getrennte Liste. Aber HDMI 1 enthält bereits ein Leerzeichen.
Gleiches gilt verm. für die ReadingsList...

Weiß jetzt nicht was man da macht, evtl. HDMI.1

EDIT: -> HDMI+1 Danke Andre! :)

Dann hat dein Dummy keinerlei passende Readings, z.B. channel (einfach mal setreading Name channel 1 [oder halt was anderes])...

Wobei das ja für Kanal-Umschaltung wäre und nicht für "Input-Umschaltung" (die wie geschrieben evtl. für Deutschland noch nicht geht)...

Wenn du damit leben kannst, dass du sagst: "Alexa schalte auf Name auf Kanal HDMI 1" (wobei wie gesagt Alexa/Amazon manchmal unnötig schlau ist/sein will und was es nicht kennt einfach sagt: da kann ich nicht helfen oder so / es gibt ja keinen "Sender/Kanal" der HDMI 1 heißt, daher: ich weiß nicht was da erkannt wird und ob Alexa damit "glücklich" wird / weil das ist Grundvoraussetzung. Wenn Alexa etwas nicht kennt/will, dann geht da nichts)...
...dann kannst du einfach meinen Dummy nehmen und mal meine Sub anschauen und auf das DOIF übertragen bzw. entspr. anpassen.
Es kann aber sein, daher habe ich ja die Liste der Sendernamen, dass Amazon nicht das gesagte (obwohl erkannt) zurück gibt sondern auch mal irgendwas anderes vermeintlich "schlaues".

Daher lasse ich das mit den Kanalnamen auch oft sein und sage die Nummer (das geht) weil oft für den gleichen Sender (der auch gleich erkannt wird laut Verlauf) gerne mal was anderes zurück kommt, Beispiel:

Schalte auf MDR (wird laut Verlauf erkannt) aber es kann mdr, m.d.r. oder aber auch MDR Sachsen etc. "zurückkommen", daher ja meine "Suchschleife" (die auch nicht immer trifft und die ich auch mal umbauen muss / oder ich lasse es eben)...

Dann hast du keinerlei homebridgeMapping!

Eventuell ist es geschickter von meinem Dummy als "exakte" Kopie "zurückzubauen" bzw. eben an deine Dinge anzupassen...

So kann das nicht gehen...

EDIT: alexaRoom ist für Smart Home (außer Szenen oder so) irrelevant (aber schadet wohl auch nicht).

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)

justme1968

ZitatWeiß jetzt nicht was man da macht, evtl. HDMI.1
wie im wiki geschrieben: mit +

wenn du sagen möchtest 'schalte den kanal ...': ChannelController
wenn du sagen möchtest 'schalte den eingang ...': InputController

welche eingänge möglich sind: siehe den link im wiki: https://developer.amazon.com/de/docs/device-apis/alexa-property-schemas.html#input
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

MadMax-FHEM

Zitat von: justme1968 am 29 September 2019, 19:22:59
wie im wiki geschrieben: mit +

wenn du sagen möchtest 'schalte den kanal ...': ChannelController
wenn du sagen möchtest 'schalte den eingang ...': InputController

welche eingänge möglich sind: siehe den link im wiki: https://developer.amazon.com/de/docs/device-apis/alexa-property-schemas.html#input

Hallo Andre,

geht InputController nun in Deutschland oder nicht!?

Habe bei Amazon geschaut, da (dachte ich gesehen zu haben, dass) steht DE dabei...
...aber in einem der Threads (dachte ich von dir gelesen zu haben) stand, dass es noch nicht geht!?

Oder täusche ich mich da nun komplett...
...nicht, dass ich das selbst brauche aber wenn wieder gefragt wird... ;)

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)