Dummy readings mit Alexa setzen

Begonnen von pcjogi, 27 Dezember 2022, 10:30:04

Vorheriges Thema - Nächstes Thema

pcjogi

Hallo zusammen,

Ich möchte in meinem Arbeitszimmer folgende Szenen mit Alexa steuern:

Heizen: Die Heizung wird auf 19 Grad gestellt
Arbeiten: Die Heizung wird auf 20 Grand gestellt, Die Schreibtischlampe wird eingeschaltet, Der Steckdose für den Schreibtisch wird eingeschaltet
AUS: Die Heizung wird auf 16 Grad gestellt, Die Schreibtischlampe wird ausgeschaltet, die Steckdose für den Schreibtisch und auch noch andere ggf. eingeschaltete Stechdosen und Lampen werden ausgeschaltet.

Meine Idee ist es hierfür ein Dummy zu definieren welches die verschiedenen Status annehmen kann und damit ein DOIF zu steuern welches die einzelnen Befehle ausführt.

Das funktioniert auch schon alles, ABER wie schaffe ich es das Reading des Dummies mit Alexa zu setzen.??

Ich finde keinen richtigen Ansatz das umzusetzen ( Den ALEX Custom Skill möchte ich vermeiden).

Kann mir jemand auf die Sprünge helfen mit was so etwas möglich ist?

Vielen Dank

Jürgen

Hier das DOIF:
Internals:
   DEF        ([ARBZ.SZENEN:"AUS"])
(
set ARBZ.DECKE.LICHT OFF,
set ARBZ.SCHREIBTISCH.LICHT OFF,
set ARBZ.SCHREIBTISCH.PLUG OFF,
set KFLU.DECKE.LICHT on-for-timer 60,
set ARBZ.RAUM.KLIMA control 15,
)
DOELSEIF ([ARBZ.SZENEN:"AN"])
(
set ARBZ.RAUM.KLIMA control 18,
set ARBZ.SCHREIBTISCH.LICHT ON,
set ARBZ.SCHREIBTISCH.PLUG ON,
)
DOELSEIF ([ARBZ.SZENEN:"HEIZEN"])
(
set ARBZ.DECKE.LICHT OFF,
set ARBZ.SCHREIBTISCH.LICHT OFF,
set ARBZ.RAUM.KLIMA control 17,
)


   FUUID      63836c93-f33f-a80e-c8a2-3ab2fd1910d4735b
   FVERSION   98_DOIF.pm:0.268510/2022-12-13
   MODEL      FHEM
   NAME       ARBZ.SZENEN.doif
   NOTIFYDEV  ARBZ.SZENEN,global
   NR         67
   NTFY_ORDER 50-ARBZ.SZENEN.doif
   STATE      cmd_1
   TYPE       DOIF
   VERSION    26851 2022-12-13 18:45:56
   READINGS:
     2022-11-30 20:35:49   Device          ARBZ.SZENEN
     2022-11-30 20:35:49   cmd             1
     2022-11-30 20:35:49   cmd_event       ARBZ.SZENEN
     2022-11-30 20:35:49   cmd_nr          1
     2022-11-30 20:35:49   e_ARBZ.SZENEN_events AUS
     2022-11-28 07:36:36   mode            enabled
     2022-11-30 20:35:49   state           cmd_1
   Regex:
     accu:
     collect:
     cond:
       ARBZ.SZENEN:
         0:
           &STATE     ^ARBZ.SZENEN$
         1:
           &STATE     ^ARBZ.SZENEN$
         2:
           &STATE     ^ARBZ.SZENEN$
   condition:
     0          ::EventDoIf('ARBZ.SZENEN',$hash,'AUS',1)
     1          ::EventDoIf('ARBZ.SZENEN',$hash,'AN',1)
     2          ::EventDoIf('ARBZ.SZENEN',$hash,'HEIZEN',1)
   do:
     0:
       0            set ARBZ.DECKE.LICHT OFF, set ARBZ.SCHREIBTISCH.LICHT OFF, set ARBZ.SCHREIBTISCH.PLUG OFF, set KFLU.DECKE.LICHT on-for-timer 60, set ARBZ.RAUM.KLIMA control 15,
     1:
       0            set ARBZ.RAUM.KLIMA control 18, set ARBZ.SCHREIBTISCH.LICHT ON, set ARBZ.SCHREIBTISCH.PLUG ON,
     2:
       0            set ARBZ.DECKE.LICHT OFF, set ARBZ.SCHREIBTISCH.LICHT OFF, set ARBZ.RAUM.KLIMA control 17,
     3:
   helper:
     NOTIFYDEV  ARBZ.SZENEN,global
     globalinit 1
     last_timer 0
     sleeptimer -1
   perlblock:
   trigger:
     all         ARBZ.SZENEN
   uiState:
   uiTable:
Attributes:
   do         always
   icon       helper_doif
   room       -Arbeitszimmer,_STEUERLOGIK


und hier das Dummy:

Internals:
   FUUID      6383721a-f33f-a80e-8dc4-d0439d548bc2acaa
   FVERSION   98_dummy.pm:0.256060/2022-02-01
   NAME       ARBZ.SZENEN
   NR         68
   STATE      AUS
   TYPE       dummy
   READINGS:
     2022-11-30 20:35:49   state           AUS
   hmccu:
Attributes:
   alexaName  Szene
   room       -Arbeitszimmer
   setList    AN AUS NACHT HEIZEN

Haupt-Fhem (Docker auf Synology), Sub-Fhem (433Mhz und 833Mhz) auf RasPi, Sub-Fhem (Heizungssteuerung) auf RasPi, Sub_Fhem (System) auf RasPi, IoBroker zur Darstellung (Docker auf Synology), alles verbunden über einen MQTT Broker, insgesamt ca. 100 Sensoren/Aktoren

MadMax-FHEM

#1
1. falsches Unterforum
Zitat von: help alexa
Module: 39_alexa.pm Maintainer: justme1968 Forum: Frontends/Sprachsteuerung
Verschieben kannst du selbst...

2. du hast Schritt 3, 4 und 5 vor 1 und 2 (evtl. hast du auch noch mehr "ausgelassen") gemacht... ;)
Du hast bereits ein "Wunsch-DOIF" ohne zu wissen was der dummy so liefert/liefern kann, wenn er mit Alexa geschalten wird...
Du hast einen nicht mal annähernd alexa-fhem tauglichen dummy aber schon Wünsche was der tun soll und wie du es Alexa sagen willst...
Vermutlich nicht ausreichend mit alexa-fhem auseinandergesetzt bzw. eher nicht mit Amazon Smart Home Skill (aber zumindest erkannt: es gibt da unterschiedliche Möglichkeiten und Custom Skill wurde ausgeschlossen ;)  )...

Dann mal von Anfang an:

Mit einem dummy geht.
Besser/einfacher ist (meist) direkt das zu schaltende Device nehmen...

Als erstes musst du dich mit deinen Wünschen (was willst du sagen/was soll dann passieren) an Amazon wenden, d.h. du musst etwas passendes beim Amazon Smart Home Skill finden.
Links sind im Wiki bzgl. alexa-fhem enthalten (kennst du?):

https://wiki.fhem.de/wiki/FHEM_Connector_f%C3%BCr_Amazon_Alexa
https://wiki.fhem.de/wiki/FHEM_Connector_f%C3%BCr_Amazon_Alexa#Ger.C3.A4te_im_FHEM-Webfrontend_zuweisen
bzw. direkt: https://developer.amazon.com/es-ES/docs/alexa/device-apis/list-of-interfaces.html

Was es dort in der gewünschten Sprache nicht gibt, wirst du nicht machen können!
Weil das dann bereits seitens Alexa/Amazon "abgeblockt" wird mit: das verstehe ich nicht / das Gerät unterstützt das nicht usw.

Wenn du da etwas gefunden hast, dann braucht der dummy (oder das Devie) das passende genericDeviceType und entweder bereits passende "setter" (also set Device machdies / kann beim dummy mittels setList "angepasst" werden) und passende Readings (kann man mittels setreading DeviceName ReadingName Wert auch mal "vorgeben", damit die mal da sind)...
Daran erkennt dann alexa-fhem das Device und dessen Möglichkeiten und gibt das an Amazon weiter...

Wenn das nicht reicht, dann musst du per homebridgeMapping anpassen...

ABER: damit lassen sich keine Sätze definieren (wird häufig verwechselt bzw. gedacht)!!

Mittels homebridgeMapping (wie der Name ja sagt) wird nur zwischen alexa-fhem/fhem und Amazon/Alexa gemappt, damit eben Dinge die von fhem an Amazon gehen (sollen) in das Muster dort passen und andersrum, Dinge die von Amazon/Alexa kommen eben fhem-konform werden.
Beispiel: dein Device in fhem braucht statt "on" zum Einschalten "1", dann kannst du das mittels homebridgeMapping anpassen. D.h. eine "1" am Device wird zu Amazon als "on" an Amazon gemeldet und wenn "on" von dort kommt, dann wird eben "1" ans Device gesendet / vereinfacht gesprochen / es gehen auch kompliziertere Dinge). Was aber nicht geht, dass du plötzlich ganz neue Sätze sprechen kannst...

Szenen kann passen.
Aber: du musst echte Szenen haben, also auch Temperaturwerte sind dann Szenen (willst du das?) und du musst beim Sprechen auch den Szenen-Namen nennen

Alexa setze SzenenName auf Szene XYZ
(oder so ähnlich)

Was noch geht, für Dinge die nicht so gesprochen werden können wie du willst: Routinen

D.h. du legst eine Routine in der Alexa-App an (dabei kannst du ja vorgeben was genau du sprechen möchtest) und an deren Ende kannst du dann ein Gerät schalten lassen.
Es geht auch (so habe ich das mal zum Spielen eingerichtet) einen "Licht-dummy" (dimmer) anlegen und am Ende der Routine einen bestimmten Dimm-Wert setzen lassen.
Mittels notify/DOIF dann verschiedene Aktionen je nach Dimmwert auslösen...

D.h. einen Dimmer-dummy für verschiedene Routinen... :)

Aber bei den Routinen musst du haarklein vorgeben was du sprechen willst und dich auch haarklein dran halten und (um bei deinem Beispiel zu bleiben) für verschiedene Temperaturwerte eben auch verschiedene Routinen anlegen...
Und Werte für die es keine Routinen gibt: das geht dann eben nicht...

Anmerkung: in dem Satz den du bei der Routine vorgibst und ein Gerät "erwähnst" ist es besser, wenn es das Gerät nicht in echt gibt, sonst kann/könnte Alexa durcheinander kommen (zwischen oh, da ist die Routine XY gemeint oder hmm, doch eher das Gerät AB selber ;) )...

Also: du musst erst mal auf die Suche gehen und bei Amazon etwas finden, was deinem Sprachwunsch am nächsten kommt und dann deinen dummy entsprechend bauen und erst dann das DOIF oder was auch immer...

Und ja: mit dem Custom Skill wäre all das möglich, dafür ist die Einrichtung nicht ganz einfach. Auch, weil die Anleitung im Wiki schon lange, lange "überholt" ist (da sich seitens Amazon so viel geändert hat) und keiner es nachgezogen hat (die meisten kommen mit dem Smart Home Skill und Routinen zurecht, ich auch. Ich hatte mal Custom Skills aber verwende die nicht mehr [falls die überhaupt noch funktionieren])...
EDIT: aber auch beim Custom Skill musst du zuerst diesen "ansprechen", also: Alexa sag CustomSkillName mach dies oder 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)

pcjogi

VIELEN DANK für die ausführliche Antwort. Damit kann ich erst einmal weiterarbeiten und versuchen mich der Lösung meiner Anforderung zu nähern.

P.S.: Danke für den Hinweis auf das falsche Unterforum. Beitrag ist verschoben.

Haupt-Fhem (Docker auf Synology), Sub-Fhem (433Mhz und 833Mhz) auf RasPi, Sub-Fhem (Heizungssteuerung) auf RasPi, Sub_Fhem (System) auf RasPi, IoBroker zur Darstellung (Docker auf Synology), alles verbunden über einen MQTT Broker, insgesamt ca. 100 Sensoren/Aktoren

MadMax-FHEM

Gerne. Viel Erfolg.

Der Hinweis mit dem Unterforum und dein Verschieben haben den Vorteil, dass dort die Leute mit Ahnung (eher) mitlesen...

Anfängerfragen ist so ein "Sammelsurium" und da ist es für manche Themen eher Zufall...

Bei Fragen einfach wieder melden...

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)