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

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

Vorheriges Thema - Nächstes Thema

Puccini

Hi,

ich habe eine kleine Lampe (Müller Bulp 404004) die via ZigBee2MQTT angebunden ist und im Alexa-Skill bereits bekannt ist.
Dimmen und An/Ausschalten geht.
Nur die Warm-Kalt-Weiß Farbregelung geht nur über FHEM, nicht über Alexa....

Woran könnte das liegen?

Hier das listing:

Internals:
   CFGFN     
   CID        zigbee_0x00158d00038b9e92
   DEF        zigbee_0x00158d00038b9e92
   DEVICETOPIC zigbee2mqtt/0x00158d00038b9e92
   FUUID      5f96b22e-f33f-5b14-da3c-8e1845709a137cdb
   IODev      ZigBeeServer
   LASTInputDev ZigBeeServer
   MSGCNT     32
   NAME       Licht_Theresa
   NR         2589
   STATE      ON
   TYPE       MQTT2_DEVICE
   ZigBeeServer_MSGCNT 32
   ZigBeeServer_TIME 2020-10-26 13:50:52
   READINGS:
     2020-10-26 12:25:34   associatedWith  MQTT2_zigbee_pi
     2020-10-26 12:29:02   attrTemplateVersion 20200904
     2020-10-26 13:50:52   brightness      188.6984904120767
     2020-10-26 13:50:52   color_temp      440
     2020-10-26 13:50:52   state           ON
Attributes:
   IODev      ZigBeeServer
   alexaName  Theresas Licht
   alexaRoom  Theresas Zimmer
   devicetopic zigbee2mqtt/0x00158d00038b9e92
   genericDeviceType light
   homebridgeMapping Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
   icon       light_control
   model      zigbee2mqtt_light_cct
   readingList $DEVICETOPIC:.* { json2nameValue($EVENT) }
   room       ZigBee
   setList    on:noArg $DEVICETOPIC/set {"state":"ON"}
  off:noArg $DEVICETOPIC/set {"state":"OFF"}
  brightness:colorpicker,BRI,0,5,255 $DEVICETOPIC/set {"state":"on","$EVTPART0":"$EVTPART1"}
  color_temp:colorpicker,CT,154,2,500 $DEVICETOPIC/set {"$EVTPART0":"$EVTPART1"}
   webCmd     toggle:on:off:brightness:color_temp


In der Alexa-App wird auch der Status der Lampe nicht korrekt dargestellt und immer wieder "Gerät nicht verfügbar" angezeigt... (trotzdem kann ich es steuern :) )

Das hier kommt im Alexa-Log:
[26.10.2020, 13:24:39] >>>> [ssh] {"directive":{"header":{"namespace":"Alexa","name":"ReportState","payloadVersion":"3","messageId":"359b12fe-c684-496d-bd8c-87870f6d5616","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"XX"},"endpointId":"XX","cookie":{"fuuid":"XX","device":"Licht_Theresa"}},"payload":{}}}
[26.10.2020, 13:24:39] [FHEM]     caching: On: 1 (as number; from 'ON')
[26.10.2020, 13:24:39] [FHEM]     caching: Brightness: 31.3728 (as number; from '80')
[26.10.2020, 13:24:39] <<<< [ssh] {"context":{"properties":[{"namespace":"Alexa.PowerController","name":"powerState","value":"ON","timeOfSample":"2020-10-26T12:24:39.029Z","uncertaintyInMilliseconds":500},{"namespace":"Alexa.BrightnessController","name":"brightness","value":31,"timeOfSample":"2020-10-26T12:24:39.030Z","uncertaintyInMilliseconds":500},{"namespace":"Alexa.ColorTemperatureController","name":"colorTemperatureInKelvin","value":null,"timeOfSample":"2020-10-26T12:24:39.030Z","uncertaintyInMilliseconds":500}]},"event":{"header":{"namespace":"Alexa","name":"StateReport","payloadVersion":"3","messageId":"fa3c38d1-d76c-4e77-b877-f13422bda95a","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"XX"},"endpointId":"XX"},"payload":{}}}


Mich wundert etwas das "colorTemperatureInKelvin" und "value:null"... sieht verdächtig aus....
Hat jemand auch diese Lampe schon eingerichtet und könnte mir bei dem Thema kurz behilflich sein?
leider hat mich diese einzelne Lampe jetzt schon 1 Tag gekostet -.-

Danke euch!

justme1968

du hast kein mapping für ColorTemperature in deinem homebridgeMapping
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Puccini

Ja ok. Und wie genau wäre dieser zu definieren? Also ehrlich gesagt hatte ich mir unter smart home was anders vorgestellt.
Schön das einiges mit templates geht. Aber das dann solche Dinge alles mit der Hand am Arm gemacht werden müssen ist echt nervenaufreibend...

Ich versuch mal mein Glück, aber spätestens bei dem factoe oder was auch immer bin ich raus...
Leider find ich auch nicht wirklich mal ein vernünftiges Beispiel wo ein colortemperatur gesetzt wird...

justme1968

such dir ein anderes system das deinen ansprüchen besser genügt.

und wenn du glücklich bist sag welches es war.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

sn0000py

Hallo, also mittlerweile funktioniert meine teststellung schon mal ganz gut.
Mein einziges Problem ist, die Gruppendefinition in Alexa funktioniert nicht immer und ist eher komisch.
Nur leider weiss ich nicht genau wie und wo ich da was debuggen kann um zu sehen wer wo was schuld ist.

Ich habe zwei gruppen "Schlafzimmer" und "wohnzimmer"
in beiden gruppen ist jeweils Licht, Fernseher und Thermostat drinnen.
Zusätzlich noch ein paar lichter in keinen gruppen oder in anderen Gruppen.

Nun sollte ja mit "Alexa licht an" "Alexa fernseher auf kanal VOX" jeweils das licht/fernseher in der eigenene Gruppe geschlatet werden.
Komischerweise wird dann teils das licht im vorraum eingeschaltet, oder aus Schlafzimmer Alexa, das Licht im Wohnzimmer.

wo kann ich da ansetzen?

sn0000py

Das komische ist im moment auch

wenn ich auf dem Echi Gerät "wohnzimmer" sage
"alexa schalte fernseher lauter" dann wird der fernseher im wohnzimmer lauter gestellt
"alexa schalte fernsher auf kanal VOX"  dann wird am Fernseher im SCHLAFZIMMER der Kanal umgestellt

Bei amazon sehe ich nur das die texte korrekt erkannt wurden

in FHEM im alexa log bekomm ich schon
"device":"alexa.media.mapping.schlafzimmer"}},"payload":{"channel":{},"channelMetadata":{"name":"VOX"}}}}

also kommt es im FHEM schon falsch an.


Puccini

Zitat von: justme1968 am 26 Oktober 2020, 14:17:40
du hast kein mapping für ColorTemperature in deinem homebridgeMapping

Danke nochmals für diesen "hilfreichen" und kurzen Tipp...

ich habe dann nochmals in den tiefen des Wikis gesucht und dabei  entscheidenden Hinweise gefunden, aber der wichtigstes fehlt in der Wiki-Doku...

Hinweis 1:
Beispiel Homebridge-Mappings: https://wiki.fhem.de/wiki/Homebridge_User_Configs

Hinweis 2:
Schau doch "einfach" in die Implementation des Homekit https://github.com/homebridge/HAP-NodeJS/blob/master/src/lib/gen/HomeKit.ts
(wer nicht Programmieren kann ist hier schon verloren...)

Aber leider fehlt im Wiki der wichtigstes Schritt:
Die Erklärung des Befehls-Musters.

Wenn man nur schreibt:
ColorTemperature=color_temp
dann wird diese zwar angezeigt, kann aber nicht gesetzt werden.

Zum setzen muss man scheinbar noch die 2x Doppelpunkt + das zu setzende Reading hinterlegen:
ColorTemperature=color_temp::colortemp

Was genau in die "lücke" nach dem ersten Doppelpunkt muss weiß ich nicht... Hier wäre eine kurze Erklärung gut.
Was die weiteren Befehle machen ist auch nicht direkt ersichtlich. "factor" bei der Helligkeit scheint eine Art "Skalierung" zwischen FHEM-Werte-Bereich und Alexa-Wertebereich (aus dem Homekit.ts zu entnehmen) zu sein... (also hier: 254 * 0.39216 => 100%)
"delay" hab ich keine Ahnung was der bewirkt. Irgend eine Verzögerung... Cache hab ich auch schon gesehen... ka was das macht...

Könnte das ein Wissender ggf. noch im Wiki irgendwo ergänzen? Wäre echt hilfreich um selber diese Befehlsmuster erstellen zu können!.


Mein mapping funktioniert jetzt fast komplett. Einzig: der aktuell eingestelle Brigthness-Faktor wird nicht korrekt in der App angezeigt. Setzen lässt es sich von 0 - 100% (also 254 in FHEM) wunderbar. Aber in der App steht nach dem setzen auf 100% wieder 31%... Warum??

Brightness=brightness::brightness,maxValue=100,factor=0.39216,delay=true
ColorTemperature=color_temp::color_temp,minValue=154,maxValue=500



Hier noch mein aktuelles Alexa Mapping in meinem Alexa Device:
#Characteristic=<name>=<value>,...
On=verb=schalte,valueOn=an;ein,valueOff=aus,valueToggle=um

Brightness=verb=stelle,property=helligkeit,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

Saturation=verb=stelle,property=sättigung,valuePrefix=auf,values=AMAZON.NUMBER
Saturation=verb=sättige,values=AMAZON.NUMBER

TargetPosition=verb=mach,articles=den;die,values=auf:100;zu:0
TargetPosition=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent

TargetTemperature=verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=grad

Volume:verb=stelle,valuePrefix=auf,values=AMAZON.NUMBER,valueSuffix=prozent

#Weckzeit=verb=stelle,valuePrefix=auf;für,values=AMAZON.TIME,valueSuffix=uhr

amenomade

Im Wiki findet man folgendes:
ZitatDas Konzept des homebridgeMapping ist hier: https://forum.fhem.de/index.php/topic,48558.msg402024.html#msg402024 und hier: https://github.com/justme-1968/homebridge-fhem/blob/master/README.md beschrieben.

Wenn man die Links folgt, findet man:
https://github.com/justme-1968/homebridge-fhem/blob/master/README.md#enhanced-config
Zitateach parameter can be of the form

    <command>:<device>:<reading> where parts can be omitted from left to right
Das für "die Lücke". Es kommt da ein Devicename, falls man den "ist" Wert aus einem anderen Device lesen will.

Und man findet auch:
https://github.com/justme-1968/homebridge-fhem/blob/master/README.md#homekit---fhem-parameters
Zitatdelay: true/<number> -> the value ist send afer one second/<number>ms of inactivity
factor: divide homekit value by this factor
maxValue: for all int and float characteristics -> the allowed range for this value in homekit
max: the max value the reading has in fhem, only if different from maxValue
wegen delay und factor
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

sn0000py

Kann mir irgend jemand einen Tipp geben, an welcher Stelle die Zuordnung vom Text in speziellen vom Device das im Text gefunden wurde, zum Device in FHEM èrfolgt?

awex102

Hallo,

alle paar Tage fällt bei mir das Modul aus. Was ich rausgefunden habe: Ebenfalls alle Tage bekomme ich über get proxyKey eine Zeichenkette mit Sonderzeichen zurück: d`eb6*;BAG
Der Key ist nicht mehr im Klartext lesbar.

Installiere ich das Modul neu bzw. lösche die Keys, bekomme ich auch wieder einen sauberen Key zurück.

Hat jemand eine Idee woran das liegen könnte?

MadMax-FHEM

#4345
Zitat von: sn0000py am 28 Oktober 2020, 07:36:22
Kann mir irgend jemand einen Tipp geben, an welcher Stelle die Zuordnung vom Text in speziellen vom Device das im Text gefunden wurde, zum Device in FHEM èrfolgt?

Äh: what?

Ich habe es jetzt echt ein paar mal gelesen...
...aber KEINE AHNUNG wovon du sprichst bzw. was du wissen willst... ;)

Wenn es um die Sprachauswertung und Umsetzung in "Anweisungen" gehen sollte: das macht Amazon...

alexa-fhem bekommt nicht den gesprochenen/erkannten Text, sondern bereits die "Auswertung"...

Wenn du den Text willst: echodevice-Modul...

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)

sn0000py

Also ich verwende bei den Smart Home in der Alexa APP Gruppen.

Gruppe Wohnzimmer
  1 *  Fernseher
  1 * echoWohnzimmer
Gruppe Schlafzimmer
  1 * Fernseher
  1 * echoSchlafzimmer

Beide Fernseher werden per media angebunden, und funktionieren auch.

wenn ich aber dann beim echoSchlafzimmer den Fernseher steuern will, dann wird teils der Fernseher im Wohnzimmer geschalten.
Aber das passiert dann teilweise so:

echoWohnzimmer : "Alexa mach Fernseher lauter" -> es wird der Fernseher im Schlafzimmer lauter gestellt
echoWohnzimmer : "Alexa schalte Fernseher auf Kanal VOX" -> es wird beim Fernseher Wohnzimmer der Kanal umgeschaltet.

und es sollte ja bei beiden male der Fernseher im Wohnzimmer die infos bekommen, und nicht einmal der und einmal der.




awex102

Hallo zusammen,

gerade wollte ich eine Routine in der Alexa App erstellen. Als Geräte tauchen in der Alexa App aber nur meine 2 Licht-Taster auf, z.B. mein Dummy zur Steuerung einer Szene mittels notify mit genericDeviceType switch und on und off Zuständen ist allerdings nicht sichtbar. Braucht der dummy noch eine spezielle Konfig? Der dummy taucht in der Geräteübersicht in der App auf und lässt sich separat auch über alexa ansprechen.

defmod TV dummy
attr TV alexaName TV
attr TV fhem_widget_command {"allowed_values": ["off","on"],"order":3}
attr TV genericDeviceType switch
attr TV room MedienRaum
attr TV setList on off
attr TV webCmd on:off

Danke und Gruß

MadMax-FHEM

#4348
Etwas widersprüchlich was du schreibst...

Also ist er nun als Gerät zu sehen oder nicht?

Funktioniert er per Sprachsteuerung?

Willst du, dass am ENDE einer Routine der dummy geschalten wird?
Das sollte gehen, sobald er in der App zu sehen ist und per Sprache (und App) steuerbar ist...

Willst du, dass er AUSLÖSER einer Routine ist?
Das geht mit einem schalter nicht.

Ansonsten wie immer: im alexa-fhem Log schauen, wie erkannt wird und wie auf Schaltbefehle reagiert wird...
EDIT: wichtig NICHT im fhem-Log ;)  /   und: bei dem Namen TV, hmmm. Kann sein, dass Alexa eher t.v. erkennt... Evtl. liegt es daran? Sehen kannst du das im "Verlauf" in der Alexa-App/Alexa-Web-Portal...

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)

zwockel

Nachdem hue seinen Geist aufgegeben hat versuche ich nun den FHEM Connector einzubinden.
Nach upgrades auf den aktuellen Stand scheitere ich nun an nachdem ich define Alexa alexa absetze mit der Fehlermeldung "Cannot load module alexa "
Nach sudo npm install -g alexa-fhem kommt
sudo npm install -g alexa-fhem
npm WARN npm npm does not support Node.js v10.21.0
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can't make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 4, 6, 7, 8, 9.
npm WARN npm You can find the latest version at https://nodejs.org/
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
/usr/local/bin/alexa-fhem -> /usr/local/lib/node_modules/alexa-fhem/bin/alexa
+ alexa-fhem@0.5.57
updated 1 package in 10.347s

Über jeglichen Lösungsansatz würde ich mich und vor allen Dingen meine Frau überaus freuen.