Autor Thema: alexa-fhem: amazon alexa smart home skill für fhem  (Gelesen 665521 mal)

Offline volschin

  • Hero Member
  • *****
  • Beiträge: 1511
Antw:alexa-fhem: amazon alexa smart home skill für fhem
« Antwort #4215 am: 02 März 2020, 15:47:10 »
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.
RPi4 4GB+Docker+FHEM5.9,HM-MOD-RPI-PCB+HM-USB-CFG2+hmland
HomeMatic: diverse, HUE: diverse, Hue-Bridge, RaspBee+deCONZ
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dot, Logi Circle 2

Offline cs-online

  • Hero Member
  • *****
  • Beiträge: 1042
Antw:alexa-fhem: amazon alexa smart home skill für fhem
« Antwort #4216 am: 03 März 2020, 08:57:44 »
ah OK, danke für die Info :-) Also noch kein Grund, upzudaten...
FHEM auf RPI 4 4GB, HM-CFG-USB-2, HM-WLAN-Gateway, einige HM-Aktoren,  2x EBUSD an Heizung und Solar, ESP8266 am Strom-, Gas- , Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Lacrosse-Gateway und Sensoren, Signalduino, Alexa-Fhem... und alles auf einem RPI und da geht noch mehr...

Offline volschin

  • Hero Member
  • *****
  • Beiträge: 1511
Antw:alexa-fhem: amazon alexa smart home skill für fhem
« Antwort #4217 am: 03 März 2020, 22:34:56 »
@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.
RPi4 4GB+Docker+FHEM5.9,HM-MOD-RPI-PCB+HM-USB-CFG2+hmland
HomeMatic: diverse, HUE: diverse, Hue-Bridge, RaspBee+deCONZ
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dot, Logi Circle 2

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20153
Antw:alexa-fhem: amazon alexa smart home skill für fhem
« Antwort #4218 am: 04 März 2020, 10:34:23 »
hab es veröffentlicht und die homebridge-fhem head version ebenfalls umgestellt.
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline volschin

  • Hero Member
  • *****
  • Beiträge: 1511
Antw:alexa-fhem: amazon alexa smart home skill für fhem
« Antwort #4219 am: 04 März 2020, 16:08:18 »
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.
RPi4 4GB+Docker+FHEM5.9,HM-MOD-RPI-PCB+HM-USB-CFG2+hmland
HomeMatic: diverse, HUE: diverse, Hue-Bridge, RaspBee+deCONZ
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dot, Logi Circle 2

Offline Ingo298

  • New Member
  • *
  • Beiträge: 44
Antw:alexa-fhem: amazon alexa smart home skill für fhem
« Antwort #4220 am: 05 März 2020, 15:40:23 »
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.
RPi2: Buster FHEM 5.9, FTUI, AMAD,10.1" Tablet; MiLight;IT;HM;Dect200;VZLogger

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20153
Antw:alexa-fhem: amazon alexa smart home skill für fhem
« Antwort #4221 am: 05 März 2020, 15:49:03 »
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.
« Letzte Änderung: 05 März 2020, 16:04:15 von justme1968 »
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline Ingo298

  • New Member
  • *
  • Beiträge: 44
Antw:alexa-fhem: amazon alexa smart home skill für fhem
« Antwort #4222 am: 05 März 2020, 19:12:38 »
Sorry hatte vergessen zu schreiben das ich Alexa fhem Custom Skill auch benutze
RPi2: Buster FHEM 5.9, FTUI, AMAD,10.1" Tablet; MiLight;IT;HM;Dect200;VZLogger

Offline cpet

  • Jr. Member
  • **
  • Beiträge: 88
Antw:alexa-fhem: amazon alexa smart home skill für fhem
« Antwort #4223 am: 05 März 2020, 22:55:31 »
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

Offline OppiM

  • Jr. Member
  • **
  • Beiträge: 55
Antw:alexa-fhem: amazon alexa smart home skill für fhem
« Antwort #4224 am: 24 März 2020, 17:37:21 »
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

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 1929
Antw:alexa-fhem: amazon alexa smart home skill für fhem
« Antwort #4225 am: 24 März 2020, 18:40:54 »
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
« Letzte Änderung: 24 März 2020, 18:48:34 von TomLee »

Offline OppiM

  • Jr. Member
  • **
  • Beiträge: 55
Antw:alexa-fhem: amazon alexa smart home skill für fhem
« Antwort #4226 am: 30 März 2020, 18:41:23 »
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

 

decade-submarginal