Hallo,
ich habe einiges an Threads und Wiki gewälzt, komme aber nicht so recht weiter.
Aus einem GAEBUS device bilde ich für ein Reading ein ReadingsProxy, damit ich es in einem Floorplan darstellen kann.
Es handelt sich um eine Pumpe, welche den Status on/off haben kann. Dies erscheint auch bei den Readings unter "state".
Bei den Internals unter "STATE" findet sich ebenfalls on oder off, je nach Status.
In der Device Overview rechts oben wird jedoch eine Lampe als Icon dargestellt, was nicht so sein soll, aber scheinbar vom Device automatisch so konvertiert wird.
Kann man dies unterbinden? Ich habe es so gelesen, dass, falls nichts definiert ist, der Inhalt von STATE direkt dorthin kopiert wird, aber dem scheint nicht so zu sein.
define Zirkulationspumpe_von_Vaillant readingsProxy EcoTec196VC3_5_GAEBUS:Zirkulationspumpe
attr Zirkulationspumpe_von_Vaillant fp_Haustechnik 400,113,1,Zirkulationspumpe_von_Vaillant,
attr Zirkulationspumpe_von_Vaillant room Vaillant
# DEF EcoTec196VC3_5_GAEBUS:Zirkulationspumpe
# DEVICE EcoTec196VC3_5_GAEBUS
# FUUID 63c0079a-f33f-0f31-b7b4-7af4fbb0cedbaa3b
# NAME Zirkulationspumpe_von_Vaillant
# NOTIFYDEV EcoTec196VC3_5_GAEBUS,global
# NR 329
# NTFY_ORDER 50-Zirkulationspumpe_von_Vaillant
# READING Zirkulationspumpe
# STATE off
# TYPE readingsProxy
# eventCount 49
# CONTENT:
# EcoTec196VC3_5_GAEBUS 1
# READINGS:
# 2023-02-01 13:02:15 state off
#
setstate Zirkulationspumpe_von_Vaillant off
setstate Zirkulationspumpe_von_Vaillant 2023-02-01 13:02:15 state off
[/code]
devStateIcon radio_checked@red:off off:radio_unchecked@darkorange:on
Danke für Deine Antwort!
Aber eigentlich möchte ich kein Symbol dargestellt haben, sondern den Klartext, also on oder off.
Wenn Du hier
attr ... fp_Haustechnik 400,113,1,Zirkulationspumpe_von_Vaillant
den style=3 anstatt 1 verwendest, kannst Du auf den readingsProxy komplett verzichten und direkt das reading "state" der Pumpe angeben.
Zitat
A userattr fp_<name> will be created automatically if it does not exist yet.
top = screen-position, pixels from top of screen
left = screen-position, pixels from left of screen
style =
0 icon/state only
1 devicename and icon/state
2 devicename, icon/state and commands
3 device-reading and optional description
4 S300TH-specific, displays temperature above humidity
5 icon/state and commands
6 device-reading, reading-timestamp and optional description
7 commands only
8 commands popup
description will be displayed instead of the original devicename
https://commandref.fhem.de/#FLOORPLAN
--
Zitat von: theotherhalf am 01 Februar 2023, 13:26:01
Aber eigentlich möchte ich kein Symbol dargestellt haben, sondern den Klartext, also on oder off.
Für das nächste mal, jetzt brauchst ja kein readingsProxy mehr:
ZitatdevStateIcon
Erste Variante:
Leerzeichen getrennte Auflistung von regexp:icon-name:cmd Dreierpärchen, icon-name und cmd dürfen leer sein.
Wenn STATE des Gerätes mit der regexp übereinstimmt, wird als icon-name das entsprechende Status Icon angezeigt, und (falls definiert), löst ein Klick auf das Icon das entsprechende cmd aus. Wenn FHEM icon-name nicht finden kann, wird STATE als Text angezeigt. Beispiel:
attr lamp devStateIcon on:closed off:open
attr lamp devStateIcon on::A0 off::AI
attr lamp devStateIcon .*:noIcon
Anmerkung: Wenn das Icon ein SVG Bild ist, kann das @fill:stroke Suffix verwendet werden um das Icon einzufärben, dabei wird in der SVG die Füllfarbe durch das spezifizierte fill ersetzt, und die Stiftfarbe durch das optionale stroke. Z.B.:
attr Fax devStateIcon on:control_building_empty@red off:control_building_filled:278727 Falls cmd noFhemwebLink ist, dann wird kein HTML-Link generiert, d.h. es passiert nichts, wenn man auf das Icon/Text klickt. Achtung: falls im devStateIcons das Ändern der Stiftfarbe benötigt wird, dann ist die alternative @fill@stroke Syntax zu verwenden.
Zweite Variante:
Perl regexp eingeschlossen in {}. Wenn der Code undef zurückliefert, wird das Standard Icon verwendet; wird ein String in <> zurück geliefert, wird dieser als HTML String interpretiert. Andernfalls wird der String als devStateIcon gemäß der ersten Variante interpretiert, siehe oben. Beispiel:
{'<div style="width:32px;height:32px;background-color:green"></div>'}
Anmerkung: Obiges gilt pro STATE Zeile. Wenn STATE (durch stateFormat) mehrzeilig ist, wird pro Zeile ein Icon erzeugt.
Zitat von: betateilchen am 01 Februar 2023, 13:29:48
Wenn Du hier
attr ... fp_Haustechnik 400,113,1,Zirkulationspumpe_von_Vaillant
den style=3 anstatt 1 verwendest, kannst Du auf den readingsProxy komplett verzichten und direkt das reading "state" der Pumpe angeben.
https://commandref.fhem.de/#FLOORPLAN
--
Danke für den Tipp! Das Attribut Fp_Haustechnik kann ich mehrmals verwenden im Device? Ich habe etwa 10 Readings, die ich so direkt verknüpfen könnte. Bisher laufen sie über readingsProxy, da ich sie auch noch an Homematic weitergebe und das dann zentraler ging, inkl. skalieren, Einheit dahinter setzen etc.
Zitat von: theotherhalf am 01 Februar 2023, 13:46:09
Das Attribut Fp_Haustechnik kann ich mehrmals verwenden im Device?
Nein. Aber davon war bisher hier im Thread ja auch nicht die Rede.
Es ist schon eine ganze Weile her, das ich die Proxys angelegt hatte. Damals sprach einiges dafür es so zu tun.
Wie gesagt minimiere ich die Dezimalstellen des Readings und hänge die Einheit an, damit es im Floorplan klarer ist. Mein Floorplan ist ein Fliessschema.
Zitat von: TomLee am 01 Februar 2023, 13:34:42
Für das nächste mal, jetzt brauchst ja kein readingsProxy mehr:
Da sollte ich wohl mal die Augen aufmachen :o
attr lamp devStateIcon .*:noIcon
So einfach...Danke für den Hinweis, jetzt passt es...
Vlt. noch ergänzend, weil auch wenn man die Augen auf hatte, liest/sieht/versteht man auf den ersten Blick nicht, zumindest gings mir so, was dieser Satz zum Ausdruck bringen soll:
Zitat..Wenn FHEM icon-name nicht finden kann...
Du kannst statt noIcon irgendwas beliebiges anderes angeben, Hauptsache es gibt kein Icon mit diesem Namen.