[gelöst] Widgets für die Eingabe von Readings

Begonnen von meikelS, 02 September 2019, 17:57:52

Vorheriges Thema - Nächstes Thema

meikelS

Hallo,


ich habe ein Dummy "settings", in dem ich alle möglichen Werte sammle. Uhrzeiten, Status, Texte o.ä.
Gelegentlich möchte ich diese Werte auch mal ändern (um was zu testen oder zu simulieren zu schalten...).
Dazu muss ich immer mit SetReading arbeiten. Das hätte ich gerne eleganter,


Bei Readingsgroup hab ich so etwas ähnliches gesehen, wie das, was mir vorschwebt.
Aber da würde für jedes (quasi) Setting ein eigenes Dummy mit Widget für das STATE verwendet. Das wären mir schlicht zu viele Dummies.


Gibt es eine Möglichkeit eine Art Widget für die Eingabe von Readings zu verwenden?
Mir würde es ja schon reichen, wenn ein Input-Feld kommt, wie man es bei den ATTR kennt.
Don't blame the newbies.

Beta-User

Siehe https://wiki.fhem.de/wiki/FHEMWEB/Widgets

Da ist direkt eine Beispiel-Dummy-Definition mit "allem möglichen" drin.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

meikelS

Aaaah, hab ich glatt überlesen.
Dachte, dass sei nur für ATTR odef STATE.


Danke
Don't blame the newbies.

gestein

Hallo meikelS,

ich bin auch schon lange auf der Suche, wie ich solche Parameter verwalten soll.
Bisher habe ich aber nicht wirklich eine Lösung gefunden.

Wie machst Du das?

Danke, lg, Gerhard

meikelS

Ich habe ein Dummy mit Namen settings. Das "sammelt" einfach alle möglichen Werte in Readings.


In meiner 99_mexUtils.pm hab ich dann einfach zwei (hier vereinfachte) Funktionen
- getSetting($name)
Die holt mir den aktuellen Wert aus dem Dummy mit ReadingsVal("settings", $name)


- setSetting($name, $value)
Die schreibt das weg mit fhem("setReading settings $name $value")


Bei mir sind die noch etwas komfortabler mit trim, defaultvalues, check usw. So mach ich das seit Jahren in verschiedenen Projekten. Nur der Speicherort ist immer ein anderer. Mal ne Datenbank. Hier halt ein Dummy ;-)
Don't blame the newbies.

Beta-User

Hmm, hier gibt es vermutlich nicht "die" Standardlösung.

Ich habe (vereinfacht) drei Kategorien:
- Einfache Dummy's, die z.B. einen zentralen Status wiedergeben (Heizperiode ja/nein). Nutze ich, wenn ich die direkt in FHEMWEB irgendwo angezeigt haben will (mit Schaltmöglichkeit).

- Dummy-Devices, die zusammengehörige Infos sammeln, z.B. für die Anwesenheit von Bewohnern (ich weiß, es gibt ROOMMATE&Co, aber das war mir bisher zu aufwändig, kommt evtl. noch...). Da lasse ich mir z.B. auch in Readings des Dummy anzeigen, welche Nachrichten via Telegram gesendet wurden (darüber läßt sich der Status auch schalten und die Heizung beeinflussen). Da greife ich in der Regel nicht manuell ein, häufig gibt es aber nur eine begrenzte Zahl von Möglichkeiten (z.B. zum state von so einem Bewohner-Dummy; das muss zu ASC passen), da ist dann direkt die Auswahl in die setList mit reingecodet (get btw. mWn. auch mit die Angabe des passenden widgets).

- Was an eher statischer Info "im Hintergrund" benötigt wird, ist immer mehr ein Fall für "getKeyValue()". Da wird die Info mittels setKeyValue() in einer separaten Datei gespeichert (als key-value-Paar), was z.B. für Passwörter von Email-Konten ganz hilfreich ist oder wenn es darum geht zu wissen, welcher Dummy die Telegram-Messages "erhalten" soll.

Vielleicht hilft das jemand weiter...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors