FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Meister_Petz am 23 Januar 2015, 09:15:19

Titel: Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: Meister_Petz am 23 Januar 2015, 09:15:19
Moin,

was möchte ich:
Mein Außenlicht soll, wenn es dunkel wird einschalten und maximal bis 22 Uhr leuchten. (im Prinzip so wie im sunrise Beispiel)

Da twilight im Gegensatz zu sunrise, die tatsächlichen Lichtverhältnisse mit einbezieht, würde ich da lieber twilight benutzen, oder geht das nicht?

Danke

Petz
Titel: Antw:Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: noanda am 23 Januar 2015, 11:42:30
Doch das geht. Es gibt sogar mehrer Wege, die Daten vom Modul zu verwänden.

Ich habe noch einen Dummy dazwischen, damit kann ich auf dem Floorplan auch mal "außerplanmäsig" an- ausschelten.

Noa
Titel: Antw:Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: Meister_Petz am 23 Januar 2015, 11:45:16
Kannst Du mir da evtl. einen Code Schnipsel aus deiner FHEM cfg zeigen?
Titel: Antw:Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: noanda am 23 Januar 2015, 12:34:24
Jepp kann ich,

aber mehr oder weniger nur so halb aus dem Kopf

Definire dir dein Twilight
define myTwilight Twilight XX.110927 XX.524689 4 XXXXXX

musst halt noch Deine Wetterdaten einsätzen und Deinen Horizont

Dann bau dir einen Dummy:

define TwilightDummy dummy
attr TwilightDummy devStateIcon on:StandBy off:Shutdown
attr TwilightDummy fp_WPlan 410,200,2,
attr TwilightDummy setList state:on,off
attr TwilightDummy webCmd state


und dann mach Dir die Notifys dazu

define TwilightDummyOnNTFY notify myTwilight.*:aktEvent:.*ss_weather.* set TwilightDummy on
define TwilightDummyOffA at *22:00 set TwilightDummy off


Der code ist uralt, statt dem Notify kannst Du es jetzt über ein DOIF lösen, und ansatt meinem TwilightDummy kannst Du direkt die Lampe nehmen.

hoffe ich konnte helfen
Titel: Antw:Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: Meister_Petz am 23 Januar 2015, 12:59:48
Super!

Twilight und Schalter sind klar.

Notify: wenn Ereignis eintritt... mach was - soweit klar

Wie kann man dann das Ereignis übersetzen?
define TwilightDummyOnNTFY notify myTwilight.*:aktEvent:.*ss_weather.* set TwilightDummy on
Nimmt notify dann die Uhrzeit aus ss_weather?

In meinem Fall:
...
ss_weather   16:11:01      23.01.15 11:58
...

Danke!
Titel: Antw:Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: noanda am 23 Januar 2015, 13:09:28
Nein es setzt zur ss_weather Zeit den dummy auf on.
Das gleiche kannst Du auch mit allen anderen Dingen aus dem Modul so machen.

du kannst den Dummy auch zu ss_weather auf on stezen und bei sr_weather auf off

Dann hast Du einen Dummy der von Sonnenuntergang bis Sonnenaufgang auf on steht. So hatte ich es.

So habe ich dann die verschidene Lichter in der Wohnung gesteuert und mit Uhrzeiten oder dem Presence Modul kombiniert.
Titel: Antw:Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: Meister_Petz am 23 Januar 2015, 13:12:39
ok, verstanden. DANKE!

und nun noch, damit es tricky wird: wenn ich eine Stunde nach ss_weather das Licht anschalten will... wie könnte es dann aussehen? ;-)

Wirklich vielen Dank für die Hilfe!

Petz
Titel: Antw:Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: Dietmar63 am 23 Januar 2015, 13:14:17
define TwilightDummyOnNTFY notify myTwilight.*:aktEvent:.*ss_weather.* set lampe on

du kannst die Lampe oder so auch gleich schalten, oder eine Modul aufrufen, dass das macht:
define TwilightDummyOnNTFY notify myTwilight.*:aktEvent:.*ss_weather.* {eigeneFuntikon()}

Titel: Antw:Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: Dietmar63 am 23 Januar 2015, 13:17:06

und nun noch, damit es tricky wird: wenn ich eine Stunde nach ss_weather das Licht anschalten will... wie könnte es dann aussehen? ;-)

define TwilightDummyOnNTFY notify myTwilight.*:aktEvent:.*ss_weather.* define timer +01:00:00 set lampe on

hat aber den Nachteil, dass eine erneutes Setzen des Timers() timer überschreiben würde und dann eine Fehlermeldung erzeugt würde.
Titel: Antw:Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: Meister_Petz am 23 Januar 2015, 15:25:50
Zitat von: Dietmar63 am 23 Januar 2015, 13:17:06
...
hat aber den Nachteil, dass eine erneutes Setzen des Timers() timer überschreiben würde und dann eine Fehlermeldung erzeugt würde.
...
dies gilt dann für den Timer mit Namen "timer" d.h. ich kann Timer mit anderen Namen an anderer Stelle nutzen, richtig?
Titel: Antw:Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: Dietmar63 am 23 Januar 2015, 15:35:30
Ja
Titel: Antw:Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: Damian am 23 Januar 2015, 15:56:49
Zitat von: Meister_Petz am 23 Januar 2015, 13:12:39
ok, verstanden. DANKE!

und nun noch, damit es tricky wird: wenn ich eine Stunde nach ss_weather das Licht anschalten will... wie könnte es dann aussehen? ;-)

Wirklich vielen Dank für die Hilfe!

Petz

Oder z. B. so:

define di_lamp DOIF ([myTwilight:aktEvent] eq "ss_weather") (set lamp on) DOELSEIF ([22:00]) (set lamp off)
attr di_lamp wait 60



Gruß

Damian
Titel: Antw:Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: Meister_Petz am 24 Januar 2015, 18:31:32
@DAMIAN
wenn ich das mit DOIF versuche, was mir gut gefallen würde, bekomme ich:
Unknown module ([myTwilight:aktEvent] Please define ABEinfahrtZeit first

sowohl myTwilight ist schon definiert und funktioniert als auch ABEinfahrtZeit:

define ABEinfahrtZeit ([myTwilight:aktEvent] eq "ss_weather") (set ABEinfahrt on) DOELSEIF ([22:00]) (set ABEinfahrt off)
attr ABEinfahrtZeit wait 60
Titel: Antw:Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: Damian am 24 Januar 2015, 18:48:44
Zitat von: Meister_Petz am 24 Januar 2015, 18:31:32
@DAMIAN
wenn ich das mit DOIF versuche, was mir gut gefallen würde, bekomme ich:
Unknown module ([myTwilight:aktEvent] Please define ABEinfahrtZeit first

sowohl myTwilight ist schon definiert und funktioniert als auch ABEinfahrtZeit:

define ABEinfahrtZeit ([myTwilight:aktEvent] eq "ss_weather") (set ABEinfahrt on) DOELSEIF ([22:00]) (set ABEinfahrt off)
attr ABEinfahrtZeit wait 60


Wo ist der Modulname:

define ABEinfahrtZeit DOIF ([myTwilight:aktEvent] eq "ss_weather")  ....

Gruß

Damian


Titel: Antw:Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: Meister_Petz am 24 Januar 2015, 22:47:04
Danke! Wer lesen kann ist klar im Vorteil
Titel: Antw:Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: Meister_Petz am 26 Januar 2015, 10:26:39
@Damian
Leider klappt die 60 Minuten Verzögerung nicht. Hab ich da wieder was übersehen?

Danke!


#------------------------------------------------------#
#       Aussenbeleuchtung - MySensors Relais           #
#------------------------------------------------------#
define ABEinfahrt MYSENSORS_DEVICE 100
attr ABEinfahrt IODev MSGateway
attr ABEinfahrt alias Einfahrt
attr ABEinfahrt mapReading_switch 1 switch
attr ABEinfahrt mode repeater
attr ABEinfahrt requestAck 1
attr ABEinfahrt room Beleuchtung
attr ABEinfahrt setCommands on:switch:on off:switch:off
attr ABEinfahrt setReading_switch on,off
attr ABEinfahrt stateFormat switch
attr ABEinfahrt version 1.4.1

#------------------------------------------------------#
# Zeitschalter für Aussenbeleuchtung                   #
#------------------------------------------------------#
define ABEinfahrtZeit DOIF ([myTwilight:aktEvent] eq "ss_weather") (set ABEinfahrt on) DOELSEIF ([22:00]) (set ABEinfahrt off)
attr ABEinfahrtZeit wait 60


Titel: Antw:Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: Meister_Petz am 27 Januar 2015, 13:58:04
gestern gings weder automatisch an noch aus.

Manuelles Schalten war kein Problem.
Titel: Antw:Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: LuckyDay am 27 Januar 2015, 14:29:46
Zitatattr ABEinfahrtZeit wait 60

das sind 60 sekunden
Titel: Antw:Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: Damian am 27 Januar 2015, 14:31:14
Zitat von: Meister_Petz am 27 Januar 2015, 13:58:04
gestern gings weder automatisch an noch aus.

Manuelles Schalten war kein Problem.

Dann poste das Ergebnis von list ABEinfahrtZeit

Gruß

Damian
Titel: Antw:Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: Meister_Petz am 27 Januar 2015, 14:35:32
Zitat von: fhem-hm-knecht am 27 Januar 2015, 14:29:46
das sind 60 sekunden
das hab ich mir schon fast gedacht... dann hätte es aber trotzdem angehen sollen... oder?

Zitat von: Damian am 27 Januar 2015, 14:31:14
Dann poste das Ergebnis von list ABEinfahrtZeit

aber gerne doch:
Internals:
   DEF        ([myTwilight:aktEvent] eq "ss_weather") (set ABEinfahrt on) DOELSEIF ([22:00]) (set ABEinfahrt off)
   NAME       ABEinfahrtZeit
   NR         83
   NTFY_ORDER 50-ABEinfahrtZeit
   STATE      ???
   TYPE       DOIF
   Readings:
     2015-01-27 14:33:16   timer_1_c2      27.01.2015 22:00:00
     2015-01-27 14:33:16   wait_timer      no timer
   Condition:
     0          ReadingValDoIf('myTwilight','aktEvent','') eq "ss_weather"
     1          DOIF_time_once($hash->{timer}{0},$wday,"")
   Days:
   Devices:
     0           myTwilight
     all         myTwilight
   Do:
     0          set ABEinfahrt on
     1          set ABEinfahrt off
   Helper:
     last_timer 1
     sleeptimer -1
   Readings:
     0           myTwilight:aktEvent
     all         myTwilight:aktEvent
   Realtime:
     0          22:00:00
   State:
   Time:
     0          22:00:00
   Timecond:
     0          1
   Timer:
     0          0
   Timerfunc:
   Timers:
     1           0
Attributes:
   wait       3600


und immer danke für die hilfe!
Titel: Antw:Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: Damian am 27 Januar 2015, 17:18:03
Zitat von: Meister_Petz am 27 Januar 2015, 14:35:32

Internals:
   DEF        ([myTwilight:aktEvent] eq "ss_weather") (set ABEinfahrt on) DOELSEIF ([22:00]) (set ABEinfahrt off)
   NAME       ABEinfahrtZeit
   NR         83
   NTFY_ORDER 50-ABEinfahrtZeit
   STATE      ???
   TYPE       DOIF
   Readings:
     2015-01-27 14:33:16   timer_1_c2      27.01.2015 22:00:00
     2015-01-27 14:33:16   wait_timer      no timer
   Condition:
     0          ReadingValDoIf('myTwilight','aktEvent','') eq "ss_weather"
     1          DOIF_time_once($hash->{timer}{0},$wday,"")
   Days:
   Devices:
     0           myTwilight
     all         myTwilight
   Do:
     0          set ABEinfahrt on
     1          set ABEinfahrt off
   Helper:
     last_timer 1
     sleeptimer -1
   Readings:
     0           myTwilight:aktEvent
     all         myTwilight:aktEvent
   Realtime:
     0          22:00:00
   State:
   Time:
     0          22:00:00
   Timecond:
     0          1
   Timer:
     0          0
   Timerfunc:
   Timers:
     1           0
Attributes:
   wait       3600


und immer danke für die hilfe!

Das ist der Zustand von einem frisch angelegten Modul, hier offenbar um 14:33 angelegt - da kann noch nichts passiert sein. Wichtig ist natürlich der Zustand nach dem "ss_weather" zugeschlagen haben sollte, bei mir heute z. B. um 16:16 Uhr. Danach sollte der Status auf cmd_1 gehen und das Modul sollte schalten (bei dir dann entsprechend eine Stunde später). Davon musst du noch mal list posten.

Ansonsten kannst du z. B. auch das Reading twilight_weather abfragen, das läuft gegen Null, je dunkler es wird, hier brauchst du auch keine Verzögerung mit wait angeben, sondern die Abfrage deinen Bedürfnissen anpassen z. B.

([myTwilight:twilight_weather] < 30 and [15:00-22:00]) (set ABEinfahrt on) DOELSE (set ABEinfahrt off)

Gruß

Damian
Titel: Antw:Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: Meister_Petz am 28 Januar 2015, 22:01:11
das ist der Auszug von gerade eben (21:59)

Internals:
   DEF        ([myTwilight:aktEvent] eq "ss_weather") (set ABEinfahrt on) DOELSEIF ([22:00]) (set ABEinfahrt off)
   NAME       ABEinfahrtZeit
   NR         83
   NTFY_ORDER 50-ABEinfahrtZeit
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2015-01-27 22:00:00   cmd_event       timer_1
     2015-01-27 22:00:00   cmd_nr          2
     2015-01-28 21:58:17   e_myTwilight_aktEvent ss_astro
     2015-01-27 22:00:00   state           cmd_2
     2015-01-27 22:00:00   timer_1_c2      28.01.2015 22:00:00
     2015-01-28 17:19:31   wait_timer      no timer
   Condition:
     0          ReadingValDoIf('myTwilight','aktEvent','') eq "ss_weather"
     1          DOIF_time_once($hash->{timer}{0},$wday,"")
   Days:
   Devices:
     0           myTwilight
     all         myTwilight
   Do:
     0          set ABEinfahrt on
     1          set ABEinfahrt off
   Helper:
     last_timer 1
     sleepdevice myTwilight
     sleeptimer -1
   Internals:
   Readings:
     0           myTwilight:aktEvent
     all         myTwilight:aktEvent
   Realtime:
     0          22:00:00
   State:
   Time:
     0          22:00:00
   Timecond:
     0          1
   Timer:
     0          0
   Timerfunc:
   Timers:
     1           0
Attributes:
   wait       3600


Titel: Antw:Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: Damian am 29 Januar 2015, 15:12:42
Zitat von: Meister_Petz am 28 Januar 2015, 22:01:11
das ist der Auszug von gerade eben (21:59)

Internals:
   DEF        ([myTwilight:aktEvent] eq "ss_weather") (set ABEinfahrt on) DOELSEIF ([22:00]) (set ABEinfahrt off)
   NAME       ABEinfahrtZeit
   NR         83
   NTFY_ORDER 50-ABEinfahrtZeit
   STATE      cmd_2
   TYPE       DOIF
   Readings:
     2015-01-27 22:00:00   cmd_event       timer_1
     2015-01-27 22:00:00   cmd_nr          2
     2015-01-28 21:58:17   e_myTwilight_aktEvent ss_astro
     2015-01-27 22:00:00   state           cmd_2
     2015-01-27 22:00:00   timer_1_c2      28.01.2015 22:00:00
     2015-01-28 17:19:31   wait_timer      no timer
   Condition:
     0          ReadingValDoIf('myTwilight','aktEvent','') eq "ss_weather"
     1          DOIF_time_once($hash->{timer}{0},$wday,"")
   Days:
   Devices:
     0           myTwilight
     all         myTwilight
   Do:
     0          set ABEinfahrt on
     1          set ABEinfahrt off
   Helper:
     last_timer 1
     sleepdevice myTwilight
     sleeptimer -1
   Internals:
   Readings:
     0           myTwilight:aktEvent
     all         myTwilight:aktEvent
   Realtime:
     0          22:00:00
   State:
   Time:
     0          22:00:00
   Timecond:
     0          1
   Timer:
     0          0
   Timerfunc:
   Timers:
     1           0
Attributes:
   wait       3600


Das Problem ist die stündliche Verzögerung. Wenn "ss_weather" gesetzt wird rennt der Timer los, allerdings ändert sich innerhalb der Stunde der Status von ss_weather auf den nächsten Zustand "ss..." und damit wird der laufende Timer unterbrochen. Mit meinem zweiten Vorschlag:"([myTwilight:twilight_weather] < 30..."  solltest du erfolgreicher sein.

Gruß

Damian
Titel: Antw:Außenlicht mit Twilight oder mit Sunrise schalten
Beitrag von: Meister_Petz am 29 Januar 2015, 15:28:41
Zitat von: Damian am 29 Januar 2015, 15:12:42
Mit meinem zweiten Vorschlag:"([myTwilight:twilight_weather] < 30..."  solltest du erfolgreicher sein.

habs grad eingebaut. Gestern Abend wollte sich das Ding gar nicht mehr schalten. Hab dem Relais dann einen Schnips verpasst, dann gings wieder... Mal schaun was heute passiert ;-)