CCU Timer

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

unimatrix
Beiträge: 99
Registriert: 28.02.2011, 15:12
Danksagung erhalten: 1 Mal

CCU Timer

Beitrag von unimatrix » 09.03.2011, 14:02

Hallo,

nachdem ich mich nun eine Weile mit den Scriptfähigkeiten von HMScript und TCL beschäftigt habe ist mir "aufgefallen" dass es keine eingebaute Möglichkeit gibt, um Timer zu verwenden. Zumindest keine naheliegende. Wofür braucht man Timer? Betrachten wir folgendes:

In einem Haus sind mehrere Lichter "automatisiert", d.h. sie schalten sich morgens, wenns hell wird, ab, oder auch abends, wenn die "Nacht" beginnt (wie auch immer man das determiniert). Oder noch weiter gedacht, das Wohnzimmerlicht dimmt sich langsam runter, wenn man sich einen Film einschaltet (das Film einschalten ist bei mir über XBMC und JSON-RPC als Event detektierbar)

Nun kann es aber ja sein, dass gerade erst jemand das Licht manuell angemacht hat. Das wäre doof, wenn das dann 10 Sekunden später ausgeht, nur weil es jetzt eben soweit ist. Daher stelle ich mir vor, dass immer dann, wenn ein manueller Schaltwunsch ausgeführt wurde, man sich dieses für eine gewisse Zeit merkt und dann die automatische Verarbeitung so lange aussetztz bzw sperrt. Also z.B. Wenn Licht innerhalb der letzten 15 minuten manuell eingeschaltet, dann überspringe Aktor bei Automatismus....auf der anderen Seite wenn der Timer dann bei 0 ist soll der Automatismus wieder greifen (letzteres ist nicht das Problem).

Eine Möglichkeit, dies zu realisieren, sind Systemvariablen und zeitverzögerte Aktionen. Siehe Anhang. Der Anhang zeigt einen anderen Fall. Ich sage, sobald irgendein Knopf gedrückt wird (hier in dem Beispiel nur ein bestimmter Knopf) dann geh bitte mal davon aus, dass jemand anwesend ist. Wenn dann mindestens 10 Stunden keiner etwas tut, dann ist wohl niemand mehr da. 10 Stunden sind natürlich zu wenig. Aber hier gibts offenbar eine Limitation, dass die CCU nicht länger kann. Mit einer komplexeren Systemvariable kann man das zwar auch lösen, das ist aber etwas unschön (Das wäre dann: Setze nach 10 Stunden den Zustand "10 Stunden weg" - zweites SCript triggert darauf dass "10 Stunden weg" gesetzt wird und triggert dann nach weiteren 10 Stunden die Variable "20 Stunden weg" usw....
Dateianhänge
Unbenannt.jpg

teddy278

Re: CCU Timer

Beitrag von teddy278 » 09.03.2011, 17:33

Dieser Beitrag wurde durch den Autor entfernt.
Zuletzt geändert von teddy278 am 12.06.2011, 04:20, insgesamt 1-mal geändert.

unimatrix
Beiträge: 99
Registriert: 28.02.2011, 15:12
Danksagung erhalten: 1 Mal

Re: CCU Timer

Beitrag von unimatrix » 09.03.2011, 17:51

Also vll habe ich es schlecht beschrieben. Was ich mit Timer meine, kann man meiner Kenntnis nach nicht mit dem Zeitmodul machen. Das Zeitmodul ist dazu da, mit einiger Flexibilität zu "statischen" Zeitpunkten Programme auszuführen, also in festen Zeitabständen mit entsprechenden Bedingungen usw.

Ich spreche von etwas dynamischem. Eine "Eieruhr", die manuell resetet bzw auf einen definierten Wert gesetzt wird und dann abläuft, um dann bei Ablauf etwas zu triggern.

Aktion A -> Setze Timer auf 10 Minuten -Aktion B - wenn währendeessen Aktion A, dann setze Timer wieder hoch auf 10 Minuten. Usw.

Ich nahm an, das könnte für viele Anwendungen interessant sein und mir ist erst neulich klar geworden, dass man das mit Hilfe von Systemvariablen und den verzögerten Aktionen hinkriegen kann daher wollte ich das mal kund tun :)

Wenn jemand eine andere Möglichkeit kennt - dann gerne!

MarcMatic
Beiträge: 322
Registriert: 02.03.2014, 10:06
Danksagung erhalten: 2 Mal

Re: CCU Timer

Beitrag von MarcMatic » 02.05.2014, 08:21

Dieser Thread ist zwar schon älter, aber falls noch mal jemand drüber stolpert und die Antwort hier sucht:

----------

INSTALLATION

Man muss den CUx Deamon installieren:
http://homematic-inside.de/software/cuxdaemon

Nach der Installation in den Einstellungen von CUxD dann ein neues Gerät hinzufügen (rechts im Reiter "Geräte").
Dort die Kategorie "System" wählen
Bildschirmfoto 2014-05-02 um 08.10.09.png
- Als Funktion "Timer" wählen.
- Seriennummer ist beim ersten Timer 1 und wird automatisch hochgezählt, wenn man mehrere anlegt.
- Man muss einen zweiten Timer erst dann anlegen, wenn man in seinen Programmen 2 Timer parallel laufen haben will. Ansonsten kann man einfach einen anlegen und den dann immer einbinden wenn es Sinn macht. Es dürfen sich halt verschiedene Programme beim Ansprechen des Timers nicht überschneiden. Sonst: Weitere Timer anlegen.
- Namen vergeben und ein Icon auswählen welches gefällt. (Warum? Weil CUxD das Gerät gleich beim speichern auf der CCU im Eingang anzeigen wird, genau so als hätte man einen neuen Aktor etc. angelernt. Und da braucht man ein Icon.)
- Nach dem Anlagen im CCU POSTEINGANG das Gerät bestätigen. Fertig.

----------

KONFIGURATION / EINBINDUNG INS PROGRAMM

Starten des Timers:
- Da der Timer nun als Gerät auftaucht, diesen einfach in den DANN Bereich einbinden, siehe Screenshot.
- Es stehen TIMER_SET und TIMER_STOP zur Verfügung.
Bildschirmfoto 2014-05-02 um 08.15.14.png
Starten einer Aktion bei Ablauf des Timers:
- Um eine Aktion bei Ablauf auszulösen wird der Timer in den WENN Bereich eingebunden.
- TIMER_EVENT = Ablauf des zuvor gestarteten Timers (in meinem Beispiel 30 Sekunden)
Bildschirmfoto 2014-05-02 um 08.16.12.png
Bildschirmfoto 2014-05-02 um 08.16.12.png (20.23 KiB) 16825 mal betrachtet
----------

Ich nutze die Timer in dieser Form vor allem in meiner Alarmsteuerung da ich dort Funktionen habe, die a) bei einer Aktion ausgelöst werden und b) dann nur innerhalb eines bestimmten Zeitkorridors sich entweder "so" oder nach Ablauf "so" verhalten sollen. Klappt tadellos.

Wenn man den Timer noch protokolliert, dann hat man auch einen sehr guten Überblick im Systemprotokoll, wann der Timer ausgelöst wurde und wann er "zuschlägt". Gerade nach der Installation sehr praktisch um zu sehen, ob es auch wirklich klappt ;-)

SuCitta
Beiträge: 169
Registriert: 26.01.2016, 14:38
Danksagung erhalten: 1 Mal

Re: CCU Timer

Beitrag von SuCitta » 15.04.2016, 21:17

Hey Marc,
erstmal vielen lieben Dank für die gute Erklärung... ich habe lange gesucht, bis ich den Thread endlich gefunden hab... genau was ich gesucht habe, eine "einfach" Erklärung :lol:
Und trotzdem, bin ich nicht sicher, ob er bei mir richtig tut?! Ich hab ihn, so wie von Dir empfohlen, protokolliert und er erscheint auch, wie von mir eingestellt, alle 120 sekunden... und tortzdem scheint mir oder scheinen mir die Einträge "fishy" ... Die sehen so aus:

21:11:48 15.04.2016 CUxD Timer:1
unbekannte Meldung (TIMER_GET) 0.00s, unbekannte Meldung (TIMER_GET) 120.00s, unbekannte Meldung (TIMER_EVENT=TRUE), Schaltzustand: Ein

warum steht da bei Aktivität "unbekannte Meldung"? ist das normal?! wie gesagt, tun tut er :? :wink: ... aber das, was ich damit triggern wollte, geht nicht! :roll: es wird genau einmal getriggert, danach nicht mehr :evil: :?:

Danke im Voraus!
Grüße, Sven

สัพเพ สัตตา สุขีตา โหนตุ

pingps
Beiträge: 53
Registriert: 21.02.2016, 14:20
Hat sich bedankt: 2 Mal

Re: CCU Timer

Beitrag von pingps » 30.04.2016, 17:42

möchte auch einen cuxd Timer nutzen, um die Heizungspumpe mehrfach am Tag einzuschalten. Leider klappt das nicht wie gewünscht. Einmal scheint es zu funktionieren, das zweite Einschalten geht nicht.
Heizungssteuerung.jpg
kann mir jemand einen Tipp geben? Danke

Benutzeravatar
JRiemann
Beiträge: 3903
Registriert: 12.11.2015, 21:05
Wohnort: Aurich
Danksagung erhalten: 3 Mal

Re: CCU Timer

Beitrag von JRiemann » 30.04.2016, 18:00

Hallo!
Wie wird denn die Variable Tageszeit hh.mm gesetzt?
Wo wird ein CUxD Timer eingesetzt?
Ich würde Dir raten das Programm in zwei kleine Programme zu teilen.

Grüße!
Jörg
Viele Grüße!
Jörg

pingps
Beiträge: 53
Registriert: 21.02.2016, 14:20
Hat sich bedankt: 2 Mal

Re: CCU Timer

Beitrag von pingps » 30.04.2016, 19:25

Hallo Jörg,
Es scheint mir übersichtlicher zu sein, wenn ein komplettes Programm die Variable Heizungssteuerung ein- und ausschaltet. Ein zweites verteilt die Variable dann auf die Pumpe und Statusanzeige.
Der Plan ist, die Abhängikeit von weiteren äußeren Einflüssen zu machen. Und da erscheint es mir übersichtlicher, wenn ich die einzelnen Blöcke direkt untereinander habe. Dann kann ich sie direkt miteinander vergleichen.

Aber du hast die richtige Frage gestellt: Die Tageszeitvariable hat keiner mehr gesetzt. Das Skript habe ich wohl mal gelöscht.
Jetzt läuft wenigstens die Tageszeit wieder :D
LG Uli

Benutzeravatar
JRiemann
Beiträge: 3903
Registriert: 12.11.2015, 21:05
Wohnort: Aurich
Danksagung erhalten: 3 Mal

Re: CCU Timer

Beitrag von JRiemann » 30.04.2016, 20:10

Hallo!
Übersichtlichkeit hin oder her... Ich würde auch lieber 1 großes Programm anstelle von mehreren kleinen einsetzen. Aber vielfach funktioniert das eben nur mit mehreren kleinen Programmen.
Ich verstehe aber nicht so ganz was das alles mit einem CUxD Timer zu tun hat??? Anscheinend benutzt Du doch das Tageszeitenskript. Das ist zwar ein schönes Skript, hat aber absolut nichts mit einem CUxD Timer zu tun.
Außerdem finde ich es absolut überzogen den ganzen Tag in sehr kurzen Abständen ein Skript laufen zu lassen um im Prinzip nur die Uhrzeit auszulesen. Damit belastet man extrem um nur 2 Schaltpunkte auszulösen. Das geht auch bedeutend einfacher und schonender für die CCU.

Grüße!
Jörg
Viele Grüße!
Jörg

SuCitta
Beiträge: 169
Registriert: 26.01.2016, 14:38
Danksagung erhalten: 1 Mal

Re: CCU Timer

Beitrag von SuCitta » 22.05.2016, 10:45

kurzes Update, falls es jemanden interessiert :lol:
Triggere auf "TIMER_GET" wenn im Wertebereich kleiner gleich "x" und läuft alles
THX
Grüße, Sven

สัพเพ สัตตา สุขีตา โหนตุ

Antworten

Zurück zu „CUxD“