Autor Thema: Aufbau einer Schaltung für Aussenbeleuchtung mit Dämmerung und Zufall (DOIF)  (Gelesen 9136 mal)

Offline moonsorrox

  • Hero Member
  • *****
  • Beiträge: 2928
  • Online
ich versuche mir eine Schaltung mit einem Dummy für meine Aussenbeleuchtung zu bauen, die einmal folgendes machen soll
1. Aus - ist klar komplett ausgeschaltet
2. Dämmerung - hier sollen sich die Zeiten nach Sonnenuntergang richten mit evtl. anderen Zeiten am Wochenende
3. Zufall - eine Art Anwesenheitssimulation zu verschiedenen Zeiten (noch nicht fertig)


zu Punkt 2. das funktioniert nun mit folgenden Code siehe unten
Der Code für die Dämmerung wäre so wie ich das haben möchte.
Die erste Lampe wird zu einer 1. Zeit "Ein" geschaltet, dann zu einer 2. Zeit wieder "Aus" geschaltet hier wird dann die 2.Lampe "Ein" geschaltet und diese soll dann zu einer festen Zeit wieder ausgehen.


zu Punkt 3. es ist leider nicht möglich dieses mit einem DOIF zu machen, also möchte ich hier erreichen, wenn das Dummy auf Zufall steht, dass ein RandomTimer eingeschaltet wird.
Gelöst habe ich es mit zwei weiteren notify die mir den Zufallstimer Aus/Ein schalten.
Ein netter User hat hier eine weitere Möglichkeit gezeigt, die ich jetzt auch im Einsatz habe...
Hier die Erklärung dazu:

Du könntest also das bestehende DOIF erweitern um
DOELSEIF([Zeitsteuerung] eq "Dämmerung")(attr ZufallsTimerAussenlicht disable 1)
DOELSEIF([Zeitsteuerung] eq "Zufall")(attr ZufallsTimerAussenlicht disable 0)

wobei es so noch konsequenter wäre für Dämmerung und Aus:
DOELSEIF([Zeitsteuerung] ~= "Dämmerung|Aus")(attr ZufallsTimerAussenlicht disable 1)


Hier der Code für das Dummy:
#### Zeitsteuerung Dummy ###
define Zeitsteuerung dummy
attr Zeitsteuerung alias Zeitsteuerung aktivieren
attr Zeitsteuerung devStateIcon Aus:general_aus@lightgreen Dämmerung:weather_sunrise@blue Zufall:general_an_fuer_zeit@Crimson
attr Zeitsteuerung eventMap Aus Dämmerung Zufall
attr Zeitsteuerung group Aussen Beleuchtung
attr Zeitsteuerung icon time_clock
attr Zeitsteuerung room Automation
attr Zeitsteuerung setList state:Aus,Dämmerung,Zufall
attr Zeitsteuerung sortby 01
attr Zeitsteuerung webCmd state

Hier der Code für die Kondition 2. "Dämmerung":
define di_Aussenlampe DOIF ( [Zeitsteuerung] eq "Dämmerung" and ([{sunset("CIVIL",1200,"17:00","22:20")}|12345] or [{sunset("CIVIL",800,"17:00","22:20")}|06]))\
    (set WegLampe_Sw_01 on)\
DOELSEIF ( [Zeitsteuerung] eq "Dämmerung" and ([{sunset("CIVIL",9000,"19:00","22:20")}|0123456]))\
    (set WegLampe_Sw_01 off,set WegLampe_Sw_02 on)\
DOELSEIF ([Zeitsteuerung] eq "Dämmerung" and ([00:15|12345] or [01:15|06]))\
    (set WegLampe_Sw_02 off)\
\
\

attr di_Aussenlampe room Automation

Hier der Code für die Kondition 3. "Zufall":
define umschaltung_RT_Aus notify Zeitsteuerung:Dämmerung attr ZufallsTimerAussenlicht disable 1
attr umschaltung_RT_Aus room Automation

define umschaltung_RT_Ein notify Zeitsteuerung:Zufall attr ZufallsTimerAussenlicht disable 0
attr umschaltung_RT_Ein room Automation

Der Code für ZufallsTimerAussenlicht ist dann individuell von jedem selbst zu erstellen, je nachdem was man möchte.
Viel Spaß und Funktion damit ;)
« Letzte Änderung: 06 Dezember 2014, 20:16:55 von moonsorrox »
Intel-NUC i3: FHEM-Server 5.8 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Offline Brockmann

  • Sr. Member
  • ****
  • Beiträge: 900
Frage dazu...?
Für die Ausschaltzeit der 2. Lampe muss ich dann extra ein DOIF einsetzen zum Ausschalten, oder kann ich die hinten dran setzen..?
Klar kannst Du das hinten dran setzen. Im Prinzip kannst Du das alles (bis auf den Dummy) in ein einziges DOIF packen. Die Zeitsteuerung-DOIFs lässt Du weg und verwendest statt dessen den Dummy direkt in der Kondition, also etwa so (ohne die Klammern gezählt zu haben):

define di_Aussenlampe DOIF ( [Zeitsteuerung] eq "Dämmerung" and ([{sunset("CIVIL",1800,"18:00","22:20")}-{sunset("CIVIL",9000,"18:00","22:20")}|8] or [{sunset("CIVIL",2400,"18:00","22:20")}- {sunset("CIVIL",9600,"18:00","22:20")}|7]))
    (set WegLampe_Sw_01 on)
DOELSEIF  ([Zeitsteuerung] eq "Zufall" and ([{sunset("REAL",1800,"17:00","22:20")}-{sunset("REAL",9000,"18:00","22:20")}|8] or [{sunset("REAL",2400,"17:00","22:20")}-{sunset("REAL",9600,"18:00","22:20")}|7] ))
    (set WegLampe_Sw_01 on)
DOELSE
    (set WegLampe_Sw_01 off,set WegLampe_Sw_02 on)

Das hätte noch den Nebeneffekt, dass Du den Status jederzeit (auch während der Dämmerung) ändern könntest und die Lampen würde sofort reagieren. Im Moment würde das nämlich bis zum nächsten Zeittrigger nichts bewirken.

PS: Das mit RandomTimer hast Du vielleicht noch nicht richtig durchschaut. Dieses Modul liefert nicht Zufallszeiten, sondern würde die zufallsbasierte Steuerung Deiner Lampen nach Deinen Vorgaben komplett übernehmen. Die Logik wäre also:
Zeitsteuerung = "Dämmerung" -> DOIF aktivieren, RandomTimer deaktivieren
Zeitsteuerung = "Zufall" -> DOIF deaktivieren, RandomTimer aktivieren

Offline moonsorrox

  • Hero Member
  • *****
  • Beiträge: 2928
  • Online
OK das hört sich alles sehr gut an... da mache ich mich mal ran und werde den Code modifizieren...

Hatte aus verschiedene Beiträge so das wichtigste für mich heraus gesucht und erst einmal losgelegt... Ich habe gestern Abend/Nacht noch etwas experimentiert und habe eine Ausschaltzeit für die Tage [7|8] also Werktage und Wochenende definiert (evtl. baue ich das separat auf also Werktage anders als Wochenende) und immer mal probiert, leider hat das nicht geklappt, anstatt das die Lampe die zuletzt leuchtet ausgeht ist die andere mit angegangen  :-\ muss heute mal suchen, war evtl. zu spät  ;)

Zu deinem Hinweis mit dem RandomTimer, dass wollte ich als nächstes angehen.
Meine Variante wäre gewesen (natürlich mit den beiden Dummys) die Schaltzeiten aus dem DOIF komplett raus zu nehmen und den RandomTimer einzusetzen... die Umschaltung muss ich mir einmal überlegen wie ich das mache..!
Die jetzigen Sunset Zeiten sind nur erst einmal drin, dass ist dann jetzt die nächste Baustelle.
Intel-NUC i3: FHEM-Server 5.8 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Offline moonsorrox

  • Hero Member
  • *****
  • Beiträge: 2928
  • Online
umgebaut habe ich das jetzt mal...
ich will ja jetzt noch für das DOIF "Dämmerung" ein Ausschaltzeit für für die Wochentage und das Wochenende rein bringen und Sunset für "Zufall" kommt ja weg dafür soll ja der RandomTimer rein, siehe unten ;)

wenn ich das richtig verstanden habe brauche ich doch eigentlich "nur" in diesem Bereich des Code:
DOELSEIF  ([Zeitsteuerung] eq "Zufall" and ([{sunset("REAL",1800,"17:00","22:20")}-{sunset("REAL",9000,"18:00","22:20")}|8] or [{sunset("REAL",2400,"17:00","22:20")}-{sunset("REAL",9600,"18:00","22:20")}|7] ))
    (set WegLampe_Sw_01 on)

alles was hinter "Zufall" and kommt, dann gegen den RandomTimer (mit dem ich mich als nächstes beschäftige) ersetzen, oder wird das nichts..? Denn nur als Hinweis, die "sunset" Geschichten habe ich nur erst mal rein geschrieben damit ich da was drin habe zum testen, denn das wird ja nur bei Dämmerung gebraucht
Intel-NUC i3: FHEM-Server 5.8 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Offline Brockmann

  • Sr. Member
  • ****
  • Beiträge: 900
Vielleicht schaust Du erstmal, dass das DOIF für die reguläre Dämmerung (ohne Zufall) so läuft, wie Du es möchtest. Und dann schaust Du Dir mal in Ruhe RandomTimer an und überlegst, wie Du beides verbinden kannst.

Offline moonsorrox

  • Hero Member
  • *****
  • Beiträge: 2928
  • Online
ich bin an beiden dran  8)
ich probiere gerade das Dämmerungs DOIF aber dieses stellt mich vor Probleme...
Mal als Erklärung wie es sein soll die 1. Lampe geht ja mit der Dämmerungs Kondition an, über eine zweite Kondition wieder aus und die 2. Lampe soll genau mit dieser Kondition einschalten und mit einer fest gesetzten Endzeit ausschalten. Das gleiche gilt dann mit dem Wochenende wo ich die Zeiten dann eben etwas verändere... Hoffentlich habe ich das soweit verständlich erklärt.

Der Code sollte eigentlich schon soweit OK sein nur eben die Endzeit Abschaltzeit ist da noch nicht drin


viel später dann die RT Sachen ;)

Die RandomTimer Kondition habe ich erst mal als eigenständiges Dummy erstellt (das integrieren in die Zufalls Steuerung habe ich bis auf jede Menge Syntaxfehler noch nicht gebacken bekommen  :-\ aber das eben später
Dummy sieht momentan so aus zum testen für eine andere Aussenlampe:
define Zufall dummy
attr Zufall room Automation
attr Zufall webCmd ja:nein

define ZufallsTimerAussenlicht RandomTimer *{sunset_abs("CIVIL")} AussenLampe 01:05:00 480 800/100
attr ZufallsTimerAussenlicht room Automation
Intel-NUC i3: FHEM-Server 5.8 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Offline moonsorrox

  • Hero Member
  • *****
  • Beiträge: 2928
  • Online
ich habe mal etwas getestet, mir ist nicht klar welcher Timer was macht zu diesem Code aus dem DEF
ich habe erst mal zum probieren die ersten beiden Timer zeitlich angepasst und es funktioniert mit den Zeit und der Umschaltung

Die 1. Lampe ist richtig um 15.45 Uhr angegangen und um 15.46 aus, dann ging die 2. Lampe an.
d.h. ich definiere mit dem 1.Timer die Einschaltzeit und mit dem 2.Timer die Ausschaltzeit
Die Zeitsteuerung für Zufall überspringt er ja.

Mit der DOELSE Kondition macht er die Umschaltung..?
« Letzte Änderung: 03 Dezember 2014, 18:50:52 von moonsorrox »
Intel-NUC i3: FHEM-Server 5.8 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Offline Brockmann

  • Sr. Member
  • ****
  • Beiträge: 900
Ich würde in diesem Fall ein DOELSE vermeiden und nur mit DOELSEIFs arbeiten, die sicherstellen, dass bestimmte Aktionen eben nur ausgeführt werden, wenn die Voraussetzungen dafür stimmen.
Das Ausschalten kannst Du über ein zusätzliches DOELSEIF einbauen:
DOELSEIF ([Zeitsteuerung] eq "Dämmerung" and ([23:59|8] or [22:59|7]))
    (set WegLampe_Sw_02 off)

Da kannst Du Deine Uhrzeiten rein setzen, an denen die Lampe 2 ausgehen soll.
Allerdings muss Du selbst darauf achten, dass die Logik stimmt, also das dieser Ausschaltzeitpunkt hinter dem spätestens Zeitpunkt liegt, den das von Dir definierte sunset-Intervall im Verlauf des Jahres liefern kann.
Wenn Du [Zeitsteuerung] eq ... weglässt, würde die Lampe auch ausgeschaltet, wenn Zeitsteuerung auf "Zufall" steht.

Offline moonsorrox

  • Hero Member
  • *****
  • Beiträge: 2928
  • Online
was ich absolut noch nicht verstehe - er liest ja von links nach rechts den Code soweit ich das verstanden habe.
Der Einschaltzeitpunkt heute war OK aber die Umschaltung von Lampe 1 auf Lampe 2 war leider viel zu früh..!
Eingeschaltet hat er nach dem Log um 17.14 aber die Umschaltung haut nicht hin sollte eigentlich der Timer (ca.2Std später) mit der Zeit 19.40 Uhr sein, aber genommen hat er einen anderen Timer ich weiß gar nicht welcher das sein soll mit einer Zeit um 17.31 das ist Timer 7 der ist aber gar nicht in der Dämmerungssteuerung drin, der ist bei Zufall drin und sollte doch gar nicht schalten...
Das verstehe ich jetzt nicht  :-\


2014.11.20 17:31:24 3: CUL_HM set WegLampe_Sw_02 on
2014.11.20 17:31:24 3: CUL_HM set WegLampe_Sw_01 off
2014.11.20 17:14:44 3: CUL_HM set WegLampe_Sw_01 on
« Letzte Änderung: 03 Dezember 2014, 18:48:58 von moonsorrox »
Intel-NUC i3: FHEM-Server 5.8 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Offline Puschel74

  • Hero Member
  • *****
  • Beiträge: 9793
Hallo,

hat zwar mit Beleuchtung nix zu tun aber

Die commandref zu DOIF (auch auf Deutsch) und den Beitrag zu DOIF in Automatisierung hast du gelesen ???
Damian hat dort wirklich jede Menge Fragen geklärt und es wäre vielleicht zielführender direkt dort zu Fragen als hier einen Beitrag zu öffnen und dann mMn unnötig "aufzublähen".

Grüße

P.S.: Nein auch wenn es um eine Beleuchtung geht, DOIF ist DOIF und sollte auch dort behandelt werden wo es hingehört - Automatisierung.
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.

Offline moonsorrox

  • Hero Member
  • *****
  • Beiträge: 2928
  • Online
also es läuft grad chaotisch durcheinander der Timer 6 (so die Anzeige in den Readings 22.11.2014 01:15:00|7) schaltete die Lampe 2 um 01.15 Uhr wieder an obwohl er eigentlich laut commandref
Zitat
Nur am Wochenende bzw. an Feiertagen lt. holiday-Datei (7 entspricht $we)

arbeiten sollte. Feiertag ist auch nicht..!

Die commandref zu DOIF (auch auf Deutsch) und den Beitrag zu DOIF in Automatisierung hast du gelesen ???
Damian hat dort wirklich jede Menge Fragen geklärt und es wäre vielleicht zielführender direkt dort zu Fragen als hier einen Beitrag zu öffnen und dann mMn unnötig "aufzublähen".
ja ich habe die Commandref gelesen immer wieder und immer wieder und habe dazu einige Versuche hinter mir (siehe oben wieder), nur eben leider ohne den Erfolg den ich gern hätte und dann frage ich... könnte ja sein das, wenn ich dann den Erfolg habe mit Hilfe des Forum das ich es dann verstanden habe..!  :-\
Momentan verstehe ich nichts obwohl ich wie am obigen Bsp. mich an die commandref gehalten habe...!

Es ist ja nicht so das ich hier ein fertig entwickelte Schaltung bekomme, denn auch ich habe mit dem Anfang schon einiges dazu beigesteuert.
Es ist hier schon ein ziemlich mit Timern verschachteltes DOIF welches wirklich erst mal verstanden werden muss...!
Jetzt wurde alles etwas umgestellt und ich verstehe dabei einiges nicht und dies möchte ich bis zum Ende fertig bringen... und wenn jemand hier rein schaut sieht er den Weg (hoffentlich) zum Ziel... und kann es evl. für sich nutzen.

Nichts für ungut, aber was ist jetzt an 9 Beiträgen (ohne deinen, der rein gar nichts bringt) aufgebläht...

Wenn du meinst es sollte in Automatisierung verschoben werden, dann verschiebe es doch gern  ;)
« Letzte Änderung: 21 November 2014, 01:45:06 von moonsorrox »
Intel-NUC i3: FHEM-Server 5.8 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Offline Puschel74

  • Hero Member
  • *****
  • Beiträge: 9793
Die Frage zur Beleuchtung hat in Automatisierung nichts zu suchen.
Aber DOIF wird dort behandelt.
Und alles was jemand sieht der sich diesen Beitrag anschaut ist - Chaos.
Warum fragst du nicht einfach im DOIF-Beitrag?
Damian wird sich dann vermutlich die Zeit nehmen und dir das alles erklären (er hat DOIF ja auch programmiert).
Aber klar, du kannst mit deiner Frage auch gerne hier weiter machen (und ich werde mich zukünftig raus halten).
So frei nach dem Motto - warum einfach wenn es auch umständlich und langwierig geht  ;)

Edith: Nein, ich kann dir zu deinem Problem leider keine Hilfestellung geben ausser - frag doch direkt den Programmierer der Funktion  8)
« Letzte Änderung: 21 November 2014, 05:46:10 von Puschel74 »
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.

Offline Brockmann

  • Sr. Member
  • ****
  • Beiträge: 900
also es läuft grad chaotisch durcheinander der Timer 6 (so die Anzeige in den Readings 22.11.2014 01:15:00|7) schaltete die Lampe 2 um 01.15 Uhr wieder an obwohl er eigentlich laut commandref
arbeiten sollte. Feiertag ist auch nicht..!
Bist Du auf dem aktuellen Stand (Update)? Bei den Feiertagen war noch ein Bug drin, der erst vor ein paar Tagen behoben wurde.

Ansonsten: Das Problem dürfte das DOELSE sein (und ich erspare mir jegliches "habe ich doch gesagt"  ;) ).
Du hast auch für Zufall einen Zeitraum mit sunset bestimmt. Der wird getriggert, wenn dieser Zeitpunkt erreicht wurde. Dann stellt DOIF fest, dass die andere Bedingung ("Zufall") nicht erfüllt ist. Also scheitert das DOELSEIF und DOIF schaut, was sonst noch geht - richtig, das DOELSE geht immer! Deshalb schaltet es Lampe 1 aus und Lampe 2 an, wenn der Zeitintervall für Zufall beginnt.

Offline moonsorrox

  • Hero Member
  • *****
  • Beiträge: 2928
  • Online
@Puschel74
Zitat
Warum fragst du nicht einfach im DOIF-Beitrag?
genau diesen Beitrag wollte ich nicht zumüllen ;) und nicht sauer sein  :D is WoE

Bist Du auf dem aktuellen Stand (Update)? Bei den Feiertagen war noch ein Bug drin, der erst vor ein paar Tagen behoben wurde.
ja ich mache immer, jeden Tag ein Update Check..! ;)

Ansonsten: Das Problem dürfte das DOELSE sein (und ich erspare mir jegliches "habe ich doch gesagt"  ;) ).
sei geduldig mit mir, ich muss es erst mal schnallen  ;)

Du hast auch für Zufall einen Zeitraum mit sunset bestimmt. Der wird getriggert, wenn dieser Zeitpunkt erreicht wurde. Dann stellt DOIF fest, dass die andere Bedingung ("Zufall") nicht erfüllt ist.
also ich habe nun erst mal alles für "Zufall" entfernt damit ich einen Grund rein bekomme, die vielen Timer haben mich total verwirrt.
Ich habe jetzt den Einschalt und Ausschalt Zeitpunkt jeweils für die Wochentage und das WoE und ebenso die Ausschaltzeit. wenn dieses zuverlässig läuft kommt dann der RandomTimer für Zufall rein, der übrigens von mir schon separat getestet wurde und auch super funktioniert. (nur hier einbauen, da brauche ich wohl Hilfe)

Also scheitert das DOELSEIF und DOIF schaut, was sonst noch geht - richtig, das DOELSE geht immer! Deshalb schaltet es Lampe 1 aus und Lampe 2 an, wenn der Zeitintervall für Zufall beginnt.
deshalb auch gestern die frühe Umschaltung auf den hinteren Bereich (Lampe 2)  :-\
« Letzte Änderung: 03 Dezember 2014, 18:49:31 von moonsorrox »
Intel-NUC i3: FHEM-Server 5.8 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Offline Puschel74

  • Hero Member
  • *****
  • Beiträge: 9793
Keine Panik, ich bin nicht sauer 8)
Warum auch - nur weil du lieber den umständlicheren Weg gehen willst.
Viel Spaß noch - du bekommst das schon noch hin  ;)
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.

Offline moonsorrox

  • Hero Member
  • *****
  • Beiträge: 2928
  • Online
also mit diesem Code oben funktioniert alles was Dämmerung betrifft
« Letzte Änderung: 03 Dezember 2014, 18:51:57 von moonsorrox »
Intel-NUC i3: FHEM-Server 5.8 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Offline Brockmann

  • Sr. Member
  • ****
  • Beiträge: 900
Hier hat gerade jemand eine Funktion zum Erzeugen einer "Zufallszeit" geschrieben, vielleicht für Dich eine Alternative zum Random Timer:
http://forum.fhem.de/index.php/topic,29438.msg222082.html#msg222082

Offline moonsorrox

  • Hero Member
  • *****
  • Beiträge: 2928
  • Online
ja Super vielen Dank, dass schaue ich mir mal an. Wird ja die nächste Baustelle  ;)
Intel-NUC i3: FHEM-Server 5.8 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Offline Puschel74

  • Hero Member
  • *****
  • Beiträge: 9793
Hallo,

wozu mischt du jetzt auch noch den Thread zu RT auf  ???
Nimm deinen Dummy (Zuhause,Weg,Zufall,Schiess_mich_tot) - setz drauf ein notify wo du bei Zuhause und Weg deine DOIF auf disable 0 setzt und dafür den RT auf disable 1 und
bei Zufall das DOIF auf disable 1 und dann den RT auf disable 0.

Achtung! Du kannst per notify oder at oder was auch immer auch Attribute eintragen/umtragen lassen what ever.
Du musst nicht ums verrecken versuchen RT und DOIF zu verheiraten.
Lass beide so wie sie funktionieren und schalt doch einfach nur das Attribut <Device> disable 0/1 um.
Wobei <Device> hier einmal für das/die DOIF und einmal für den RT steht.
Das sollte doch wohl klappen und machbar sein oder nicht?

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.

Offline moonsorrox

  • Hero Member
  • *****
  • Beiträge: 2928
  • Online
@Puschel74
Zitat
wozu mischt du jetzt auch noch den Thread zu RT auf  ???
ich habe jetzt gar nicht so richtig Bock drauf zu antworten, weil es gibt echt Foren da wird einem geholfen... du blödelst nur rum...
Ich suche nach einer Lösung die ich ganz gerne bis Weihnachten erledigt hätte, weil ich da nicht zuhause bin...

Ganz einfache Antwort und das sollte selbst dir als Moderator klar sein, ich komme mit meinen Kenntnissen nicht weiter und benötige Hilfe von Leuten die etwas verstehen von Perl und deren Modulen, dass ist nicht mein Ding und wird hier aber verlangt und...
...lass es einfach und mische dich nicht ein, denn helfen kannst du sicher auch nicht weil du genau dieses nicht beherrscht, so wie ich und genau deshalb frage ich, weil ich nicht weiter komme...
So und alles nicht böse gemeint  ;), weil einfach nur Hilfe suchend und immer dankbar für Tipps, OK..?

..und wie du siehst meldet sich Dietmar und denkt über mein Frage zu dem RT nach.. und ich bin nicht der einzige der gerade deshalb Probleme hat und fragt, nur meines ist noch etwas komplexer weil DOIF, RT und alles zu verbinden doch etwas schwieriger ist... und warum, weil wir alle nicht Albert Einstein sind..!

OT
Ich beobachte dieses schon länger irgendwie hast du bestimmte Leute auf deinem Schirm, denen du gerne auf den Sack gehst... ignoriere einfach die Threads der Leute, so wie auch meinen und unterlasse deine Kritik, manch einer stellt sich sicher in deinen Augen "doof" an auch ich mit meinen "1000und" Threads weiß nicht alles und kann nicht alles und brauche Hilfe...
...und es gibt sicher Anfängerfragen wo du als Mod einschreiten musst und sagst man der sollte doch mal das Einsteiger.pdf lesen, da bin ich voll auf deiner Seite... aber ich frage nicht im "Einsteigerformat" sondern ich brauche echt Experten Rat... vllt. solltest du mal ein wenig darüber nachdenken, bevor du hier jemand verärgerst ;) :-\
Gute Nacht... ;)
« Letzte Änderung: 04 Dezember 2014, 00:51:26 von moonsorrox »
Intel-NUC i3: FHEM-Server 5.8 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Offline Puschel74

  • Hero Member
  • *****
  • Beiträge: 9793
Moin,

von 10 Zeilen hast du eine verstanden - und genau das war die falsche.

Aber gut - wenn dich die eine Zeile so aufgeregt hat das du die restlichen 9 nichtmehr umsetzen kannst dann ist das eben so.
Und das hat nichts mit Perl zu tun sondern ist einfachstes FHEM.
Und mit diesen 9 Zeilen wollte ich eigentlich versuchen dir zu helfen.

Zitat
Ich suche nach einer Lösung die ich ganz gerne bis Weihnachten erledigt hätte, weil ich da nicht zuhause bin...
Na wie lange brauchst du um ein notify über die Befehlszeile einzugeben die dir das Attribute disable bei ...
Aber das habe ich ja oben schon geschrieben - und du hast es nicht gelesen.
Ist gut, hast recht - ich bin dann mal raus hier und werde mich hüten dir nochmal versuchen zu helfen.

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.

Offline moonsorrox

  • Hero Member
  • *****
  • Beiträge: 2928
  • Online
Edit:// @Puschel74
habe mir dein Vorschlag durch den Kopf gehen lassen und es mit zwei notify gelöst..
Ich dachte aber es geht ohne diese beiden notifys, so das ich mit meinem Dummy den RT steuern kann, aber wohl nicht :-\

define umschaltung_RT_Aus notify Zeitsteuerung:Dämmerung attr ZufallsTimerAussenlicht disable 1
attr umschaltung_RT_Aus room Automation

define umschaltung_RT_Ein notify Zeitsteuerung:Zufall attr ZufallsTimerAussenlicht disable 0
attr umschaltung_RT_Ein room Automation

So gelöst, ich werde dies dann auch im 1.Beitrag eintragen damit jeder es bei Bedarf nachstellen kann und dort den gesamten Code findet. Vorteil ich brauche die RT Geschichte in der 99_myUtils nicht  :D

von 10 Zeilen hast du eine verstanden - und genau das war die falsche.
nicht ganz richtig, denn mir ging es nicht ums "disablen"
habe ich jetzt doch genutzt  :)

schau mal hier: da habe ich versucht mit meinen Worten jemand zu erklären wie ich es verstanden habe...
ist also alles nicht ganz so einfach und klar, nicht nur für mich  :-\

Und mir ging es hier um das "nicht" aktivieren des RT wenn ein Dummy einen bestimmten Zustand hat und das hat meiner bescheidenen Meinung nach nichts mit "disable" zutun...
denn das ist dies hier:
sub isZufall           () { return(YesNo("Zufall"));}und dies ist denke ich Perl, da geschweifte Klammern und in der 99_myUtils drin

dazu gehört noch dieses welches eben auch nicht funktioniert, weil ich es nicht genau weiß

attr ZufallsTimerAussenlicht disableCond (!Value("TestZeitsteuerung" eq "Zufall"))
attr ZufallsTimerAussenlicht disableCond (ReadingsVal("TestZeitsteuerung", "state", "Zufall") eq "on" )

und nun darfst du mir gerne helfen wenn du eine Lösung für mich hast  ;)
und sauer sein bringt hier niemanden etwas, ich kann jedenfalls mit Kritik umgehen und wer einsteckt darf auch austeilen, OK.? ;)
Und nun ist gut  :D  *bauchstreichel*
« Letzte Änderung: 04 Dezember 2014, 15:08:08 von moonsorrox »
Intel-NUC i3: FHEM-Server 5.8 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Offline Brockmann

  • Sr. Member
  • ****
  • Beiträge: 900
habe mir dein Vorschlag durch den Kopf gehen lassen und es mit zwei notify gelöst..
Ich dachte aber es geht ohne diese beiden notifys, so das ich mit meinem Dummy den RT steuern kann, aber wohl nicht :-\

Selbstverständlich geht es ohne diese beiden Notifys, denn

1. Kannst Du praktisch jedes notify durch ein DOIF ersetzen
2. Kann Du Dein DOIF um praktisch beliebige Kondition-Aktion-Paare erweitern (zumindest wenn Du wie empfohlen auf DOELSE verzichtest).

Du könntest also das bestehende DOIF erweitern um
DOELSEIF([Zeitsteuerung] eq "Dämmerung")(attr ZufallsTimerAussenlicht disable 1)
DOELSEIF([Zeitsteuerung] eq "Zufall")(attr ZufallsTimerAussenlicht disable 0)

wobei es so noch konsequenter wäre:
DOELSEIF([Zeitsteuerung] ~= "Dämmerung|Aus")(attr ZufallsTimerAussenlicht disable 1)

dazu gehört noch dieses welches eben auch nicht funktioniert, weil ich es nicht genau weiß
attr ZufallsTimerAussenlicht disableCond (!Value("TestZeitsteuerung" eq "Zufall"))
attr ZufallsTimerAussenlicht disableCond (ReadingsVal("TestZeitsteuerung", "state", "Zufall") eq "on" )

Sorry, aber das sind doch nun ganz grundlegende Vergleichsfunktionen, die Du Dir hier nach dem Motto "Ich bastel mir die Welt, wie sie mir gefällt" zusammenschusterst. Da müsste man halt mal nachschauen, wie die Syntax genau sein muss, anstatt sich irgendwas zusammen zu reimen. Im Wiki und im Forum gibt es genügend Beispiele und die erste Zeile steht in der Doku von RandomTimer praktisch genauso als Beispiel drin.

attr ZufallsTimerAussenlicht disableCond (Value("TestZeitsteuerung" ne "Zufall"))
attr ZufallsTimerAussenlicht disableCond (ReadingsVal("TestZeitsteuerung", "state", "") eq "Zufall" )
[/quote]

wobei letzteres sicherlich eine unsinnige disableCond wäre...

Offline moonsorrox

  • Hero Member
  • *****
  • Beiträge: 2928
  • Online
@Brockmann
ja super, vielen Dank für deine Geduld da gibt es eben doch noch Möglichkeiten  ;)

ich werde mal schauen was ich davon umsetze, da ich doch so meine Schwierigkeiten habe die DOIF Geschichte zu verstehen. Ich lese ja ständig im DOIF Thread mit weil es mich interessiert und schaue mir auch alle Beispielecodecs an, so grad jetzt diese Beleuchtung von Spartacus... aber ich denke es ist schon nicht einfach.. :-\
Ich weiß auch nicht wie ich da ran gehen sollte damit es mir klarer wird, versuche mich jetzt natürlich immer an den Beispielen zu orientieren um es evtl. für meine Belange einzusetzen (auch in der deutschen commandref).
Momentan bin ich erst einmal zufrieden, aber es kommen sicher neue Herausforderungen grad in Sachen DOIF  :)

da wollte ich noch was zu schreiben...
Zitat
Da müsste man halt mal nachschauen, wie die Syntax genau sein muss, anstatt sich irgendwas zusammen zu reimen.
das habe ich aus dem Forum, nachdem ich die Suche gestartet hatte kamen einige Beispiele in denen es User probiert hatten, ich habe nur versucht es auf meine Bedingungen anzupassen, was kläglich scheiterte  :-\
« Letzte Änderung: 05 Dezember 2014, 00:28:05 von moonsorrox »
Intel-NUC i3: FHEM-Server 5.8 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

 

decade-submarginal