neue Features: defaultvalue, readingList, Ereignisfilter, Attribut checkall

Begonnen von Damian, 05 Oktober 2016, 19:58:14

Vorheriges Thema - Nächstes Thema

Damian

Zitat von: JoeALLb am 29 November 2016, 16:18:53
... Ich hatte nur einen Traum, und wer weiß, vielleicht entwickelt sich in den nächsten Jahren doch etwas in diese Richtung... ;-)

Neue Ideen sind immer willkommen. Allerdings ist meine Zeit für die Weiterentwicklung recht begrenzt, da ich noch andere Verpflichtungen habe.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Ellert

Zitat von: JoeALLb am 29 November 2016, 16:18:53
Servus und danke fürs Feedback. Sorry, sollte ich dich damit "beleidigt" haben, das war natürlich keinesfalls mein Ansinnen.
Ich Gebe Dir völlig recht, dass es andere Prioritäten gibt, weshalb ich meinen Wunsch auch sehr vorsichtig fomuliert habe.
Gerade durch die häufige Nutzung und die universelle Einsetzbarkeit deines tollen Moduls bringt die Übersichtlichkeit eben manchmal an ihre Grenzen, weshalb
ich eben nur mitdenken wollte und einen sinnvollen Verbesserungsvorschlag zur weiteren Vereinfachung machen wollte. (Dein ganzes Modul bringt ja hauptsächlich kaum neue Funktionalität,
sondern eine massive Vereinfachung des bisher dagewesenem). Ich denke auch, dass dies die Supportanfragen reduzieren
würde, da mehr Anwender ihre Fehler selbst, bzw. früher erkennen könnten... (gerade mit waits, etc. lese ich des Öfteren von Fehlern)

... Ich hatte nur einen Traum, und wer weiß, vielleicht entwickelt sich in den nächsten Jahren doch etwas in diese Richtung... ;-)
Wenn Du für cmdState das Widget textField-long spezifizierst, ist es leicht die Übersicht zu behalten, dann entsprechen die Zeilennummern dem Befehlszweig. Ich nutze das für wait - cmdState habe ich nicht probiert. Schreib mal ob es geht.

Ellert

Zitatc)
Garantiert persistente Reading beginnen mit [A-Z]_.
Spricht etwas dagegen alle Readings nicht zu löschen, ausser die vom DOIF selbst erzeugten?
@JoeALLb: Es sollte mit der anliegenden Version klappen. Bitte mal testen.

@Damian: Siehst Du Dir es mal an, habe ich zu löschende Readings vergessen?




Damian

Zitat von: Ellert am 29 November 2016, 16:36:43
@JoeALLb: Es sollte mit der anliegenden Version klappen. Bitte mal testen.

@Damian: Siehst Du Dir es mal an, habe ich zu löschende Readings vergessen?

Ich denke, dass sollten sie sein, wenn nicht noch irgendetwas Seltenes irgendwo schlummert.

Ein Einzeiler für die Abfrage sollte doch ausreichen:

=~ "^(state|error|cmd|e_...

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

JoeALLb

Zitat von: Ellert am 29 November 2016, 16:29:07
Wenn Du für cmdState das Widget textField-long spezifizierst[...]

Ja, klappt wundervbar, danke! Ich hatte CoreMirror bis jetzt gar nicht aktiviert, da ich den Mehrwert nicht wirklich erkannte.
So hat esnatürlich einen tollen Nutzen!

((Jetzt bräuchte ich nur noch eine Möglichkeit, die DOELSE's durchzunummerieren ;-) )
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

JoeALLb

Zitat von: Ellert am 29 November 2016, 16:36:43
@JoeALLb: Es sollte mit der anliegenden Version klappen. Bitte mal testen.

Sehr cool... habe gleich alle "A_" wieder zurückgebaut und bin begeistert! Vielen Dank!!
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Ellert

Zitat((Jetzt bräuchte ich nur noch eine Möglichkeit, die DOELSE's durchzunummerieren ;-) )
Mach`s wie hier beschrieben.

Damian

Zitat von: JoeALLb am 29 November 2016, 17:02:18
Sehr cool... habe gleich alle "A_" wieder zurückgebaut und bin begeistert! Vielen Dank!!

Man sollte allerdings sich immer dessen bewusst sein, dass zukünftig neue modulspezifische Readings dazu kommen können, die man aufräumen muss und möglicherweise, wenn der Präfix übereinstimmt, irgendwelche selbst definierten mitlöscht.

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

JoeALLb

Zitat von: Damian am 29 November 2016, 17:17:30
Man sollte allerdings sich immer dessen bewusst sein, dass zukünftig neue modulspezifische Readings dazu kommen können, die man aufräumen muss und möglicherweise, wenn der Präfix übereinstimmt, irgendwelche selbst definierten mitlöscht.

... In den Readings stehen ja keine fundamental-wichtigen Dinge, und wenn sie mal gelöscht werden, macht dies ja normalerweise nichts.
Ein DOIF ändert man halt manchmal mehrmals täglich, (ich nutze gerade einen Datepicker um eine heizungssteuerung zu entwickeln) und für mich war es immer Aufwand (und eine Fehlerquelle), aktuell gültige Readings (da sie zeitwerte enthielten) nach einem Ändern des DOIFS wieder zu erzeugen.
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

Ellert

Zitat von: Damian am 29 November 2016, 16:53:36
Ich denke, dass sollten sie sein, wenn nicht noch irgendetwas Seltenes irgendwo schlummert.

Ein Einzeiler für die Abfrage sollte doch ausreichen:

=~ "^(state|error|cmd|e_...



Jetzt mit Einzeiler, könnte zum Update werden.

Damian

Zitat von: Ellert am 29 November 2016, 17:49:10
Jetzt mit Einzeiler, könnte zum Update werden.

Dann sollten wir noch Punkt a) und b) mitnehmen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Ellert

ZitatDann sollten wir noch Punkt a) und b) mitnehmen.
zu b) Du ersetzt alle Kommentare vor der Syntaxprüfung durch ein Leerzeichen, davor würde ich aussteigen, wenn $tail nur Kommentare enthält.
Aber ich habe noch keine erfolgreiche Idee, wie ich prüfe, ob nur Kommentare vorhanden sind und keine Bedingungen.

Zu a) habe ich noch nicht versucht zu lösen.

Damian

Zitat von: Ellert am 29 November 2016, 18:08:16
zu b) Du ersetzt alle Kommentare vor der Syntaxprüfung durch ein Leerzeichen, davor würde ich aussteigen, wenn $tail nur Kommentare enthält.
Aber ich habe noch keine erfolgreiche Idee, wie ich prüfe, ob nur Kommentare vorhanden sind und keine Bedingungen.

Zu a) habe ich noch nicht versucht zu lösen.

Ich schon ;)

Punkt a), b) eingebaut, Eintrag A_Z... zu UserReadings aus der Doku entfernt.

Bitte testen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Ellert

Zitat von: Damian am 29 November 2016, 18:27:20
Ich schon ;)

Punkt a), b) eingebaut, Eintrag A_Z... zu UserReadings aus der Doku entfernt.

Bitte testen.
Ja, das ist der Unterschied zwischen Meister und Lehrling  ;)

Aber, es funktioniert nur b).

zu a) Mit dem DOIF und LUM=2 und einer Änderung von my bleibt state initialized.
Internals:
   DEF        ## LUM
   NAME       errorTest
   NR         45
   NTFY_ORDER 50-errorTest
   STATE      initialized
   TYPE       DOIF
   Readings:
     2016-11-29 19:21:52   cmd             0
     2016-11-29 19:21:36   my              2
     2016-11-29 19:21:52   state           initialized
   Devices:
   Helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
   Itimer:
   Regexp:
   State:
Attributes:
   readingList my
   room       0_Test
   setList    my:0,1,2
   state      {([$SELF:my] + [LUM] + 3)}
   webCmd     my


Mit
  state      {([LUM] + 3)}
und einer Änderung von LUM funktioniert es.

Damian

Zitat von: Ellert am 29 November 2016, 19:46:11
Ja, das ist der Unterschied zwischen Meister und Lehrling  ;)

Aber, es funktioniert nur b).

zu a) Mit dem DOIF und LUM=2 und einer Änderung von my bleibt state initialized.
Internals:
   DEF        ## LUM
   NAME       errorTest
   NR         45
   NTFY_ORDER 50-errorTest
   STATE      initialized
   TYPE       DOIF
   Readings:
     2016-11-29 19:21:52   cmd             0
     2016-11-29 19:21:36   my              2
     2016-11-29 19:21:52   state           initialized
   Devices:
   Helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
   Itimer:
   Regexp:
   State:
Attributes:
   readingList my
   room       0_Test
   setList    my:0,1,2
   state      {([$SELF:my] + [LUM] + 3)}
   webCmd     my


Mit
  state      {([LUM] + 3)}
und einer Änderung von LUM funktioniert es.

Da haben wir ein Problem. Die Eigentriggerung war immer schon beim state-Attribut ausgeschlossen. Ansonsten würde das Modul auf die Änderung des eigenen Status wieder reagieren (Loop).

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF