FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: schally am 10 September 2021, 21:12:35

Titel: Shelly 2.5 relay_0 und 1 definieren als WebCMD
Beitrag von: schally am 10 September 2021, 21:12:35
Hallo ,

ich habe einen Shelly 2.5 als Relay in Fhem eingebunden das hat auch alles soweit geklappt.
Dieser Shelly schaltet auf der Terrasse einmal die Überdachung und einmal den Weg ein.
Das klappt auch alles soweit wenn ich es mit :

Zitat
"Wegbeleuchtung"
set Shelly_Licht_Terrasse on 0
set Shelly_Licht_Terrasse off 0

"Terrassendach"
set Shelly_Licht_Terrasse on 1
set Shelly_Licht_Terrasse off 1

manuel ein- bzw- ausschalte.

Ich wollte mir ein WebCmd erstellen mit dem ich mir einmal den Weg und die Überdachung ein-bzw. ausschalten kann.

Leider klappt das nicht.

Hier noch der list:
Zitat
Internals:
   DEF        192.168.2.31
   DURATION   0
   FUUID      613b3823-f33f-ac3f-514c-a036815ebb5fedc4
   INTERVAL   60
   NAME       Shelly_Licht_Terrasse
   NR         33
   SHELLYID   shellyswitch25-3C6105E4D5C5
   STATE      OK
   TCPIP      192.168.2.31
   TYPE       Shelly
   READINGS:
     2021-09-10 13:34:22   cloud           enabled(connected)
     2021-09-10 21:36:48   energy_0        7.2
     2021-09-10 21:14:04   energy_1        0.8
     2021-09-10 13:34:22   firmware        v1.11.4
     2021-09-10 13:34:22   network         <html>connected to <a href="http://192.168.2.31">192.168.2.31</a></html>
     2021-09-10 21:35:46   overpower_0     0
     2021-09-10 13:34:22   overpower_1     0
     2021-09-10 21:35:48   power_0         0
     2021-09-10 13:34:22   power_1         0
     2021-09-10 21:35:46   relay_0         off
     2021-09-10 13:34:22   relay_1         off
     2021-09-10 21:35:46   state           OK
Attributes:
   alexaName  Terrasse
   defchannel 0
   mode       relay
   model      shelly2.5
   room       11_Terrasse

Titel: Antw: Shelly 2.5 relay_0 und 1 definieren als WebCMD
Beitrag von: Beta-User am 10 September 2021, 21:52:59
Werfe mal eher ein mehrzeiliges stateFormat + devStateIcon in den Raum.
Für Shelly@Shelly kann ich nicht helfen, aber hier mal die "unified" Variante eines Tasmota, da heißen die Kanal-Setter (und Readings) halt POWERn:
attr DEVICE webCmd POWER1 on:POWER1 off:POWER2 on:POWER2 off
attr DEVICE devStateIcon Online:10px-kreis-gruen Offline:10px-kreis-rot 1.on:on:POWER1+off 1.off:off:POWER1+on 2.on:on:POWER2+off 2.off:off:POWER2+on
attr DEVICE stateFormat LWT\
1:POWER1\
2:POWER2\

LWT kannst du ignorieren, ist auch ein Reading, das Online oder Offline sein kann
Titel: Antw: Shelly 2.5 relay_0 und 1 definieren als WebCMD
Beitrag von: Helmi55 am 11 September 2021, 10:25:58
Servus so sieht meine Config aus - Poolwandbeleuchtung und Deko Terrasse (für WB)
defmod Poolwandbeleuchtung MQTT2_DEVICE shellyswitch25_98F4ABF35DA6
attr Poolwandbeleuchtung IODev myBrokerHaus
attr Poolwandbeleuchtung alias Poolwandbeleuchtung
attr Poolwandbeleuchtung comment To get appropriate loadState values: Change the default limit "100" in readingList to your needs.
attr Poolwandbeleuchtung 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>"}
attr Poolwandbeleuchtung genericDeviceType switch
attr Poolwandbeleuchtung model shelly1_w_energy_measuring
attr Poolwandbeleuchtung readingList shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/relay/0:.* state\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/relay/0:.* relay0\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/input/0:.* input0\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/online:.* online\
  shellies/announce:.* { $EVENT =~ m,..id...WhirlyBeleuchtung_switch25-98F4ABF35DA6...mac.*, ? json2nameValue($EVENT) : return }\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/announce:.* { json2nameValue($EVENT) }\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/relay/0/power:.* relay_0_power\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/relay/0/power:.* { my $compare = $EVTPART0 < 100 ? "off":"on";; ReadingsVal($NAME,"loadState","off") ne $compare ? { 'loadState' => $compare } : return }\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/temperature:.* temperature\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/temperature_f:.* temperature_f\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/input_event/0:.* { json2nameValue($EVENT) }\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/overtemperature:.* overtemperature\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/relay/0/energy:.* relay_0_energy\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/relay/0/energy:.* {'relay_0_kWh' => sprintf("%.2f",$EVENT/60/1000)}\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/longpush/0:.* longpush_0\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/relay/0:.* relay_0\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/relay/0/power:.* relay_0_power\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/relay/0/energy:.* relay_0_energy\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/relay/1:.* relay_1\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/relay/1/power:.* relay_1_power\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/relay/1/energy:.* relay_1_energy\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/input/0:.* input_0\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/input_event/0:.* { json2nameValue($EVENT) }\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/input/1:.* input_1\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/input_event/1:.* { json2nameValue($EVENT) }\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/temperature:.* temperature\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/temperature_f:.* temperature_f\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/overtemperature:.* overtemperature\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/online:.* online\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/announce:.* { json2nameValue($EVENT) }\
shellyswitch25_98F4ABF35DA6:shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/:.* WhirlyBeleuchtung_switch25-98F4ABF35DA6\
shellyswitch25_98F4ABF35DA6:shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/temperature_status:.* temperature_status\
shellyswitch25_98F4ABF35DA6:shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/voltage:.* voltage
attr Poolwandbeleuchtung room MQTT2_DEVICE
attr Poolwandbeleuchtung setList relay0:on,off,toggle shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/relay/0/command $EVTPART1\
  toggle:noArg shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/relay/0/command toggle\
  off:noArg shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/relay/0/command off\
  on:noArg shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/relay/0/command on\
  x_update:noArg shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/command update_fw\
  x_mqttcom shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/command $EVTPART1
attr Poolwandbeleuchtung setStateList on off
attr Poolwandbeleuchtung userReadings relay_0_energy_kWh monotonic { ReadingsVal("Poolwandbeleuchtung","relay_0_energy",0)/60/1000.0}, Kosten {ReadingsVal("Poolwandbeleuchtung","relay_0_energy_kWh",0)*.04 ." €"}
attr Poolwandbeleuchtung webCmd :

setstate Poolwandbeleuchtung off
setstate Poolwandbeleuchtung 2021-09-11 10:15:56 IODev myBrokerHaus
setstate Poolwandbeleuchtung 2021-09-11 10:24:01 Kosten 0.062534666666668 €
setstate Poolwandbeleuchtung 2021-09-10 15:22:22 WhirlyBeleuchtung_switch25-98F4ABF35DA6 {"id":"WhirlyBeleuchtung_switch25-98F4ABF35DA6","model":"SHSW-25","mac":"98F4ABF35DA6","ip":"10.0.0.110","new_fw":true,"fw_ver":"20210720-184734/v1.11.0-g6abd92e","mode":"relay"}
setstate Poolwandbeleuchtung 2021-09-07 15:55:30 event
setstate Poolwandbeleuchtung 2021-09-07 15:55:30 event_cnt 0
setstate Poolwandbeleuchtung 2021-09-11 10:24:00 input0 0
setstate Poolwandbeleuchtung 2021-09-02 10:21:08 online false
setstate Poolwandbeleuchtung 2021-09-11 10:24:00 overtemperature 0
setstate Poolwandbeleuchtung 2021-09-11 10:24:00 relay0 off
setstate Poolwandbeleuchtung 2021-09-11 10:24:00 relay_0_energy 29567
setstate Poolwandbeleuchtung 2021-09-11 10:24:01 relay_0_energy_kWh 1.5633666666667
setstate Poolwandbeleuchtung 2021-09-11 10:24:00 relay_0_kWh 0.49
setstate Poolwandbeleuchtung 2021-09-11 10:24:00 relay_0_power 0.00
setstate Poolwandbeleuchtung 2021-09-11 10:24:00 state off
setstate Poolwandbeleuchtung 2021-09-11 10:24:00 temperature 45.11
setstate Poolwandbeleuchtung 2021-09-11 10:24:00 temperature_f 113.20
setstate Poolwandbeleuchtung 2021-09-11 10:24:00 temperature_status Normal
setstate Poolwandbeleuchtung 2021-09-11 10:24:01 voltage 234.75



und

defmod Deko_Terrasse MQTT2_DEVICE shellyswitch25_98F4ABF35DA6
attr Deko_Terrasse IODev myBrokerHaus
attr Deko_Terrasse alias Deko_Terrasse
attr Deko_Terrasse comment Channel 2 for MQTT2_shellyswitch25_98F4ABF35DA6
attr Deko_Terrasse 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_1_power","unknown");; my $temp = ReadingsVal($name,"temperature","-100");;"<div><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> Aktuell: $cons W / Temp.: $temp °C<b></b>"}
attr Deko_Terrasse genericDeviceType switch
attr Deko_Terrasse model shelly25_split
attr Deko_Terrasse readingList shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/relay/1:.* state\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/relay/1:.* relay1\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/input/1:.* input1\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/online:.* online\
  shellies/announce:.* { $EVENT =~ m,..id...WhirlyBeleuchtung_switch25-98F4ABF35DA6...mac.*, ? json2nameValue($EVENT) : return }\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/announce:.* { json2nameValue($EVENT) }\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/relay/1/power:.* relay_1_power\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/relay/1/power:.* { my $compare = $EVTPART0 < 100 ? "off":"on";; ReadingsVal($NAME,"loadState","off") ne $compare ? { 'loadState' => $compare } : return }\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/temperature:.* temperature\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/overtemperature:.* overtemperature\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/temperature_f:.* temperature_f\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/relay/1/energy:.* relay_1_energy\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/relay/1/energy:.* {'relay_1_kWh' => sprintf("%.2f",$EVENT/60/1000)}\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/longpush/1:.* longpush_1\
  shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/input_event/1:.* { json2nameValue($EVENT) }\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/relay/0:.* relay_0\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/relay/0/power:.* relay_0_power\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/relay/0/energy:.* relay_0_energy\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/relay/1:.* relay_1\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/relay/1/power:.* relay_1_power\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/relay/1/energy:.* relay_1_energy\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/input/0:.* input_0\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/input_event/0:.* { json2nameValue($EVENT) }\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/input/1:.* input_1\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/input_event/1:.* { json2nameValue($EVENT) }\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/temperature:.* temperature\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/temperature_f:.* temperature_f\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/overtemperature:.* overtemperature\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/online:.* online\
shellyswitch25_98F4ABF35DA6:shellies/shellyswitch25-98F4ABF35DA6/announce:.* { json2nameValue($EVENT) }\
shellyswitch25_98F4ABF35DA6:shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/:.* WhirlyBeleuchtung_switch25-98F4ABF35DA6\
shellyswitch25_98F4ABF35DA6:shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/temperature_status:.* temperature_status\
shellyswitch25_98F4ABF35DA6:shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/voltage:.* voltage
attr Deko_Terrasse room MQTT2_DEVICE
attr Deko_Terrasse setList off:noArg shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/relay/1/command off\
  on:noArg shellies/WhirlyBeleuchtung_switch25-98F4ABF35DA6/relay/1/command on
attr Deko_Terrasse userReadings relay_0_energy_kWh monotonic { ReadingsVal("Deko_Terrasse","relay_0_energy",0)/60/1000.0}, Kosten {ReadingsVal("Deko_Terrasse","relay_0_energy_kWh",0)*.06 ." €"}

setstate Deko_Terrasse off
setstate Deko_Terrasse 2021-09-07 15:54:48 IODev myBrokerHaus
setstate Deko_Terrasse 2021-09-11 10:25:01 Kosten 0 €
setstate Deko_Terrasse 2021-09-10 15:22:22 WhirlyBeleuchtung_switch25-98F4ABF35DA6 {"id":"WhirlyBeleuchtung_switch25-98F4ABF35DA6","model":"SHSW-25","mac":"98F4ABF35DA6","ip":"10.0.0.110","new_fw":true,"fw_ver":"20210720-184734/v1.11.0-g6abd92e","mode":"relay"}
setstate Deko_Terrasse 2021-09-07 15:55:30 event
setstate Deko_Terrasse 2021-09-07 15:55:30 event_cnt 0
setstate Deko_Terrasse 2021-09-11 10:25:00 input1 0
setstate Deko_Terrasse 2021-09-06 13:56:09 loadState off
setstate Deko_Terrasse 2021-09-02 10:21:08 online false
setstate Deko_Terrasse 2021-09-11 10:25:00 overtemperature 0
setstate Deko_Terrasse 2021-09-11 10:25:00 relay1 off
setstate Deko_Terrasse 2021-09-11 10:25:01 relay_0_energy_kWh 0
setstate Deko_Terrasse 2021-09-11 10:25:00 relay_1_energy 45015
setstate Deko_Terrasse 2021-09-11 10:25:00 relay_1_kWh 0.75
setstate Deko_Terrasse 2021-09-11 10:25:00 relay_1_power 0.00
setstate Deko_Terrasse 2021-09-11 10:25:00 state off
setstate Deko_Terrasse 2021-09-11 10:25:00 temperature 45.11
setstate Deko_Terrasse 2021-09-11 10:25:00 temperature_f 113.20
setstate Deko_Terrasse 2021-09-11 10:25:01 temperature_status Normal
setstate Deko_Terrasse 2021-09-11 10:25:01 voltage 233.76



Hoffe es hilft weiter

LG
Helmut
Titel: Antw: Shelly 2.5 relay_0 und 1 definieren als WebCMD
Beitrag von: Prof. Dr. Peter Henning am 17 September 2021, 19:40:58
Einfach mal die Commandref lesen:

Zitatset <name> xtrachannels
create readingsProxy devices for switching device with more than one channel

LG

pah