FHEM Forum

FHEM - Entwicklung => Wunschliste => Thema gestartet von: FHEMAN am 29 August 2016, 00:07:46

Titel: [gelöst] set inkl. :FILTER=STATE!=Value
Beitrag von: FHEMAN am 29 August 2016, 00:07:46
Ich kann mir nur wenige Konstellationen vorstellen, wo die Abfrage des vorherrschenden State vor dem Schalten eines Devices keinen Sinn ergibt:

set myDevice:FILTER=STATE!=on on

anstelle von

set myDevice on

Alleine schon um Events und Funklast, aber auch um die Lesbarkeit des Codes zu optimieren fände ich es sinnvoll, dies als als Standard im set aufzunehmen oder eine Art setex (SetExtended, set2, setf, setstate) zu implementieren.

Gruß
Ronny
Titel: Antw:set inkl. :FILTER=STATE!=Value
Beitrag von: marvin78 am 29 August 2016, 07:28:26
Ich bin dagegen. Bei mir gibt es sehr viele Fälle, in denen komplett andere Filter oder auch keine sinvoll sind. Standardfilter auf STATE macht ohnehin keinen Sinn, siehe stateFormat.
Titel: Antw:set inkl. :FILTER=STATE!=Value
Beitrag von: FHEMAN am 29 August 2016, 10:56:53
Na man könnte hierbei ja ggf. auch nur auf set myDevice state on reagieren. Oder auch ein zweites, funktional erweitertes SET einführen?
Bin ich wohl der einzige, der das so exzessiv verwendet und seinen Code dadurch unübersichtlich findet.
Titel: Antw:set inkl. :FILTER=STATE!=Value
Beitrag von: dev0 am 29 August 2016, 11:25:10
Dein eigenes conditional-set command kannst Du Dir mit einem Perl Dreizeiler oder vielleicht auch cmdalias bauen.
Titel: Antw:set inkl. :FILTER=STATE!=Value
Beitrag von: FHEMAN am 29 August 2016, 13:35:42
Zitat von: dev0 am 29 August 2016, 11:25:10
Dein eigenes conditional-set command kannst Du Dir mit einem Perl Dreizeiler oder vielleicht auch cmdalias bauen.
Sehr sehr gerne. Und natürlich hatte ich schon rumexperimentiert, bevor ich hier fragte.. aber für meinen Ausflug in die Original SET Routine samt seinen Abhängigkeiten waren meine Perl Kenntnisse zu gering.
Wichtig wäre mir, am Ende einen FHEM Befehl zu erhalten und keine Perl Funktion. Und CMDAlias habe ich bisher nicht genutzt und scheint ja vielversprechend und sehr mächtig zu sein, das schaue ich mir an!
Mit einem Device funktioniert es schon

setex .* AS set $EVTPART0:FILTER=STATE!=$EVTPART1 $EVTPART1

Danke für den Tip!
Titel: Antw:set inkl. :FILTER=STATE!=Value
Beitrag von: P.A.Trick am 29 August 2016, 22:29:18
Zitat von: derron am 29 August 2016, 13:35:42
Sehr sehr gerne. Und natürlich hatte ich schon rumexperimentiert, bevor ich hier fragte.. aber für meinen Ausflug in die Original SET Routine samt seinen Abhängigkeiten waren meine Perl Kenntnisse zu gering.
Wichtig wäre mir, am Ende einen FHEM Befehl zu erhalten und keine Perl Funktion. Und CMDAlias habe ich bisher nicht genutzt und scheint ja vielversprechend und sehr mächtig zu sein, das schaue ich mir an!
Mit einem Device funktioniert es schon

setex .* AS set $EVTPART0:FILTER=STATE!=$EVTPART1 $EVTPART1

Danke für den Tip!

Hier mal der Alias

define c_setex cmdalias setex .* AS set $EVTPART0:FILTER=STATE!=$EVTPART1 $EVTPART1

Danke konnte ich auch noch gebrauchen! ;-)