[gelöst] Alexa Connector und Shelly-Dimmer

Begonnen von JWRu, 11 Dezember 2020, 11:14:09

Vorheriges Thema - Nächstes Thema

JWRu

Ich habe ein kleines (zugegebenermaßen eher kosmetisches) Problem mit dem Shelly Dimmer 2.
Eigentlich klappt die Steuerung des Dimmer mit Alexa sehr gut: Ich kann den Dimmer ein und ausschalten und den Dimmgrad einstellen.
Lediglich der Status des Dimmers wird in der Alexa-App falsch dargestellt: Die App zeigt immer "Der Strom ist an", auch wenn der Dimmer ausgeschaltet wird.
Liegt das vielleicht daran, dass beim Dimmer der Dimmgrad unabhängig vom Einschaltzustand verändert werden kann?
Ich muss auch immer den Dimmer explizit einschalten, der Befehl "Tischlampe auf xx Prozent" schaltet den Dimmer nicht ein.
Hier mal ein List des Dimmers:
Internals:
   DEF        XXX.XXX.XXX.XX
   DURATION   0
   FUUID      5fc39285-f33f-c1fa-f526-bd6f244ad1f22a35
   INTERVAL   60
   NAME       ShellyDimmer01
   NR         354
   STATE      off 50
   TCPIP      XXX.XXX.XXX.XX
   TYPE       Shelly
   Helper:
     DBLOG:
       button_:
         myDbLog:
           TIME       1607005901.47247
           VALUE      off
       config:
         myDbLog:
           TIME       1606836310.2145
           VALUE      power= [channel 0]
       energy:
         myDbLog:
           TIME       1607671808.17592
           VALUE      453.2
       network:
         myDbLog:
           TIME       1607627069.58326
           VALUE      <html>connected to <a href="http://XXX.XXX.XXX.XX">XXX.XXX.XXX.XX</a></html>
       pct:
         myDbLog:
           TIME       1607623161.71776
           VALUE      50
       power:
         myDbLog:
           TIME       1607671808.17592
           VALUE      0
       state:
         myDbLog:
           TIME       1607671748.02803
           VALUE      off
   OLDREADINGS:
   READINGS:
     2020-12-03 15:31:41   button_         off
     2020-11-30 10:46:45   cloud           disabled
     2020-12-11 08:30:08   energy          453.2
     2020-11-30 10:46:45   firmware        v1.9.0
     2020-12-10 20:04:29   network         <html>connected to <a href="http://XXX.XXX.XXX.XX">XXX.XXX.XXX.XX</a></html>
     2020-12-10 18:59:21   pct             50
     2020-12-11 08:30:08   power           0
     2020-12-11 08:29:08   state           off
Attributes:
   alexaName  Tischlampe
   alias      Tischlampe
   cmdIcon    on:general_an@green off:general_aus@red
   devStateIcon off.*:light_light_dim_00@red on.9\d.*:light_light_dim_90@green on.8\d.*:light_light_dim_80@green on.7\d.*:light_light_dim_70@green
on.6\d.*:light_light_dim_60@green on.5\d.*:light_light_dim_50@green  on.4\d.*:light_light_dim_40@green
on.3\d.*:light_light_dim_30@green  on.2\d.*:light_light_dim_20@green  on.100:light_light_dim_100@green
   group      Licht
   icon       light_light_dim_100
   interval   60
   model      shellydimmer
   room       Esszimmer,Licht,System->Alexa,System->Protokolle->Shelly
   stateFormat state pct
   widgetOverride pct:slider,0,10,100 devStateIcon:textField-long
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

amenomade

Zeig bitte die alexa-fhem Log bei Erkennung des Devices (z.B. bei "set alexadevice reload")
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

JWRu

#2
Das sind die Ausschnitte aus dem Log:
[2020-12-11 22:23:01] [FHEM] ShellyDimmer01 is light
[2020-12-11 22:23:01] [FHEM] ShellyDimmer01 has
[2020-12-11 22:23:01] [FHEM]   On [pct;on,off]
[2020-12-11 22:23:01] [FHEM]   Brightness [pct]
[2020-12-11 22:23:01] [FHEM]   Custom Power [power]
[2020-12-11 22:23:01] [FHEM]   Custom Energy [energy]
[2020-12-11 22:23:01] [FHEM]   FirmwareRevision [firmware]
[2020-12-11 22:23:01] [FHEM] ShellyDimmer01 will not send proactive events
[2020-12-11 22:23:01] [FHEM] ShellyDimmer01 uses ID: 5fc39285-f33f-c1fa-f526-bd6f244ad1f22a35
[2020-12-11 22:23:01] [FHEM]     caching: Custom Power: 0 (as number; from '0')
[2020-12-11 22:23:01] [FHEM]     caching: Custom Energy: 553.4 (as number; from '553.4')


ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

amenomade

Hmmm. Also ja, das liegt wahrscheinlich daran, dass "beim Dimmer der Dimmgrad unabhängig vom Einschaltzustand verändert werden kann"
Und dass "pct" zu On Characteristic gehört, kann  auch den falschen Zustand erklären.

Du musst wahrscheinlich dein eigenes homeBridgeMapping bauen.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

JWRu

ZitatDu musst wahrscheinlich dein eigenes homeBridgeMapping bauen.
Ich werde das mal versuchen.
Ich musste schon etwas am stateFormat basteln, damit ich ein schönes devStateIcon hinkriege.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

JWRu

Ich denke mal, das ist das Problem:
On [pct;on,off]
Alexa nimmt an, dass die Lampe an ist, wenn pct > 0 ist.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

amenomade

Ja, das meinte ich mit
ZitatUnd dass "pct" zu On Characteristic gehört, kann  auch den falschen Zustand erklären.

Ich würde etwas in der Art versuchen:
clear On=state,valueOff=off,cmdOff=off,cmdOn=on Brightness=pct

Somit sollte theoretisch mind. den Status ordentlich gesetzt werden.

Das einzige Problem: ich weiss nicht wie man 2 unterschiedliche Kommandos (on oder pct) als cmd definieren kann, damit pct auch das Licht einschaltet. Ggf kann man das direkt in Fhem verbinden (notify o.ä.), wenn Du nicht brauchst, dass die Helligkeit unabhängig vom Status gesetzt werden kann.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

JWRu

#7
ZitatIch würde etwas in der Art versuchen:
clear On=state,valueOff=off,cmdOff=off,cmdOn=on Brightness=pct
Das hat das Problem gelöst:
clear On=state,valueOff=off,cmdOff=off,cmdOn=on Brightness=pct::pct

Das Einschalten vor dem Dimmen kann ich eventuell mit einem cmdalias für pct lösen.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

JWRu

Update:
Ich habe das Einschalten vor dem Dimmen mit einem cmdalias "pctx" gelöst:
define c_ShellyDim cmdalias set ShellyDimmer.* pctx .* AS { fhem("set $EVTPART0 on;; set $EVTPART0 pct $EVTPART2") }
Das Homebridge Mapping sieht dann so aus:
clear On=state,valueOff=off,cmdOff=off,cmdOn=on Brightness=pctx::pct
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

lullebammel

Hi JWRu,

ich habe genau das gleiche Problem wie du.
Der Shelly Dimmer lässt sich wunderbar Einschalten und Dimmen.
Leider nur separat.

Ich verstehe leider dein cmdalias nicht.
Kannst du es mir bitte etwas erklären, so das ich es auf mein Szenario anpassen kann?!

Auszug aus der fhem.cfg
define myShelly Shelly 192.168.2.85
setuuid myShelly 60a82f46-f33f-9cb4-099a-7ea15d09b2b430eb
attr myShelly alexaName Esstischlampe
attr myShelly homebridgeMapping clear On=state,valueOff=off,cmdOff=off,cmdOn=on Brightness=pctx::pct
attr myShelly model shellydimmer

Das funktioniert nicht:
define c_ShellyDim cmdalias set myShelly pctx .* AS { fhem("set $EVTPART0 on;; set $EVTPART0 pct $EVTPART2") }
Ohne Tweak kein Sieg!
Raspberry Pi Model B, COC, HM-CFGLAN Adapter, Intertechno IT-1500,ITR-3500 , Home Easy HE808S, HM-CC-RT-DN, HM-TC-IT-WM-W-EU, HM-LC-BI1-FM, HM-PB-2-WM552, HM-LC-Sw2-FM, HM-LC-Sw1-FM, DS18B20

JWRu

ZitatDas funktioniert nicht:
define c_ShellyDim cmdalias set myShelly pctx .* AS { fhem("set $EVTPART0 on;; set $EVTPART0 pct $EVTPART2") }

Was heißt das? Wird der cmdalias nicht angelegt? Gibt es eine Fehlermeldung beim define?
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

chrisse111179

Zitat von: JWRu am 12 Dezember 2020, 15:05:13
Update:
Ich habe das Einschalten vor dem Dimmen mit einem cmdalias "pctx" gelöst:
define c_ShellyDim cmdalias set ShellyDimmer.* pctx .* AS { fhem("set $EVTPART0 on;; set $EVTPART0 pct $EVTPART2") }
Das Homebridge Mapping sieht dann so aus:
clear On=state,valueOff=off,cmdOff=off,cmdOn=on Brightness=pctx::pct

Hallo, ich habe einen Shelly Dimmer und das funktioniert so für mich. Danke erstmal!
Muss ich das für jeden weiteren Dimmer neu anlegen?
Viele Grüße,
Christian

JWRu

#12
ZitatMuss ich das für jeden weiteren Dimmer neu anlegen?
Das hängt von den Namen der Dimmer ab. Der cmdalias gilt für alle Dimmer, deren Name mit dem RegEx im define matcht - also in meinem Beispiel für ShellyDimmer01, ShellyDimmer02, ShellyDimmerA, ShellyDimmerB etc.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

chrisse111179

Guten Morgen,
super, ich hatte mir das so fast gedacht.
Danke für die Antwort!
Viele Grüße,
Christian