alexa-fhem: amazon alexa smart home skill für fhem

Begonnen von justme1968, 05 November 2016, 23:21:32

Vorheriges Thema - Nächstes Thema

justme1968

du kannst im alexaMapping mehrere artikel mit ; getrennt hin schreiben. bei namen wie erkerfenster  und terrassentür kann es passieren das alexa zwei worte erkennt statt einem. du musst du in der app nachschauen was und den alexaNamen entsprechend vergeben.

statt einem device namen kannst du auch einen device type bzw. den über alexaTypes konfigurierten alias dafür verwenden. dann werden alle devices von diesem typ angesprochen. ja nach kommando auf einen raum beschränkt. das einzige was aktuell nicht geht ist das in diesem fall die antwort jeweils den korrekten artikel vor dem device namen verwendet. das liegt daran das es keine zuordnung device namen -> artikel gibt. das kommt später noch.

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

dk3572

Danke für die Antwort.
Die Namen werden schon richtig erkannt.
Zitatdu kannst im alexaMapping mehrere artikel mit ; getrennt hin schreiben.
Das habe ich so "articles=den;das;die" versucht.
Dann liest sie in der Antwort aber alle artikel mit vor, also "ich habe den das die zu gemacht"
Zitatstatt einem device namen kannst du auch einen device type bzw. den über alexaTypes konfigurierten alias dafür verwenden.
Ich dachte das wäre in meinem Fall so. DeviceTyp ist doch blind und alexaTypes ist blind:rolladen???

tklein

wie muss so ein fhemintent aussehen? Bei mir klappt das einfach nicht. Muss dort die Sub aus 99_myUtils drinstehen?

Bei mir klappt weder gute nacht, raumtemperatur noch die Sub Alexakommando:


#IntentName=<sample utterance>
gutenMorgen=guten morgen
{my_GuteNacht()}=gute nacht
{alexaRoomTemperature($preposition,$Room)}=wie warm ist es {preposition} {Room}
{Alexacmd ("tvlauter")}=Fernseher lauter
{Alexacmd ("tvleiser")}=Fernseher leiser
{Alexacmd ("tvmute")}=Fernseher mute
{Alexacmd ("tvaus")}=Fernseher aus


99_myUtils

sub alexaRoomTemperature($$) {
my($preposition,$room) = @_;
my $device = "";

$room = lc($room);

if ($room eq "wohnzimmer") {
$device = "WZTemp";
fhem("set StripeSchlafzimmer toggle");
#echo "Huhu";
} elsif ($room eq "schlafzimmer") {
$device = "SZTemp";
} elsif ($room eq "büro") {
$device = "BTemp";
} elsif ($room eq "kinderzimmer") {
$device = "KZTemp";
} else {
return "Kein passendes Thermometer gefunden";
}

my $temperature = ReadingsVal($device, "temperature", 0);
$temperature =~ s/\./\,/g;
my $humidity = ReadingsVal($device, "humidity", 0);

return "Die aktuelle Temperatur beträgt $temperature Grad bei $humidity Prozent Luftfeuchtigkeit";
}


sub Alexacmd {

my $Command = $_[0];
my $ALEXAReturn = "OK";
my $FHEMCommand = "set Dummy_test no_alexa_action";  # falls kein passendes Kommando gefunden wird

fhem("set Dummy_test $Command");    # nur zur Kontrolle um zu sehen was ankommt
$Command =~ s/fhemIntent: //;           # das reine Intent extrahieren

my %Alexakommando = (
"tvlauter" => "set Denon volumeup;; ich habe den fernseher lauter gestellt",
"tvleiser" => "set Denon volumedown;; ich habe den fernseher leiser gestellt",
"tvmute" => "set Denon mute;; ich habe den fernseher stumm geschaltet",
"tvaus" => "set Denon off;; ich habe den fernseher ausgeschaltet"
);
($FHEMCommand,$ALEXAReturn) = split (/;;/, $Alexakommando{$Command});
fhem("$FHEMCommand");
return "$ALEXAReturn";
};

sub my_GuteNacht()
{
  return "Gute Nacht Familie xyz. Schlaft gut und träumt süss!";
  fhem("set StripeSchlafzimmer toggle");
  fhem("set Dummy_test gute_nacht");
}


Muss eigentlich nach jedem IntentEdit fhem neu gestartet werden? Der Service Alexa auch immer?
Ist es eigentlich korrekt, dass am Ende einer jeden Sub eine fortlaufende Nummer stehen muss (bis auf die letzte)?
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

justme1968

@dk3572: es gab noch einen fehler der erst in der nächsten version behoben ist.


@tklein: was heisst klappt nicht? was genau sagst du? was steht auf der console? was im log?

es muss nichts neu gestartet werden. das myUtils file muss neu geladen werden.

wo steht eine fortlaufende nummer?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

MadMax-FHEM

Alexa reload gemacht?

Die neuen (falls) CustomSlotTypes bzw. Intents etc. geholt "get CustomSlotsTypes" bzw. "get InteractionModel" und diese dann im Skill auf AWS/AmazonDeveloper eingetragen?

Sonst läuft aber alexa-fhem?
Also du konntest schon mal was schalten etc.!?

Welche Version von alexa-fhem?

Die Funktionalität gibt es erst ab 0.3.1

Eine fortlaufende Zahl??
Nein es muss nur am Ende also nach den Subs eine 1 stehen.

Aber dazu bitte bei myUtils im Wiki schauen...

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)

tklein

@justme1968

Zitat
@tklein: was heisst klappt nicht? was genau sagst du? was steht auf der console? was im log?

--> alexa fhem gute nacht --> süsse Träume
alexa fhem wie ist die Temperatur im Wohnzimmer? --> Dieser Befehl funktioniert für das Gerät Wohnzimmer nicht

Log und Eventmonitor haben dazu keinen Eintrag

wo steht eine fortlaufende nummer?
--> Am Ende jeder Sub

z.B.
sub my_GuteNacht()
{
  return "Gute Nacht Familie Klein. Schlaft gut träumt süss!";
  fhem("set StripeSchlafzimmer toggle");
  fhem("set Dummy_test gute_nacht");

}1

@MadMax-FHEM

Zitat
Alexa reload gemacht?
--> Reload == Service neustarten?

Die neuen (falls) CustomSlotTypes bzw. Intents etc. geholt "get CustomSlotsTypes" bzw. "get InteractionModel" und diese dann im Skill auf AWS/AmazonDeveloper eingetragen?
--> Werde ich mal nachschauen und evtl. updaten

Sonst läuft aber alexa-fhem?
Also du konntest schon mal was schalten etc.!?
--> Doppelja :-)
Welche Version von alexa-fhem?
3.1 mit FHEM 5.7
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

justme1968

für den custom skill musst du jedes kommando mit

alexa, sage fhem
oder
alexa, frage fhem
oder
alexa, starte fhem

anfangen lassen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

tklein

#2317
@MadMax-FHEM und justme1968

Vielen vielen Dank! Endlich kommme ich weiter. Das mit der gute Nacht klappt jetzt endlich. Den Fehler mit dem fehlenden Update bei AWS wird mir nicht mehr passieren.

Beim Hinzufügen auf AWS gibt es noch folgende Meldung:


FHEMperlCodeIntentB wie warm ist es {preposition} {Room}
--> Error: There was a problem with your request: Error in sample on line 52 - 'FHEMperlCodeIntentB wie warm ist es {preposition} {Room} '. The given intent doesn't declare the slot 'preposition'. 
EDIT: Habe Fehler gefunden. Slots wurden nicht übernommen
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

tagedieb

Hallo und guten abend

ich habe gerade gelesen
ZitatDie neuen (falls) CustomSlotTypes bzw. Intents etc. geholt "get CustomSlotsTypes" bzw. "get InteractionModel" und diese dann im Skill auf AWS/AmazonDeveloper eingetragen?

was für ein update auf AWS ist hier gemeint ? - das, wenn man einen custom skill anlegt, oder muss bei  Verwendung der 3.1 Version noch etwas AWS geändert werden?

Gruss tagedieb
FHEM 5.6 auf Cubitruck
CUL und Cul 868 und 2 HM LAN an Zbox
Remoteserver auf 2.Zboxi
HM-CC-RT-DN,HM-LC-Bl1PBU-FM,HM-LC-SW1-FM,HM-LC-SW4-PCB,HM-LC-Sw1PBU-FM,HM-PB-2-WM55,HM-PB-6-WM55,HM-SCI-3-FM,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SC-2,HM-SEC-TIS,HM-WDS10-TH-O u.viele mehr
diverse IT Empfänger und LW3

Tommy82

Zitat von: Tommy82 am 25 Februar 2017, 20:28:20
Hi, hab es jetzt mal so versucht, allerdings funktioniert es nicht, der VU_Ultimo schaltet immer noch um wie auch zuvor, allerdings schaltet der Uno_Schlafzimmer nicht, obwohl er in der Structur definiert ist.

Was läuft noch falsch?

Hi, einer eine idee, wieso das bei mir nicht klappt?

Danke
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

tklein

@tagedieb:

Soweit ich das verstanden habe ist das nur dann nötig, wenn man neue fhemintents,devices angelegt hat. Diese muss man dort der Alexa "bekannt" geben. Hoffe, dass das nicht totaler Müll ist. :-)
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

MadMax-FHEM

Zitat von: tklein am 03 März 2017, 21:40:12
@tagedieb:

Soweit ich das verstanden habe ist das nur dann nötig, wenn man neue fhemintents,devices angelegt hat. Diese muss man dort der Alexa "bekannt" geben. Hoffe, dass das nicht totaler Müll ist. :-)

Nein, kein Quatsch. So war das von mir gemeint...

Was man eintragen muss bekommt man vom Alexa-Device mittels get...

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)

slawekking

Zitat von: cyvr1 am 28 Februar 2017, 12:45:54
Hallo Christoph,

kommt die Fehlermeldung nach Eingabe der Anmeldedaten, wenn du die URL <dein-host>/alexa in den Browser eingibst? Dann hatte ich den auch. Der Grund ist wohl, dass der Apache2 manchmal Probleme mit selbst-signierten SSL Zertifikaten hat.

Ich habe bei mir in der Konfiguration des apache Servers unter "SSLEngine on" und "SSLProxyEngine on" noch folgendes angegeben:


SSLProxyVerify off
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off


Damit läuft es dann bei mir.

Seltsam ist, dass ich diese zusätzlichen Zeilen auf meinem Raspi 2 mit Wheezy nicht benötigt habe, da lief es ohne sie direkt.
Mit dem Raspi 3 mit Jessy dagegen brauch ich sie.

Hallo Stephan,

ich danke dir für den hinweiß jetzt läuft es super.

Gruß
Christoph

tagedieb

Guten Morgen

danke Euch für die Rückmeldung - ich war schon etwas irritiert, denn das ich etwas im AWS updaten musste, ausser nach der ersten Erstellung des Customs skill - war mir nicht bekannt

viele Grüsse tagedieb


FHEM 5.6 auf Cubitruck
CUL und Cul 868 und 2 HM LAN an Zbox
Remoteserver auf 2.Zboxi
HM-CC-RT-DN,HM-LC-Bl1PBU-FM,HM-LC-SW1-FM,HM-LC-SW4-PCB,HM-LC-Sw1PBU-FM,HM-PB-2-WM55,HM-PB-6-WM55,HM-SCI-3-FM,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SC-2,HM-SEC-TIS,HM-WDS10-TH-O u.viele mehr
diverse IT Empfänger und LW3

tagedieb

guten Morgen

@Ma_Bo

ich habe deinen Beitrag gelesen
ZitatCode: [Auswählen]

sub alexa_guten_morgen()
{
my $Skillname = Alexa_Skillname();
        {return "Guten Morgen";}
}
und dazu folgende Frage:

wird das alles in die my_utils gepackt oder habt ihr für alexa eine gesonderte utils angelegt?

So ganz blicke ich da noch nict durch

gruss tagedieb
FHEM 5.6 auf Cubitruck
CUL und Cul 868 und 2 HM LAN an Zbox
Remoteserver auf 2.Zboxi
HM-CC-RT-DN,HM-LC-Bl1PBU-FM,HM-LC-SW1-FM,HM-LC-SW4-PCB,HM-LC-Sw1PBU-FM,HM-PB-2-WM55,HM-PB-6-WM55,HM-SCI-3-FM,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SC-2,HM-SEC-TIS,HM-WDS10-TH-O u.viele mehr
diverse IT Empfänger und LW3