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

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

Vorheriges Thema - Nächstes Thema

dk3572

den State des Dummys kann ich per alexa einwandfrei setzen.
Hier steht dann auch "a.r.d." od. "z.d.f."
Der Umschaltbefehl per set funktioniert per Eingabe in der Konsole.
Aber hier ist wohl was falsch:

sub DBSender($) {
  my ($prog) = @_;

  if( Value($prog) eq "a.r.d." ){
      fhem( "set SATReceiver channel Das_Erste_HD" )
    }
  if( Value($prog) eq "hessen" ){
      fhem( "set SATReceiver channel hr-fernsehen_HD" )
    }
  if( Value($prog) eq "z.d.f." ){
      fhem( "set SATReceiver channel ZDF_HD" )
    }
}


Wie schon erwähnt, per alexa kann ich auf "hessen" schalten.

MadMax-FHEM

Bau doch mal (wie bereits geschrieben) eine Logausgabe von $prog in die sub ein...

Und schau welchen "Wert" $prog bei der Ansage ARD/ZDF hat...

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)

dk3572

... und auf die Schnelle baue ich das wie und wo ein?

MadMax-FHEM

sub DBSender($) {
  my ($prog) = @_;

Log(1, "prog: $prog");

  if( Value($prog) eq "a.r.d." ){
      fhem( "set SATReceiver channel Das_Erste_HD" )
    }
  if( Value($prog) eq "hessen" ){
      fhem( "set SATReceiver channel hr-fernsehen_HD" )
    }
  if( Value($prog) eq "z.d.f." ){
      fhem( "set SATReceiver channel ZDF_HD" )
    }
}

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)

dk3572

#1924
dann wäre das die Ausgabe:
2017.02.11 11:59:33.397 1: prog: sender
2017.02.11 11:59:37.936 1: prog: sender
2017.02.11 11:59:47.350 1: prog: sender

1. = ard
2. = zdf
3. = hessen

Auf "hessen" schaltet es wie gesagt.

Oder doch das Notify falsch?
defmod set_DBSender notify sender {DBSender("$NAME")}

Aber warum schaltet es dann auf hessen?

MadMax-FHEM

Also zuerst mal die genaue Konfiguration Ablauf beschreiben, vieleicht machst du da schon etwas zu kompliziert (ich vermute das).

Also was wird wann wie/wodurch gesetzt wenn du WAS zu Alexa sagst??

Welchen Skill?? Smart Home / Custom??

Ich würde mir im EventMonitor anschauen was kommt und dann ein entsprechendes notify bauen.

Eher sowas (und warum defmod??? statt define??):

set_DBSender notify sender {DBSender("$EVENT")}

Und dann per Logausgabe schauen was kommt (hast du ja schon) und dann mittels split (falls mehr kommt als du brauchst) oder halt statt $EVENT $EVTPART1 $EVTPART2 usw. übergeben...

Warum machst du sowas wie "Value($prog)"?

Und nicht einfach if($prog eq "a.r.d") ??

Aber wie gesagt erst mal den notify umbauen oder mal beschreiben was du wie tust vielleicht (bestimmt) geht es auch generell einfacher...

Warum "hessen" geht, keine Ahnung...

Aber wie immer bei sowas: Logausgabe einbauen und man weiß mehr:

my $ValProg = Value($prog);

Log(1, "Value von prog: $ValProg");

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)

dk3572

Super und Danke, funktioniert.

Das hatte ich vor deiner letzten Antwort geändert:
set_DBSender notify sender {DBSender("$EVENT")}

Dann noch das geändert:
ZitatUnd nicht einfach if($prog eq "a.r.d")

ZitatEher sowas (und warum defmod??? statt define??)
Das verstehe ich nicht. Steht bei der Raw Definition Ausgabe.
Ich hatte das Notify ganz normal per define angelegt.

Ma_Bo

#1927
Zitatedit 2017-02-10:
- fhem intents der art
  {meineSub()}=guten morgen und set|get|attr <device> xyz=gute nacht
  sind jetzt möglich. die rückgabe des jeweiligen kommandos wird als antwort für alexa verwendet
  d.h man kann damit beliebige texte aus fhem an alexa zurück geben.
- alexaConfirmationLevel 0 ist möglich wenn ein der skill mit alexa, sage fhem ... aufgerufen wird
- der fehler das in der antwort alle valuePrefixe eines intents gesagt wurden ist behoben

Kann mir jemand ein Beispiel für den ersten Punkt nennen, ich habe ein eigenes Intent angelegt
set Alexa_Guten_Morgen_dummy on=guten morgen
gutenacht=gute nacht

Wenn ich jetzt sage "Alexa sage FHEM guten morgen", dann schaltet der dummy auch einwandfrei, es kommt aber keine Sprachausgabe von Alexa.
Wenn ich jetzt sage "Alexa sage FHEM gute nacht", dann sagt sie "ok"

attr <alexa> alexaConfirmationLevel 2

alexa-fhem-0.2.0

Wie kann ich es hinbekommen, dass sie bei dem schalten des dummy auch etwas sagt, z.B. "hallo und guten morgen marcel"

Grüße Marcel
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

MadMax-FHEM

Zitat von: dk3572 am 11 Februar 2017, 12:26:56
Das verstehe ich nicht. Steht bei der Raw Definition Ausgabe.
Ich hatte das Notify ganz normal per define angelegt.

Ah, ok.

Dann passt ja alles...

Bzw. der notify reagiert aber auf alles war irgendwie mit "sender" zu tun hat...
...evtl. da mal in den EventMonitor schauen und etwas einschränken...

(macht so auch nichts aber es kann halt sein, dass die sub unnötig oft gerufen wird und vielleicht mal etwas komisches schaltet, wenn zufällig was im Event passt)

Viel Spaß, 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)

Wolle02

Hallo zusammen,

ich habe jetzt nicht alle 129 Seiten durchgelesen, also entschuldigt bitte wenn das schon irgendwo steht.

Im Post #1 steht als Anleitung
Zitat1. alexa-fhem installieren
  alexa-fhem-0.0.0.tgz auspacken
  package in alexa-fhem umbenennen
  cd alexa-fhem
  npm install
usw. usw.

Mittlerweile ist man ja wohl bei Version 0.1.9, aber ich finde im Post #1 keinen Link zum Download des alexa-fhem Packetes. Im Wiki-Artikel gibt es zwar einen Download-Link, aber wenn ich den anklicke kommt der Fehler:

Zitat
Ein Fehler ist aufgetreten!
Du hast keinen Zugriff auf diesen Bereich!

Wie komme ich denn an alexa-fehm?

Danke und Gruß
Wolle

MadMax-FHEM

Zitat von: Wolle02 am 11 Februar 2017, 12:52:58
Hallo zusammen,

ich habe jetzt nicht alle 129 Seiten durchgelesen, also entschuldigt bitte wenn das schon irgendwo steht.

Im Post #1 steht als Anleitung
Mittlerweile ist man ja wohl bei Version 0.1.9, aber ich finde im Post #1 keinen Link zum Download des alexa-fhem Packetes. Im Wiki-Artikel gibt es zwar einen Download-Link, aber wenn ich den anklicke kommt der Fehler:

Wie komme ich denn an alexa-fehm?

Danke und Gruß
Wolle

Ich hab's jetzt nicht ausprobiert aber suche... ;)

Oder einfach ein paar Seiten zurück ;)

Oder einfach fragen (und Glück haben):

https://forum.fhem.de/index.php/topic,60244.msg581944.html#msg581944

Und mittlerweile ist 0.2.0 aktell ;)

Und wenn dann weitere Probleme auftauchen bis zum Erfolgreichen Start, hier entlang:

https://forum.fhem.de/index.php/topic,60452.0.html

der ist auch (noch) nicht so lang ;)

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)

Ma_Bo

NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Wolle02

Danke euch für die Hilfe. Hab jetzt erfolgreich runter laden können.
Ich schau halt immer im Post #1, weil es da normalerweise gepflegt wird. Wer liest schon 130 Seiten?  ;)

justme1968

@Ma_Bo: das kommando muss auch etwas zurück liefern ein set auf einen dummy tut das nicht. nimm die {...} perl variante. in der routine die du aufrufst sollte dann am ende per return die antwort zurück geben.

@Wolle02: du musst nur den paar links im ersten beitrag folgen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

kingstonboy

Zitat von: Esjay am 11 Februar 2017, 09:12:48
Passt denn eure Portweiterleitung?Schau mal ins Troubleshooting im Wiki unter nat-pnp ect.

Ich klinke mich mal ein, weil es meine Pi ist auf der wir alexa-fhem zum laufen bringen wollen. Hotbird hat mehr Ahnung, ist aber verhindert ;)
Der 3000er Port ist in der Fritzbox meines Erachtens korrekt freigegeben und in der lambda-function steht der Host in den einfachen Anführungszeichen.
Tatsächlich bekomme ich aber ein "connection refused" beim Aufruf von mein.host.de:3000 oder meineip:3000

Die Installation verlief zuletzt immer ohne Fehler, nachdem wir davor mehrmals node-Probleme hatten.