Dummy mit einem erklärenden Label versehen

Begonnen von Zrrronggg!, 09 Februar 2015, 20:46:13

Vorheriges Thema - Nächstes Thema

Zrrronggg!

Gibt es eigentlich einen Weg, einen Dummy im Webfrontend mit einem Label zu versehen?

Also angenommen ich habe einen Dummy der "Tage_seid" heisst und dessen Wert jeden Tag um eines ansteigt, dann würde ich gerne noch daneben im Webfrontend z.b. "Geburtstag" schreiben wollen.

Z.B. da wo eine WebCmd stehen würde (was hier nicht definiert ist)  (attr WebCmD kann ich nicht nehmen, weil jemand der da aus versehen draufdrückt, den Inhalt des Dummys verändert)

Mir ist klar, dass ich auch den Dummy gleich Tage_seid_Geburtstag nennen könnte, dass ist aber nur bei diesem vereinfachten Beispiel möglich und nicht bei meinem konkreten (etwas komplexeren) Anwendungsfall.


Und wo wir schon dabei sind: Könnte ich den Zahlenwert des Dummys bei bestimmten Wertebereichen in einer anderen Farbe darstellen lassen ähnlich ValueStyle bei ReadingsGroup?
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

hexenmeister


justme1968

für einfache fälle den alias und für alles andere eine readingsGroup. da kannst du formatieren und beschriften wie du magst.

wenn du den dummy nur verwendest um einen wert zu speichern kannst du das reading mit dem wert (oder auch mehrere) direkt in die readingGroup schreiben und diese sich selber anzeigen lassen.

dann brauchst du denn dummy gar nicht mehr.

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

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

Zrrronggg!

#3
Ja, an Alias erinnert ich mich auch, ich finde es nur nicht. Laut Commandref hat Dummy kein Attribut namens Alias. (oder ich blind bin). Wie sieht die Syntax genau aus?

ReadingsGroup wäre nett würde auch gleich mein Farbproblem lösen. Aber ich brauche meiner aufassung nach schon einen Dummy, da ich ja Werte berechne.

ReadingsGroup für Dummys (Doppelscherz).... auch auf die Gefahr hin hier als Volldepp durchzugehen: Was sind denn die "Readings" eines Dummys bzw einer Gruppe von Dummys? Bei Zahlen als Inhalt des Dummies  kann ich ja nicht über Konstruktionen wie .*:[Mm]einText oder so gehen.

Ich meine, ich benutze sowohl
define battStatus readingsGroup .*:[Bb]attery
als auch
define CUL1RSSI readingsGroup CUL1_RSSI=.*:+CUL1_RSSI,+CUL1_TIME

Aber wie müsste das den bei Dummys definiert sein? Dummys sind ja keine Devices.
Oder denke ich da zu kompliziert?
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

McCavity

Öhm, auch auf die Gefahr hin, als Neuling hier in ein Fettnäpfchen zu treten - hat nicht im Prinzip *jede* Definition in FHEM das Attribut "alias" (sowas wie ein "common attribute")? Müßte doch im Prinzip so funktionieren:

attr Tage_seit alias Tage seit Geburtstag

...oder bin ich da in irgendeine Falle getappt...?  :o

LG

McCavity

justme1968

jedes fhem device hat ein attribut alias (und auch ein comment attribut).

dummys sind auf dieser ebene ganz normale fhem devices und du kannst attr und setreading genau so verwenden wie für jedes andere device und du kannst sie in/mit einer readingsGroup anzeigen.

was heisst du berechnest werte? wenn du das ergebnis einer berechnung mit setreading in einen dummy schreibst kannst du es ganz genau so in die readingGroup (oder jedes andere fhem device) stecken.

mach doch mal ein ganz konkretes beispiel.

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

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

Zrrronggg!

Zitatdummys sind auf dieser ebene ganz normale fhem devices und du kannst attr und setreading genau so verwenden wie für jedes andere device und du kannst sie in/mit einer readingsGroup anzeigen.
Hm. Okay.

Zitatwas heisst du berechnest werte? wenn du das ergebnis einer berechnung mit setreading in einen dummy schreibst kannst du es ganz genau so in die readingGroup (oder jedes andere fhem device) stecken.

Ja, kann ich natürlich. Die Werte sind nur ein Zahlenwert, der eben die geschätzte Restlaufzeit ergibt. Der wird durch simpel Zeit und Stellvorgänge reduziert.

Zeit wird z.b. schlicht so abgebildet:

define Ventil_1_Flur_count at +*01:00:00 {fhem("set Ventil_1_Flur_ " . (Value("Ventil_1_Flur_")-1))}

Stellvorgänge ziehen mit einer ähnlichen Mimik weiter Werte ab. Wenn ich die Batterie wechsle kommt als Startvalue eine noch zu ermittelnde Zahl rein, als Schätzung aktuell 40.000.

Mir schwebt jetzt isrgendwas vor, das so aussieht:

define FHT8v_Batt readingsGroup (hier verliessen sie ihn)
attr FHT8v_Batt room Status
attr FHT8v_Batt valueStyle {($VALUE < 1000)?'style="color:red"':($VALUE < 4000)?'style="color:yellow"':($VALUE > 3999)?'style="color:green"':undef}

FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Zrrronggg!

Zitat von: McCavity am 10 Februar 2015, 07:15:29
Öhm, auch auf die Gefahr hin, als Neuling hier in ein Fettnäpfchen zu treten - hat nicht im Prinzip *jede* Definition in FHEM das Attribut "alias" (sowas wie ein "common attribute")? Müßte doch im Prinzip so funktionieren:

attr Tage_seit alias Tage seit Geburtstag

...oder bin ich da in irgendeine Falle getappt...?  :o



McCavity

Nope, absolut nicht. Das einzige Thema ist, das ich auf die Schnelle in der Commandref nicht finden konnte wo steht wie das Attribut genau formatiert sein muss. Ich finde das immer noch nicht.
(Gut, jetzt weiss ich es ja.)
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

justme1968

du speicherst den wert so:define Ventil_1_Flur_count at +*01:00:00 {fhem("setreading FHT8v_Batt Ventil_1_Flur ". (Value("Ventil_1_Flur_")-1))}

und zeigst ihn so an:define FHT8v_Batt readingsGroup FHT8v_Batt:Ventil_1_Flur
attr FHT8v_Batt valueStyle { return 'style="color:red' if($VALUE < 1000); return 'style="color:yellow' if($VALUE < 4000); return undef;}


und wenn du mehr als einen wert hast steckst du ihn mit einem eigenen reading namen in die gleiche readingGroup und zeigst sie dann alle auf ein mal an:define FHT8v_Batt readingsGroup FHT8v_Batt:.*

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

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

Zrrronggg!

#9
Cool, danke. Mit ein paar Ideen die Puschel in einem anderen Thread geäussert hat bin ich jetzt erstmal gut versorgt!

Kaffe machen und los gehts. Um 2 Uhr will ich fertig sein! ;D


Edit:

Fertig.
Funktioniert einwandfrei.
Was mach ich jetzt bis 2 Uhr?
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Puschel74

ZitatWas mach ich jetzt bis 2 Uhr?
Deine Lösung hier posten?
Ich will nicht unbedingt dumm sterben sondern noch was lernen solange es geht  :P
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Zrrronggg!

#11
Ist ja nix grossartiges:

Ich verwende die Ventile alle nur indirekt also per FHT80b.


Daher habe ich für jedes Ventil ein Dummy angelegt:
define Batterie_Atellier dummy
Ich habe beobachtet, das die Batterien grob 18 Monate halten, das sind grob 13.000 Stunden
Der Dummy wird mit dem Wert 13.000 initial befüllt. dann wird jede Stunde "1" abgezogen und das ergebniss per setreadings gesetzt:
define Batterie_Atellier_count at +*01:00:00 {fhem("setreading FHT8v_ Batterie_Atellier ". (Value("Batterie_Atellier")-1))}

Dann wird das per readingsGroup angezeigt (Der Unterstrich am Ende dient nur der besseren Lessbarkeit):

define FHT8v_ readingsGroup FHT8v_:.*

Die Werte werden eingefärbt:
attr FHT8v_ valueStyle {($VALUE < 240)?'style="color:red"':($VALUE < 1000)?'style="color:yellow"':($VALUE > 999)?'style="color:green"':undef}

Rot ist also 240 Stunden = 10 Tage
und gelb 1000 Stunden = 41 Tage
Das muss man ggf nachjustieren

Die Farben gefallen mit eigentlich besser als die Werte auf OK oder LOW zu mappen (was ich zuerst machen wollte), und man hat noch folgenden Vorteil:

Wenn man die Batterien wechselt, wird der Dummy irgendeinen Wert haben, entweder positiv (Batterie früher leer als erwartet) oder negativ (Batterie hat länger gehalten). In beiden Fällen wird der Wert einfach von 13.000 subtriert und man erhält den NEUEN, genauern intialen Wert.

Bis hier hin funktioniert das bestens.

Nächste Schritte:
- Überlegen ob es sich lohnt, die Anzahl der Tempänderungen zu berücksichtigen. Man könnte den Wert deutlich höher setzen und jede Tempänderung die tatsächlich zum FHT80 gesendet wird als decrement benutzen. Ich bin davon aber zwischenzeitlich wieder abgekommen, weil ich mich frage ob sich das lohnt. Die Tempänderungen sind je Raum über's Jahr im Schnitt gleich, eventuell erhält man da weniger zusätzliche Genauigkeit als man glaubt.
- Berechnung des neuen Initialwertes automatisieren.

Mehr isset eigentlich nicht.


Vielen dank an alle, habe ne Menge gelernt.
(das ich nach 6 Jahren FHEM nicht wusste wie attr Alias genau geht ist schon bisschen peinlich, ich weiss.)




FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

justme1968

schön das es so schnell ging.

noch ein vorschlag: das du werte berechnest die zu einem schon vorhandenen device gehören brauchst du doch kein dummy sondern kannst die werte direkt in das zugehörige device stecken. dann hast du zum einen alles zusammen und zum anderen deutlich weniger devices.

fhem muss für einige dinge die komplette device liste durchgehen und das geht schneller je weniger devices es gibt.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Zrrronggg!

Ich hab kein Device. Ich steuere meine FHT8v nur über die FHT80b. Die sind nicht einzeln angelegt, Fhem kennt die nicht.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Puschel74

Hallo,

ja das ... so ... ok ...
Wieder was gelernt - danke.
Ist auch schick und "etwas" einfacher *hüstel*

Ich dachte FHEm kennt deine FHT8v aber so - ja - so geht das auch.
Im Endeffekt führen ja viele Wege zum Ziel  ;)
Wenn es so für dich passt ist es ja ok (und ich sag danke das ich wieder was lernen durfte)  8)

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.