Wunsch: "get configxxxx" folgt automatisch einem "set configxxx"

Begonnen von scooty, 08 August 2015, 17:18:41

Vorheriges Thema - Nächstes Thema

scooty

Hallo zusammen,

erst einmal ein herzliches Danke für die geleistete Arbeit hier bezüglich ZWave-Unterstützung in FHEM.
Inzwischen sind durch die hier verfügbar gemachten Funktionen alle meine 433 MHz Komponenten durch ZWave-Komponenten ersetzt worden (und wegen der guten Erfahrungen und Unterstützung hier ist es dabei natürlich nicht geblieben  :) )

Einen Wunsch möchte ich äußern:
Nach Auswahl eines für ein Device passenden
set <device> configxxxx <Wert>
im Webinterface soll automatisch danach durch das Modul der zugehörige
get <device> configxxxx
Befehl gesendet werden, um das entsprechende Reading des Devices mit dem aktuellen Konfigurationswert zu füllen.
Wäre sowas möglich oder ist das (auf Grund meiner fehlenden ZWAVE Funktionsgrundlagenkenntnisse) kompletter Schwachsinn?

Hintergrund:
Inzwischen habe ich ein paar ZWave Geräte im Einsatz, bei den meisten habe ich deren Konfiguration über die zur Verfügung stehenden "set configxxx" Befehle feinjustiert.
Die Readings werden (zumindest bei mir) danach nur über die entsprechenden "get configxxxx" (manuell) aktualisiert.
Da ich gerne die Readings die aktuelle Konfigurationswerte darstellen lasse, ist das dann jedesmal ein lustiges set configxxx - get configxxx  - Webinterface-Auswahlspiel, soll heißen, ziemlich umständlich.
Bin zwischenzeitlich manchmal dazu übergegangen, direkt in einem Texteditor die beiden passenden set/get Kommandos vorzubereiten und in das WI zu kopieren, um sie dann auf einmal auszuführen.
Die direkte Abfolge der set/get Kommandos habe bisher bei keinem meiner ZWave-Geräte zu Problemen geführt und beide Kommandos wurden immer brav ausgeführt.
OK, batteriebetriebene Devices müssen erst durch in wakeUp aktiviert werden, aber nach meinen Erfahrungen akzeptieren sie auch zwei Kommandos im SendStack ohne Probleme. 

Könnte dies im Modul vielleicht implementiert werden?

Beziehe mich wirklich nur auf die gut dokumentierten "configxxx"-Parameter, ggf. könnte dies auch auf andere (ZWave-Standard-)Parameter ausgeweitet werden?

Vielen Dank für eure Rückmeldungen (auch wenn's Blödsinn sein sollte),

Andreas
PS:
Leider reichen meine Perl- bzw. generellen Entwicklungskenntnisse nicht dazu aus, direkt einen entsprechenden Patch zu entwickeln. Ist auch nichts dringendes, da ich bisher zwar so klargekommen bin, aber zumindest mMn könnte diese Funktion manchen Benutzern die Konfiguration (und vielleicht auch den Einstieg in ZWave) einfacher machen. 
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH10880 / IO Homecontrol

rudolfkoenig

Bin unsicher, ob so ein Feature nicht irgendwelche Probleme bereitet.
Du kannst es aber auch implementieren mit einem notify:
define configGet notify .*:config[^:]* get $NAME $EVTPART0
und berichten, ob es Nebenwirkungen hat.

scooty

Zitat von: rudolfkoenig am 09 August 2015, 12:24:50
Bin unsicher, ob so ein Feature nicht irgendwelche Probleme bereitet.
Genau, vielleicht gibt es ja noch weitere Meinungen?

Zitat von: rudolfkoenig am 09 August 2015, 12:24:50
Du kannst es aber auch implementieren mit einem notify:
define configGet notify .*:config[^:]* get $NAME $EVTPART0
und berichten, ob es Nebenwirkungen hat.
Alles klar, toller Tipp. :thumbsup:
Habe es direkt so definiert und in den nächsten Wochen kommen noch ein paar mehr ZWave-Devices dazu, die ich dann testen kann.
Werde berichten.

Vielen Dank für's Gedanken machen,
Andreas
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH10880 / IO Homecontrol

krikan

Zitat von: scooty am 10 August 2015, 08:05:53
Genau, vielleicht gibt es ja noch weitere Meinungen?
Klar, kannst  Du haben  ;).

Ich bin derzeit dagegen low-lewel-Funktion in den Zwave-Modulen mit Komfortfunktionen zu vermischen. Genau das würde mit dem direkten set-/get-Kombinationen doch passieren. Bisher sind die Commands immer schön einzeln eingebunden. Die Kombinationen von Commands gehören meiner derzeitigen Meinung nach in eine separate "Toolbox". Denn wo ziehen wir sonst  die Grenze: "set <ZWDongle> removeFailedNode" müsste vorher automatisch "set <ZWDongle> senNIF" und "get <ZWDongle> isFaildNode" ausführen, Vesionabfrage der CC sollte über alle Classes eines Devices laufen, Config-Parameter müssen immer alle abgerufen werden usw.
Letztlich möchte ich auch direkt auf die low-level-Funktionen zugreifen können.

scooty

Hallo krikan,

absolut richtig und wieder einmal viel weiter gedacht als ich.
:)
Ja, am Ende geht es um Komfortfunktionen oder zumindest kleine Hilfestellungen, die die Einrichtung und das  Management von ZWave-Devices vereinfachen, ohne auf die  low-level Funktionen zu verzichten. Die von Dir genannten Beispiele kann ich auch bestätigen und Dir scheinen sie ja im Umgang mit ZWave-Devices eben auch schon über den Weg gelaufen zu sein.
;)

Dieses kleine "Helferlein" von Rudolf finde ich schon klasse, mir fehlt mangels Erfahrung und Perl-Kenntnissen zu oft leider die Eingebung, wie eine Problemstellung am effektivsten zu lösen ist (aber ich arbeite daran). 

Wie an Rudolfs Beispiel zu sehen ist, ist  die große Knute (=Aufnahme ins ZWave-Modul) auch wohl meistens gar nicht nötig.

So als Idee: Sollten wir (oder ich?) vielleicht einen Thread starten, um solche "Helferlein" 'mal einzusammeln, könnte dann auch daraus einen entsprechenden Wiki-Artikel erstellen oder an passenden Stellen im Wiki aufnehmen. Auch als Grundlage für eine von Dir vorgeschlagene Toolbox wäre das dann ja geeignet.

Starten könnten wir mit (frech habe ich die bisherigen Punkte einfach 'mal zusammengefasst und mit weiteren Ideen meinerseits ergänzt):
- get nach set für Konfigurationsparameter
- Vesionsabfrage der CommandClasses über alle Classes eines Devices
- Abruf aller Config-Parameter eines Devices
- Auslösen von Neighborupdate auf Node nach: set <dongle> neighborupdate <Node>
- Vergleich/Anpassung der Konfigurationsparameter gleicher ZWave-Devices
- Erzeugung/Aktualisierung der ZW-Dongle-Readings neighborList_x und nodeInfo_x anhand des Readings nodelist
- ...

Viele Grüße,
Andreas
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH10880 / IO Homecontrol

krikan

Hallo Andreas!

ZitatSo als Idee: Sollten wir (oder ich?) vielleicht einen Thread starten, um solche "Helferlein" 'mal einzusammeln, könnte dann auch daraus einen entsprechenden Wiki-Artikel erstellen oder an passenden Stellen im Wiki aufnehmen. Auch als Grundlage für eine von Dir vorgeschlagene Toolbox wäre das dann ja geeignet.
Warum nicht? Spricht mMn überhaupt nichts dagegen. Kannst Du sehr gerne machen.

Zitatmir fehlt mangels Erfahrung und Perl-Kenntnissen zu oft leider die Eingebung, wie eine Problemstellung am effektivsten zu lösen ist (aber ich arbeite daran).
Das geht mir auch nicht anders. Man braucht ja nichts Effektives am Anfang. Hauptsache es funktioniert "irgendwie". Verbesserungen und Ideen kommen dann schon durch andere automatisch.

Gruß, Christian