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

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

Vorheriges Thema - Nächstes Thema

cs-online

Hallo,

hat schon mal einer von Euch für den Custom Skill eine Funktion zum umschalten des Fernsehers auf bestimmte Kanäle geschrieben, bei der nicht jeder Sender als eigenes Intent angelegt werden muss ?

Sowas wie "...stelle Dreambox auf Prosieben"...

Grüße

Christian
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

Tommy82

Zitat von: cs-online am 01 Oktober 2018, 18:07:24
Hallo,

hat schon mal einer von Euch für den Custom Skill eine Funktion zum umschalten des Fernsehers auf bestimmte Kanäle geschrieben, bei der nicht jeder Sender als eigenes Intent angelegt werden muss ?

Sowas wie "...stelle Dreambox auf Prosieben"...

Grüße

Christian

Also über das enigma2 Modul geht das relativ simpel, hätte ich mit meiner VU+ langezeit ohne Probleme laufen auch ohne den custom skill, nur mit dem Smart Home skill


Gesendet von iPhone mit Tapatalk
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

cs-online

Ja, so war das auch gedacht, ich schalte mit dem Modul auch auf mute und ein/aus. Aber ich kenne das bislang nur so, dass man jede Einstellung, also z.B. leise und laut ein eigenes FHEM-Intent anlegen muss. Das würde aber bedeuten, dass ich bei z.B. 10 Sendern 10 verschiedene Intents im Amazon-Skill auf dem Amazon Server anlegen müßte. Daher war der Gedanke, ob es eine Möglichkeit gibt, in einem Intent verschiedene Antworten abzufangen, so dass für alle Sender nur ein Intent angelegt würde...

Geht sowas ?
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

Tommy82

Also in Verbindung mit dem Smarthome skill geht das recht einfach übers Mapping. Bin allerdings bis morgen Abend unterwegs, dann könnte ich dir eine Beispiel konfig schicken


Gesendet von iPhone mit Tapatalk
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

cs-online

hmmm lieb von dir, ich habe aber den Custom Skill. Geht das da auch ?
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

Tommy82

Zitat von: cs-online am 01 Oktober 2018, 19:49:12
hmmm lieb von dir, ich habe aber den Custom Skill. Geht das da auch ?
Bestimmt, aber keine Ahnung wie :-)


Gesendet von iPhone mit Tapatalk
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

Amenophis86

Bei mir sieht es so aus:

{alexa_tv_programm($Programm)}=schalte am Fernseher {$Programm} {$On_Value}|schalte den Fernseher auf {$Programm} um|stelle den Fernseher auf {$Programm}
sub alexa_tv_programm($)
{
my ($programm) = @_;
my $kanal;

if($programm eq "ARD") {$kanal = "01";}
elsif($programm eq "ZDF") {$kanal = "02";}
elsif($programm eq "RTL") {$kanal = "03";}
elsif($programm eq "sat eins") {$kanal = "04";}
elsif($programm eq "pro sieben") {$kanal = "05";}
elsif($programm eq "vox") {$kanal = "06";}
elsif($programm eq "kabel eins") {$kanal = "07";}
elsif($programm eq "HR") {$kanal = "10";}
elsif($programm eq "pro sieben maxx") {$kanal = "26";}
elsif($programm eq "sport eins us") {$kanal = "16";}
elsif($programm eq "eurosport") {$kanal = "17";}
elsif($programm eq "eurosport zwei") {$kanal = "44";}
else{$kanal = "00"};

if ($kanal ne "00")
{
fhem ("set WZ.TV.Tablet_channel $kanal");
return "Ich schalte $programm an.";
}
else
{
Log 3, "ALEXA_PROGRAMM: Sender $programm nicht gefunden";
return "Ich habe den Sender $programm nicht gefunden.";
}


}


Schalte mit der Util einen dummy da ich diesen noch für ne Visu nutze, aber könnt damit ja auch direkt euren TV oder was auch immer schalten.
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...

cs-online

super, DANKE, ich versuche das mal zu verstehen, die SUB kommt in die 99_MyUtils oder ? und das was unter Code steht, muss ich dann bei den FHEMIntents anlegen oder ? Und dann muss ja bei Amazon auch noch was in den Skill gestellt werden oder ?
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

cs-online

wenn ich das so zusammenbaue, dann wäre der Intent im Skill bei Amazon


                {
                    "name": "FHEMperlCodeIntentP",
                    "slots": [
                        {
                            "name": "$Programm",
                            "type": "FHEM_$Programm"
                        },
                        {
                            "name": "$On_Value",
                            "type": "FHEM_$On_Value"
                        }
                    ],
                    "samples": [
                        "schalte am Fernseher {$Programm} {$On_Value}",
                        "schalte den Fernseher auf {$Programm} um",
                        "stelle den Fernseher auf {$Programm}"
                    ]
                },


aber dann bekomme ich die Fehlermeldung beim Speichern

Save Failed
Custom type values must not be empty. Error code: MissingTypeValues


Was mach ich denn da falsch ? Fehlt da noch etwas ?
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

Amenophis86

Ich muss sagen, dass es bei über 1 Jahr her ist, dass ich es eingerichtet habe und auf Grund der Änderung der Developer Site von Amazon es selbst nicht ganz blicke. Kann aber heute Abend nochmal schauen und dir sagen, ob ich noch was wichtiges dabei finde.
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...

cs-online

es scheint als ob die Variablen aus den Slots gesondert definiert / belegt werden müssen... nur wie hab ich noch nicht geblickt...
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

Amenophis86

Das ist richtig. Du musstest quasi Programm definieren (jedes Programm auflisten) und auch value mit den entsprechenden Worten belgen. Ich weiß nur nicht, wo das jetzt gemacht wird. Wie gesagt kann heute Abend mal schauen, ob ich es finde.
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...

Amenophis86

Also du musst die Slots anlegen. Siehe Bilder. Einmal für Programm und einmal für OnValue. Hoffe die Bilder helfen dir.

In OnValue steht bei mir:
- an
- aus
- ein
- um
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...

cs-online

Danke, das hilft ein kleines Stück weiter. aber: Wenn ich $Programm nehme, bekomme ich jede Menge Fehlermeldungen wie

Build Failed
Incorrect syntax for the slot "{$Programm}". Each token must consist only of alphabets, white-spaces and valid punctuation marks. Valid punctuation marks are periods for abbreviations, possessive apostrophes and hyphens. Error code: InvalidSampleSyntax


oder

Build Failed
Error in sample "FHEMperlCodeIntentP: schalte den Fernseher auf {$Programm} um" in intent "FHEMperlCodeIntentP". The intent doesn't declare the slot "{$Programm}" Error code: UndefinedSlot


wenn ich das $ vor Programm weg lasse, dann geht der Build ohne Fehler durch, aber im FHEM wird die Funktion nicht ausgeführt, Alexa sagt dann immer an "kann undefined nicht auf undefined stellen, kann................" und immer so weiter...

Hast du evtl. nochmal das JSON aus dem Skill mit dem Teil für das Umschalten ?

Grüße

Christian
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

Amenophis86

ja die Zeile war aus FHEM raus kopiert und nicht aus der Developer Seite. Da steht es ohne $. Habe dir noch ein Bild angehängt.
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...