Hauptmenü

Tageszeitabhängiges Dimmen

Begonnen von Gumma, 27 Dezember 2012, 14:32:55

Vorheriges Thema - Nächstes Thema

Gumma

Hallo zusammen!

Wenn ich mich hier so umsehe, traue ich mich meine Frage kaum zu stellen, da ich das Gefühl habe, dass ich der einzige bin der gar nichts versteht!?!?

Aber trotzdem:

Ich versuche seit Monaten (mit langen Pausen) meinen Dimmer im Flur zu überreden, nachts das Licht nur auf ca. 30% zu dimmen (Notbeleuchtung). Abends soll 100% beleuchtet werden.
Ich betreibe den fhem-Server auf meiner Fritzbox 7390 in der so ne CUL drinsteckt.
In meinem Flur befinden sich 2 Bewegungsmelder, die besagten Dimmer über die Fritzbox aktivieren sollen.

Folgenden Code habe ich aus verschiedenen Code-Schnipseln gebastelt. Ich bin da ziemlich stolz drauf, nachdem ich keine Ahnung von Programmiersprachen habe, aber ich wäre vermutlich nocht zufriedener, wenns auch funktionieren würde.

define EG_Diele_S1_Tag notify 1_2112:on.* {\  
   my $hm = sprintf("%%02d:%%02d", $hour, $min);;\
   if( $hm gt "00:00" && $hm lt "07:00") {\
    fhem "set 1_2111 dim30%%" }\
  else {\
    fhem "set 1_2111 dim100%%" }\
}

Kann mir vielleicht einer einen Tip geben, wo der Fehler liegt?

Viele Grüße,
Gumma

Zrrronggg!

ZitatWenn ich mich hier so umsehe, traue ich mich meine Frage kaum zu stellen, da ich das Gefühl habe, dass ich der einzige bin der gar nichts versteht!?!?

Da kannst du dich aber entspannen, hier versteht keiner was, nur die Basislinie ist leicht abweichend   :d

Zur Sache selbst:
- was geht genau nicht? Gehen die Lampen nicht an oder nur an und dimmen nicht oder...?
- wie heissen die Bewegungsmelder?
- was willst du genau erreichen?  Du schreibst zwar:
"nachts das Licht nur auf ca. 30% zu dimmen (Notbeleuchtung). Abends soll 100% "
Aber WANN ist nachts und abends und was soll am Tag passieren?

Vermutung ist, die Bewegungsmelder sind  1_2112 und die Lampen sind
1_2111, richtig?


Ich verstehe den "my $hm = sprintf" teil nicht so richtig, warum so kompliziert?


Versuch doch mal anstelle dessen irgendwas in diese Richtung:

define EG_Diele_S1_Tag notify 1_2112:on.*  { if($hour < 15 || $hour >= 21) { fhem ("set 1_2111 dim30%%") } else  { fhem ("set 1_2111 dim100%%") }  }

Das würde die Lampe allerdings tagsüber (vor 15 Uhr) auch mit 30% anmachen. Der einfachste Weg wäre hier, das über die Bewegungsmelder zu regeln, die man ja so einstellen kann, dass sie nur bei Dunkelheit das Event überhautp senden, dann kann man sich auch die Abstimmtung mit den abweichenden Helligkeiten im Jahresverlauf sparen. Ich vermute das hast du so gemacht.
Oder man fragt ZUSÄTZLICH in der Bedingung "isday" ab.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Gumma

Vielen Dank für die schnelle Antwort!

Ich hab mal deinen Code in die fhem.cgf kopiert.

Die Bewegungsmelder heißen 1_2112, der Dimmer 1_2111. Deine Vermutung war also richtig.

Das Problem ist, dass die Lampen gar nicht reagieren. Die Bewegungsmelder habe ich so eingestellt, dass sie ab einer gewissen Dunkelheit erst reagieren.

Eigentlich will ich mal dahin, dass in einer definierten Nachtzeit die Lampen für einen gewissen Zeitraum (ca. 2min) mit ca. 30% leuchten. Die restliche Zeit soll mit 100% "ausgeleuchtet werden" (ausgenommen Tageszeit, zu der der Bewegungsmelder gar nicht reagiert).

Das wär der Wunsch, nur leider klappt der erste Schritt (nur gedimmt einschalten) schon nicht.

Wo kann das Problem liegen?

Viele Grüße,
Gumma

Puschel74

Hallo,

ich vermute mal der Bewegungsmelder sendet nicht das worauf das notify wartet ;-)

Was sagt den das Log wenn der Bewegungsmelder auslöst?

Du kannst den Bewegungsmelder auch auf on einstellen (siehe Handbüchlein dazu).
Das erleichtert einiges bei der Auswertung musste ich lernen.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Zrrronggg!

Sieh doch mal ins logfile, ob der Schaltimpuls der IR Sensoren überhaupt kommt.

Gegebenfalls  verbose Level erhöhen

Wenn das kommt, ersetze den DIM Befehl erstmal durch ein schlichtes "on". Nur um zu sehen, ob das simpelste geht.
Überhaupt: dim199% ist genau sohell wie schlicht "on"... oder kommts dir auf das langsam angehen an?

Und dann musst du irgendwann mal genauer aufschreiben, was passieren soll.

ZitatEigentlich will ich mal dahin, dass in einer definierten Nachtzeit die Lampen für einen gewissen Zeitraum (ca. 2min) mit ca. 30% leuchten. Die restliche Zeit soll mit 100% "ausgeleuchtet werden" (ausgenommen Tageszeit, zu der der Bewegungsmelder gar nicht reagiert).


Und du meinst natürlich "2 Minuten nach Auslösung des IR Melders" richtig?
Und 100% sollen auch 2 Minuten lang anliegen?
Und 100% muss gedimmt werden oder kann angeschaltet werden?
Dürfen die Lampen einfach ausgehen nach den 2 Minuten oder müssen die runtergedimmt werden?
Nächste Frage: Soll eine IR Auslösung vorherige 2 Minuten VERLÄNGERN?
Wie lange ist der Sendeabstand der IR Melder eingestellt?
(übrigens: Meine Erfahrung sagt, das 2 Minuten zu kurz sind für sowas, 3-4 Minuten sind besser.(//images/smiley_icons/icon_wink.gif)

Was ich damit sagen will: Man kann mehr oder weniger alles machen, aber man muss erstmal wirklich GENAU formulieren was man will und wie sich das System genau verhalten soll.

Aber erstmal wollen wir, dass die Lampe überhaupt angeht, richtig.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Zrrronggg!

Noch mal genauer: Ich vermute letztlich das selbe wie Puschel74.

Du fragst ja in deinem Code ab, ob der IR Melder irgendwas beginnend  mit "on" sendet.

Vielleicht hast du dem IR Sender aber gesagt er soll selber "dim" senden, weil du ja dimmen willst.

Und dann bekommt FHEM nie ein "on.*" und schaltet auch nicht.

In der Benutzung mit FHEM ist es immer eine gute Idee, wenn Sender und Sensoren schlicht "on" senden und nix sonst, und die weitere Mimik machst du mit FHEM.

FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Gumma

Herzlichen Dank für die schnellen und netten Antworten!!!

Hier mal ein Auszug aus dem Log. Die Adresse 1_1112 ist alt und hängt noch irgendwo rum, sollte aber kein Problem sein, oder?

2012-12-27 16:48:00 FS20 1_2112 on
2012-12-27 16:48:00 FS20 1_1112 on
2012-12-27 16:48:11 FS20 1_2112 on
2012-12-27 16:48:12 FS20 1_1112 on

Verstehe ich das richtig, dass das "notify" eigentlich den richtigen Befehl vom Bewegungsmelder bekommt?
Lediglich der Befehl von der Fritzbox an den Dimmer geht nicht raus oder kommmt nicht an.

Zu den weiteren Fragen noch ein paar Antworten:

Zitat: Und dann musst du irgendwann mal genauer aufschreiben, was passieren soll.

Ok. Ich versuchs mal:

Bei ausreichender Helligkeit soll gar nichts passieren. Das regel ich über die Bew.Melder.
Wenns abends dunkel wird soll der Dimmer 100% Licht machen.
Ab 0:00 Uhr bis 05:00 Uhr soll der Dimmer nur 30% Licht machen. (Hintergrund: In diesem Zeitfenster brauche ich nur eine Notbeleuchtung, um in geistiger Umnachtung schadfrei vom Bett auf die Toilette zu wandeln.(//images/smiley_icons/icon_wink.gif)
Ab 05:00 Uhr wieder 100% Licht, bis ausreichend Tageslicht erreicht ist, was ich dann wieder über die Bew.Melder regel.

Deine Fragen und meine Antworten:

Und du meinst natürlich "2 Minuten nach Auslösung des IR Melders" richtig? --> Richtig
Und 100% sollen auch 2 Minuten lang anliegen?  --> richtig, oder auch 3min is Wurscht.
Und 100% muss gedimmt werden oder kann angeschaltet werden? --> kann auch geschaltet werden.
Dürfen die Lampen einfach ausgehen nach den 2 Minuten oder müssen die runtergedimmt werden? --> einfach ausgehen reicht.
Nächste Frage: Soll eine IR Auslösung vorherige 2 Minuten VERLÄNGERN? --> JA!
Wie lange ist der Sendeabstand der IR Melder eingestellt? --> Bin mir grad nicht sicher, denke aber 1:30 min.
(übrigens: Meine Erfahrung sagt, das 2 Minuten zu kurz sind für sowas, 3-4 Minuten sind besser. --> ok! Ich kann auch damit leben ;-)


Aber erstmal wollen wir, dass die Lampe überhaupt angeht, richtig. --> Richtig!


Viele Grüße,
Gumma

Puschel74

Hallo,

dann mal im kleinen ;-)

define EG_Diele_S1_Tag notify 1_2112:on.* { fhem("set 1_2111 on")}

Ich hoff ich hab nix vergessen.

Wenn der Bewegungsmelder ein on sendet muss die Lampe schonmal an gehen.

Sind zwar Basics aber wenn das nicht klappt dann evtl. mal ein
set 1_2111 on
versuchen.
Die Lampe lässt sich per fhem aber schonmal schalten?

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Gumma

Oh je ihr Armen.... müsst euch hier mit einem Informatik-Volldeppen rumschlagen .....

Also:

Ich habs gleich mit folgendem Code probiert:

define EG_Diele_S1_Tag notify 1_2112:on.* {\
   if($hour > 15 || $hour <= 21) {\
   fhem ("set 1_2111 on") }\
   else { fhem ("set 1_2111 on") }\
}

... und da geht die Lampe an....

Und nu???  (//images/smiley_icons/icon_rolleyes.gif)

VG
Gumma

Gumma

ein kleiner Schritt weiter:

Auch das funtioniert einwandfrei:

define EG_Diele_S1_Tag notify 1_2112:on.* {\
   if($hour > 15 || $hour <= 21) {\
   fhem ("set 1_2111 on-for-timer 10") }\
   else { fhem ("set 1_2111 on-for-timer 10") }\
}

Log:

2012-12-27 17:37:02 FS20 1_2112 on
2012-12-27 17:37:02 FS20 1_2111 on-for-timer 10


Nur das dimmen geht scheinbar nicht....

VG
Gumma

Zrrronggg!

Und nun ... machst du bitte erstmal das was Pusche74 vorgeschlagen hat.

define EG_Diele_S1_Tag notify 1_2112:on.* { fhem("set 1_2111 on")}

Ich sehe 3 Möglichkeiten:
a) mein Vorschlag / Uhrzeit bedingung ist noch falsch
b) die Uhr deines Host geht falsch
c) das dim-Kommando geht nicht, z.b. weil dein Aktor nicht dimmen kann.


Mit Puschels Vorschlag können wir ggf a) und b) ausschliessen.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Zrrronggg!

Ah, überschneidung.

Okay, kan dein aktor überhaupt dimmen?

Was für ein Aktor wird eingesetzt?
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Gumma

Der kann dimmen.

Ich verwende einen FS20 DU-2.

"Von Hand" funktioniert alles. Die automatische Ausführung mit dem Code funktioniert nicht...

VG
Gumma

Puschel74

Hallo,

wenn das

define EG_Diele_S1_Tag notify 1_2112:on.* {\
if($hour > 15 || $hour <= 21) {\
fhem ("set 1_2111 on-for-timer 10") }\
else { fhem ("set 1_2111 on-for-timer 10") }\
}

klappt mach mal das

define EG_Diele_S1_Tag notify 1_2112:on.* {\
if($hour > 15 || $hour <= 21) {\
fhem ("set 1_2111 dim50%") }\
else { fhem ("set 1_2111 dim50%") }\
}

Ich hoffe das ist so richtig.

Ein einfaches
set 1_2111 dim50%
würde auch reichen ;-)

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Gumma

Das...

set 1_2111 dim50%

funktioniert!

Das...

define EG_Diele_S1_Tag notify 1_2112:on.* {\
   if($hour > 15 || $hour <= 21) {\
   fhem ("set 1_2111 dim50%") }\
   else { fhem ("set 1_2111 dim50%") }\
}

funtioniert nicht.

Aber das....


define EG_Diele_S1_Tag notify 1_2112:on.* {\
   if($hour > 15 || $hour <= 21) {\
   fhem ("set 1_2111 dim50%%") }\
   else { fhem ("set 1_2111 dim50%%") }\
}

funktioniert jetzt plötzlich!!! Ich werd wahnsinnig! Das hab ich schon min. 1000 Mal so probiert....

Jetzt habt ihr mich auf einen Fehler gebracht juhu!  dim30% gibts nicht! Es gibt dim25% und dim31% aber kein dim30%.

Danke!!!

Darf ich euch jetzt weiter löchern???

Wie kann ich das nun lösen, dass ich z.B. auf 31% dimme und nach ca. 4min das Licht wieder erlischt??

Danke für euren Support bis hierhin!

VG
Gumma