Hallo Zusammen,
ich nutze das Widget "Switch", um die Pool-Pumpe manuell an- und auszuschalten. Das funktioniert an sich auch super.
Aber sobald ich die Seite in TBUI neu lade, oder aus einem anderem Menü auf die Seite komme, wird mir der Status des Buttons grau angezeigt (siehe Screenshot). Er nach einem einmaligem betätigen des Buttons wird der Status mir richtig angezeigt (rot=aus / grün = an).
Mache ich was falsch oder ist das normal?
data-type="switch"
data-device="MQTT2_shelly1pm_68C63AFAD753"
data-set-states='["relay0 on","relay0 off"]'
data-states='["relay0 off","relay0 on"]'
data-icons='["fa-home", "fa-home"]'
data-background-colors='["red", "green"]'
class="bigger top-space">
Hallo,
mach mal
data-get="relay0"
dazu, vielleicht hilft das.
Gruß
Eisix
Hallo,
leider nein. Es gibt keine Veränderung.
data-type="switch"
data-device="MQTT2_shelly1pm_68C63AFAD753"
data-get="relay0"
data-set-states='["relay0 on","relay0 off"]'
data-states='["relay0 off","relay0 on"]'
data-icons='["fa-home", "fa-home"]'
data-background-colors='["red", "green"]'
class="bigger top-space">
Zitat von: M.Piet am 03 August 2020, 15:35:55
Hallo,
leider nein. Es gibt keine Veränderung.
data-type="switch"
data-device="MQTT2_shelly1pm_68C63AFAD753"
data-get="relay0"
data-set-states='["relay0 on","relay0 off"]'
data-states='["relay0 off","relay0 on"]'
data-icons='["fa-home", "fa-home"]'
data-background-colors='["red", "green"]'
class="bigger top-space">
Mach bitte mal ein list in fhem
list MQTT2_shelly1pm_68C63AFAD753
Sehr gern. :)
Internals:
CID shelly1pm_68C63AFAD753
DEF shelly1pm_68C63AFAD753
DEVICETOPIC MQTT2_shelly1pm_68C63AFAD753
FUUID 5ecec9f6-f33f-8a41-d4b0-28bcac58dc2c7241
IODev MQTT2_FHEM_Server
LASTInputDev MQTT2_FHEM_Server
MQTT2_FHEM_Server_MSGCNT 49277
MQTT2_FHEM_Server_TIME 2020-08-04 08:30:41
MSGCNT 49277
NAME MQTT2_shelly1pm_68C63AFAD753
NR 401
STATE on
TYPE MQTT2_DEVICE
READINGS:
2020-07-01 08:01:54 ext_temperature_0 16.4
2020-08-04 08:30:41 ext_temperature_1 19.6
2020-07-01 08:01:54 ext_temperature_f_0 61.6
2020-08-04 08:30:41 ext_temperature_f_1 67.2
2020-08-02 10:30:57 fw_ver 20200312-124223/v1.6.1@112262fd
2020-08-02 10:30:57 id shelly1pm-68C63AFAD753
2020-08-04 08:30:41 input0 0
2020-08-02 10:30:57 ip 192.168.92.51
2020-08-03 20:30:23 loadState on
2020-08-02 10:30:57 mac 68C63AFAD753
2020-08-02 10:30:57 new_fw true
2020-08-02 10:30:57 online true
2020-08-04 08:30:41 overtemperature 0
2020-08-04 08:30:41 relay0 on
2020-08-04 08:30:41 relay_0_energy 513274
2020-08-04 08:30:09 relay_0_energy_total 4455228
2020-08-04 08:30:41 relay_0_kWh 8.55
2020-08-04 08:30:41 relay_0_power 183.78
2020-08-04 08:30:41 state on
2020-08-04 08:30:41 temperature 41.43
2020-08-04 08:30:41 temperature_f 106.57
Attributes:
IODev MQTT2_FHEM_Server
comment To get appropriate loadState values: Change the default limit "100" in readingList to your needs.
devStateIcon {my $onl = ReadingsVal($name,"online","false") eq "false"?"10px-kreis-rot" : ReadingsVal($name,"new_fw","false") eq "true" ? "10px-kreis-gelb" : "10px-kreis-gruen";; my $light = ReadingsVal($name,"state","off");; my $cons = ReadingsVal($name,"relay_0_power","unknown");; my $total = ReadingsVal($name,"relay_0_kWh","unknown");; my $temp = ReadingsVal($name,"temperature","-100");;"<a href=\"http://".ReadingsVal($name,"ip","none")." \"target=\"_blank\">".FW_makeImage($onl)."</a> <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a><div>Verbrauch: $cons / Total: $total/ Temp: $temp °C</div>"}
event-on-change-reading .*
model shelly1_w_energy_meassuring
readingList shellies/shelly1pm-68C63AFAD753/relay/0:.* state
shellies/shelly1pm-68C63AFAD753/relay/0:.* relay0
shellies/shelly1pm-68C63AFAD753/input/0:.* input0
shellies/shelly1pm-68C63AFAD753/online:.* online
shellies/announce:.* { $EVENT =~ m,..id...shelly1pm-68C63AFAD753...mac.*, ? json2nameValue($EVENT) : undef }
shellies/shelly1pm-68C63AFAD753/announce:.* { json2nameValue($EVENT) }
shellies/shelly1pm-68C63AFAD753/relay/0/power:.* relay_0_power
shellies/shelly1pm-68C63AFAD753/relay/0/power:.* { my $compare = $EVTPART0 < 100 ? "off":"on"; ReadingsVal($NAME,"loadState","off") ne $compare ? { 'loadState' => $compare } : undef }
shellies/shelly1pm-68C63AFAD753/temperature:.* temperature
shellies/shelly1pm-68C63AFAD753/overtemperature:.* overtemperature
shellies/shelly1pm-68C63AFAD753/relay/0/energy:.* relay_0_energy
shellies/shelly1pm-68C63AFAD753/relay/0/energy:.* {'relay_0_kWh' => sprintf("%.2f",$EVENT/60/1000)}
shellies/shelly1pm-68C63AFAD753/longpush/0:.* longpush_0
shelly1pm_68C63AFAD753:shellies/shelly1pm-68C63AFAD753/ext_temperature/0:.* ext_temperature_0
shelly1pm_68C63AFAD753:shellies/shelly1pm-68C63AFAD753/ext_temperature_f/0:.* ext_temperature_f_0
shelly1pm_68C63AFAD753:shellies/shelly1pm-68C63AFAD753/ext_temperature/1:.* ext_temperature_1
shelly1pm_68C63AFAD753:shellies/shelly1pm-68C63AFAD753/ext_temperature_f/1:.* ext_temperature_f_1
shelly1pm_68C63AFAD753:shellies/shelly1pm-68C63AFAD753/temperature_f:.* temperature_f
room MQTT2_DEVICE,Pool
setList relay0:on,off,toggle shellies/shelly1pm-68C63AFAD753/relay/0/command $EVTPART1
off:noArg shellies/shelly1pm-68C63AFAD753/relay/0/command off
on:noArg shellies/shelly1pm-68C63AFAD753/relay/0/command on
x_update:noArg shellies/shelly1pm-68C63AFAD753/command update_fw
x_mqttcom shellies/shelly1pm-68C63AFAD753/command $EVTPART1
userReadings relay_0_energy_total:relay_0_energy:.* monotonic {ReadingsNum("$name","relay_0_energy",0)}
webCmd :
Zitat von: M.Piet am 04 August 2020, 08:32:38
Sehr gern. :)
Internals:
CID shelly1pm_68C63AFAD753
DEF shelly1pm_68C63AFAD753
DEVICETOPIC MQTT2_shelly1pm_68C63AFAD753
FUUID 5ecec9f6-f33f-8a41-d4b0-28bcac58dc2c7241
IODev MQTT2_FHEM_Server
LASTInputDev MQTT2_FHEM_Server
MQTT2_FHEM_Server_MSGCNT 49277
MQTT2_FHEM_Server_TIME 2020-08-04 08:30:41
MSGCNT 49277
NAME MQTT2_shelly1pm_68C63AFAD753
NR 401
STATE on
TYPE MQTT2_DEVICE
READINGS:
2020-07-01 08:01:54 ext_temperature_0 16.4
2020-08-04 08:30:41 ext_temperature_1 19.6
2020-07-01 08:01:54 ext_temperature_f_0 61.6
2020-08-04 08:30:41 ext_temperature_f_1 67.2
2020-08-02 10:30:57 fw_ver 20200312-124223/v1.6.1@112262fd
2020-08-02 10:30:57 id shelly1pm-68C63AFAD753
2020-08-04 08:30:41 input0 0
2020-08-02 10:30:57 ip 192.168.92.51
2020-08-03 20:30:23 loadState on
2020-08-02 10:30:57 mac 68C63AFAD753
2020-08-02 10:30:57 new_fw true
2020-08-02 10:30:57 online true
2020-08-04 08:30:41 overtemperature 0
2020-08-04 08:30:41 relay0 on
2020-08-04 08:30:41 relay_0_energy 513274
2020-08-04 08:30:09 relay_0_energy_total 4455228
2020-08-04 08:30:41 relay_0_kWh 8.55
2020-08-04 08:30:41 relay_0_power 183.78
2020-08-04 08:30:41 state on
2020-08-04 08:30:41 temperature 41.43
2020-08-04 08:30:41 temperature_f 106.57
Attributes:
IODev MQTT2_FHEM_Server
comment To get appropriate loadState values: Change the default limit "100" in readingList to your needs.
devStateIcon {my $onl = ReadingsVal($name,"online","false") eq "false"?"10px-kreis-rot" : ReadingsVal($name,"new_fw","false") eq "true" ? "10px-kreis-gelb" : "10px-kreis-gruen";; my $light = ReadingsVal($name,"state","off");; my $cons = ReadingsVal($name,"relay_0_power","unknown");; my $total = ReadingsVal($name,"relay_0_kWh","unknown");; my $temp = ReadingsVal($name,"temperature","-100");;"<a href=\"http://".ReadingsVal($name,"ip","none")." \"target=\"_blank\">".FW_makeImage($onl)."</a> <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a><div>Verbrauch: $cons / Total: $total/ Temp: $temp °C</div>"}
event-on-change-reading .*
model shelly1_w_energy_meassuring
readingList shellies/shelly1pm-68C63AFAD753/relay/0:.* state
shellies/shelly1pm-68C63AFAD753/relay/0:.* relay0
shellies/shelly1pm-68C63AFAD753/input/0:.* input0
shellies/shelly1pm-68C63AFAD753/online:.* online
shellies/announce:.* { $EVENT =~ m,..id...shelly1pm-68C63AFAD753...mac.*, ? json2nameValue($EVENT) : undef }
shellies/shelly1pm-68C63AFAD753/announce:.* { json2nameValue($EVENT) }
shellies/shelly1pm-68C63AFAD753/relay/0/power:.* relay_0_power
shellies/shelly1pm-68C63AFAD753/relay/0/power:.* { my $compare = $EVTPART0 < 100 ? "off":"on"; ReadingsVal($NAME,"loadState","off") ne $compare ? { 'loadState' => $compare } : undef }
shellies/shelly1pm-68C63AFAD753/temperature:.* temperature
shellies/shelly1pm-68C63AFAD753/overtemperature:.* overtemperature
shellies/shelly1pm-68C63AFAD753/relay/0/energy:.* relay_0_energy
shellies/shelly1pm-68C63AFAD753/relay/0/energy:.* {'relay_0_kWh' => sprintf("%.2f",$EVENT/60/1000)}
shellies/shelly1pm-68C63AFAD753/longpush/0:.* longpush_0
shelly1pm_68C63AFAD753:shellies/shelly1pm-68C63AFAD753/ext_temperature/0:.* ext_temperature_0
shelly1pm_68C63AFAD753:shellies/shelly1pm-68C63AFAD753/ext_temperature_f/0:.* ext_temperature_f_0
shelly1pm_68C63AFAD753:shellies/shelly1pm-68C63AFAD753/ext_temperature/1:.* ext_temperature_1
shelly1pm_68C63AFAD753:shellies/shelly1pm-68C63AFAD753/ext_temperature_f/1:.* ext_temperature_f_1
shelly1pm_68C63AFAD753:shellies/shelly1pm-68C63AFAD753/temperature_f:.* temperature_f
room MQTT2_DEVICE,Pool
setList relay0:on,off,toggle shellies/shelly1pm-68C63AFAD753/relay/0/command $EVTPART1
off:noArg shellies/shelly1pm-68C63AFAD753/relay/0/command off
on:noArg shellies/shelly1pm-68C63AFAD753/relay/0/command on
x_update:noArg shellies/shelly1pm-68C63AFAD753/command update_fw
x_mqttcom shellies/shelly1pm-68C63AFAD753/command $EVTPART1
userReadings relay_0_energy_total:relay_0_energy:.* monotonic {ReadingsNum("$name","relay_0_energy",0)}
webCmd :
Probier es mal so:
data-type="switch"
data-device="MQTT2_shelly1pm_68C63AFAD753"
data-cmd="setreading"
data-set-states='["relay0 on","relay0 off"]'
data-get="relay0"
data-states='["off","on"]'
data-icons='["fa-home", "fa-home"]'
data-background-colors='["red", "green"]'
class="bigger top-space"
Zitat von: TWART016 am 04 August 2020, 14:10:27
Probier es mal so:
...
Hey, sorry für die späte Rückmeldung.
Habe es grad eben so umgesetzt und es geht. :) Danke dir.
Aber...ich habe mir die Unterschiede angeschaut. Ich verstehe nicht warum es so geht und mit meiner Variante nicht.
Mit data-get="relay0"
data-states='["relay0 off","relay0 on"]'
guckst Du ob das Reading relay0 den Wert "relay0 on" oder "relay0 off" hat. Im Reading relay0 steht aber "on" oder "off" ohne das zusätzlich Wort "relay0"
Mit data-set-states='["relay0 on","relay0 off"]'
steuerst Du dein Gerät mit "set xxx relay0 on" und "set xxx relay0 off", abhängig von was oben gelesen wurde.
Mit data-get="relay0"
data-states='["off","on"]'
liest TWART im Reading relay0 die Werte "on" oder "off"
und mitdata-cmd="setreading"
data-set-states='["relay0 on","relay0 off"]'
steuert er mit "setreading xxx relay0 on"
Super, danke für die Ausführliche Antwort! :) Jetzt habe ich es prima verstanden.