[Gelöst] Sonoff T1 3Ch als Device mit 3 verschiedenen Stateicons schalten

Begonnen von AtzeDVB, 16 Oktober 2019, 12:48:00

Vorheriges Thema - Nächstes Thema

AtzeDVB

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.

Beta-User

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...)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

carlos

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
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly