Programme werden doppelt ausgeführt

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
chris1507
Beiträge: 27
Registriert: 27.06.2017, 11:09
Hat sich bedankt: 3 Mal

Programme werden doppelt ausgeführt

Beitrag von chris1507 » 05.05.2019, 20:41

Hallo,

seit einiger Zeit wird mein Programm zur Bewässerung sehr oft zweimal sofort nacheinander ausgeführt. Ich habe es raus gefunden, weil ich ein Log in eine Variable schreibe. Das Problem ist, dass ich einen Zähler verwende um beispielsweise alle 2 oder 3 Tage bewässern möchte.
Woran kann das liegen. Hier mein Programm:
2019-05-05 20_38_40-HomeMatic WebUI.png
Das ist noch das Skript:

Code: Alles auswählen

! SV hochzählen bis Maximalwert, dann auf 0

! Deklaration lokaler Variablen
object sv;    ! Systemvariable
integer n;    ! Zählwert
integer max;  ! Maximalwert

sv = dom.GetObject("Gartenbewaesserung");
sv.State(0); 

string zeit = system.Date("%d.%m. %H:%M Uhr");
var source = "Beet";
zeit = zeit # " " # source # "\n";
if(dom.GetObject('CW').Value() == "true")
{
string temp = dom.GetObject('Week1').Value(); 
zeit= temp # "\n" # zeit;
dom.GetObject('Week1').State(zeit);}
else
{string temp = dom.GetObject('Week2').Value(); 
zeit= temp # "\n" # zeit;
dom.GetObject('Week2').State(zeit);}
und bei der Nicht Bedingung;

Code: Alles auswählen

! SV hochzählen bis Maximalwert, dann auf 0

! Deklaration lokaler Variablen
object sv;    ! Systemvariable
integer n;    ! Zählwert
integer max;  ! Maximalwert

sv = dom.GetObject("Gartenbewaesserung");
n = 1 + sv.Value();
sv.State(n); 

Bratmaxe
Beiträge: 1573
Registriert: 28.05.2015, 12:48
Wohnort: Willich
Hat sich bedankt: 4 Mal
Danksagung erhalten: 10 Mal

Re: Programme werden doppelt ausgeführt

Beitrag von Bratmaxe » 06.05.2019, 07:40

Moin,

wie sehen denn die Beiden Zeitmodul-Einstellungen aus, da du zweimal das Zeitmodul drin hast und "zu Zeiten Auslösen" wird das Programm auch zweimal getriggert, beides mal um 20:10. Also wenn die Einstellungen der Zeitmodule identisch sind, dann setze eins von beiden mal auf "nur prüfen"

Edit: Außerdem hast du ein SONST verwendet, somit triggert das Programm auch nochmal, wenn eines der Zeitmoduel "NICHT" mehr zutrifft!

Gruß Carsten
Gruß Carsten

chris1507
Beiträge: 27
Registriert: 27.06.2017, 11:09
Hat sich bedankt: 3 Mal

Re: Programme werden doppelt ausgeführt

Beitrag von chris1507 » 07.05.2019, 20:33

Hallo,

danke erst mal für die Antwort. Das mit dem Sonst ist so richtig, das ist letztendlich die Else Schleife des Programms.
Was ich dann nicht verstehe sind die oberen Bedingungen. Er sollte die die Dann Aktionen nur dann ausführen wenn alle Bedingungen des einen oder anderen Zweigs erfüllt sind. Letztendlich führt er die Dann Aktionen aber zweimal aus, was das Logging in eine Variable beweist.

Oder ist es so, dass er aufgrund der 2 maligen Aufforderung der Zeitausführung das Programm 2 mal startet und dann von oben nach unten abarbeitet und so quasi 2 mal jeweils den oberen Teil als positiv erkennt und deshalb zweimal die Aktionen in Dann ausführt?

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: Programme werden doppelt ausgeführt

Beitrag von manfredh » 08.05.2019, 09:45

Du beginnst scheinbar die Logik zu begreifen, obwohl du offensichtlich die diesbezüglichen Tipps für Anfänger nicht gelesen hast. :mrgreen:

- Jede einzelne Zeile (in der nicht "nur prüfen" steht) eines Bedingungsblockes kann das Programm auslösen. Egal was die anderen Zeilen sagen.

- Wird das Programm ausgelöst (evtl. auch durch die allerunterste Bedingungszeile), wird es von oben nach unten abgearbeitet und beim ersten erfüllten Bedingungsblock (evtl. auch der alleroberste Block) ausgeführt.
Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.

Benutzeravatar
Black
Beiträge: 5483
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 424 Mal
Danksagung erhalten: 1074 Mal
Kontaktdaten:

Re: Programme werden doppelt ausgeführt

Beitrag von Black » 08.05.2019, 12:34

Zum Thema Programm hab ich hier mal was aufgeführt: viewtopic.php?f=26&t=49806

Gruss black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Antworten

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