[alexa-fhem | Custom Skills] Probleme mit euren Setups

Begonnen von prodigy7, 19 Februar 2017, 13:16:06

Vorheriges Thema - Nächstes Thema

prodigy7

Hallo zusammen,

hier könnt Ihr euch zu euren Problemen austauschen, die ihr mit Custom-Skill Setups habt. Zu allem anderen bitte die anderen entsprechenden Threads nutzen!

Bitte schaut zuerst unter http://www.fhemwiki.de/wiki/Alexa-Fhem#Troubleshooting prüfen ob man schon alles dort dokumentierte getan hat zur Problembehebung bevor man hier postet!

Bitte nutzt für Fragen und Probleme die Threads und bleibt bitte hier beim wesentlichen Thema!
p7

KölnSolar

dann fang ich mal an  :D

um einem problem auf die Spur zu kommen, habe ich alexa für einen switch einen bewusst falschen Value auf den Weg gegeben
"...schalte Gerät zwei" (anstatt schalte Gerät an/aus)
Die überraschende Antwort
"Ich habe Ich kann gerät nicht auf 2 schalten. auf 2 gestellt"
Die rote Antwort alleine hätte ich noch verstanden. Aber, dass alexa sagt, sie hätte etwas sinnvolles getan  ??? Ein Bug ?

Das eigentliche Problem: Die Kanäle meines Fernsehers lassen sich durch set Fernseher Kanalnr. umschalten. Nun habe ich ein alexamapping
TV=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER
angelegt
und würde erwarten, dass ich mit "...stelle fernseher auf 2" umschalten kann. Nur, so einfach geht es leider nicht. genericdevicetype kann ich einstellen, was ich will, aber der Fernseher wird entweder gar nicht erst als device von alexa-fhem angelegt oder es gibt keinen Eintrag zu "Fernseher has". Folglich bekomme ich bei dem Versuch zu schalten, die Antwort vergleichbar zu oben genanntem
"Ich habe Ich kann fernseher nicht auf 2 schalten. auf 2 gestellt"
Ist homebridgemapping, das ich nicht verstehe, die Antwort auf meine Problemstellung ? Warum kann alexa-fhem nicht einfach die set-Kommandos erlauben, die ich im Dropdownmenü im Webinterface sehe ? Einfach gedacht, aber nicht einfach zu realisieren ?
Danke&Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

justme1968

wenn du im alexaMapping eine characteristic verwendest du nicht standard ist oder die für ein device nicht automatisch erkannt wird musst du ein passendes homebridgeMapping konfigurieren.

etwas in der art: attr <name> homebridgeMapping TV=<reading>,cmd=<kommando>

wobei TV kein geschickter name ist. du schaltest ja nicht die eigenschaft TV sondern sender, kanal, programm oder etwas in der art.

woher zum teufel soll alexa-fhem wissen welches der kommandos im drop down zum sender umschalten und welches für die laustärke oder helligkeit oder sonst etwas ist?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

KölnSolar

Zitatpassendes homebridgeMapping
Hab ich befürchtet. Nur verstehen tu ich es leider nicht.  :-[ reading hat das device nur state. Und was ist ein Kommando ? In meinem Beispiel 2 ? Wo und wie liste ich die 50-100 Kommandos dann auf ?
Zitatwoher zum teufel soll alexa-fhem wissen welches der kommandos im drop down zum sender umschalten und welches für die laustärke oder helligkeit oder sonst etwas ist?
Soll es ja gar nicht. Ziffer=Kanalwahlkommando, Text=sonstigesKommando. Einfach nur eine Liste von Kommandos, die der Fernseher zu interpretieren weiß.
Das fhemweb oder "set Fernseher ?" holt sich das doch auch aus dem Gerätehash(Ausdrucksweise eines Perl-Dummies) Und eine Liste von einfachen Befehlen hat man doch auch oft in dummies. Könnte man dafür nicht einen genericdevicetype=unspecific anlegen ?
Zitatwobei TV kein geschickter name ist. du schaltest ja nicht die eigenschaft TV sondern sender, kanal, programm oder etwas in der art.
Ich verstehe, was Du meinst, aber das Modul ist eher wie eine IR-FB aufgebaut, also tatsächlich eher immer ein TV-Befehl.

Ich steh wohl echt auf einem dicken Schlauch  :-[




RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

justme1968

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

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

Jamo

Sollte das nicht mit "attr homebridgeMapping TV=state,cmd=+" funktionieren?
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

KölnSolar

#6
Zitatmit welchem set stellst du den kanal ein?
set Fernseher 1
oder 2, 3...... oder MUTE....
ZitatSollte das nicht mit "attr homebridgeMapping TV=state,cmd=+" funktionieren?
Wie gesagt, mit homebridgeMapping steh ich noch auf Kriegsfuß  :-[

Ich hab es jetzt erst einmal mit fhemintents realisiert:
fhemintents
attr Alexa fhemIntents {Alexacmd ("gutenmorgen")}=guten morgen
{Alexacmd ("guteNacht")}=gute nacht
{Alexacmd ("tvlauter")}=Fernseher lauter
{Alexacmd ("tvleiser")}=Fernseher leiser
{Alexacmd ("tvmute")}=Fernseher mute
{Alexacmd ("tvprgup")}=Fernseher nächstes Programm
{Alexacmd ("tvprgdown")}=Fernseher vorheriges Programm
{Alexacmd ("tveins")}=Fernseher das Erste
{Alexacmd ("tvzwei")}=Fernseher das Zweite
{Alexacmd ("tvdrei")}=fernseher das Dritte
{Alexacmd ("tvvier")}=Fernseher das Vierte
{Alexacmd ("tvfünf")}=Fernseher das Fünfte
{Alexacmd ("tvzehn")}=fernseher das Zehnte
{Alexacmd ("tvaus")}=fernseher aus

und die sub in meiner 99_myUtils
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 = (
"gutenmorgen" => "set Dummy_Test guten morgen;; Guten Morgen, was kann ich für dich tun",
"tvlauter" => "set Fernseher VOLUP;; ich habe den fernseher lauter gestellt",
"tvleiser" => "set Fernseher VOLDOWN;; ich habe den fernseher leiser gestellt",
"tvmute" => "set Fernseher MUTE;; ich habe den fernseher stumm geschaltet",
"tvprgup" => "set Fernseher CHUP;; ich habe den fernseher umgeschaltet",
"tvprgdown" => "set Fernseher CHDOWN;; ich habe den fernseher umgeschaltet",
"tveins" => "set Fernseher 1;; ich habe den fernseher umgeschaltet",
"tvzwei" => "set Fernseher 2;; ich habe den fernseher umgeschaltet",
"tvdrei" => "set Fernseher 3;; ich habe den fernseher umgeschaltet",
"tvvier" => "set Fernseher 4;; ich habe den fernseher umgeschaltet",
"tvfünf" => "set Fernseher 5;; ich habe den fernseher umgeschaltet",
"tvzehn" => "set Fernseher 1; set Fernseher 0;; ich habe den fernseher umgeschaltet",
"tvaus" => "set Fernseher POWEROFF;; ich habe den fernseher ausgeschaltet"
);
($FHEMCommand,$ALEXAReturn) = split (/;;/, $Alexakommando{$Command});
fhem("$FHEMCommand");
return "$ALEXAReturn";
};


Die Idee und den Code habe ich von Roman "gestohlen". Danke Roman.

Aber irgendwie ist das nur ein workaround  :(
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

justme1968

attr Fernseher homebridgeMapping TV=state,cmd=+

aber wie oben schon gesagt ist TV kein guter name.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

beocycris

Guten Morgen zu dieser frühen Stunde. Ich wollte gerade, nachdem ich gestern die ganze Sache zum Laufen gebracht habe, die Funktion der Custom Skills benutzen.

Alles soweit eingerichtet, doch als ich die Daten für das Custom Skill einlesen wollte mit " get MyAlexa interactionModel " bekomme ich die Fehlermeldung "No get implemented for MyAlexa". Leider spuckt weder die gängige Suchmaschine, noch die Forensuche hier etwas zu aus.

Hat jemand von euch diesbezüglich eine Idee, oder das Problem ggf. selbst schon gehabt?

Viele liebe Grüße aus Neubiberg! 8)

justme1968

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

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

beocycris

Vielen Dank !
So etwas ähnliches war es auch. Lag an der veralteten alexa datei. Habe mir dann deine aktuelle bei github kopiert und eingefügt. Daraufhin gings dann ohne Probleme.....

justme1968

es gibt kein offizielles alexa oder alexa-fhem bei github.

du solltest das normale fhem update kommando verwenden.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Brice

#12
Ich habe insgesamt sechs S300TH, von denen ich allerdings nur 4 abfragen kann und finde den Fehler nicht.

Wohnzimmer funktioniert:
2/23/2017, 1:02:13 PM] FHEMperlCodeIntentG
"%preposition" => "im","%Room" => "wohnzimmer",
[2/23/2017, 1:02:13 PM] [FHEM]   executing: http://192.168.xxx.xx:8083/fhem?cmd=%7B$defs%7BMyAlexa%7D-%3E%7B%22active%22%7D%20=%201%7D&XHR=1
[2/23/2017, 1:02:13 PM] [FHEM]   executing: http://192.168.xxx.xx:8083/fhem?cmd=setreading%20MyAlexa%20fhemIntent%20FHEMperlCodeIntentG;%7Bmy%20%25specials=(%22%25preposition%22%20=%3E%20%22im%22,%22%25Room%22%20=%3E%20%22wohnzimmer%22,);;%20my%20$exec%20=%20EvalSpecials('%7BalexaRoomTemperature($preposition,$Room)%7D',%20%25specials);;%20return%20AnalyzePerlCommand($defs%7BMyAlexa%7D,%20$exec)%7D&XHR=1
[2/23/2017, 1:02:13 PM] [FHEM]   executing: http://192.168.xxx.xx:8083/fhem?cmd=%7B$defs%7BMyAlexa%7D-%3E%7B%22active%22%7D%20=%200%7D&XHR=1
response :{"version":"1.0","sessionAttributes":{},"response":{"outputSpeech":{"type":"PlainText","text":"James sagt, die aktuelle Temperatur beträgt 21,3 Grad bei 48.4 Prozent Luftfeuchtigkeit"},"shouldEndSession":true}}


Kühlschrank und Gefrierschrank funktionieren nicht, obwohl diese gefunden werden:

[2/23/2017, 1:13:22 PM] [FHEM] Gefrierschrank_Temp is thermometer
[2/23/2017, 1:13:22 PM] [FHEM] Gefrierschrank_Temp has
[2/23/2017, 1:13:22 PM] [FHEM]   CurrentTemperature [temperature]
[2/23/2017, 1:13:22 PM] [FHEM]   CurrentRelativeHumidity [humidity]
[2/23/2017, 1:13:22 PM] [FHEM] { reading: 'temperature',
  minValue: -30,
  device: 'Gefrierschrank_Temp',
  informId: 'Gefrierschrank_Temp-temperature',
  characteristic_type: 'CurrentTemperature',
  log:
   { [Function: bound ]
     debug: [Function],
     info: [Function],
     warn: [Function],
     error: [Function],
     log: [Function],
     prefix: 'FHEM' } }
  2017-02-23 13:13:22 caching: Gefrierschrank_Temp-temperature: -17.8
[2/23/2017, 1:13:22 PM] [FHEM] { reading: 'humidity',
  device: 'Gefrierschrank_Temp',
  informId: 'Gefrierschrank_Temp-humidity',
  characteristic_type: 'CurrentRelativeHumidity',
  log:
   { [Function: bound ]
     debug: [Function],
     info: [Function],
     warn: [Function],
     error: [Function],
     log: [Function],
     prefix: 'FHEM' } }
  2017-02-23 13:13:22 caching: Gefrierschrank_Temp-humidity: 77.9


Bei der Testabfrage kommt die in 99_myUtils.pm hinterlegte Ansage "kein passendes Thermometer gefunden":

[2/23/2017, 1:13:33 PM] FHEMperlCodeIntentG
"%preposition" => "im","%Room" => "gefrierschrank",
[2/23/2017, 1:13:33 PM] [FHEM]   executing: http://192.168.xxx.xx:8083/fhem?cmd=%7B$defs%7BMyAlexa%7D-%3E%7B%22active%22%7D%20=%201%7D&XHR=1
[2/23/2017, 1:13:33 PM] [FHEM]   executing: http://192.168.xxx.xx:8083/fhem?cmd=setreading%20MyAlexa%20fhemIntent%20FHEMperlCodeIntentG;%7Bmy%20%25specials=(%22%25preposition%22%20=%3E%20%22im%22,%22%25Room%22%20=%3E%20%22gefrierschrank%22,);;%20my%20$exec%20=%20EvalSpecials('%7BalexaRoomTemperature($preposition,$Room)%7D',%20%25specials);;%20return%20AnalyzePerlCommand($defs%7BMyAlexa%7D,%20$exec)%7D&XHR=1
[2/23/2017, 1:13:33 PM] [FHEM]   executing: http://192.168.xxx.xx:8083/fhem?cmd=%7B$defs%7BMyAlexa%7D-%3E%7B%22active%22%7D%20=%200%7D&XHR=1
response :{"version":"1.0","sessionAttributes":{},"response":{"outputSpeech":{"type":"PlainText","text":"Kein passendes Thermometer gefunden"},"shouldEndSession":true}}


Außer, dass ich vor Urzeiten die Namen nicht durchgehend eingehalten habe (Temp_Wohnzimmer vs Gefrierschrank_Temp) erkenne ich keine Unterschiede in den Defs.

Ebenfalls kommt "Kein passendes Thermometer gefunden" für die KS300, aber eins nach dem anderen.

Kann mir jemand einen Tipp geben, wonach ich suchen könnte?

Edit: Abfrage wie hier von Thyraz vorgestellt: https://forum.fhem.de/index.php/topic,67490.msg589870.html#msg589870

Edit 01.03.2017: Fehler gefunden. Kaum werden die Raumnamen in der 99_myUtils.pm durchgehend klein geschrieben, werden auch die drei fehlenden Thermometer gefunden  ::)

} elsif ($room eq "gefrierschrank") {
$device = "Temp_Gefrierschrank";
FHEM auf RPi 4 4GB (Buster) | produktiv) CUL 868 für FS20 | S300TH | KS300 | Max!Cube als CUN 868 für TechemWZ | HM-MOD-RPI-PCB für HM | Z-Wave ZME_UZB1 | FRITZ!DECT 200 | HUE | Lightify | Echo Dot | WS3080

dieda

Hallo Leute,
bei mir liegt das Problem mit dem DSL Lite-Anschluss von Vodafone vor. Nu brauch ich eure Hilfe. Für mich ist das Thema DynDNS Neuland.

Welchen Dienst würdet ihr mir empfehlen?
Komponenten:
Sensoren und Aktoren: FS20, Max!, Zigbee, Zwave
IODev:  Cul1101, MaxLan, ZWAVE, Deconz
Router: KD-Fritte (6360)
Sonstiges: Raspberries,  1x LMS,1 FHEM, 1 x zum Testen,  Logitech-Clients,  Onkyo, SamsungTV, Squeezebox, TabletUIs

Roman

Hallo dieda,

Ich kenn jetzt das Problem mit dem DSL-Lite Anschluss nicht aber ich war auch einige Zeit nach einem DynDNS Anbieter. Meine für mich ideale Lösung war Strato. (Die Werbung ist zwar scheis..., aber die Leistung ist  gut  ;) )

Ich hab dort eine eigene Domain (Kosten <1 €/Monat).
Da ist ein DynDNS Dienst gleich dabei, der auch noch mehr kann als viele andere (unter anderem auch den MX Record anlegen, nutze dies für einen eigenen Mailserver)
Hab das jetzt seit ca. 2 Jahren und noch nie ein Problem damit gehabt.

Gruß
Roman