alexa-fhem: amazon alexa smart home skill für fhem, api version 3

Begonnen von justme1968, 19 Dezember 2017, 22:16:30

Vorheriges Thema - Nächstes Thema

MadMax-FHEM

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)

inesa394

Hallo

Komme beim anlegen des Custom Skills nicht weiter fhem erzeugt mir zwar ein json was aber so nicht mehr geht
bekomme beim speichern im json Editor nur noch ein save failed.
Weiß jemand wie das jetzt anzupassen ist damit es wieder funktioniert.


Inesa

TomLee


oeiber

hallo zusammen,

unterstützt version 0.4.4 eigentlich ,,Send Alexa Events"?

Danke!

Amenophis86

Zitat von: oeiber am 26 Juli 2018, 17:46:11
,,Send Alexa Events"?

Mit Google nix brauchbares gefunden. Soll es sich dabei etwa endlich um die Funktion handeln, dass man sie sprechen lassen kann ohne vorher etwas sagen zu müssen?
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

bugware

Guten Abend,

ich hatte hier https://forum.fhem.de/index.php/topic,60244.msg814455.html#msg814455 von einem Problem bei Benutzung eines readingsproxy mit alexa-fhem geschrieben. Zusammenfassend hatte ich ein readingsproxy angelegt, wobei das ursprüngliche reading die Werte "ein aus" statt "on off" verwendet (Wcmcom modul zur Steuerung einer Weisaupt-Heizung).

Mit einer Konfiguration mittles Homebridgemapping lies sich kein vernünftiger StatusIntent der "ein auf on" und "aus auf off" mappt realisieren. Auch ein Mapping mitn den FHEM-Attributen valueFn {($VALUE eq "aus")?"off":"on"} und setFn {($CMD eq "on")?"Hk1-ZP-ZP ein":"Hk1-ZP-ZP aus"} ging nicht.

Im source code von alexa-fhem habe ich nun festgestellt, dass es vermutlich gar nicht das Problem des mappings ist, sondern ein caching/FHEM-Event-Problem und ich weiß nicht, ob es nur mich betrifft oder auch andere.
Wie schon im obigen Link zu sehen lautet die informId: 'HzAnlage_ZP_ZP-state'.
FHEM-Events werden beim Schalten in FHEM im Eventmonitor angezeigt, aber in alexa-fhem kommen sie scheinbar nicht an.
In function FHEM_startLongpoll in der Datei fhem.js wird eine callback function auf .on('data') gesetzt (Zeile 552).
In dieser Funktion wird der device-Name eines FHEM-Events ausgewertet mittelts:
var match = d[0].match(/([^-]*)-(.*)/);
Im FHEM-Event-Monitor lautet der Eintrag inkl. device name allerdings:
2018-07-28 23:11:29 readingsProxy HzAnlage_ZP_P3_Alexa on
D.h. der match passt nicht und es wird nichts im Cache aktualisiert.

Ich habe daher folgendes geändert:
@@ -610 +610,4 @@ function FHEM_startLongpoll(connection) {
-                     continue;
+                     match = d[0].match(/([^-]*)/);
+                     if( !match )
+                       continue;
+                     match[2] = "state";
@@ -640,0 +644,6 @@ function FHEM_startLongpoll(connection) {
+                   if( !subscriptions ) {
+                    subscriptions = FHEM_subscriptions[d[0]+"-state"];
+                    if( subscriptions ) {
+                      d[0] += "-state";
+                    }
+                  }


Wenn der match nicht passt wird statt continue ein zweiter Match ohne reading nach dem device, d.h. also quasi mit dem default "state" als nicht gemeldetes reading getestet.
Weiter unten wird geschaut ob eine "subscription" für den match/das device (d[0]) existiert und falls nicht, dann auch wieder mit "-state" getestet und dies im Erfolgsfall an den device namen angehangen, so dass es auch zur informId passt.
Der StatusIntent wird jetzt korrekt beantwortet.

@justme1968: ich weiß nicht, ob das so allgemeingültig funktioniert oder nur in meinem Fall. Wäre aber schön wenn es in der offizielle Version sinngemäß auch geändert werden könnte, damit ich das nicht immer wieder nachpflegen muss, wenn es eine neue alexa-fhem Version gibt. :) Vielen Dank...

Gute Nacht!
RPi 2, nanoCUL433, nanoCUL868-HM, SIGNALduino, HM, IT, SOMFY, Weishaupt-Mod, BOTVAC, MYSENSORS

volschin

Geht Benachrichtigung auslösen so wie im Video ab ca. Minute 23 so aus FHEM bereits ebenfalls?
https://youtu.be/_8ya1l_Q6Ko
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

MadMax-FHEM

Zitat von: volschin am 30 Juli 2018, 02:19:23
Geht Benachrichtigung auslösen so wie im Video ab ca. Minute 23 so aus FHEM bereits ebenfalls?
https://youtu.be/_8ya1l_Q6Ko

Geht hiermit: https://forum.fhem.de/index.php/topic,82631.msg747482.html#msg747482

Oder als selbst zusammengebaute erweiterte Antwort auf z.B. guten Morgen etc. (aufruf einer Sub in myUtils durch guten Morgen o.ä. und dann entsprechende Antwort zusammenbauen)...

Ersteres is eine "normale" Alexa-Erinnerung und zweiteres eigene Antwort auf "Anfrage"...

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)

volschin

Ich habe mir deinen Link mal angesehen und glaube nicht, dass das so bei iobroker gemacht wird. Dann wäre das im Video ziemlich gut gefaked.

Dort ist die Funktionalität ja, dass durch das Drehen des Würfels eine Sprachansage erfolgt, die mehrere Werte des Smarthomes mit enthält. Also vergleichbar ein FHEM-Event (z.B. Bewegungsmelder) triggert ein Briefing zum Status des Smarthomes.
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

no_Legend

Zitat von: inesa394 am 16 Juli 2018, 22:41:03
Hallo

Komme beim anlegen des Custom Skills nicht weiter fhem erzeugt mir zwar ein json was aber so nicht mehr geht
bekomme beim speichern im json Editor nur noch ein save failed.
Weiß jemand wie das jetzt anzupassen ist damit es wieder funktioniert.


Inesa

Bist du da weiter gekommen?
Da hänge ich auch nun seit längerem.

@justme1968
Kannst du die JSON ausgabe an das neue von Amazon benötigte Format anpassen?


Danke und Gruß Robert
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

MadMax-FHEM

Zitat von: volschin am 30 Juli 2018, 08:31:20
Ich habe mir deinen Link mal angesehen und glaube nicht, dass das so bei iobroker gemacht wird. Dann wäre das im Video ziemlich gut gefaked.

Dort ist die Funktionalität ja, dass durch das Drehen des Würfels eine Sprachansage erfolgt, die mehrere Werte des Smarthomes mit enthält. Also vergleichbar ein FHEM-Event (z.B. Bewegungsmelder) triggert ein Briefing zum Status des Smarthomes.

Warum, das geht doch mit dem verlinkten Modul.
Entweder TTS-Ausgabe oder eine Erinnerung (sofort) setzen...
...dort kann man ja mitgeben was ausgegeben werden soll (und das kann ja zuvor in fhem "zusammengesucht werden").

Beides geht per Notify oder was auch immer, also auch beim "Drehen eines Würfels" (sofern der Würfel in fhem eingebunden ist ;)  )...

Mit alexa-fhem ginge das Szenario des "erweiterten Guten Morgen" (was ja ebenfalls im Video genannt wird).
D.h. man sagt "Alexa sag der Wohnung guten Morgen" (oder was auch immer), dadurch wird eine Sub in myUtils gestartet (geht ja mit dem Custom Skill), die macht die "normale" Morgen-Aktivität und prüft dann eben noch den Müllkalender und die Luftfeuchte und den Stromverbrauch usw. und baut dann eine entsprechende Antwort als Rückgabe zusammen, welche dann eben ausgegeben wird...

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)

inesa394

Steht hier irgendwo im Forum wie das anzupassen ist
so sieht das json Model aus zum jetzigen Zeitpunkt
{
    "interactionModel": {
        "languageModel": {
            "invocationName": "plex",
            "intents": [
                {
                    "name": "FHEMperlCodeIntent",
                    "slots": [
                        {
                            "name": "artist",
                            "type": "SEARCH"
                        }
                    ],
                    "samples": [
                        "spiele {artist}",
                        "spiel {artist}",
                        "musik {artist}",
                        "spiele musik von {artist}",
                        "stoppe {artist}"
                    ]
                },
                {
                    "name": "AMAZON.PauseIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.ResumeIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.CancelIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.HelpIntent",
                    "samples": []
                },
                {
                    "name": "AMAZON.StopIntent",
                    "samples": []
                }
            ],
            "types": [
                {
                    "name": "SEARCH",
                    "values": [
                        {
                            "name": {
                                "value": "Stoppe die Musik"
                            }
                        },
                        {
                            "name": {
                                "value": "Playlist"
                            }
                        },
                        {
                            "name": {
                                "value": "Stop"
                            }
                        },
                        {
                            "name": {
                                "value": "Göthe"
                            }
                        },
                        {
                            "name": {
                                "value": "Hallo Du"
                            }
                        }
                    ]
                }
            ]
        }
    }
}


volschin

Zitat von: MadMax-FHEM am 30 Juli 2018, 16:49:11
... oder eine Erinnerung (sofort) setzen...

Danke, ich glaube, das mit der sofortigen Erinnerung ist das, was ich suche.
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

mrSnatz

Hi Leute,
heute habe ich auch ma versucht Alexa-fhem zu installieren und den Smart Home Skill zu aktivieren. Im Anhang habe ich mein Vorgehen mit Bildern (Stand 04.08.18) dokumentiert ;). Am Ende erhalte ich allerdings einen Fehler (Auch in der doku enthalten)

Kann mir hier einer weiterhelfen??? Ich sehe den Wald vor lauter bäumen nicht mehr.

Jessyfoosy

Zitat von: mrSnatz am 04 August 2018, 17:39:26
Hi Leute,
heute habe ich auch ma versucht Alexa-fhem zu installieren und den Smart Home Skill zu aktivieren. Im Anhang habe ich mein Vorgehen mit Bildern (Stand 04.08.18) dokumentiert ;). Am Ende erhalte ich allerdings einen Fehler (Auch in der doku enthalten)

Kann mir hier einer weiterhelfen??? Ich sehe den Wald vor lauter bäumen nicht mehr.

Ändere mal Seite 32 deiner Doku das Feld Scope von user_id auf profile. Frag mich nicht warum aber dann war der Fehler bei mir weg. Ich weiß leider nicht wozu das Feld Scope ist und auch ohne den Fehler findet die App meine Geräte nicht obwohl Alexa-FHEM sie erkennt (Siehe mein neues Thema von gestern)