Zwei Readings als Icon darstellen

Begonnen von Hi2Helmi, 18 Februar 2019, 21:20:20

Vorheriges Thema - Nächstes Thema

Hi2Helmi

Hallo,
ich würde gerne in einem Device zwei Icons darstellen der den jeweiligen Status darstellt!
defmod keller_flur_tuer ESPEasy 192.168.144.181 80 ESPBridge Keller_Sensoren_flur_holzhalle
attr keller_flur_tuer IODev ESPBridge
attr keller_flur_tuer Interval 300
attr keller_flur_tuer alias Tür Holzhalle
attr keller_flur_tuer group ESPEasy Device
attr keller_flur_tuer icon hue_room_frontdoor
attr keller_flur_tuer presenceCheck 1
attr keller_flur_tuer readingSwitchText 1
attr keller_flur_tuer room ESPEasy
attr keller_flur_tuer setState 3

setstate keller_flur_tuer mk: on rsk: on
setstate keller_flur_tuer 2019-02-18 21:13:17 mk on
setstate keller_flur_tuer 2019-02-18 21:11:42 presence present
setstate keller_flur_tuer 2019-02-18 21:13:18 rsk on
setstate keller_flur_tuer 2019-02-18 21:13:18 state mk: on rsk: on

Anstelle mk: on rsk: on eben zwei Icons mit dem jeweiligen Status.
Gibt es dafür eine Möglichkeit?
MfG
Florian

Beta-User

Ja, sogar mehrere.
Hier würde ich devStateIcon in der Perl-Variante nutzen. In den mqtt2.templates ist Beispielcode beim mehrkanaligen Tasmota und es gibt zu HM-Thermostaten was in den Codeschnipseln.

Schau das mal an und melde dich bei Bedarf.

Kurz, da mobil.
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

Hi2Helmi

ZitatIn den mqtt2.templates ist Beispielcode beim mehrkanaligen Tasmota
Wo finde ich das? Link?
MfG
Florian

binford6000

In
./fhem/FHEM/lib/AttrTemplate/mqtt2.template
VG Sebastian

Hi2Helmi

Danke.
Habe ein Lösung gefunden:
{
my $tuermk = 'fts_door_open@red';;
   $tuermk = 'fts_door@green' if (ReadingsVal($name, "mk", "off") eq "on");;
my $tuerrsk = 'secur_open@red';;
   $tuerrsk = 'secur_locked@green' if (ReadingsVal($name, "rsk", "off") eq "on");;
"<div>" . FW_makeImage("$tuermk","fts_door_open") . FW_makeImage("$tuerrsk","secur_open") . "</div>"}
MfG
Florian

Beta-User

Cool.

Auch wenn das evtl. demnächst durch einen patch schon wieder überholt sein könnte: Magst du einen screenshot posten, dann packe ich das als Beispiel ins Wiki zu https://wiki.fhem.de/wiki/DeviceOverview_anpassen?
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

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Beta-User

Dann gerne in der aktualisierten Fassung ab morgen für's wiki.

@justme1968:
Großes Danke für die schnelle Umsetzung!
Da einige der in mqtt2.template enthaltenen templates das naturgemäß noch nicht wissen konnten: magst du da mal kurz drübersehen, ob sich da Änderungsbedarf ergibt? Dann findet das ggf. noch schneller den verdienten Zuspruch, wenn wir das Wissen um dieses feature entsprechend streuen ;) .

Frage noch: das klappt aber nur, wenn die Readings im selben Device sind, kann also nicht ganz das, was ich neulich zu den HM-Thermostaten gepostet hatte, oder?
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

justme1968

ich habe bisher weder mit den templates noch mit mqtt was gemacht :) das muss also jemand anders machen.

korrekt. devStateIcon ist immer für readings aus dem eigenen device. device übergreifend funktioniert das prinzipiell nicht richtig da STATE nur aktualisiert wird wenn das eigene device sich ändert.

device übergreifend würde ich immer mit einer readingsGroup arbeiten. das geht dann ganz normal per event/longpoll und ist flexibler.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Beta-User

Zitat von: justme1968 am 19 Februar 2019, 21:31:35
ich habe bisher weder mit den templates noch mit mqtt was gemacht :) das muss also jemand anders machen.
Eigentlich sind dafür keine speziellen Kenntnisse erforderlich, es geht da im Prinzip auch nur um die FHEMWEB-Attribute, speziell stateFormat und devStateIcon...
MQTT2_DEVICE verhält sich dabei im wesentlichen wie ein Dummy ;) , und die Readingnamen sind auch einfach zu erkennen.

Zitatkorrekt. devStateIcon ist immer für readings aus dem eigenen device. device übergreifend funktioniert das prinzipiell nicht richtig da STATE nur aktualisiert wird wenn das eigene device sich ändert.

device übergreifend würde ich immer mit einer readingsGroup arbeiten. das geht dann ganz normal per event/longpoll und ist flexibler.
Nachvollziehbar. In dem speziellen Fall ist halt die Frage, was ein Device ist, ich stelle dabei nur Kanäle wieder zusammen, die eigentlich logisch auch zusammengehören, aber aus programmiertechnischen Gründen (denke ich jedenfalls) getrennt wurden.
Da dieser spezielle code zu meiner Zufriedenheit läuft, werde ich das für die Thermostate jetzt nicht wieder umstellen :) , zumal mir auch nicht so richtig klar geworden ist, wie man manche Probleme mit readingsGroup in den Griff bekäme; aber das ist echt ein anderes Thema...
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

Hi2Helmi

Hallo,
ich habe die Icons angepasst und es funktioniert wunderbar.
Hier mein Code:
defmod keller_flur_tuer ESPEasy 192.168.144.181 80 ESPBridge Keller_Sensoren_flur_holzhalle
attr keller_flur_tuer IODev ESPBridge
attr keller_flur_tuer Interval 300
attr keller_flur_tuer alias Tür Holzhalle
attr keller_flur_tuer devStateIcon 1.on:fts_door@green 1.off:fts_door_open@red\
2.on:secur_locked@green 2.off:secur_open@red
attr keller_flur_tuer group Sicherheit
attr keller_flur_tuer icon hue_room_frontdoor
attr keller_flur_tuer presenceCheck 1
attr keller_flur_tuer readingSwitchText 1
attr keller_flur_tuer room System->ESPEasy,Keller
attr keller_flur_tuer setState 3
attr keller_flur_tuer stateFormat 1:mk\
2:rsk

setstate keller_flur_tuer 1:on\
2:on
setstate keller_flur_tuer 2019-02-21 17:51:38 mk on
setstate keller_flur_tuer 2019-02-21 17:48:09 presence present
setstate keller_flur_tuer 2019-02-21 17:51:39 rsk on
setstate keller_flur_tuer 2019-02-21 17:51:39 state mk: on rsk: on


Und hier die Screenshots:
MfG
Florian

Beta-User

Thx, im ersten Wurf auch schon im Wiki zu finden :) . Ist leider noch verbesserungswürdig im Wiki...
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

Hi2Helmi

MfG
Florian