MQTT2 true->on und false->off

Begonnen von cberl, 22 Mai 2020, 18:40:24

Vorheriges Thema - Nächstes Thema

cberl

Hi, auch die Split Variante funktioniert Bestens. Hier noch das RAW des Sammeldevice:

defmod ADAM6060_00D0C9FC434C_sTest MQTT2_DEVICE
attr ADAM6060_00D0C9FC434C_sTest IODev MQTT2Client
attr ADAM6060_00D0C9FC434C_sTest comment Channel 1 for ADAM6060_00D0C9FC434C_sTest, see also ADAM6060_00D0C9FC434C_sTest_CH2, ADAM6060_00D0C9FC434C_sTest_CH3, ADAM6060_00D0C9FC434C_sTest_CH4, ADAM6060_00D0C9FC434C_sTest_CH5 and ADAM6060_00D0C9FC434C_sTest_CH6
attr ADAM6060_00D0C9FC434C_sTest devStateIcon disconnect:rc_STOP@red connect:rc_STOP@green
attr ADAM6060_00D0C9FC434C_sTest disable 0
attr ADAM6060_00D0C9FC434C_sTest genericDeviceType switch
attr ADAM6060_00D0C9FC434C_sTest icon on
attr ADAM6060_00D0C9FC434C_sTest jsonMap do1:state do2:0 do3:0 do4:0 do5:0 do6:0 c:0 q:0 s:0 t:0
attr ADAM6060_00D0C9FC434C_sTest model 6channel_ethernet_board_6input_split
attr ADAM6060_00D0C9FC434C_sTest readingList Advantech/00D0C9FC434C/data:.* { $EVENT =~ s/true/"on"/g;;;; $EVENT =~ s/false/"off"/g;;;; my $rets = json2nameValue($EVENT,'',$JSONMAP);;;; my %cleaned = map { $_,$rets->{$_} } grep { ReadingsVal($NAME,$_,"unknown") ne $rets->{$_} } keys %{$rets};;;; return \%cleaned }\
  Advantech/00D0C9FC434C/Device_Status:.* { json2nameValue($EVENT) }
attr ADAM6060_00D0C9FC434C_sTest room 82.MQTT
attr ADAM6060_00D0C9FC434C_sTest setExtensionsEvent 1
attr ADAM6060_00D0C9FC434C_sTest setList on:noArg Advantech/00D0C9FC434C/ctl/do1:r {"v":true}\
  off:noArg Advantech/00D0C9FC434C/ctl/do1:r {"v":false}
attr ADAM6060_00D0C9FC434C_sTest stateFormat status\
state\
<br>\
DigiIn\
di1\
di2\
di3\
di4\
di5\
di6
attr ADAM6060_00D0C9FC434C_sTest webCmd :

setstate ADAM6060_00D0C9FC434C_sTest connect\
off\
<br>\
DigiIn\
on\
on\
on\
on\
off\
on
setstate ADAM6060_00D0C9FC434C_sTest 2020-06-05 17:16:17 associatedWith ADAM6060_00D0C9FC434C_sTest_CH1,ADAM6060_00D0C9FC434C_sTest_CH2,ADAM6060_00D0C9FC434C_sTest_CH3,ADAM6060_00D0C9FC434C_sTest_CH4,ADAM6060_00D0C9FC434C_sTest_CH5,ADAM6060_00D0C9FC434C_sTest_CH6
setstate ADAM6060_00D0C9FC434C_sTest 2020-06-05 17:16:17 attrTemplateVersion 20200602
setstate ADAM6060_00D0C9FC434C_sTest 2020-06-05 17:16:33 di1 on
setstate ADAM6060_00D0C9FC434C_sTest 2020-06-05 17:16:33 di2 on
setstate ADAM6060_00D0C9FC434C_sTest 2020-06-05 17:16:33 di3 on
setstate ADAM6060_00D0C9FC434C_sTest 2020-06-05 17:16:33 di4 on
setstate ADAM6060_00D0C9FC434C_sTest 2020-06-05 17:20:34 di5 off
setstate ADAM6060_00D0C9FC434C_sTest 2020-06-05 17:16:33 di6 on
setstate ADAM6060_00D0C9FC434C_sTest 2020-06-05 17:20:05 ipaddr 192.168.50.54
setstate ADAM6060_00D0C9FC434C_sTest 2020-06-05 17:20:05 macid 00D0C9FC434C
setstate ADAM6060_00D0C9FC434C_sTest 2020-06-05 17:20:05 name ADAM6060
setstate ADAM6060_00D0C9FC434C_sTest 2020-06-05 17:16:51 state off
setstate ADAM6060_00D0C9FC434C_sTest 2020-06-05 17:20:05 status connect


Und das Einzeldevice:

defmod ADAM6060_00D0C9FC434C_sTest_CH2 MQTT2_DEVICE
attr ADAM6060_00D0C9FC434C_sTest_CH2 IODev MQTT2Client
attr ADAM6060_00D0C9FC434C_sTest_CH2 comment Channel 2 for ADAM6060_00D0C9FC434C_sTest, see also ADAM6060_00D0C9FC434C_sTest, ADAM6060_00D0C9FC434C_sTest_CH3, ADAM6060_00D0C9FC434C_sTest_CH4, ADAM6060_00D0C9FC434C_sTest_CH5 and ADAM6060_00D0C9FC434C_sTest_CH6
attr ADAM6060_00D0C9FC434C_sTest_CH2 devStateIcon disconnect:rc_STOP@red connect:rc_STOP@green
attr ADAM6060_00D0C9FC434C_sTest_CH2 disable 0
attr ADAM6060_00D0C9FC434C_sTest_CH2 genericDeviceType switch
attr ADAM6060_00D0C9FC434C_sTest_CH2 icon on
attr ADAM6060_00D0C9FC434C_sTest_CH2 jsonMap do1:state do2:0 do3:0 do4:0 do5:0 do6:0 c:0 q:0 s:0 t:0
attr ADAM6060_00D0C9FC434C_sTest_CH2 model 6channel_ethernet_board_6input_split
attr ADAM6060_00D0C9FC434C_sTest_CH2 readingList Advantech/00D0C9FC434C/data:.* { $EVENT =~ m/do2":(true)/g;;;; my $newstate = $1 ? "on" : "off";;;; $newstate eq ReadingsVal($NAME,"state","unknown") ? undef : {"state"=>$newstate} }
attr ADAM6060_00D0C9FC434C_sTest_CH2 room 82.MQTT
attr ADAM6060_00D0C9FC434C_sTest_CH2 setExtensionsEvent 1
attr ADAM6060_00D0C9FC434C_sTest_CH2 setList on:noArg Advantech/00D0C9FC434C/ctl/do2:r {"v":true}\
  off:noArg Advantech/00D0C9FC434C/ctl/do2:r {"v":false}
attr ADAM6060_00D0C9FC434C_sTest_CH2 webCmd :

setstate ADAM6060_00D0C9FC434C_sTest_CH2 off
setstate ADAM6060_00D0C9FC434C_sTest_CH2 2020-06-05 17:16:17 associatedWith ADAM6060_00D0C9FC434C_sTest,ADAM6060_00D0C9FC434C_sTest_CH1,ADAM6060_00D0C9FC434C_sTest_CH3,ADAM6060_00D0C9FC434C_sTest_CH4,ADAM6060_00D0C9FC434C_sTest_CH5,ADAM6060_00D0C9FC434C_sTest_CH6
setstate ADAM6060_00D0C9FC434C_sTest_CH2 2020-06-05 17:16:17 attrTemplateVersion 20200602
setstate ADAM6060_00D0C9FC434C_sTest_CH2 2020-06-05 17:22:22 state off

Fhem immer aktuell @win2016 und @ubuntu VM|7xFRM/ArduinoEthernet|Homematic|HMLan|CUNO|HarmonyHub|Modbus|Z-Wave|Milight-Hub|MQTT|OWX an ETH-UART|GoogleAssist,Alexa,Sonos|2nHelios IP Vario|Amad-Odroid|Telegram|Enigma2

Beta-User

Danke für die Rückmeldung!

(dann werde ich demnächst wohl noch ein paar andere split-Varianten umbauen und beim Rest ruhiger schlafen :) ).
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