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

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

Vorheriges Thema - Nächstes Thema

retikulum

#900
ZitatEADDRINUSE 0.0.0.0:5350

Ist fein. Das heißt, dass Alexa schon läuft. Schau mal via ps -aux .

Zitatkeine Verbindung mehr über die Webpage
Was sagt denn die fhem log? Kann ja alles mögliche sein... von dauert nur ein wenig bis komplett tot. Einfach mal den fhem service neustarten (sudo service fhem restart)

ICH hab allerdings ne Frage an euch:
Hab bis jetzt alle möglichen Schalter im Alexa Home Skill drin. Allerdings fehlt mir mein SamsungTV (STV Modul). Da bringt auch kein alexaName, genericDeviceType was. setList gibts gar nicht erst...
Gibts da nen Trick?

Meine cfg:

define Samsung STV 192.168.178.30 55000
attr Samsung alexaName Fernseher
attr Samsung alexaRoom Alexa
attr Samsung devStateIcon opened:on:off disconnected:off:on
attr Samsung eventMap on:an POWEROFF:aus
attr Samsung genericDeviceType switch
attr Samsung group Media
attr Samsung icon it_television
attr Samsung room Wohnzimmer
attr Samsung webCmd an:aus
define SamsungOn notify Samsung:on {system('echo "on 0" | sudo cec-client -s -d 1')}


P.S.:
Warum XXXen die Leute eigentlich ständig ihre INTERNEN IP-Adressen weg? Als ob man damit was anfangen könnte (I hacked 127.0.0.1) ^^.

Negropo

Zitat von: retikulum am 16 Dezember 2016, 15:41:32
Ist fein. Das heißt, dass Alexa schon läuft. Schau mal via ps -aux .
Alexa ist als laufender Dienst unter ps aufgelistet.

ZitatWas sagt denn die fhem log? Kann ja alles mögliche sein... von dauert nur ein wenig bis komplett tot. Einfach mal den fhem service neustarten (sudo service fhem restart)

Im Log steht nichts. Mir ist jedoch aufgefallen, dass bei den Diensten "perl fhem.pl fhem.cfg" die CPU mit fast 100% dauern beschäftigt. Da scheint mir etwas zu hängen. Habe auf Empfehlung
von justme1968 via "sudo apt-get install libjson-perl" das JSON Perl Modul installiert. Vielleicht ist da etwas schief gelaufen obwohl die Installation problemlos durchgelaufen.

Gruß Negropo

retikulum

Blöde Frage, aber hast du den Raspi schonmal neugestartet? Das löst viele Probleme 🙉

mrbreil

Für mich sind das alles böhmische Dörfer.
Habe nun mein homebridgemapping erweitert:
Weckzeit=state,cmd=+,cmdOn=07:00,cmdOff=OFF

wenn ich jetzt sage alexa sage <skillname> schalte den Wecker aus.

[2016-12-16 16:33:53] uhrIntent -> Weckzeit
[2016-12-16 16:33:53] [FHEM] rr_Christian_wakeuptimer1: executing set cmd for Weckzeit with value EV
[2016-12-16 16:33:53] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=set%20rr_Christian_wakeuptimer1%20+%20EV&XHR=1
response :{"version":"1.0","sessionAttributes":{},"response":{"outputSpeech":{"type":"PlainText","text":"Ich habe Wecker auf EV uhr gestellt"},"shouldEndSession":true,"card":{"type":"Simple","title":"status","content":"Wecker auf EV uhr gestellt"}}}
  2016-12-16 16:33:53 caching: rr_Christian_wakeuptimer1-state: EV


sage ich alexa sage <skillname> schalte den Wecker aus

[2016-12-16 16:36:07] IntentRequest
[2016-12-16 16:36:07] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=%7B$defs%7BAlexa%7D-%3E%7B%22active%22%7D%20=%201%7D&XHR=1
[2016-12-16 16:36:07] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=setreading%20Alexa%20intent%20IntentRequest%20OnIntent&XHR=1
[2016-12-16 16:36:07] [FHEM]   executing: http://127.0.0.1:8083/fhem?cmd=%7B$defs%7BAlexa%7D-%3E%7B%22active%22%7D%20=%200%7D&XHR=1
[2016-12-16 16:36:07] OnIntent
[2016-12-16 16:36:07] 0
response :{"version":"1.0","sessionAttributes":{},"response":{"outputSpeech":{"type":"PlainText","text":"Ich kann das Gerät mit Namen wecker nicht schalten."},"shouldEndSession":true}}


Bitte nochmal ein schups in die richtige richtung.

justme1968

etwa so: Weckzeit=state,cmd=+ On=state,cmdOn=07_00,cmdOff=OFF

das stellen der weckzeit ist prinzipiell eine andere eigenschaft als das ausschalten.

ob 07:00 statt 07_00 geht musst du probieren. es kann sein das das beim parsen nicht hin haut. da muss ich mir noch was überlegen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

dk3572

Bei mir findet alexa den Dummy Wecker trotz Neustart nicht.

defmod Wecker dummy
attr Wecker genericDeviceType wecker
attr Wecker homebridgeMapping Weckzeit=state,cmd=+
attr Wecker room alexa
attr Wecker setList on off


Was fehlt da noch?

justme1968

was heisst findet ihn nicht? taucht er beim start von alexa-fhem auf der konsole auf?

wenn du nicht ein und aus schalten willst brauchst du keine setList.

hast du auch das alexaMapping angepasst?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

dk3572

bei "Meine Smart Home Skills", "Meine Geräte" taucht der Wecker nicht auf.

[12/16/2016, 5:04:04 PM] [FHEM] homebridgeMapping: Weckzeit=state,cmd=+
[12/16/2016, 5:04:04 PM] [FHEM] Wecker is wecker
[12/16/2016, 5:04:04 PM] [FHEM] Wecker has
[12/16/2016, 5:04:04 PM] [FHEM]   On [state;on,off]
[12/16/2016, 5:04:04 PM] [FHEM]   Weckzeit [state]
  2016-12-16 17:04:04 caching: Wecker-state: off


defmod Alexa alexa
attr Alexa alexaMapping On=verb=schalte,valueOn=an;;ein,valueOff=aus,valueToggle=um\
\
Brightness=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent\
\
TargetPosition=verb=mach,articles=den,values=auf:100;;zu:0\
TargetPosition=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent\
\
Hue=verb=stelle,valuePrefix=auf,values=rot:0;;grün:128;;blau:200\
Hue=verb=färbe,values=rot:0;;grün:120;;blau:220\
\
TargetTemperature=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=grad\
\
Weckzeit=verb=stelle,valuePrefix=auf;;für,values=AMAZON.TIME,valueSuffix=uhr
attr Alexa alexaTypes light:licht,lampe,lampen blind:rolladen,jalousie,rollo Outlet:steckdose TemperatureSensor:thermometer,temperatur
attr Alexa articles der,die,das,den
attr Alexa prepositions in,im,in der
attr Alexa room alexa

Negropo

#908
Zitat von: retikulum am 16 Dezember 2016, 16:36:12
Blöde Frage, aber hast du den Raspi schonmal neugestartet? Das löst viele Probleme 🙉

Ja, habe ich gemacht. Problem besteht ab dem Neustart leider wieder.
Erstaunlicherweise kann ich den FHEM Service auch nicht stoppen. Wenn ich "sudo /etc/init.d/fhem stop" ausführe, quittiert er mir es
zwar mit einem stopp, bei einer anschließenden Statusabfrage sagt er mir jedoch, dass FHEM läuft???

Blöde Frage: Gibt es die Möglichkeit FHEM neu zu installieren ohne den kompletten Pi neu aufzusetzen? Und wenn ja, wie?

Byte09

Zitat von: Byte09 am 16 Dezember 2016, 14:25:50
... nachdem ich jetzt v1.15 endlich am laufen habe, ein altes , neues problem.

ich habe diverse homatic dimmaktoren, diese lassen sich auch schalten und regeln über den home skill.

frage ich aber im custom skill nach dessen status , erhalte ich immer den status : gerät ist an. ... auch wenn es aus ist .
dieses Phänomen hatte ich auch schon in der vorherigen version. ich hoffe das das hier nicht schonmal behandelt wurde, kann mich jedenfalls nicht erinnern etwas gelesen zu haben.

kann ggf. jemand helfen oder mich anschubsen wo das problem liegt ?

gruss Byte09


nachtrag :

änderungen bekommt alexa-fhem zumindest mit :

  2016-12-16 14:46:52 caching: HM_1F675D-pct: 100
  2016-12-16 14:47:19 caching: HM_1F675D-pct: 0
  2016-12-16 14:47:22 caching: HM_1F675D-pct: 0.5
  2016-12-16 14:47:29 caching: HM_1F675D-pct: dimm50

Ok ..... bin mit dem custom skill offensichtlich total überfordert . Ich bekomme es nicht hin und und alles was mit homebridgemapping zu tun hat verstehe ich nicht im ansatz  :-\  und kriege es auch nicht hin mich reinzuarbeiten um zu verstehen was ich da tue.. Ich bewundere an dieser stelle alle die es hinbekommen und erst recht den autor.

Ist mir so noch nie passiert, zumal ich schon vor 15 jahren komplexe perlprogramme geschrieben habe und insofern mit der materie nicht unvertraut bin .... aber hier muss ich kapitulieren .

Gruss Byte09

Gesendet von meinem SM-G900F mit Tapatalk


justme1968

#910
@dk3572: wecker geht nur mit dem custom skill. das smarthome skill api kann aktuell nur lampen/schalter und thermostate. alles was darüber hinaus geht ist nur mit einem custom skill möglich.

wenn du den eingerichtet hast kannst du einfach sagen: 'alxea, sage fhem stelle den wecker auf 6 uhr 15'.

@Byte09: nicht aufgeben. wenn das einzige problem ist das bei der status anfrage kein aus zurück kommt liegt das vermutlich nicht an dir sondern daran das ich das im skill noch einbauen muss. zeig mal ein jsonlist2 vom device.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Ma_Bo

Danke, werde das nachher mal testen.

Noch ne andere Frage, ist es eigentlich irgendwie möglich, das was man gesprochen hat, in einen dummy zu schreiben, also den kompletten satz, den Alexa verstanden hat?

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.

mrbreil

#912
@ma_bo

nein das ist leider nicht möglich.
es gibt wohl irgendwie einen LITERAL Slot Type, aber dieser wird demnächst nicht mehr unterstützt.
Außerdem glaube ich, kann man mit dem custom skill fast ziemlich alles machen, wenn man einmal dahinter gestiegen ist, wie es funktioniert.

Wenn du wissen willst was Alexa verstanden hat, kannst du dir unter http://alexa.amazon.de/spa/index.html#settings/dialogs deinen Verlauf anschauen.

@justme1968

Mir ist klar das du mir nicht für jedes meiner gewünschten devices das homebridgeMapping liefern kannst, hast ja mit der Entwicklung weiß Gott genug zu tun, aber ich habe wieder eine Frage. Ich verstehe das Grundsystem dahinter nicht.
Warum funktioniert dies bei einem Max Thermostat nicht?

On=state,cmd=desiredTemperature+ On=state,cmdOn=18,cmdOff=10

Das mit dem Wecker hat super funktioniert, auch wenn ich nicht weiß wie.

@alle
Es ist zwar schön das es Wikibeiträge wie https://wiki.fhem.de/wiki/Homebridge_User_Configs gibt, aber wenn Copy und Paste nicht hilft muss ich es doch verstehen. https://forum.fhem.de/index.php/topic,48558.msg402024.html#msg402024 ist da bei 118 Seiten nicht sehr hilfreich. Mir ist klar das Doku schreiben eine leidige Aufgabe sein wird, aber vielleicht versteht ein anderer das Prinzip und kann es verständlich abbilden. Dann würden hier vielleicht nicht immer wieder die selben Fragen gestellt.

Man könnte vielleicht auch einen Thread erstellen wo nur fertige homebridgeMapping's samt AlexaMapping hineinkommen, ohne jegliche Hilfe und diskussion. Bei Fragen und oder Verbesserungen könnte man auf die einzelnen Beiträge verlinken.

dk3572

Wenn ich alexa auf der Konsole starte bekomme ich folgenden Auszug (in roter Schrift)

[12/16/2016, 6:38:29 PM] { OnIntent: { schalte: true },
  prozentIntent: { stelle: true },
  TargetPositionIntent: { mach: true },
  HueIntent: { stelle: true, 'färbe': true },
  gradIntent: { stelle: true },
  uhrIntent: { stelle: true } }
[12/16/2016, 6:38:29 PM] { schalte: { OnIntent: true },
  stelle:
   { prozentIntent: true,
     HueIntent: true,
     gradIntent: true,
     uhrIntent: true },
  mach: { TargetPositionIntent: true },
  'färbe': { HueIntent: true } }
[12/16/2016, 6:38:29 PM] {}
[12/16/2016, 6:38:29 PM] { On: { OnIntent: true },
  Brightness: { prozentIntent: true },
  TargetPosition: { TargetPositionIntent: true, prozentIntent: true },
  Hue: { HueIntent: true },
  TargetTemperature: { gradIntent: true },
  Weckzeit: { uhrIntent: true } }
[12/16/2016, 6:38:29 PM] { OnIntent: [ 'On' ],
  prozentIntent: [ 'Brightness', 'TargetPosition' ],
  TargetPositionIntent: [ 'TargetPosition' ],
  HueIntent: [ 'Hue' ],
  gradIntent: [ 'TargetTemperature' ],
  uhrIntent: [ 'Weckzeit' ] }
[12/16/2016, 6:38:30 PM] [FHEM] got: 14 results
[12/16/2016, 6:38:30 PM] [FHEM] Alexa: no service type detected
[12/16/2016, 6:38:30 PM] [FHEM] no device created for Alexa (alexa)


Hat das was zu bedeuten?
Funktioniert ansonsten alles.

chunter1

#914
Bin gerade beim Testen der Version 0.1.5.
Habe dafür ein Licht im Wohnzimmer und eines im Kindezimmer definiert.
Wenn ich "schalte das licht im kinderzimmer ein" sage, bestätigt Alexa dies zwar, sie schaltet jedoch immer das licht im wohnzimmer.
Irgendwie fehlt beim set-Aufruf der Raumname oder?

Hier die Konsolenausgabe:


[2016-12-17 00:57:44] OnIntent
[2016-12-17 00:57:44] 0
[2016-12-17 00:57:44] [FHEM] licht: executing set cmd for On with value 1
[2016-12-17 00:57:44] [FHEM]   executing: http://192.168.x.x:8083/fhem?cmd=set%20licht%20on&XHR=1


Und hier die Lichter:


defmod licht dummy
attr licht alexaName licht
attr licht alexaRoom wohnzimmer
attr licht genericDeviceType light
attr licht group wohnzimmer
attr licht room wohnzimmer,alexa
attr licht setList on off

defmod licht2 dummy
attr licht2 alexaName licht
attr licht2 alexaRoom kinderzimmer
attr licht2 genericDeviceType light
attr licht2 group kinderzimmer
attr licht2 room kinderzimmer,alexa
attr licht2 setList on off