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
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.
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.
Dein eigenes conditional-set command kannst Du Dir mit einem Perl Dreizeiler oder vielleicht auch cmdalias bauen.
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!
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! ;-)