mqtt2.template: Contributing

Begonnen von Beta-User, 15 Dezember 2018, 11:45:40

Vorheriges Thema - Nächstes Thema

Sascha_F

Hi Beta-User,

ich weiß nicht, ob es bereits zwischenzeitlich geändert wurde, daher zur Sicherheit:

Meine Shelly2.5 wurden mit folgendem devStateIcon angelegt (nur my "$onl"Teil"):

{my $onl = ReadingsVal($name,"online","false") eq "true"?"10px-kreis-gruen":"10px-kreis-rot";; my $light = ReadingsVal($name,"state","off");;


Damit wird das Icon nicht gelb angezeigt, wenn ein Firmware-Update verfügbar ist. Ich selbst habe bei mir folgenden Part ergänzt:

{my $onl = ReadingsVal($name,"online","false") eq "false"?"10px-kreis-rot" : ReadingsVal($name,"new_fw","false") eq "true" ? "10px-kreis-gelb" : "10px-kreis-gruen";;


Dabei habe ich aber auch folgendes geändert (so ist es identisch zum Template für die Shelly1):

{my $onl = ReadingsVal($name,"online","false") eq "false"?"10px-kreis-rot" : ReadingsVal($name,"new_fw","false") eq "true" ? "10px-kreis-gelb" : "10px-kreis-gruen";;

Viele Grüße
Sascha

Beta-User

Hi Sascha_F,

Danke für die Rückmeldung.
Ist zwar hier auch falsch (gehört in den "Anregungen"-Thread), aber seit eben ist ein update für den 2.5 und den pm-Shelly im svn, die den "gelben Punkt" bisher nicht hatten. Du kannst übrigens selbst prüfen, was "zwischenzeitlich geändert" wurde, indem du nach einem update in den Quellcode schaust, das erleichtert mir die Arbeit ;) ...

Gruß, Beta-User
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

Sascha_F

Hi Beta-User,

alles klar, dann Danke und Sorry! :-)

Werde ich zukünftig versuchen, so weit ich es schaffe und verstehe^^  ;D

Viele Grüße
Sascha

87insane

#78
Hatten wir nicht genau das in einem anderen Thread schon fertig? Ich hatte den gelben Punkt vorgestern bei neuer Firmware. Hmmm....ich werd alt.


Edit: ahhh...licht an.... Hatte das nur für das Rollo gepostet. Für den 2.5er split, habe ich mir das auch gebaut. Wird das noch benötigt?

Gesendet von meinem LM-G810 mit Tapatalk

Beta-User

Zitat von: 87insane am 24 Januar 2020, 07:57:13
[...] Wird das noch benötigt?
Auch für Dich gilt 1:1 das hier :( :
Zitat von: Beta-User am 23 Januar 2020, 10:34:24
Ist [...] hier [...] falsch (gehört in den "Anregungen"-Thread), [...]. Du kannst übrigens selbst prüfen, was "zwischenzeitlich geändert" wurde, indem du nach einem update in den Quellcode schaust, das erleichtert mir die Arbeit ;) ...
Meine ernsthafte Bitte wäre wirklich, selbst im sourcecode zu schauen, was da (ggf. indirekt ;) ) aktuell steht (oder es mit einem Testgerät auszuprobieren...) und dann im "Anregungen"- oder "Shelly"-Thread einfach die zu ändernden Zeilen konkret (z.B. mit einer Zeilennummer bezogen auf eine Version) zu nennen und den neuen Code zu posten.

Übrigens: vermutlich hat es länger gedauert, das hier zu schreiben, wie selbst in den Code zu sehen. Dass ich das so herum mache, hat zwei Gründe:
1. Ich habe selbst fast keine der Hardwares, die sich in den templates tummeln, und kann daher nicht so gut testen.
2. Es ist mir wichtig, nicht "Fisch" für alle anderen User selbst fangen zu müssen, sondern jeder, der erfolgreich geangelt hat, darf teilen. Es wäre mir daher viel lieber, wenn jeder wenigstens soviel Ahnung vom "Fischen" hätte, dass ich zielgerichtet nur wenige Handgriffe ausführen muß, um das "Netz", mit dem wir hier "fischen", schnell für alle "flicken" zu können.

Dieser Thread dient daher NUR dazu, das Netz mit fertigen Teilen zu vergößern, und wer hier mitliest, (z.B. weil er mal was gepostet hat,) will keine länglichen Diskussionen über Details, sondern - wenn überhaupt - nur die Info, was es neues gibt. Sei also so nett zu den anderen und mir und berücksichtige deren und meine Erwartungshaltung :) .

Gruß, Beta-User
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

gestein

Hallo,

im aktuellen Template für den Shelly2.5 scheint ein Fehler zu sein.
Wenn ich das Template auswähle wird in der Status-Übersicht ein Fehler bei der Power abgezeigt: "Aktuell: unknown W / Temp.: 64.74 °C"

Im Template sind die beiden Werte für "relay_X_power" im devStateIcon vertauscht; im Kanal 0 steht "relay_1_power" und im Kanal 1 "relay_0_power".
Als ich dann folgende Änderung für den Kanal 0 gemacht habe, funktionierte es (gleiches gilt entsprechen für den Kanal):
attr MQTT2_shellyswitch25_68D980 devStateIcon {my $onl = ReadingsVal($name,"online","false") eq "true"?"10px-kreis-gruen":"10px-kreis-rot";;;; my $light = ReadingsVal($name,"state","off");;;; my $cons = ReadingsVal($name,"relay_0_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</div>"}

lg, Gerhard

Beta-User

Hallo zusammen,

Danke für's Melden von dem Bug in shelly 2.5 (wenn auch in falschen Thread...!), ist seit einiger Zeit schon gefixt.

Owntracks habe ich erst mal wie vorgeschlagen samt bridgeRegexp übernommen (k.A., warum das mit autocreate nicht klappen sollte, können wir gerne - wie ggf. weitere Fragen, die mit dem template zusammenhängen - hier weiterdiskutieren...).

Gruß, Beta-User
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

Beta-User

Zur Info:

Es gibt mit dem morgigen Update einige wichtige Änderungen, Details hier, in dem dortigen Thread bitte dann auch die Rückmeldungen dazu.
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

hummeruli

Heute möchte ich auch etwas beitragen.

Ich verwende einen NodeMCU mit 8 Ausgängen um Ventie zu schalten. Natürlich kann man auch die geläufige 8-Fach Relaiskarte für Arduino verwenden.
Gefläscht ist das aktuelle Tasmota.

Für Hier das von mir geänderte Template A_04b.

# tasmota 8ch as one FHEM device.
name:tasmota_8ch_unified_icon
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*(tele|cmnd|stat).*
desc:Configures a single device including all readings <br>NOTE: Clicking on icons will issue a corresponding toggle command
order:A_04c
set DEVICE attrTemplate tasmota_basic_state_power1
par:CMNDTOPIC;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}cmnd$3" : undef }
par:TELETOPIC;info topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}tele$3" : undef }
par:STATTOPIC;ack topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}stat$3" : undef }
attr DEVICE setList \
  POWER1:on,off,toggle CMNDTOPIC/POWER1 $EVTPART1\
  POWER2:on,off,toggle CMNDTOPIC/POWER2 $EVTPART1\
  POWER3:on,off,toggle CMNDTOPIC/POWER3 $EVTPART1\
  POWER4:on,off,toggle CMNDTOPIC/POWER4 $EVTPART1\
  POWER1:on,off,toggle CMNDTOPIC/POWER5 $EVTPART1\
  POWER2:on,off,toggle CMNDTOPIC/POWER6 $EVTPART1\
  POWER3:on,off,toggle CMNDTOPIC/POWER7 $EVTPART1\
  POWER4:on,off,toggle CMNDTOPIC/POWER8 $EVTPART1
attr DEVICE devStateIcon Online:10px-kreis-gruen@green Offline:10px-kreis-rot@red 1.on:on:POWER1+off 1.off:off:POWER1+on 2.on:on:POWER2+off 2.off:off:POWER2+on 3.on:on:POWER3+off 3.off:off:POWER3+on 4.on:on:POWER4+off 4.off:off:POWER4+on 5.on:on:POWER5+off 5.off:off:POWER5+on 6.on:on:POWER6+off 6.off:off:POWER6+on 7.on:on:POWER7+off 7.off:off:POWER7+on 8.on:on:POWER8+off 8.off:off:POWER8+on
attr DEVICE readingList \
  TELETOPIC/LWT:.* LWT\
  TELETOPIC/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  TELETOPIC/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  TELETOPIC/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  STATTOPIC/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  TELETOPIC/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  STATTOPIC/POWER1:.* POWER1\
  STATTOPIC/POWER2:.* POWER2\
  STATTOPIC/POWER3:.* POWER3\
  STATTOPIC/POWER4:.* POWER4\
  STATTOPIC/POWER5:.* POWER5\
  STATTOPIC/POWER6:.* POWER6\
  STATTOPIC/POWER7:.* POWER7\
  STATTOPIC/POWER8:.* POWER8
attr DEVICE stateFormat LWT\
<a href="http://IPAddress" target="_blank">Hostname</a>\
<a href="http://IPAddress" target="_blank">IPAddress</a>\
<br>\
1:POWER1\
2:POWER2\
3:POWER3\
4:POWER4\
5:POWER5\
6:POWER6\
7:POWER7\
8:POWER8
attr DEVICE webCmd POWER1:POWER2:POWER3:POWER4:POWER5:POWER6:POWER7:POWER8
attr DEVICE model tasmota_8ch_unified_icon


Würde mich sehr auf die Integration freuen.

Gruß

Uli
Beim Erstellen dieser Nachricht kamen weder Tiere zu Schaden, noch wurde Papier verschwendet. Alles von mir geschriebene ist biologisch abbaubar.


FHEM auf Debian Buster in einr Proxmox VM , LaCrosseGateway, AVR-NET-IO, Homematic, Alexa, S300TH, Signalduino..........

Beta-User

Thx @Uli, ist seit eben (leicht angepaßt) im svn.
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

maddinthebrain

Hallo zusammen,

Ich habe mal ein MQTT2 Device zur Kopplung mit der WeeWX Wetterstation angefangen. Im Prinzip ist das fertig. Jetzt bräuchte noch ein paar  Tipps zur Erstellung eines Templates dafür. Der Thread dazu ist hier: https://forum.fhem.de/index.php/topic,108815.0.html

Es muss auch was bei WeeWX selbst eingerichtet werden. Siehe ebenfalls den erwähnten Thread.

Grüße Martin
Viele Grüße
Martin

Futro mit Proxmox und Debian: FHEM, Signalduino 433MHz & 868MHz, MAX!, WeeWX, FHEM2FHEM,
Raspi 4 mit ConBee mit deCONZ und Phoscon für ZigBee Aktoren und Sensoren

maddinthebrain

#86
Hallo zusammen,

Ich habe heute gelernt, dass der Xiaomi Aqara Motion Sensor ein attr <device> event-on-change-reading .* braucht um nicht wunderliche Effekte zu bekommen. Siehe https://forum.fhem.de/index.php/topic,109133.msg1030833.html#msg1030833. Im Template F_01a_Xiaomi_Aqara_RTCGQ11LM_Motion_Sensor fehlt das aber.

Grüße Martin
Viele Grüße
Martin

Futro mit Proxmox und Debian: FHEM, Signalduino 433MHz & 868MHz, MAX!, WeeWX, FHEM2FHEM,
Raspi 4 mit ConBee mit deCONZ und Phoscon für ZigBee Aktoren und Sensoren

Beta-User

Sorry, aber du bist mit dem Hinweis hier doppelt falsch:

1. Ist dieser Thread weiter nicht für Verbesserungsvorschläge gedacht (siehe 1. Post dieses Threads...) und
2. regst du eine Änderung eines attrTemplate für HUEDevice an. Das gehört gar nicht zu MQTT2, sondern dafür gibt es einen anderen Thread, in den ich das jetzt ausnahmsweise weitergegeben habe, weil sowieso ein paar andere Punkte erwähnenswert waren: https://forum.fhem.de/index.php/topic,101829.0.html
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

joelinux

Hallo zusammen,

ich möchte ein neues Template für 4 Kanal Mehrfach Steckdosen vorstellen.
Getestet wurde mit einer 3AC+4USB Mehrfach Steckdose von Hyleton (HLT-333).
<a href="https://templates.blakadder.com/hyleton_333.html">Tasmota Template Repository</a>

Eigenschaften:

  • Das automatisch angelegte MQTT2_DEVICE wird als Stamm Gerät verwendet
  • Das Stamm Gerät steuert den ersten Kanal und bietet Tasmota typische Verwaltungs Funktionen
  • Jeder weitere Kanal wird als einzelnes, untergeordnetes Gerät angelegt. (Split Devices)
  • In den Split Geräten werden die meisten Readings entfernt (Konzentration auf reine Aktoren Steuerung)
  • Netzsteckdosen erhalten das Icon hue_filled_outlet.
  • Der schaltbare 4-fach USB Teil erhält das Icon rc_USB
  • Online/Offline Verfügbarkeit wird angezeigt
  • Die IP Adresse des Tasmota Web GUI wird angezeigt

Am Stamm Gerät werden ein aktuell folgende Verwaltungs Funktionen angeboten

     
  • x_Reboot - Löst einen Neustart des Tasmota Gerätes aus. Hilfreich zum Füllen aller Readings.
  • x_Status - Fragt Tasmota nach weiteren Status Informationen. So werden die in Tasmota eventuell gesetzten Alexa Namen sichtbar (FriendlyName)
  • x_setOtaUrl - Bietet die URL für ein deutsches Tasmota an.
  • x_upgrade - Führt einen Tasmota Firmware upgrade mit der aktuell gesetzten OtaUrl aus
  • x_RuleButton und x_RuleEnable - Es wird eine Regel für die eingebaute Taste zur Schaltung aller Steckdosen angeboten.
  • Kurzer Druck -> alles an
  • Langer Druck -> alles aus
  • x_DisableBlinkLED - unterdrückt das Blinken der Status LED bei fehlendem WLAN oder MQTT Verbindungs Abbruch. Erhöht den WAF wenns Nachts nicht störend blinkt :)
  • x_Location - Die Werte für den Standort (Longitude, Latitude, Altitude) werden aus FHEM global übernommen und als Setting für Tasmota angeboten
  • x_NTPServer - Bietet eine lokale fritz box als Quelle für NTP an
  • x_ShowHostname - Setzt im Tasmota GUI die Anzeige des Host Namens
  • x_SaveData - 0 = kehrt beim Einschalten in einen vordefinierten Zustand zurück, 1 = beim Einschalten wird der zuletzt eingenomme Zustand wiederhergestellt
Bemerkungen:

  • Zur VervollständÄigung aller Readings wird ein Reboot ausgelöst. Damit wird auch LWT (online/offline) sofort verfügbar
  • Mehrfache Anwendung am Stamm Gerät ist möglich. Vorher bitte die untergeordneten 'Split' Geräte mit delete device_.* löschen. Meldungen das der Copy der Split Geräte fehlschlägt werden damit vermieden.
  • Tasmota's regelmäßige Rückmeldungen aus dem STATE Zweig erhalten einen state_ Präfix. Dies dient zur Erhaltung der Zeitstempel der POWERx Readings. Damit kann der Zeitpunkt des zuletzt erkannten Schaltvorganges abgelesen werden.
  • Tasmota's Meldungen werden nach Kleinschreibung umgestellt. ON wird on, OFF wird off, TOGGLE wird toggle und HOLD wird hold
  • Zur besseren Erkennung der Fähigkeiten des Gerätes in den FHEM Spracherkennungs Modulen wird der generische Typ auf Switch gesetzt.

Mit freundlichen Grüßen

Jörg


# 4-way multi socket 3AC+USB device flashed with Tasmota.
# Tested with Power Strip Hyleton 333, please see <a href="https://templates.blakadder.com/hyleton_333.html">Tasmota Template Repository</a>
name:tasmota_3socketUSB_split
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*(tele|cmnd|stat).*
desc:4 channel device flashed with Tasmota. <br>NOTE: Tested with 4-way Power Strip Hyleton 333, please see <a href="https://templates.blakadder.com/hyleton_333.html">Tasmota Template Repository</a><br>NOTE: a second, third and fourth device will be created for each additional channel.<br>NOTE: Please wait some seconds to allow Tasmota Device to complete reboot.
order:A_04_4base
par:CMNDTOPIC;Command topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}cmnd$3" : undef }
par:TELETOPIC;info topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}tele$3" : undef }
par:STATTOPIC;ack topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}stat$3" : undef }
par:ICON;ICON as set, defaults to hue_filled_outlet;{ AttrVal("DEVICE","icon","hue_filled_outlet") }
par:IO_DEV;Currently used IO;{ AttrVal("DEVICE","IODev",undef)}
par:LONGITUDE;Read longitude set in FHEM;{ AttrVal("global","longitude","8.686")}
par:LATITUDE;Read latitude set in FHEM;{ AttrVal("global","latitude","50.112")}
par:ALTITUDE;Read altitude set in FHEM;{ AttrVal("global","altitude","0")}
par:BUTTONRULE;Suggest Tasmota Button Rule for Power Strip;{ q/rule on button1#state=3 do backlog power1 2; power2 2; power3 2; power4 2 endon on button1#state=2 do backlog power1 1; power2 1; power3; power4 1 endon/ }
par:JSONSUPPRESS;Tasmota reading pairs to suppress;"LedTable:0 SaveData:0 Scheme:0 SetOption26:0 ANALOG_A0:0 Speed:0 StateText1:0 StateText2:0 StateText3:0 StateText4:0 Module:0 Version:0 FallbackTopic:0 GroupTopic:0 WebServerMode:0 Hostname:Hostname RestartReason:0 Time:0 Uptime:0 UptimeSec:0 Heap:0 SleepMode:0 Sleep:0 LoadAvg:0 MqttCount:0 Wifi_AP:0 Wifi_SSId:0 Wifi_BSSId:0 Wifi_Channel:0 Wifi_RSSI:0 Wifi_Signal:0 Wifi_LinkCount:0 Wifi_Downtime:0 subscriptions:0 Status_ButtonRetain:0 Status_ButtonTopic:0 Status_LedMask:0 Status_LedState:0 Status_Module:0 Status_Power:0 Status_PowerOnState:0 Status_PowerRetain:0 Status_SaveData:0 Status_SaveState:0 Status_SensorRetain:0 Status_SwitchMode_1:0 Status_SwitchMode_2:0 Status_SwitchMode_3:0 Status_SwitchMode_4:0 Status_SwitchMode_5:0 Status_SwitchMode_6:0 Status_SwitchMode_7:0 Status_SwitchRetain:0 Status_SwitchTopic:0 Status_Topic:0"
farewell:Template has been applied successfully. Wait some seconds for reboot to complete and watch readings get populated.
# Do some cleanup to eventually rerun apply template process
deletereading -q DEVICE (?!associatedWith).*
# delete DEVICE_CH2
# delete DEVICE_CH3
# delete DEVICE_USB
# prime Tasmota device
set DEVICE attrTemplate tasmota_set_lowercase_texts_and_state1
# additional settings to aid speech recognition to detect capabilities properly
set DEVICE attrTemplate speech_recognition_type_switch
# add some attributes to make your new device looking great
attr DEVICE icon ICON
attr DEVICE comment Admin Info and Channel 1 for DEVICE, see also DEVICE_CH2, DEVICE_CH3, and DEVICE_USB
attr DEVICE devStateIcon Online:10px-kreis-gruen Offline:10px-kreis-rot
attr DEVICE event-on-change-reading .*
attr DEVICE stateFormat LWT\
state\
<a href="http://IPAddress" target="_blank">IPAddress</a>
attr DEVICE readingList \
  TELETOPIC/LWT:.* LWT\
  TELETOPIC/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  TELETOPIC/STATE:.* { json2nameValue($EVENT,'state_',$JSONMAP) }\
  STATTOPIC/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  STATTOPIC/STATUS:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  STATTOPIC/POWER1:.* state\
  STATTOPIC/POWER2:.* POWER2\
  STATTOPIC/POWER3:.* POWER3\
  STATTOPIC/POWER4:.* POWER4\
  CMNDTOPIC/POWER:.* POWER
attr DEVICE setList\
  off:noArg CMNDTOPIC/POWER1 0\
  on:noArg CMNDTOPIC/POWER1 1\
  toggle:noArg CMNDTOPIC/POWER1 2\
  x_Reboot:noArg CMNDTOPIC/restart 1\
  x_Status:noArg CMNDTOPIC/Status\
  x_setOtaUrl:http://thehackbox.org/tasmota/release/tasmota-DE.bin CMNDTOPIC/OtaUrl $EVTPART1\
  x_upgrade:noArg   CMNDTOPIC/upgrade 1\
  x_ShowHostname:noArg CMNDTOPIC/Backlog setoption53 1; Status;\
  x_DisableBlinkLED:noArg CMNDTOPIC/Backlog LEDPower 0; setoption31 1; Status;\
  x_SaveData:0,1 CMNDTOPIC/savedata $EVTPART1\
  x_Configuration CMNDTOPIC/$EVTPART1 $EVTPART2\
  x_RuleButton:noArg CMNDTOPIC/BUTTONRULE\
  x_RuleEnable:noArg CMNDTOPIC/Backlog setoption1 1; setoption32 15; rule1 1\
  x_Location:noArg CMNDTOPIC/Backlog Latitude LATITUDE; Longitude LONGITUDE; Altitude ALTITUDE\
x_NTPServer:fritz.box CMNDTOPIC/ntpserver $EVTPART1
# we want state to represent 1st channel.
attr DEVICE jsonMap POWER1:state Dimmer:pct
attr DEVICE userReadings formatedUptime:state_UptimeSec.* { my $m = ReadingsVal($name,"state_UptimeSec",0)/60;; return sprintf "0 000 00:%02d", $m if $m < 60;; my $h = $m / 60;; $m %= 60;; return sprintf "0 000 %02d:%02d", $h, $m if $h < 24;; my $d = $h / 24;; $h %= 24;; return sprintf "0 %03d %02d:%02d", $d, $h, $m if $d <365;; my $y = $d / 365;; $d %= 365;; return sprintf "%d %03d %02d:%02d", $y, $d, $h, $m }
setreading DEVICE associatedWith DEVICE_CH2,DEVICE_CH3,DEVICE_USB
#
# create devices for 2nd, 3rd and 4th channel
copy DEVICE DEVICE_CH2
attr DEVICE_CH2 setStateList on off toggle
copy DEVICE_CH2 DEVICE_CH3
copy DEVICE_CH2 DEVICE_USB
#
setreading DEVICE_CH2 associatedWith DEVICE,DEVICE_CH3,DEVICE_USB
setreading DEVICE_CH3 associatedWith DEVICE,DEVICE_CH2,DEVICE_USB
setreading DEVICE_USB associatedWith DEVICE,DEVICE_CH2,DEVICE_CH3
# set attributes specific for 3rd channel
attr DEVICE_CH2 comment Channel 2 for DEVICE, see also DEVICE_CH3 and DEVICE_USB
attr DEVICE_CH3 comment Channel 3 for DEVICE, see also DEVICE_CH2 and DEVICE_USB
attr DEVICE_USB comment Channel 4 (USB) for DEVICE, see also DEVICE_CH2 and DEVICE_CH3
#
attr DEVICE_CH2 setList \
  off:noArg    CMNDTOPIC/POWER2 0\
  on:noArg     CMNDTOPIC/POWER2 1\
  toggle:noArg CMNDTOPIC/POWER2 2
attr DEVICE_CH3 setList \
  off:noArg    CMNDTOPIC/POWER3 0\
  on:noArg     CMNDTOPIC/POWER3 1\
  toggle:noArg CMNDTOPIC/POWER3 2
attr DEVICE_USB setList \
  off:noArg    CMNDTOPIC/POWER4 0\
  on:noArg     CMNDTOPIC/POWER4 1\
  toggle:noArg CMNDTOPIC/POWER4 2
#
attr DEVICE_CH2 readingList \
  TELETOPIC/LWT:.* LWT\
  TELETOPIC/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  TELETOPIC/STATE:.* { json2nameValue($EVENT,'state_',$JSONMAP) }\
  STATTOPIC/STATUS:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  STATTOPIC/POWER2:.* state
attr DEVICE_CH3 readingList \
  TELETOPIC/LWT:.* LWT\
  TELETOPIC/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  TELETOPIC/STATE:.* { json2nameValue($EVENT,'state_',$JSONMAP) }\
  STATTOPIC/STATUS:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  STATTOPIC/POWER3:.* state
attr DEVICE_USB readingList \
  TELETOPIC/LWT:.* LWT\
  TELETOPIC/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  TELETOPIC/STATE:.* { json2nameValue($EVENT,'state_',$JSONMAP) }\
  STATTOPIC/STATUS:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  STATTOPIC/POWER4:.* state
#
# we want state to represent 2nd channel.
# keep all POWERx readings to allow period tele/STATE messages to update relay state reading
# Suppress all other readings on split device. These readings are visible on first device only.
# Tasmota version upgrades are likely to add/remove readings. So some unwanted ones may appear on second device after such upgrade
attr DEVICE_CH2 jsonMap POWER2:state POWER1:0 POWER3:0 POWER4:0 POWER5:0 JSONSUPPRESS
#
# we want state to represent 3rd channel.
attr DEVICE_CH3 jsonMap POWER3:state POWER1:0 POWER2:0 POWER4:0 POWER5:0 JSONSUPPRESS
#
# we want state to represent 4th (USB) channel.
attr DEVICE_USB jsonMap POWER4:state POWER1:0 POWER2:0 POWER3:0 POWER5:0 JSONSUPPRESS
# USB channel gets a unique icon
attr DEVICE_USB icon rc_USB
#finally set the model attr for all new devices and do a reboot of device
attr DEVICE,DEVICE_CH2,DEVICE_CH3,DEVICE_USB model tasmota_3socketUSB_channel_split
set IO_DEV publish CMNDTOPIC/status
set IO_DEV publish CMNDTOPIC/restart 1
#
FHem on RPi2 Buster, Duofern Rollladen, ZWave Rolllade + Steckdosen, ZigBee (Philips, Tradfri), Tasmota (diverse Steckdosen, GU10 und E14 LSC Leds von Action, Sonoff RF Bridge), InterTechno Dimmer Steckdose ITLR-200

Beta-User

Sehr cool! Kommt auf jeden Fall mit dem nächsten update :) !

Gedanken muß ich mir noch machen zu
- der Einbindung in die Sprachsteuerungstemplates. Die Namensvergabe (betr. alexa) ist sehr neu und muß wohl pro Kanal gemacht werden, siehe dieser Thread; da müssen wir vermutlich insgesamt bei allen mehrkanaligen Devices nochmal nacharbeiten;
- dem widget für x_NTPServer. Tendiere zu "x_NTPServer:multiple,fritz.box"
- dem weiteren reboot am Ende. Eigentlich wäre das wohl eine Sache, die für alle Tasmota-(End-)Templates Sinn macht, wenn man erst die readings gelöscht hatte. Oder reicht da das mit der status-Anforderung...? (Muß wohl mal testen).


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