DOIF mit pct im set Befehl geht (zum Teil) nicht, warum?

Begonnen von SoT2079, 14 April 2017, 07:30:39

Vorheriges Thema - Nächstes Thema

SoT2079

Guten morgen zusammen,

ich habe da grade mal ein leichtes Verständnis Problem.

Kurz zum Aufbau von dem was ich vor habe:
2OG_BW_Flur ist mein Bewegungsmelder,
d_dunkel ist ein Dummy in dem ich zusammenfasse ob es dunkel ist und die Funktion greifen soll,
Lichtautomatik ist ein Dummy Switch mit dem ich das ganze von Hand abschalten kann.

Jetzt bin ich auf die Idee gekommen, Mensch das ist doch nen Dimmer, da kann man das doch Nachts einfach nicht so hell machen.
Also die Zeiten hinten mit dran gehängt und cmd_2 & cmd_3 ergänzt.

Was ich jetzt nicht verstehe ist, cmd_1 & cmd_4 funktioniert,
bei cmd_2&3 zeigt der an das die Bedingung erfüllt ist, das Licht geht aber nicht an.

Meistens liegt es daran das irgendein Depp den set Befehl falsch geschrieben hat, vergesse ja gerne mal ne Klammer oder so.
Also meine set Befehl kopiert und direkt in die Eingabezeile rein. --> Licht geht an auf 20%

Änder ich bei cmd_2 den Wert von 20 auf 100 funktioniert das auch.

Bis jetzt dachte ich auch das der Befehl wenn er in der Eingabezeile direkt funktioniert auch von einem DOIF funktionieren muss,
ist das nicht so? Muss ich da noch irgendwas in Klammern packen das es geht?
Bei cmd_3 hatte ich schon mal einen Versuch gestartet, klappt aber auch nicht.

Jetzt gehen mir die Ideen aus :(

Kann sich das bitte mal jemand anschauen und mir vielleicht einen Tipp geben?

Hier noch mein DEF

([2OG_BW_Flur] eq "motion" and [d_dunkel] eq "off" and [d_1OG_Flur_Lichtautomatik] eq "on" and [06:00-22:00])
(set 2OG_Flur_Licht pct 100 0 2)

DOELSEIF
([2OG_BW_Flur] eq "motion" and [d_dunkel] eq "off" and [d_1OG_Flur_Lichtautomatik] eq "on" and [22:01-23:59])
(set 2OG_Flur_Licht pct 20 0 2)

DOELSEIF
([2OG_BW_Flur] eq "motion" and [d_dunkel] eq "off" and [d_1OG_Flur_Lichtautomatik] eq "on" and [00:00-05:59])
(set (2OG_Flur_Licht pct 20 0 2))

DOELSEIF
([2OG_BW_Flur] eq "noMotion" and [d_1OG_Flur_Lichtautomatik] eq "on")
(set 2OG_Flur_Licht pct 0 0 30)


Schöne Ostern zusammen.

Per

Außer dass du im 3. Zweig ne Klammer zu viel hast, was aber keine Auswirkungen auf den 2. haben sollte, ist mir nix aufgefallen.

Ellert

Du kannst die Ausführung der einzelnen Befehlszweige testen, z.B. für Zweig 2 mit

set <DOIFname> cmd_2

die Bedingungen werden dann ignoriert.

SoT2079

#3
@Per

Die Klammer zu viel im dritten ist mir klar, das ist was ich meinte das ich mal mit mehr Klammer getestet hatte.

@Ellert

schreibe ich: set di_2OG_Flur_BW cmd_2
kommt: unknown argument cmd_2 for di_2OG_Flur_BW, choose one of disable initialize enable

gestern Abend wo alle Bedingungen erfüllt waren hat die Bedingung auch funktioniert.
Also durch den Flur gelaufen und auf dem Handy geschaut, bei DeviceOverview stand dann auch brav cmd_2.
Nach ablauf der Zeit also noMotion am BW kam auch wieder cmd_4.


Hab jetzt mal umgestellt:

([2OG_BW_Flur] eq "motion" and [d_1OG_Flur_Lichtautomatik] eq "on" and [06:00-22:00])
(set 2OG_Flur_Licht pct 100 0 2)

DOELSEIF
([2OG_BW_Flur] eq "noMotion" and [d_1OG_Flur_Lichtautomatik] eq "on")
(set 2OG_Flur_Licht pct 0 0 30)

funktioniert


dann:

([2OG_BW_Flur] eq "motion" and [d_1OG_Flur_Lichtautomatik] eq "on" and [06:00-22:00])
(set 2OG_Flur_Licht pct 20 0 2)

DOELSEIF
([2OG_BW_Flur] eq "noMotion" and [d_1OG_Flur_Lichtautomatik] eq "on")
(set 2OG_Flur_Licht pct 0 0 30)

funktioniert nicht


..........
Na das ärgert mich jetzt aber selbst.


([2OG_BW_Flur] eq "motion" and [d_1OG_Flur_Lichtautomatik] eq "on" and [06:00-22:00])
(set 2OG_Flur_Licht pct 20 0 0)

DOELSEIF
([2OG_BW_Flur] eq "noMotion" and [d_1OG_Flur_Lichtautomatik] eq "on")
(set 2OG_Flur_Licht pct 0 0 30)


funktioniert auch

Erklärung:
Die Kombination von meinem LED Treiber und den angeschlossenen LEDs "zündet" nicht bei langsam hoch dimmen.
100%-->0% ist kein Problem, flackert nicht, alles gut, auch mit meinen 30 Sekunden ramptime
0%-->x% geht nur ohne ramptime, wieso auch immer

Also kein Fehler in der Programmierung sondern Hardware Problem.


Für die Leute die auch meine Lösung interessiert:
Erst "zünden", dann hoch dimmen.


([2OG_BW_Flur] eq "motion" and [d_dunkel] eq "off" and [d_1OG_Flur_Lichtautomatik] eq "on" and [06:00-22:00])
(set 2OG_Flur_Licht pct 100 0 2)

DOELSEIF
([2OG_BW_Flur] eq "motion" and [d_dunkel] eq "off" and [d_1OG_Flur_Lichtautomatik] eq "on" and [22:01-23:59])
(set 2OG_Flur_Licht pct 10 0 0)
(set 2OG_Flur_Licht pct 50 0 2)

DOELSEIF
([2OG_BW_Flur] eq "motion" and [d_dunkel] eq "off" and [d_1OG_Flur_Lichtautomatik] eq "on" and [00:00-05:59])
(set 2OG_Flur_Licht pct 10 0 0)
(set 2OG_Flur_Licht pct 20 0 2)

DOELSEIF
([2OG_BW_Flur] eq "noMotion" and [d_1OG_Flur_Lichtautomatik] eq "on")
(set 2OG_Flur_Licht pct 0 0 30)


Hätte ich das mal gleich in den anderen Flur kopiert und angepasst.
Mit anderer Hardware läuft das ohne Probleme. Besonderheit hier ist der zweite BW.


(([1OG_BW_Flur1] eq "motion" or [1OG_BW_Flur2] eq "motion") and [d_dunkel] eq "off" and [d_1OG_Flur_Lichtautomatik] eq "on" and [06:00-22:00])
(set 1OG_Flur_Licht pct 100 0 2)

DOELSEIF
(([1OG_BW_Flur1] eq "motion" or [1OG_BW_Flur2] eq "motion") and [d_dunkel] eq "off" and [d_1OG_Flur_Lichtautomatik] eq "on" and [22:01-23:59])
(set 1OG_Flur_Licht pct 50 0 2)

DOELSEIF
(([1OG_BW_Flur1] eq "motion" or [1OG_BW_Flur2] eq "motion") and [d_dunkel] eq "off" and [d_1OG_Flur_Lichtautomatik] eq "on" and [00:00-05:59])
(set 1OG_Flur_Licht pct 20 0 2)

DOELSEIF
([1OG_BW_Flur1] eq "noMotion" and [1OG_BW_Flur2] eq "noMotion")
(set 1OG_Flur_Licht pct 0 0 30)



Trotzdem vielen Dank für die Antworten und noch schöne Feiertage.




kumue

Zitatkommt: unknown argument cmd_2 for di_2OG_Flur_BW, choose one of disable initialize enable

denke, dein DOIF-Modul ist nicht aktuell...
überprüfen kannst Du das mit version 98_DOIF

ergibt bei mir
98_DOIF.pm 13791 2017-03-24 21:32:39Z Damian
wobei mein DOIF auch noch nicht auf dem allerneusten Stand ist...

Ellert


SoT2079

Nochmal danke für die Antworten,
läuft ja jetzt wie es soll, lag ja an meinen Lampen.

Da ich aber noch mehr basteln will hilft mir das bestimmt weiter.

Als erstes ist dann wohl mal wieder ein Update fällig.