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
Zeig bitte die alexa-fhem Log bei Erkennung des Devices (z.B. bei "set alexadevice reload")
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')
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.
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.
Ich denke mal, das ist das Problem:
On [pct;on,off]
Alexa nimmt an, dass die Lampe an ist, wenn pct > 0 ist.
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.
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.
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
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") }
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?
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
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.
Guten Morgen,
super, ich hatte mir das so fast gedacht.
Danke für die Antwort!
Viele Grüße,
Christian