Hauptmenü

DOIF für Schalter

Begonnen von geforce28, 16 Januar 2018, 22:02:13

Vorheriges Thema - Nächstes Thema

geforce28

#15
@nils_
Ja das ist ne Möglichkeit, dadurch ist aber meine Anforderung nicht ganz abgedeckt, nämlich die:
Wenn die Lampe schon an ist und der Farb und helligkeitswert nicht stimmt, soll an das Preset, bri 77 und rgb xxx angepasst werden... ;)
Deshalb die Abfrage ;)

nils_

#16
ah ok, das hatte ich überlesen  :-[


//edit:
um es wartbarer zu gestalten könnte man die werte im DOIF mit ablegen

([SZ.Nachttisch.L.Schalter_Btn_01:"Short.*"] and ([?HUEDevice14:bri] ne [$SELF:bri] or [?HUEDevice14:rgb] ne [$SELF:rgb] or [HUEDevice14:state] eq "off")) (set HUEDevice14 rgb [$SELF:rgb], set HUEDevice14 bri [$SELF:bri], set test2 on)
DOELSEIF
([SZ.Nachttisch.L.Schalter_Btn_01:"Short.*"] and ([?HUEDevice14:bri] ne [$SELF:bri] and [?HUEDevice14:rgb] ne [$SELF:rgb] and [HUEDevice14:state] ne "off")) (set HUEDevice14 off, set test2 off)

und noch
attr <DOIFname> readingList bri, rgb

bei der syntax und ob es funktioniert bin ich mir nicht sicher....
kannst es ja mal versuchen, oder auf einen DOIF-Experten warten :)
viele Wege in FHEM es gibt!

geforce28

Sehr gute Idee mit den Attributen :) Vielen Dank!


So jetzt habe ich mir noch eine neue Anforderung überlegt, die ich auch noch im Schalter implementieren möchte.
Wenn ich eine Taste gedrückt geht der Schalter in folgende States Sekunden-Takt:
Long 1_233 (to VCCU)
Long 2_233 (to VCCU)
Long 3_233 (to VCCU)
Long 4_233 (to VCCU)
....

Wenn ich loslasse kommt der State
LongRelease 13_233 (to VCCU)


Nun möchte ich folgende Funktion auf das lange Tastendrücken legen:
Mit jedem "Long 1_233 (to VCCU)", "Long 2_233 (to VCCU)" Befehl soll die Helligkeit der Hue Lampe um 5% erhöht werden.
Befehl dazu müsste folgender genommen werden:
set HUEDevice14 pct XX

Wobei XX den jeweiligen Prozentwert darstellt.
Ist die Lampe also schon auf 31% soll mit jedem "Long X_XXX (to VCCU)" um 5% erhöht werden, also in diesem Fall auf 36%.


Ich sehe leider mal wieder den Wald vor lauter Bäumen nicht.
Könnt ihr mir helfen, wie ich so etwas umsetze ? :)

Vielen Dank im Voraus.

Per

Als Tipp: do always.
Und nimm nicht %! Nimm einen festen Wert, zur Not sogar mit {[HUEDevice14:value]>95?[HUEDevice14:value] + 5:100}.
Wenn die Long den falschen Rhytmus haben, kannst du mit Long auch repeatCmd starten und mit LongRelease wieder stoppen.

geforce28

#19
Hm okay... muss ich mir mal genauer anschauen, wie das gehen soll :-/

Nochmal kurz zu der ReadingList als Attr im DOIF.

Habe nun folgende Attribute gesetzt:
attr SZ.Nachttisch.L.SW.Logik readingList bri, rgb
und
set SZ.Nachttisch.L.SW.Logik set bri 77

Das DOIF def habe ich wie folgt geändert:
(erstmal zum testen nur für "BRI".)
Aber es läuft dann garnicht mehr....

([SZ.Nachttisch.L.Schalter_Btn_01:"Short.*"] and ([HUEDevice14:bri] ne [$SELF:bri] or [HUEDevice14:rgb] ne "644010" or [HUEDevice14:state] eq "off")) (set HUEDevice14 rgb 644010, set HUEDevice14 bri 77)
DOELSEIF
([SZ.Nachttisch.L.Schalter_Btn_01:"Short.*"] and ([HUEDevice14:bri] eq [$SELF:bri] and [HUEDevice14:rgb] eq "644010" and [HUEDevice14:state] ne "off")) (set HUEDevice14 off)


Habe ich was falsch gemacht ?

EDIT:
Das mit dem hochdimmen habe ich wie folgt gelöst. - Erfolgreich :)
define SZ.Nachttisch.L.SW.Long.Logik doif ([SZ.Nachttisch.L.Schalter_Btn_01:"Long .*"]) (set HUEDevice14  dimUp)

nils_

Zitat von: geforce28 am 18 Januar 2018, 18:15:32
Nochmal kurz zu der ReadingList als Attr im DOIF.

Habe nun folgende Attribute gesetzt:
attr SZ.Nachttisch.L.SW.Logik readingList bri, rgb
und
set SZ.Nachttisch.L.SW.Logik set bri 77

Das DOIF def habe ich wie folgt geändert:
(erstmal zum testen nur für "BRI".)
Aber es läuft dann garnicht mehr....

([SZ.Nachttisch.L.Schalter_Btn_01:"Short.*"] and ([HUEDevice14:bri] ne [$SELF:bri] or [HUEDevice14:rgb] ne "644010" or [HUEDevice14:state] eq "off")) (set HUEDevice14 rgb 644010, set HUEDevice14 bri 77)
DOELSEIF
([SZ.Nachttisch.L.Schalter_Btn_01:"Short.*"] and ([HUEDevice14:bri] eq [$SELF:bri] and [HUEDevice14:rgb] eq "644010" and [HUEDevice14:state] ne "off")) (set HUEDevice14 off)


wie ich schon gesagt habe: ich weiß nicht ob die Syntax so passt.

aaaaaaber:
was bedeutet "es läuft dann garnicht" mehr.
poste doch mal einen logauszug und ein list von dem DOIF (bitte  beides in code-tags!)
viele Wege in FHEM es gibt!