Variable 48h Zeitverzögert setzen

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

dtp
Beiträge: 10655
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Re: Variable 48h Zeitverzögert setzen

Beitrag von dtp » 16.05.2018, 13:43

Accuracy hat geschrieben:kannst du kurz mal schildern, wie du das in CuxD mit den Timern realisiert hast?
Klar.

Also, zunächst legt man einen CUxD-Timer als Gerät in der CCU an.
CCU CUxD Timer.png
Ich habe den für meine Anwesenheitssimulation benötigten Timer mal rot umrandet.

Danach benötigt man ein WebUI-Programm, mit dem man den Timer triggert. Das nachfolgende Beispiel zeigt mit roter Umrandung das Setzen des CUxD-Timers auf 48 Stunden (172800 Sekunden) und das Aufheben einer etwaigen Sperrung, wenn die Haustür von Außen verriegelt wird. Wird die Haustür entriegelt (grüne Umrandung) oder von Innen verriegelt (blaue Umrandung), wird der Timer gestoppt und gesperrt.
Haus PRG SV Anwesenheit.png
Das Sperren des Timers ist nötig, weil ich mit dem nachfolgenden Programm eine zugehöre Systemvariable setze, wenn der Timer den Wert Null erreicht hat. Und das passiert auch beim Stoppen des CUxD-Timers. Ich bin zwar kein so großer Fan dieser CUxD-Implementierung, sondern hätte es lieber, wenn der Timer einfach auf seinem letzten Wert bleibt, wenn man ihn stoppt, aber die CUxD-Timer arbeiten nun mal so, wie sie arbeiten. Und dank der Möglichkeit zum Sperren, gibt's ja auch eine durchaus praktikable Lösung. Man muss nur dran denken, insbesondere, wenn man mal einzelne CUxD-Timer vertauschen möchte. Aber das nur am Rande. ;)

Im nachfolgenden WebUI-Programm wird nun eine Systemvariable "Haus SV Anwesenheitssimulation" bei Ablauf des CUxD-Timers auf den Wert "aktiv" gesetzt. Ändert sich der Status einer weiteren Systemvariablen "Haus SV Anwesenheit" auf "anwesend", wird die Systemvariable "Haus SV Anwesenheitssimulation" wieder auf "inaktiv" gesetzt.
Haus PRG SV Anwesenheitssimulation.png
Schließlich erfolgt noch die eigentliche Anwesenheitssimulation in Abhängigkeit vom Zustand der Systemvariablen "Haus SV Anwesenheitssimulation" gemäß nachfolgendem Programm, wobei ich für tagsüber und nachts unterschiedliche Szenarien fahre.
Haus PRG Anwesenheitssimulation.png
Ich hoffe, das alles war jetzt nicht zu verwirrend. ;)

Bis dann,

Thorsten
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Accuracy
Beiträge: 746
Registriert: 22.05.2013, 16:37
Hat sich bedankt: 1 Mal

Re: Variable 48h Zeitverzögert setzen

Beitrag von Accuracy » 17.05.2018, 07:30

super lieben Dank Thorsten.

Accuracy
Beiträge: 746
Registriert: 22.05.2013, 16:37
Hat sich bedankt: 1 Mal

Re: Variable 48h Zeitverzögert setzen

Beitrag von Accuracy » 20.05.2018, 09:03

Moin,
ich bin mir mit der Timer Sperrung nicht ganz sicher - wieso ich die genau für meinen Anwendugsfall benötige. Habe jetzt mal 2 Programme gemacht, die wie folgt aussehen. Wäre schön, wenn ihr noch einmal drüber schauen könntet ob es so passt. Wie gesagt ich möchte 2 Fälle abbilden. Es regnet nur leicht (< 1mm) dann Anlage aus und am nächsten Tag wenn es nicht mehr regnet wieder an. (Die Netatmo Regenmenge_1d Variable wird um Mitternacht auf 0 zurück gesetzt und zählt die Regenmenge jeweils für den ganzen Tag hoch.)

2. Fall es ist Starkregen (> 1mm) dann soll der CuxD Timer das Wiedereinschalten der Anlage für 2 Tage hinauszögern.

Hier meine Programme:
1. Ich steuere das Schalten der Anlage mit einer Bewässerungsvariable die hier gesetzt wird:
Bildschirmfoto 2018-05-20 um 08.52.53.png
Bewässerungsstatusvariable setzen
2. Der CuxD Timer für 48h:
Bildschirmfoto 2018-05-20 um 08.55.58.png
CuxD Timer

Accuracy
Beiträge: 746
Registriert: 22.05.2013, 16:37
Hat sich bedankt: 1 Mal

Re: Variable 48h Zeitverzögert setzen

Beitrag von Accuracy » 21.05.2018, 07:47

In dem Atemzug noch die Zusatzfrage. Wenn sich die Netatmovariable (Regenmenge_1D) um Mitternacht ändert muss man das auf "Aktualisierung" oder auf "Änderung" triggern oder ist es egal?

d3h56r
Beiträge: 192
Registriert: 29.10.2017, 10:23
Hat sich bedankt: 24 Mal
Danksagung erhalten: 4 Mal

Re: Variable 48h Zeitverzögert setzen

Beitrag von d3h56r » 21.05.2018, 08:28

Moin!

Warum machst Du es nicht andersherum?

Ich habe es so gelöst, dass ich eine Variable „Anzahl Tage ohne Bewässerung mit Menge XY“ gesetzt habe. Diese wird via Script nachts aufaddiert. Nun kann ich mit meinem Programm zur Bewässerung entsprechend darauf reagieren und die Variable als Bedingung zur Auslösung verwenden und mit Ausführung entsprechend zurücksetzen.

Das hat den Charme, dass Du z.B. auch bei manuellem Einschalten der Bewässerung die Variable zurücksetzten könntest, wenn gewollt. Ein CuX-Timer ist hierfür nicht erforderlich und alles funktioniert mit Bordmitteln.


Gesendet von iPhone mit Tapatalk
186 Kanäle in 59 Geräten:
1x HM-LC-Sw1-FM, 10x HM-CC-RT-DN, 1x HM-OU-LED16, 2x HM-LC-Sw1-Pl-DN-R1, 18x HM-Sec-SCo, 1x HM-Sec-TiS, 1x HM-LC-Sw1-Pl-CT-R1, 2x HM-LC-Sw2-FM, 5x HM-LC-Bl1PBU-FM, 3x HM-LC-Sw1PBU-FM, 12x HM-RC-2-PBU-FM, 1x HM-ES-PMSw1-Pl, 1x HM-WDS100-C6-O, 1x HmIP-RCV-50

Accuracy
Beiträge: 746
Registriert: 22.05.2013, 16:37
Hat sich bedankt: 1 Mal

Re: Variable 48h Zeitverzögert setzen

Beitrag von Accuracy » 21.05.2018, 08:36

klingt interessant. Kannste mal das Proggi teilen mit dem Script zum Aufaddieren der Tage? bzw. die ganze Logik?

Wie ist aber dann genau dein Zusammenhang zur Regenmenge?

d3h56r
Beiträge: 192
Registriert: 29.10.2017, 10:23
Hat sich bedankt: 24 Mal
Danksagung erhalten: 4 Mal

Re: Variable 48h Zeitverzögert setzen

Beitrag von d3h56r » 21.05.2018, 08:50

Accuracy hat geschrieben:Kannste mal das Proggi teilen mit dem Script zum Aufaddieren der Tage? bzw. die ganze Logik?

Wie ist aber dann genau dein Zusammenhang zur Regenmenge?

Code: Alles auswählen

var rainToday = dom.GetObject(28438);
var waterDaysFree = dom.GetObject(34571);

if ((rainToday) && (waterDaysFree))
{
    integer n = rainToday.Value();
    if (n > 0) {
        waterDaysFree.State(0.0);
    } else {
        waterDaysFree.State(waterDaysFree.Value() +1);
    }
}
rainToday ist die Variable, die die tägliche Regenmenge Enthält, waterDaysFree ist die selbstdefinierte Variable.

Das Programm zur Ausführung:
Bild

Das Programm zur Bewässerung:
Bild

Einfach mal mit rumspielen. ;-)

Bei mir ist es so eingestellt (siehe Code & Programme), dass mit jedem Tag, an dem es geregnet hat, die bewässerungsfreien Tage zurückgesetzt werden. So fährt der Rasensprenger automatisch alle 2 Tage um 21.30 für 45 Minuten an, wenn es nicht geregnet hat. Du bräuchtest im Script nur entsprechend n>0 auf Deine 10mm abändern und die Abfrage der Tagesanzahl im Programm auf 1 anpassen.


Gesendet von iPhone mit Tapatalk
186 Kanäle in 59 Geräten:
1x HM-LC-Sw1-FM, 10x HM-CC-RT-DN, 1x HM-OU-LED16, 2x HM-LC-Sw1-Pl-DN-R1, 18x HM-Sec-SCo, 1x HM-Sec-TiS, 1x HM-LC-Sw1-Pl-CT-R1, 2x HM-LC-Sw2-FM, 5x HM-LC-Bl1PBU-FM, 3x HM-LC-Sw1PBU-FM, 12x HM-RC-2-PBU-FM, 1x HM-ES-PMSw1-Pl, 1x HM-WDS100-C6-O, 1x HmIP-RCV-50

Accuracy
Beiträge: 746
Registriert: 22.05.2013, 16:37
Hat sich bedankt: 1 Mal

Re: Variable 48h Zeitverzögert setzen

Beitrag von Accuracy » 21.05.2018, 09:28

1000 Dank - ich werde es mal testen, falls mein Proggi mit dem CuxD Timer nicht hinhaut.
Eigentlich sollte es ja so auch damit funktionieren.

Accuracy
Beiträge: 746
Registriert: 22.05.2013, 16:37
Hat sich bedankt: 1 Mal

Re: Variable 48h Zeitverzögert setzen

Beitrag von Accuracy » 23.05.2018, 18:41

gibt's eigentlich eine Möglichkeit den laufenden Timer Status -- also wieviel Zeit noch verbleibt -- irgendwie abzufragen?
Unter Geräten sagt er mir nur, dass der timer ausgelöst wurde aber zeigt keine Restlaufzeit an.

66er
Beiträge: 3083
Registriert: 23.08.2015, 11:06
System: CCU
Hat sich bedankt: 116 Mal
Danksagung erhalten: 111 Mal

Re: Variable 48h Zeitverzögert setzen

Beitrag von 66er » 23.05.2018, 19:09

Ja. :D

aktuelle CUxd-Dokumentation (2.0) Seite 90 :wink:

(dort 2 Zeilen unter der farbig hervorgehobenen Zeile :idea: )

Antworten

Zurück zu „HomeMatic allgemein“