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

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

Vorheriges Thema - Nächstes Thema

volschin

Es gibt keine funktionalen Vorteile. Aber wenn eine Bibliothek nicht mehr weiterentwickelt wird, wird sie ein potentielles Sicherheitsrisiko. Damit sollte man sie gegen eine andere ersetzen.
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

cs-online

ah OK, danke für die Info :-) Also noch kein Grund, upzudaten...
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

volschin

Zitat von: justme1968 am 28 Februar 2020, 17:50:12
@volschin und alle anderen die testen mögen: die aktuelle head version auf GitHub verwendet jetzt postman-request statt request. da sind schon einige bug fixes gegenüber request eingeflossen und die version wird zumindest aktuell noch supported.
Läuft in meinem Docker unter 12.16.1 jetzt seit 2 Tagen stabil und ohne Auffälligkeiten.
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

justme1968

hab es veröffentlicht und die homebridge-fhem head version ebenfalls umgestellt.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

volschin

Beim homebridge kann ich leider beim Test nicht unterstützen, da ich das nur noch mit Standard-Docker Image von oznu betreibe und damit auf das npm Paket angewiesen bin.
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

Ingo298

Welche einstellung (AlexaMapping) sind notwendig damit Alexa die Farbe der Lampen weiß einstellt
wenn der Befehl dafür in Fhem "set <device>  command set_white" ist.

Hintergrund: bisher habe ich eine Milight-Bridge V4 benutzt wo diese funktion super funktioniert.

Da jetzt aber ein paar Lampen dazu gekommen sind habe ich mir den Milight_Hub mit MQTT zugelegt.
Benutzt werden z.Z. RGBW Bulb und Strip um diese auf Weiß zu stellen wird der o.g. set-Befehl
genutzt. Wenn ich nun sage "Alexa stelle Licht Essen weiß" wird die Farbe Rot eingestellt.
RPi4 8GB: Buster FHEM 6.3, FTUI-3, AMAD,10.1" Tablet; MiLight;IT;HM;Dect200;VZLogger;MQTT

justme1968

#4221
alexaMapping ist nur für den custom skill. also keine.

der smart home skill kennt nur hsv werte, alexa-fhem kommt auch mit rgb klar. eventuell musst du ein passendes homebridgeMapping bauen.

so ein set kommando wie in deinem beispiel geht mit dem smart home api nicht. du kannst dir eventuell mit cmdalias etwas zusammen bauen das funktioniert.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Ingo298

Sorry hatte vergessen zu schreiben das ich Alexa fhem Custom Skill auch benutze
RPi4 8GB: Buster FHEM 6.3, FTUI-3, AMAD,10.1" Tablet; MiLight;IT;HM;Dect200;VZLogger;MQTT

cpet

Versuch mal homebridgeMapping: Hue=cmds=0:hue+100 dann müsste das auch ohne CustomSkill gehen.
RPI 3 mit 1x SCC 868MHz für FS20; 1x SCC 433MHz SlowRF; 1x SCC 868MHz Homematic;
Rollladen-/Markisensteuerung, Fußboden-Heizungssteuerung 
diverse Licht-/Schaltungssteuerungen
ALEXA-Integration;
Statusmeldungen über  Fernseher

OppiM

Hi,

ich habe Probleme, den Status eines Sonoff T1 2Ch Schalters richtig in der Alexa-App dargestellt zu bekommen und ihn zu schalten.

Der Schalter ist mit Tasmota geflasht und über MQTT2 in FHEM eingebunden:

Internals:
   CFGFN     
   CHANGED   
   CID        Sonoff_T1_01
   DEF        Sonoff_T1_01
   DEVICETOPIC Sonoff_T1_01
   FUUID      5e79fcee-f33f-d16d-479a-cdba3271556ee076
   IODev      m2s
   LASTInputDev m2s
   MSGCNT     83
   NAME       Sonoff_T1_01
   NR         25191
   STATE      1:off
2:off
   TYPE       MQTT2_DEVICE
   m2s_MSGCNT 83
   m2s_TIME   2020-03-24 17:14:49
   JSONMAP:
     Channel_0  0
     Channel_1  0
     Channel_2  0
     Channel_3  0
     Channel_4  0
     Color      0
     Dimmer     0
     HSBColor   0
   OLDREADINGS:
     2020-03-24 17:09:49   LastMessage     Tue Mar 24 17:09:49 2020
   READINGS:
     2020-03-24 16:09:45   FallbackTopic   cmnd/Sonoff_T1_01_fb/
     2020-03-24 16:14:29   Free            445
     2020-03-24 16:09:45   GroupTopic      cmnd/sonoffs/
     2020-03-24 17:14:49   Heap            23
     2020-03-24 16:09:45   Hostname        Sonoff_T1_1
     2020-03-24 16:09:45   IPAddress       192.168.18.236
     2020-03-24 16:09:45   LWT             Online
     2020-03-24 17:14:49   LoadAvg         999
     2020-03-24 16:09:45   Module          Sonoff T1 2CH
     2020-03-24 17:14:49   MqttCount       1
     2020-03-24 17:14:49   POWER1          off
     2020-03-24 17:14:49   POWER2          off
     2020-03-24 16:09:45   RestartReason   Software/System restart
     2020-03-24 17:14:49   Sleep           0
     2020-03-24 17:14:49   SleepMode       Dynamic
     2020-03-24 16:14:29   StopOnError     off
     2020-03-24 17:14:49   Time            2020-03-24T17:14:49
     2020-03-24 17:14:49   Uptime          0T01:05:12
     2020-03-24 17:14:49   UptimeSec       3912
     2020-03-24 16:09:45   Version         8.2.0(knx)
     2020-03-24 16:09:45   WebServerMode   Admin
     2020-03-24 14:55:22   subscriptions   cmnd/Sonoff_T1_01/# cmnd/Sonoff_T1_01_fb/# cmnd/sonoffs/#
Attributes:
   DbLogExclude .*
   DbLogInclude LWT,POWER.*,Version
   IODev      m2s
   alexaName  Lichtschalter_Antje
   alias      Lichtschalter Antje
   autocreate 0
   devStateIcon 1.off:message_socket_off@black:POWER1+on 1.on:message_socket_on2@green:POWER1+off 1.set.*:message_socket_unknown@red 2.off:message_socket_off@black:POWER2+on 2.on:message_socket_on2@green:POWER2+off 2.set.*:message_socket_unknown@red Offline:message_socket_disabled@red .*:message_socket_unknown@red
   event-min-interval 300
   event-on-change-reading LWT,POWER.*,Version
   event-on-update-reading LWT
   genericDeviceType light
   group      Licht
   homebridgeMapping clear On=POWER1,values=off:0;;on:1,cmdOff=off,cmdOn=on
   icon       control_on_off
   jsonMap    Dimmer:0 Channel_0:0 Channel_1:0 Channel_2:0 Channel_3:0 Channel_4:0 HSBColor:0 Color:0
   oldreadings LastMessage
   readingList tele/Sonoff_T1_01/LWT:.* LWT
  tele/Sonoff_T1_01/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/Sonoff_T1_01/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }
  tele/Sonoff_T1_01/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }
  stat/Sonoff_T1_01/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
  stat/Sonoff_T1_01/POWER1:.* POWER1
  stat/Sonoff_T1_01/POWER2:.* POWER2
   room       Arbeitszimmer Antje,MQTT2_DEVICE,alexa
   setList    POWER1:on,off,toggle cmnd/Sonoff_T1_01/POWER1 $EVTPART1
  POWER2:on,off,toggle cmnd/Sonoff_T1_01/POWER2 $EVTPART1
  setOtaUrl:textField cmnd/Sonoff_T1_01/OtaUrl $EVTPART1
  upgrade:noArg cmnd/Sonoff_T1_01/upgrade 1
   setStateList on off toggle
   stateFormat {
   if(ReadingsVal($name,"LWT","") ne "Online")
      {ReadingsVal($name,"LWT","")}
   else
      {sprintf("1:%s\n2:%s",ReadingsVal($name,"POWER1","?"),ReadingsVal($name,"POWER2","?"))}
}
   webCmd     POWER1 toggle:POWER2 toggle


Der Schalter hat 2 Kanäle, schalten will ich mit Alexa nur den ersten. Daher hab ich homebridgeMapping so gesetzt: clear On=POWER1,values=off:0;;on:1,cmdOff=off,cmdOn=on

alexa-fhem erkennt den Schalter auch (scheinbar) richtig:
[2020-3-24 17:09:35] [FHEM] Sonoff_T1_01 is light
[2020-3-24 17:09:35] [FHEM] Sonoff_T1_01 has
[2020-3-24 17:09:35] [FHEM]   On [POWER1;on,off]
[2020-3-24 17:09:35] [FHEM] Sonoff_T1_01 will not send proactive events
[2020-3-24 17:09:35] [FHEM] Sonoff_T1_01 uses ID: 5e79fcee-f33f-d16d-479a-cdba3271556ee076
  2020-03-24 17:09:35 caching: Sonoff_T1_01-POWER1: off


Auch der Zustand (off) stimmt beim Start, der Schalter ist ausgeschaltet. Nach ein paar Sekunden wechselt der Zustand in der App aber auf On:
[2020-3-24 17:09:37] [FHEM]     caching: On: 0 (as string; from 'off')
[2020-3-24 17:09:37] <<<< [ssh] {"context":{"properties":[{"namespace":"Alexa.PowerController","name":"powerState","value":"ON","timeOfSample":"2020-03-24T16:09:37.254Z","uncertaintyInMilliseconds":500}]},"event":{"header":{"namespace":"Alexa","name":"StateReport","payloadVersion":"3","messageId":"55c39792-3c91-4331-a000-6e85db57771a","correlationToken":"-"},"endpoint":{"scope":{"type":"BearerToken","token":"xxx"},"endpointId":"5e79fcee-f33f-d16d-479a-cdba3271556ee076"},"payload":{}}}


Was mich irritiert ist, dass der Status eigentlich richtig erkannt wird (caching: On: 0 (as string; from 'off')), dann aber der falsche Status übermittelt wird ("name":"powerState","value":"ON").

Eine schaltbare Steckdose, ebenfalls mit Tasmota, funktioniert problemlos. Nur wird dort komischerweise (ohne extra homebridgemapping) der Status nicht als String, sondern als Zahl erkannt:
[2020-3-24 17:06:45] [FHEM]     caching: On: 1 (as number; from 'on')

Gruß,
Michael

TomLee

#4225
Mit den Templates konfigurierte Devices werden so konfiguriert das diese ohne homeBridgeMapping den korrekten Status darstellen.

Der schnellste und einfachste wäre meiner Meinung nach:

1. update von FHEM
2. bisheriges Device löschen
    (Raw Definition sichern, falls du unbedingt später dein devstateIcon und stateFormat wieder angepasst nutzen möchtest)
3. den Sonoff neu starten (restart 1 in der Konsole oder einmal spannungsfrei machen)
4. auf das neu angelegte MQTT2_Device das tasmota_2channel_split anwenden und dem Assistenten folgen
    ( split weil vielleicht magst du irgendwann auch den 2 Kanal Alexa bekannt machen)

fertig

Gruß

Thomas

OppiM

Hi,

nach einigem Hin- und Hertesten (Split in 2 Geräte, welches direkt funktioniert hat, dann schrittweise wieder in 1 Gerät umgebaut) hab ich es jetzt geschafft, es in einem Gerät zu lassen.

defmod Sonoff_T1_01 MQTT2_DEVICE Sonoff_T1_01
attr Sonoff_T1_01 DbLogExclude .*
attr Sonoff_T1_01 DbLogInclude LWT,POWER.*,Version
attr Sonoff_T1_01 IODev m2s
attr Sonoff_T1_01 alexaName Lichtschalter_Antje
attr Sonoff_T1_01 alias Lichtschalter Antje
attr Sonoff_T1_01 autocreate 0
attr Sonoff_T1_01 devStateIcon Online:10px-kreis-gruen  Offline:10px-kreis-rot 1.off:message_socket_off@black:POWER1+on  1.on:message_socket_on2@green:POWER1+off  1.set.*:message_socket_unknown@red  2.off:message_socket_off@black:POWER2+on  2.on:message_socket_on2@green:POWER2+off  2.set.*:message_socket_unknown@red  .*:message_socket_unknown@red
attr Sonoff_T1_01 event-min-interval 300
attr Sonoff_T1_01 event-on-change-reading LWT,POWER.*,Version,state
attr Sonoff_T1_01 event-on-update-reading LWT
attr Sonoff_T1_01 genericDeviceType light
attr Sonoff_T1_01 group Licht
attr Sonoff_T1_01 icon control_on_off
attr Sonoff_T1_01 jsonMap Dimmer:0 Channel_0:0 Channel_1:0 Channel_2:0 Channel_3:0 Channel_4:0 HSBColor:0 Color:0
attr Sonoff_T1_01 oldreadings LastMessage
attr Sonoff_T1_01 readingList tele/Sonoff_T1_01/LWT:.* LWT\
  tele/Sonoff_T1_01/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/Sonoff_T1_01/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/Sonoff_T1_01/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  stat/Sonoff_T1_01/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  stat/Sonoff_T1_01/POWER1:.* state\
  stat/Sonoff_T1_01/POWER1:.* POWER1\
  stat/Sonoff_T1_01/POWER2:.* POWER2
attr Sonoff_T1_01 room Arbeitszimmer Antje,MQTT2_DEVICE,alexa
attr Sonoff_T1_01 setList POWER1:on,off,toggle cmnd/Sonoff_T1_01/POWER1 $EVTPART1\
  POWER2:on,off,toggle cmnd/Sonoff_T1_01/POWER2 $EVTPART1\
  setOtaUrl:textField cmnd/Sonoff_T1_01/OtaUrl $EVTPART1\
  upgrade:noArg cmnd/Sonoff_T1_01/upgrade 1\
  on:noArg cmnd/Sonoff_T1_01/POWER1 on\
  off:noArg cmnd/Sonoff_T1_01/POWER1 off\
  toggle:noArg cmnd/Sonoff_T1_01/POWER1 toggle
attr Sonoff_T1_01 setStateList on off toggle
attr Sonoff_T1_01 stateFormat {sprintf("%s\n1:%s\n2:%s",ReadingsVal($name,"LWT","Offline"),ReadingsVal($name,"POWER1","?"),ReadingsVal($name,"POWER2","?"))}
attr Sonoff_T1_01 userReadings LastMessage {localtime},\
LastOldMessage {OldReadingsVal($name,"LastMessage","")}
attr Sonoff_T1_01 webCmd POWER1 toggle:POWER2 toggle


Ich weiß nicht, welche Änderung es genau war, aber jetzt wird der Status auch hier als Zahl erkannt:
[2020-3-30 18:20:56] [FHEM]     caching: On: 1 (as number; from 'on')

Das Schalten des 1. Kanals geht wie gewünscht über FHEM, Alexa-App und per Sprache und in der Alexa-App stimmt der Status.

Gruß,
Michael

mycroft2k

frage wurde irgendwas geändert? bei mir funktioniert seit gestern kein 'wechsel Eingang zu HDMI 1/2/3'
da kommt dann immer ich konnte kein Gerät oder Gerätegruppe in Profil finden.

auch ein kanal wechsel zu 23 oder schalte auf kanal ZDF geht nicht mehr :-(


volschin

Die Frage musst Du doch wohl eher Dir stellen.
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

mycroft2k

habe seit 29 Januar nichts mehr verändert.
gerade getestet Sprache auf English gestellt und der scheiß geht mit
Alexa change the Input to HDMI3

Sprache Deutsch funktoniert nicht kann also nur an der verfluchten Amazon liegen