neue Features: defaultvalue, readingList, Ereignisfilter, Attribut checkall

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

Vorheriges Thema - Nächstes Thema

Ellert

selftrigger all hat auch nichts gebracht.
Wenn ich bei {([$SELF:my] + [LUM] + 3)} LUM ändere bleibt state initialized, da triggert doch LUM.

Ein anderes Beispiel für Raw definition

So funktioniert es
defmod errorTest DOIF ([$SELF:my])
attr errorTest do always
attr errorTest readingList my
attr errorTest room 0_Test
attr errorTest setList my:0,1,2
attr errorTest state {([errorTest:my] * 5)}
attr errorTest webCmd my

setstate errorTest 2016-11-29 20:43:58 my 1


so funktionert es nicht und ergibt den Fehler "state *main::5"

defmod errorTest DOIF ([$SELF:my])
attr errorTest do always
attr errorTest readingList my
attr errorTest room 0_Test
attr errorTest setList my:0,1,2
attr errorTest state {([$SELF:my] * 5)}
attr errorTest webCmd my

setstate errorTest 2016-11-29 20:47:38 my 0

Damian

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

JoeALLb

Nett!!

Mit diesem Konstrukt löse ich damit übrigens auch im Moment mein cmdState-Problem
in meinem größten Doif (über 34 DOELSE)

define myDOIF (XX)
(setreading $SELF statDOIF CommandDescription)
(...)


und
attr myDOIF [$SELF:statDOIF]
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, 21:46:30
War etwas tricky.

Jetzt noch gut testen.

Folgendes DOIF und Dummy für Raw-definition:

defmod LUM dummy
attr LUM group 0SELF
attr LUM readingList humidity
attr LUM room 0_Test
attr LUM setList state:0,1,2,3
attr LUM webCmd state

setstate LUM 1
setstate LUM 2016-11-30 00:04:03 state 1

defmod errorTest DOIF (## [LUM] or [$SELF:my])
attr errorTest do always
attr errorTest group 0SELF
attr errorTest readingList my
attr errorTest room 0_Test
attr errorTest setList my:0,1,2
attr errorTest state {([$SELF:my] + [errorTest:my] + [LUM])}
attr errorTest webCmd my
setstate errorTest 2016-11-30 09:58:53 my 1

Das funktioniert.

DOIF mit wait
defmod errorTest DOIF ([LUM])
attr errorTest do always
attr errorTest group 0SELF
attr errorTest readingList my
attr errorTest room 0_Test
attr errorTest setList my:0,1,2
attr errorTest wait {([$SELF:my] + [errorTest:my] + [LUM])}
attr errorTest webCmd my

Wenn state initialized ist und my geändert wird, dann wird state auf "" gesetzt/aktualisiert.
Wenn state initialized ist und das Attribut wait übers Frontend geändert/aktualisiert wird, dann wird state auf ""/aktualisiert gesetzt.

In der Releaseversion wird state durch my nicht beeinflusst, das sollte auch so bleiben.

JoeALLb

Nur nochmal zur Nachfrage:

"state" kann im DOIF nicht wie im dummy genutzt werden, es müssen andere Readings verwendet werden, oder?

Mit
attr errorTest readingList state
zum oberen Beispiel habe ich Schwierigkeiten....
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


JoeALLb

Zitat von: Ellert am 30 November 2016, 10:56:25
Und die wären?
unknown argument 2 for errorTest, choose one of disable initialize enable state:0,1,2
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

Noch ein hoffentlich kleiner Wunsch:
Wäre es möglich, bei setList zusätzlich noch ein Linebreak als Trenner zu akzeptieren?
Meine setList wird immer recht lange und das Space als Trenner ist da sehr ungünstig. ;-)
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: JoeALLb am 30 November 2016, 11:25:38
unknown argument 2 for errorTest, choose one of disable initialize enable state:0,1,2
readingList state versuchen Hattest Du ja schon probiert.

Ellert

Zitat von: JoeALLb am 30 November 2016, 11:49:06
Noch ein hoffentlich kleiner Wunsch:
Wäre es möglich, bei setList zusätzlich noch ein Linebreak als Trenner zu akzeptieren?
Meine setList wird immer recht lange und das Space als Trenner ist da sehr ungünstig. ;-)
Dies ist dafür der falsche Forumsbereich, setList ist vom Dummy adaptiert.

Aber wo ist das Problem?

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.

Wäre es nicht trotzdem sinnvol einen Namensraum für Benutzerreadings zu definieren?

JoeALLb

Zitat von: Ellert am 30 November 2016, 13:41:18
Aber wo ist das Problem?

Der erste Eintrag funktioniert, die anderen haben solche Artefakte.
Ich dachte, setList sei hier eventuell "eigens" umgesetzt und hat mit dem Dummy-setList nichts gemeinsam ;-)
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 30 November 2016, 14:00:52
Wäre es nicht trotzdem sinnvol einen Namensraum für Benutzerreadings zu definieren?
Wozu? Ich kann mir keinen sinnvollen Grund dafür vorstellen...
Einzig wenn state (wie oben beschrieben) tatsächlich nicht funktioniert, sollte das in der Doku erwähnt werden...
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: JoeALLb am 30 November 2016, 14:06:08
Wozu? Ich kann mir keinen sinnvollen Grund dafür vorstellen...
Einzig wenn state (wie oben beschrieben) tatsächlich nicht funktioniert, sollte das in der Doku erwähnt werden...
Um hier vor geschützt zu sein: https://forum.fhem.de/index.php/topic,58556.msg530754.html#msg530754 .
Es könnte auch sein, dass DOIF plötzlich eigene Inhalte in Deine Readings schreibt.

JoeALLb

Dieses "Problem" besteht heute mit userReadings auch schon... ich denke das kann hier vernachlässigt werden, aber gut... ist nur meine Meinung ;-)
Vielleicht reicht ein Hinweis dazu in der commandref, dass dies sein kann.
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