Boolean Variable nach Zeit X ändern

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

pool2020
Beiträge: 9
Registriert: 12.08.2018, 11:11

Boolean Variable nach Zeit X ändern

Beitrag von pool2020 » 13.08.2018, 09:38

Hallo zusammen,

ich brauche mal eure Hilfe. Ich möchte eine boolean Variable für eine bestimmte Zeit (Zeit = eine Systemvariable vom Typ Zahlenwert)
von 0 auf 1 setzen bzw. nach Ablauf der Zeit wieder auf 0.

Mit der Skriptsprache habe ich erst angefangen und komme nicht weiter.

Gruß Markus

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

Re: Boolean Variable nach Zeit X ändern

Beitrag von JRiemann » 13.08.2018, 09:51

Die Frage ist zwar berechtigt und evtl. gibt es dazu auch eine Möglichkeit es per Skript zu lösen, aber für die gewünschte Umsetzung ist das nicht nötig.
Da ich die Wunschumsetzung aus dem anderen Thread und aus den PN`s kenne ist das zurücksetzen ganz unproblematisch per Programm zu lösen.
Es macht aber erst Sinn wenn der Kern der gesamten Umsetzung fertig erarbeitet wurde.

Für Anfänger mit noch großen Defiziten beim verstehen der Programmlogik halte ich unnötige Skriptlösungen für Kontraproduktiv.
Sorry, mein persönliche Meinung...
Viele Grüße!
Jörg

pool2020
Beiträge: 9
Registriert: 12.08.2018, 11:11

Re: Boolean Variable nach Zeit X ändern

Beitrag von pool2020 » 13.08.2018, 10:16

Hallo Jörg schön das du dich meldest und danke für deine persönliche Unterstützung gestern. Da ich auf der Arbeit nur Zugriff per Handy auf die CCU habe sind Screenshots schwierig. Ich habe gestern ja das Programm Solar nach deinen Vorgaben neu geschrieben und glaube auch die meisten deiner Ratschläge verstanden zu haben. Vom neuen Programm hatte ich dir ja einen Screenshot per PN geschickt. Ich hatte es getestet indem ich die Variable um die es geht manuell geändert habe.

Wenn es auch ohne Script geht umso besser. Deine Aussage bezüglich meiner Defizite verstehe ich als Ansporn und entspricht den Tatsachen.

Nur was meinst du mit "Es macht aber erst Sinn wenn der Kern der gesamten Umsetzung fertig erarbeitet wurde."

Welche Infos fehlen denn noch? Ich muss doch nur noch die besagte Variable auf Zeit ändern, oder?

Gruß Markus

manfredh
Beiträge: 4155
Registriert: 09.09.2012, 10:41
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 78 Mal
Danksagung erhalten: 301 Mal

Re: Boolean Variable nach Zeit X ändern

Beitrag von manfredh » 13.08.2018, 11:26

Hallo Markus,

es fehlt zumindest die Angabe, wie du die Variable von 0 auf 1 änderst.

Steht sie erst mal auf 1 geht sie nach Zeit x so wieder auf 0:

Code: Alles auswählen

Wenn
 Variable auf 1 bei Änderung auslösen
Dann
 Variable verzögert um xx Sekunden auf 0
Dieses Progrämmchen ist so banal, dass es einen umso mehr in Erstaunen versetzt, wie einer, der schon so etwas (noch) nicht versteht, mit Scripten anfangen möchte.

Bitte nicht übel nehmen. :D

Gruß
Manfred
Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.

pool2020
Beiträge: 9
Registriert: 12.08.2018, 11:11

Re: Boolean Variable nach Zeit X ändern

Beitrag von pool2020 » 13.08.2018, 12:18

Hallo Manfred,
das hätte ich auch hinbekommen. Vielleicht habe ich es nicht richtig beschrieben.

xx Sekunden ist eine Systemvariable mit Zahlenwert. Oder stehe ich mal wieder auf dem Schlauch.

Gruß Markus

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

Re: Boolean Variable nach Zeit X ändern

Beitrag von dtp » 13.08.2018, 12:54

Nein. Die Verzögerung um xx Sekunden setzt du direkt im WebUI-Programm, indem du „sofort“ durch „verzögert um“ ersetzt.
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.

pool2020
Beiträge: 9
Registriert: 12.08.2018, 11:11

Re: Boolean Variable nach Zeit X ändern

Beitrag von pool2020 » 13.08.2018, 13:14

Hallo,
das ist ja genau das was Manfred geschrieben hat.
Aber ich möchte nicht eine feste Zeit um die die Variable verzögert geändert wird, sondern die Länge der Verzögerung soll durch den ZahlenWert einer anderen Variablen gesetzt werden.

Gruß Markus

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

Re: Boolean Variable nach Zeit X ändern

Beitrag von JRiemann » 13.08.2018, 15:00

Ich kläre das hier mal auf damit die Mitlesenden verstehen worum es überhaupt geht.

Es wird ein Aktor mit einer dynamischen Einschaltdauer eingeschaltet.
Diese Einschaltdauer wird in einem Skript berechnet und in eine Systemvariable geschrieben.
Beim einschalten des Aktors wird der Wert der Variable als Einschaltdauer verwendet.
Der TE möchte jetzt eine Sperrvariable setzen die Verhindert das andere Programme während der laufenden Einschaltdauer den Aktor wieder ausschalten.
Das Setzen der Sperre auf EIN kann einfach beim einschalten des Aktors geschehen. Da die Einschaltdauer dynamisch ist kann das zurücksetzen der Variable auf AUS nicht durch "verzögert um" realisiert werden.
Darum stellte der TE die Frage wie man die dynamische Einschaltdauer die in einer Variable abgelegt ist auch als Rückstellzeit (wie verzögert um) für die Sperrvariable nutzen kann.

Diese Sperrvariable wird in einer Poolpumpensteuerung genutzt bei deren Umsetzung ich dem TE seit gestern in einem anderen Thread und per PN unterstütze. Das Rücksetzen der Variable habe ich dort bereits mit normalen Bordmitteln integriert.
Die Eröffnung dieses Thread hat sich mit den neuesten Lösungsansätzen überschnitten.
Viele Grüße!
Jörg

Benutzeravatar
Vindeliker
Beiträge: 57
Registriert: 12.05.2017, 08:06
Hat sich bedankt: 34 Mal

Re: Boolean Variable nach Zeit X ändern

Beitrag von Vindeliker » 13.08.2018, 15:34

Wäre es möglich, hier die Lösung oder aber einen Link auf die Lösung anzuhängen?

VG Manfred

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

Re: Boolean Variable nach Zeit X ändern

Beitrag von JRiemann » 13.08.2018, 18:33

Die Lösung ist Teil der Gesamtumsetzung und damit individuell.
Beim Einschalten der Pumpe wird die Sperre auf EIN gesetzt.
In einem kleinen Einzelprogramm wird die Sperre wieder aufgehoben wenn die Pumpe ausgeschaltet wurde und gleichzeitig die Sperre aktiv ist. Also:

WENN - Pumpe - Schaltzustand AUS - bei Änderung auslösen
UND - Sperre - EIN - nur prüfen
DANN - Sperre - AUS

Der Gedanke dahinter ist ganz einfach: In den Programmen die die Pumpe nicht ausschalten dürfen ist die Sperre als zu prüfende Bedingung enthalten. Folglich kann die Pumpe nur durch das Ende der Einschaltdauer oder händisch ausgeschaltet worden sein. Weil „erlaubt“ ausgeschaltet wurde während die Sperre noch aktiv ist kann sie jetzt deaktiviert werden.

Wie man das genau in Deiner Umsetzung einbaut müsste man dann schauen.
Viele Grüße!
Jörg

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“