Startwerte werden nicht übernommen bzw. Werte darauf zurückgesetzt

Programmierung der HomeMatic CCU mittels contronics homeputer CL

Moderator: Co-Administratoren

Antworten
Benutzeravatar
mmo
Beiträge: 199
Registriert: 12.11.2007, 23:14
System: CCU
Hat sich bedankt: 5 Mal
Danksagung erhalten: 1 Mal

Startwerte werden nicht übernommen bzw. Werte darauf zurückgesetzt

Beitrag von mmo » 01.08.2020, 14:02

Habe bemerkt, dass in meinem Code geänderte Startwerte nicht wie erwartet übernommen wurden
Habe dies dann darauf eingedampft, dass bereits existierende Variable bei einem erneute Upload und Restart der ExecEngine offensichtlich nicht auf die im Makro angegebenen Startwerte zurückgesetzt werden, sondern ihre Werte beibehalten. Finde das ziemlich falsch (oder zumindest SEHR unerwartet)!

Zwecks Reproduktion folgendes Makro definiert (läuft z.B. 1x pro Minute):

Code: Alles auswählen

LogZeile := "Zähler: " + Zaehler
SCHREIBEDATEI("syslog.txt",LogZeile,2)
Zaehler := Zaehler + 1
Die Variable "Zaehler" wurde als "Zahl" mit Startwert 0 definiert.

Das ganze Kompilieren und zur Zentrale hochladen. Nach einige Minuten in Homeputer CL erneut auf den "Blitz" geklickt, also erneut kompiliert und erneut hochgeladen und ExecEngine erneut gestartet:

Logfile:

Code: Alles auswählen

01.08.2020/13:20:25: SLE - Ende Ausführung
******************************************
01.08.2020-13:22:35: Neustart der Zentrale
******************************************
Sonnenaufgang=06:04:00
Sonnenuntergang=20:56:00
Zähler: 0
Zähler: 1
Zähler: 2
Zähler: 3
Zähler: 4
Zähler: 5
Zähler: 6
Zähler: 7
Zähler: 8
Zähler: 9
Zähler: 10
Zähler: 11
Zähler: 12
Zähler: 13
Zähler: 14
01.08.2020/13:37:11: SLE - Ende Ausführung
******************************************
01.08.2020-13:39:10: Neustart der Zentrale
******************************************
Sonnenaufgang=06:04:00
Sonnenuntergang=20:56:00
Zähler: 15
Zähler: 16
Zähler: 17
Zähler: 18
Zähler: 19
Zähler: 20
Zähler: 21
Zähler: 22
Wie man sieht, zählt der Zähler munter weiter, obwohl neuer Code hochgeladen und gestartet wurde.
Das ist nun definitiv NICHT das Verhalten, das ich erwartet hätte! :-(

Wenn das "working as designed" sein sollte (also gewünschtes Verhalten): Was ist dann die empfohlene Methode, um Variablen beim Neustart des Programms einen fixen Startwert zuzuweisen? Wie bekommt man sonst beim Programmstart einen definierten Anfangszustand hin?
Zuletzt geändert von alchy am 01.08.2020, 21:09, insgesamt 1-mal geändert.
Grund: verschoben aus homeputer CL - Bugs & Updatewünsche
1x RaspberryMatic, 1x HM-PB-4Dis-WM, 1x HM-RC-Dis-H-x-EU, 1x HM-OU-LED16, 1x 1x HM-Sec-MDIR, 1x HM-LC-Dim1L-CV, 7x HM-LC-Sw1-Pl, 3x HM-LC-Sw2-FM, 1x HM-RC-4-B, 1x HM-PBI-4-FM, 1x HM-PB-4-WM, 3x HM-Sec-SC, 1x HM-LC-Bl1-SM, HmIP-SWO-PL

Wolle
Beiträge: 41
Registriert: 05.09.2007, 08:09
Wohnort: Wuppertal

Re: Startwerte werden nicht übernommen bzw. Werte darauf zurückgesetzt

Beitrag von Wolle » 05.08.2020, 14:10

Menüpunkt:
Konfigurieren->Einstellungen->Option "Aktuelle Werte der ExecEngine speichern/laden".

Wenn du die Option deaktivierst wird der Startwert genommen, bei einem Hardwareobjekt kann dieser dann aber durch den aus der Hardware ausgelesenen Wert überschrieben werden.

Ist aber normalerweise besser die Option aktiviert zu lassen damit nach einer neuen Projektübertragung nicht alle aktuellen Werte verloren gehen.

LG
Wolle

Antworten

Zurück zu „homeputer CL“