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

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

Vorheriges Thema - Nächstes Thema

Hotbird

Moin moin,

ich habe den Custom Skill noch nicht drauf, hab die Vorgängerversion (0.1.3 war das glaube ich) . Nach dem update läuft es eine Weile und dann kommt folgende Meldung in der Console


2016-12-15 22:57:41 caching: FBDECT_fbahahttp_08761_0332324-state: on
/home/pi/alexa-fhem/lib/server.js:117
      if (err) throw err;
               ^

Error: "vers" must be 0. Got: 2
    at Client.onmessage (/home/pi/alexa-fhem/node_modules/nat-pmp/index.js:301:8)
    at Socket.<anonymous> (/home/pi/alexa-fhem/node_modules/nat-pmp/index.js:367:32)
    at emitTwo (events.js:87:13)
    at Socket.emit (events.js:172:7)
    at UDP.onMessage (dgram.js:480:8)
pi@Raspberry:~/alexa-fhem $



eigentlich ja nicht schlimm, muss es dann halt nur neu starten. Die Meldung kommt meistens so nach 4-5 Stunden. Hat das schon jemand gehabt? Bin noch am überlegen ob ich wirklich die Umstellung auf die neuste Version wagen soll ( jetzt wo doch alles läuft :-) )

justme1968

#886
@RaspiCOC: das habe ich im prinzip immer noch. es sind drei beiträge relevant. der erste, der mit der beschreibung und der mit dem custom skills. im ersten sind die beiden anderen verlinkt und es gibt update zeilen.

@Hotbird: die beiden nat zeilen aus dem config file entfernen.

@Byte09: in der version hatte sich noch etwas debug code eingeschlichen der alexa durcheinander gebracht hat. ich habe die version hier: https://forum.fhem.de/index.php/topic,60244.msg540117.html#msg540117 repariert.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

HenrikAachen

@justme: ich starte Alexa über fhem aber ein paar Stunden später ist der Prozess abgeschmiert.
Gibt es hier eine Lösung das dieser neu gestartet wird, sobald er wegfliegt?

justme1968

es würde helfen wenn du die fehlermeldung zeigst die dann im log oder auf der console steht. vermutlich hilft aber auch bei dir:die beiden nat zeilen aus dem config file entfernen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

mrbreil

#889
Hallo justme1968,

ich hatte dich darum gebeten mir den String als reading auszugeben.
Mir war leider nicht bewusst wie custom der custom Homeskill ist. Wenn man es so maßgeschneidert gestalten kann, braucht man die Ausgabe, die Amazon sowieso nicht hergibt, auch nicht.  Ist vielen Dank für deine Arbeit, und vor allem das schnelle update. ich bin gestern auch über "FHEM_article" gestolpert, wusste mir aber nicht zu helfen.
Das mit dem Wecker und dem Roommate Modul habe ich hinbekommen, leider kann ich den Wecker nicht per Sprache ausschalten.
Außerdem wüsste ich gerne wie ich meinem Roommate status über alexa mitteilen kann, möchte nicht sagen: " Alexa schalte Christian ein.". Das alles kann ich doch über die "homebridgeMapping" lösen, aber eine etwas genauere Anleitung wie und was damit möglich ist kann ich leider nirgends finden. Hast du da bitte mal einen Tip wo man sich da einlesen kann.

Gruß MrBreil

jambo007

@justme1968: Danke für die tolle Arbeit! Bei mir lassen sich mit dem neuen Custom Skill (Version 0.1.4) alle Geräte bis auf meine Somfy-Rollläden steuern. Bei diesen gibt es folgende Probleme:

Ausgangssituation:
- Alle Rollläden haben den genericDeviceType "blind"
- Alle Rollläden haben den Internals.TYPE "SOMFY"

Probleme:
- "else if( s.Internals.TYPE == 'SOMFY' )" in der fhem.js greift nicht, d.h. der Type wird bei mir nicht erkannt. Die Rollläden lassen sich erst steuern, wenn ich den Code hier fix auf Somfy anpasse, da sonst ein pct statt pos cmd geschickt wird.
- Ist der Code angepasst, lassen sich die Rollläden nur komplett auf oder zu machen, da bei "stelle...auf...prozent" trotz "delete this.mappings.Brightness;" versucht wird, die Brightness zu verstellen.

Ist bei mir etwas falsch eingestellt oder ist das noch ein Bug?

justme1968

@mrbreil: wenn du den wecker auch aus schalten willst verpasst du im über homebridgeMapping noch eine On characteristik und kannst dann sagen 'schalte den wecker aus'.

zu roommate gibt es beispiele im homebrige thread.

du kannst dir doch ein 'stelle christian auf abwesend' oder 'setze christian abwesend' oder was auch immer konfigurieren. schau dir das beispiel mit den farben an.

wie homebridgeMapping funktioniert steht hier: https://forum.fhem.de/index.php/topic,48558.msg402024.html#msg402024

achtung: alexaMapping ist dafür da zu konfigurieren was du sagt, homebridge mapping ist dazu da zu konfiguriert was dann passieren soll.


@jambo007: was genau hat du im code geändert damit es geht? du kannst auch einfach homebridgeMapping TargetPosition=cmd=pos setzen.

es gab mit der 0.1.4 noch das problem das bei zwei möglichen characteristics die für prozent passen nur die erste probiert wurde. selbst wenn das device das garnicht konnte. mit der 0.1.5 version von gestern ist das behoben und er sucht die passende charakteristik. d.h. bei einer lampe wird prozent zu Brightness und für rolläden zu TargetPosition.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Negropo

#892
Hallo,

erstmal herzlichen Dank an justme1968 für die tolle Arbeit. Ich habe mich heute mal an die Umsetzung gewagt und habe aktuell ein Problem. Wenn ich ./bin/alexa starte bekomme ich folgenden Error

pi@raspberrypi:/opt/fhem/alexa-fhem $ ./bin/alexa

/opt/fhem/alexa-fhem/lib/server.js:188
  for( var fhem of this.connections ) {
                ^^
SyntaxError: Unexpected identifier
    at Module._compile (module.js:439:25)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/opt/fhem/alexa-fhem/lib/cli.js:3:14)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)

Ich verwende die Version 0.1.5

Des Weiteren kann ich das FHEM Modul 39_alexa.pm nicht starten, es kommt die Fehlermeldung "Cannot load module alexa", obwohl das Modul im FHEM-Ordner vorhanden ist.

Kann mir jemand sagen, wo die Fehler liegen? Danke!

Viele Grüße

Negropo

Ma_Bo

Kurze Frage, lassen sich Dinge wie "schalte RTL ein" realisieren?
Auf der Alexa Homepage erkennt sie immer nur "schalte r. t. l. ein".
Was habt ihr da angegeben, bzw. funktioniert das überhaupt in die Richtung?

Grüße Marcel


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

justme1968

@Negropo: deine node version ist zu alt. mindestens 0.12.7 ist nötig.

schau ins fhem log. vermutlich fehlt dir das JSON perl modul.

@Ma_Bo: nimm das was erkannt wird als alexaName. dann sollte es gehen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

jambo007

@justme1968: Mit der Version 0.1.5 und homebridgeMapping TargetPosition=cmd=pos hat es jetzt funktioniert. Ich hatte ursprünglich einfach den nicht relevanten Code auskommentiert, was aber auf Dauer nicht zielführend ist.

Eine Frage hätte ich noch: Bei Somfy bedeutet pos=100 nur die volle Abdeckung des Fensters. Das komplette Schließen des Rollladens kann man nicht über pos, sondern nur über set...on bewirken. Kann man das irgendwie über das Mapping abbilden oder nur über eine Anpassung des Codes?

justme1968

es gibt ein attribut für somfy damit 100 auch komplett zu bedeutet. ansonsten schau mal im homekit thread. da gibt es ein mapping für somfy.

und schau mal bei den beispielen. da gibt es eine konfiguration für 'alexa, mach den rolladen zu'. den kannst du abwandeln und auch andere kommandos und zahlenwerte einsetzen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Joker

Die Updates kommen wirklich schneller als man testen kann, ich bin begeistert  :)

Mal eine generelle Frage: Ich habe mir gestern was gebastelt mit ReadingsProxy dass ich meine Harmony Activities schalten kann. Eine meiner Activities heißt "Fire TV". Also ein englisches Wort + eine Abkürzung  ;D.
Mein erster Schuß war, den alexaName auf "Feier T.V." zu setzen um schon mal Probleme mit der englischen Aussprache zu vermeiden. Wenn man nach einer Geräteliste gefragt hat, hat Alexa das auch wie erwartet ausgeprochen. Aber wenn ich sage "Schalte Fire TV ein", dann ist die Antwort "Ich kenne kein Gerät mit dem Namen Feier T <Pause von mehreren Sekunden> V."
Also habe ich den AlexaNamen nun auf "FeierTeeFau" gesetzt  ;D und nun funktioniert es prima.

Wie macht ihr das? Ist das eine gute Idee das so zu machen? Meine nächste Activity heißt HTPC, ich bin schon gespannt was ich dann als Namen nehmen muss  :D

Byte09

#898
... 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

Negropo

#899
Zitat von: justme1968 am 16 Dezember 2016, 12:44:32
@Negropo: deine node version ist zu alt. mindestens 0.12.7 ist nötig.

schau ins fhem log. vermutlich fehlt dir das JSON perl modul.

Jetzt habe ich nodejs auf 7.2.1 upgedated und habe eine weitere Error-Meldung beim Start von alexa

[2016-12-16 15:29:21] using /home/pi/.alexa/config.json
[2016-12-16 15:29:21] ---
[2016-12-16 15:29:21] this alexa-fhem 0.1.5
[2016-12-16 15:29:21] Trying NAT-PMP ...
[2016-12-16 15:29:21] Trying NAT-UPNP ...
[2016-12-16 15:29:22] Fetching FHEM devices...
[2016-12-16 15:29:23] [FHEM] Checking devices and attributes...
[2016-12-16 15:29:23] [FHEM]   executing: http://192.168.178.xxx:8083/fhem?cmd=%7BAttrVal(%22global%22,%22userattr%22,%22%22)%7D&XHR=1
[2016-12-16 15:29:23] [FHEM]   executing: http://192.168.178.xxx:8083/fhem?cmd=jsonlist2%20TYPE=alexa&XHR=1
[2016-12-16 15:29:23] [FHEM] starting longpoll: http://192.168.178.xxx:8083/fhem.pl?XHR=1&inform=type=status;addglobal=1;filter=.*;since=null;fmt=JSON&timestamp=1481898563150
[2016-12-16 15:29:23] [FHEM] Fetching FHEM devices...
[2016-12-16 15:29:23] [FHEM] fetching: http://192.168.178.xxx:8083/fhem?cmd=jsonlist2%20room=alexa&XHR=1
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: bind EADDRINUSE 0.0.0.0:5350
    at Object.exports._errnoException (util.js:1022:11)
    at exports._exceptionWithHostPort (util.js:1045:20)
    at dgram.js:218:18
    at _combinedTickCallback (internal/process/next_tick.js:77:11)
    at process._tickCallback (internal/process/next_tick.js:98:9)
    at Module.runMain (module.js:607:11)
    at run (bootstrap_node.js:420:7)
    at startup (bootstrap_node.js:139:9)
    at bootstrap_node.js:535:3

Was soll mir das jetzt sagen? Bekomme jetzt auch keine Verbindung mehr zu FHEM :-(
FHEM kann ich perr SSH starten, aber ich bekomme keine Verbindung mehr über die Webpage...

Hilfe....