Moin nach stundenlanger Bastelei hab ich es hinbekommen einen T1 mit 3 Relais (mit Tasmota) in der Fhem Weboberfläche über 3 verschiedene Icons zu schalten.
Sieht dann so aus: Anhang
Nun zum Code:
Als MQTT2 Device definieren (wenn nicht schon durch autocreate erledigt)
defmod MQTT2_Hof_Wasser_Roboter_Licht MQTT2_DEVICE Hof_Wasser_Roboter_Licht
attr MQTT2_Hof_Wasser_Roboter_Licht DbLogExclude .*
attr MQTT2_Hof_Wasser_Roboter_Licht IODev MQTT2broker
attr MQTT2_Hof_Wasser_Roboter_Licht alias Garten: Sprengler | RasenRoboter | Pavilion-LEDStripe
attr MQTT2_Hof_Wasser_Roboter_Licht icon mqtt
Die readinglist anlegen
readingList
Hof_Wasser_Roboter_Licht:/SmartHome/Interface/Hof_Wasser_Roboter_Licht/tele/LWT:.* LWT
Hof_Wasser_Roboter_Licht:/SmartHome/Interface/Hof_Wasser_Roboter_Licht/tele/INFO1:.* { json2nameValue($EVENT) }
Hof_Wasser_Roboter_Licht:/SmartHome/Interface/Hof_Wasser_Roboter_Licht/tele/INFO2:.* { json2nameValue($EVENT) }
Hof_Wasser_Roboter_Licht:/SmartHome/Interface/Hof_Wasser_Roboter_Licht/tele/INFO3:.* { json2nameValue($EVENT) }
Hof_Wasser_Roboter_Licht:/SmartHome/Interface/Hof_Wasser_Roboter_Licht/stat/RESULT:.* { json2nameValue($EVENT) }
Hof_Wasser_Roboter_Licht:/SmartHome/Interface/Hof_Wasser_Roboter_Licht/stat/POWER1:.* POWER1
Hof_Wasser_Roboter_Licht:/SmartHome/Interface/Hof_Wasser_Roboter_Licht/stat/POWER2:.* POWER2
Hof_Wasser_Roboter_Licht:/SmartHome/Interface/Hof_Wasser_Roboter_Licht/stat/POWER3:.* POWER3
Hof_Wasser_Roboter_Licht:/SmartHome/Interface/Hof_Wasser_Roboter_Licht/tele/STATE:.* { json2nameValue($EVENT) }
Die Kommandos anlegen
setList
1-an:noArg /SmartHome/Interface/Hof_Wasser_Roboter_Licht/cmnd/power1 1
1-aus:noArg /SmartHome/Interface/Hof_Wasser_Roboter_Licht/cmnd/power1 0
2-an:noArg /SmartHome/Interface/Hof_Wasser_Roboter_Licht/cmnd/power2 1
2-aus:noArg /SmartHome/Interface/Hof_Wasser_Roboter_Licht/cmnd/power2 0
3-an:noArg /SmartHome/Interface/Hof_Wasser_Roboter_Licht/cmnd/power3 1
3-aus:noArg /SmartHome/Interface/Hof_Wasser_Roboter_Licht/cmnd/power3 0
Dann 3 UserReadings anlegen, damit statt 3xON oder 3xOFF. nun 1ON,2ON,3ON,1OFF,2OFF,3OFF oder Kombinationen daraus für unsere Icons enstehen
die Kommas nach der 1. und 2. Zeile nicht vergessen!
userReadings
Icon1 {"1". ReadingsVal("$name","POWER1",0) ;;},
Icon2 {"2". ReadingsVal("$name","POWER2",0) ;;},
Icon3 {"3". ReadingsVal("$name","POWER3",0) ;;}
Jetzt die Icons festlegen Format: Wert:Icon:Befehl Leerzeichen Wert:Icon:Befehl Leerzeichen usw.
devStateIcon
Online:10px-kreis-gruen Offline:10px-kreis-rot
1ON:sani_water_tap@#BD5827:1-aus 1OFF:sani_water_tap:1-an
2ON:scene_robo_lawnmower@#BD5827:2-aus 2OFF:scene_robo_lawnmower:2-an
3ON:light_led_stripe@#BD5827:3-aus 3OFF:light_led_stripe:3-an
Nun das stateFormat anpassen. Darauf achten das keine Leerzeichen am Anfang oder vor den Zeilenumbrüchen stehen.
stateFormat
LWT
<a href="http://IPAddress" target="_blank">IPAddress</a>
Icon1
Icon2
Icon3
Der grüne Punkt zeigt das der schalter online ist.
Die aktuelle IP kann man klicken um in einem neuen Browserfenster die Tasmota webgui zu öffnen.
Und mit den 3 Icons kann mann die Schaltzustände sehen und per klick wie gewohnt ändern.
Ich hoffe dem einem oder anderen hilft es.
Schön, dass das geklappt hat.
Einen Teil der Arbeit hättest du dir vermutlich sparen können, wenn du das attrTemplate "tasmota_4ch_unified_icon" als Basis genutzt hättest, vielleicht schaust du beim nächsten Device, was es ggf. als passende Basis dazu schon gibt ;) .
(Unklar ist mir allerdings, was das mit dem Forenbereich "Beleuchtung" zu tun hat...)
Also bei mir geht das direkt im devStateIcon und stateFormat ohne zusätzliche userReadings.
Hier am Beispiel mit einem sonoff dual:
Internals:
CFGFN ./FHEM/fhem.mqtt2.cfg
CID sonoffdualR2
DEF sonoffdualR2
DEVICETOPIC MQTT2_sonoffdualR2
FUUID 5c455979-f33f-ffe7-1032-c86d551089617a3b
IODev m2s
LASTInputDev m2s
MSGCNT 97
NAME MQTT2_sonoffdualR2
NR 718
STATE Online
stehlampe-4159
Tasmota Revision:
6.6.0.12(e4ab7eb-sonoff)
1:off
2:on
TYPE MQTT2_DEVICE
m2s_MSGCNT 97
m2s_TIME 2019-10-16 14:45:11
.attraggr:
.attrminint:
READINGS:
2019-09-20 00:31:35 Epoch 1568932296
2019-09-22 22:38:46 FallbackTopic cmnd/sonoffdualR2_fb/
2019-09-28 15:15:56 FriendlyName1 stehlampe1
2019-09-22 22:38:46 GroupTopic sonoffs
2019-10-16 14:41:36 Heap 21
2019-09-22 22:38:46 Hostname stehlampe-4159
2019-09-22 22:38:46 IPAddress 192.168.178.188
2019-10-16 07:34:27 LWT Online
2019-10-16 14:41:36 LoadAvg 19
2019-09-22 22:38:46 Module Sonoff Dual R2
2019-09-28 15:15:55 Module_39 Sonoff Dual R2
2019-10-16 14:41:36 MqttCount 88
2019-10-16 14:41:36 POWER1 off
2019-10-16 14:45:11 POWER2 on
2019-09-22 22:38:46 RestartReason Fatal exception:29 flag:2 (EXCEPTION) epc1:0x4023b63b epc2:0x00000000 epc3:0x00000000 excvaddr:0x00000000 depc:0x00000000
2019-10-16 14:41:36 Sleep 50
2019-10-16 14:41:36 SleepMode Dynamic
2019-10-16 14:41:36 Time 2019-10-16T14:41:36
2019-10-16 14:41:36 Uptime 23T16:02:56
2019-10-16 14:41:36 UptimeSec 2044976
2019-09-20 00:34:12 Vcc 3.447
2019-09-22 22:38:46 Version 6.6.0.12(e4ab7eb-sonoff)
2019-09-22 22:38:46 WebServerMode Admin
2019-10-16 14:41:36 Wifi_AP 1
2019-10-16 14:41:36 Wifi_BSSId 5C:49:79:FA:1F:0F
2019-10-16 14:41:36 Wifi_Channel 6
2019-10-16 14:41:36 Wifi_Downtime 0T00:00:47
2019-10-16 14:41:36 Wifi_LinkCount 15
2019-10-16 14:41:36 Wifi_RSSI 76
2019-10-16 14:41:36 Wifi_SSId FB6590
Attributes:
IODev m2s
alias SonoffdualR2
autocreate 0
devStateIcon Online:10px-kreis-gruen@green Offline:10px-kreis-rot@red 1.on:sani_water_tap@green:POWER1+off 1.off:sani_water_tap@red:POWER1+on 2.on:scene_robo_lawnmower@green:POWER2+off 2.off:scene_robo_lawnmower@red:POWER2+on
icon hue_filled_outlet
model A_02a_tasmota_2ch_unified
readingList tele/stehlampe/LWT:.* LWT
tele/stehlampe/STATE:.* { json2nameValue($EVENT) }
tele/stehlampe/SENSOR:.* { json2nameValue($EVENT) }
tele/stehlampe/INFO.:.* { json2nameValue($EVENT) }
stat/stehlampe/RESULT:.* { json2nameValue($EVENT) }
tele/stehlampe/UPTIME:.* { json2nameValue($EVENT) }
stat/stehlampe/POWER1:.* POWER1
stat/stehlampe/POWER2:.* POWER2
room MQTT2_DEVICE
setList POWER1:on,off,toggle cmnd/stehlampe/POWER1 $EVTPART1
POWER2:on,off,toggle cmnd/stehlampe/POWER2 $EVTPART1
setStateList on off toggle
stateFormat LWT
Hostname
Tasmota Revision:
Version
1:POWER1
2:POWER2
Gruß
Carlos