Systemvariable bei CCU Neustart falscher Status

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

MichaelN
Beiträge: 9685
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1627 Mal

Re: Systemvariable bei CCU Neustart falscher Status

Beitrag von MichaelN » 24.01.2024, 05:09

Es wird jedes Programm ausgeführt, dessen Bedingungen zum Start Zeitpunkt wahr ergeben.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Xel66
Beiträge: 14169
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 587 Mal
Danksagung erhalten: 1501 Mal

Re: Programme mit Zeitsteuerung

Beitrag von Xel66 » 24.01.2024, 16:29

Werner74579 hat geschrieben:
23.01.2024, 22:59
..., also die beispielsweise alle 5 Minuten mal starten.
Abhängig von der programmierten Startzeit. Bei Startzeit zur vollen Stunde dann eben x:00, x:05, x: 10, x:15 usw.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Werner74579
Beiträge: 69
Registriert: 08.12.2022, 15:44
System: CCU
Hat sich bedankt: 20 Mal

Programmstart bei Zeitsteuerung

Beitrag von Werner74579 » 24.01.2024, 17:03

Danke @Xel66. Bei mir ist beispielsweise der Startzeitpunkt einfach "20.11.2023".
Dann würde also das Programm, wie von dir beschrieben, x:00, x:05, x:10, x:15 usw. starten. Also wenn der System-Neustart gerade um 10:05 ist, startet das Programm weitestgehend sofort - oder?

Xel66
Beiträge: 14169
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 587 Mal
Danksagung erhalten: 1501 Mal

Re: Systemvariable bei CCU Neustart falscher Status

Beitrag von Xel66 » 24.01.2024, 17:33

Du gibst für das zyklische Triggern einen Uhrzeitbereich an (ganztägig beginnt um 0:00 Uhr). Der ist relevant. Wenn Du da "krumme Zeiten anlegst, kannst Du auch um x:03, x:08 usw. triggern.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Werner74579
Beiträge: 69
Registriert: 08.12.2022, 15:44
System: CCU
Hat sich bedankt: 20 Mal

Konkreter Ablauf beim System-Neustart

Beitrag von Werner74579 » 25.01.2024, 22:39

Hallo @Xel66, ich komme mal auf diesen Satz von dir zurück:
Xel66 hat geschrieben:
17.10.2019, 07:51
Die originale Anwesenheitsvariable ist die einzige, die ihren Zustand auf WAHR bei Systemstart wechselt, was bei o.a. Workaround gezielt genutzt wird.
Ich möchte gerne vermeiden, dass das oben erwähnte zeitgesteuerte Programm bei einem System-Neustart ausgeführt wird. Ich will dazu in die Wenn-Bedingung nach meiner Zeitsteuerung

[Zeitsteuerung] Periodisch Ganztägig beginnend am 20.11.2023 [zu Zeitpunkten auslösen]
(und diese Zeitpunkte sind alle 5 Minuten)

noch ein UND einfügen mit

[Systemzustand] Anwesenheit bei [nicht anwesend] [nur prüfen]

Wenn ich das richtig verstanden habe ist ja Anwesenheit beim Neustart immer WAHR und somit müsste ich mit obiger Methode verhindert haben, dass das Zeitprogramm startet.


Dann erstelle ich ein zweites Programm ohne irgendeine Wenn-Bedingung. Dieses Programm rufe ich nie auf, weil ich es nur beim System-Neustart benötige. Aber ohne Wenn-Bedingung müsste dieses Programm ja beim System-Neustart aufgerufen werden. In diesem Programm nehme ich einige Initialisierungen vor, die notwendig geworden sein könnten, weil während des Systemausfalls einige Sensoren und äußere Hardware nicht mehr mit den internen Systemvariablen zusammenpassen. Wenn alles wieder Ok ist, setze ich am Ende dieses Programms

dom.GetObject("Anwesenheit").State(false);

und dann müsste ja mein obiges zeitgesteuerte Programm wieder normal alle 5 Minuten starten, da ja

[Systemzustand] Anwesenheit bei [nicht anwesend] [nur prüfen]

jetzt Wahr ist.

Das ist mein Plan. Könnte das so klappen?

Benutzeravatar
Baxxy
Beiträge: 10849
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 610 Mal
Danksagung erhalten: 2229 Mal

Re: Systemvariable bei CCU Neustart falscher Status

Beitrag von Baxxy » 25.01.2024, 23:02

Werner74579 hat geschrieben:
25.01.2024, 22:39
dom.GetObject("Anwesenheit").State(false);
Man kann Systemvariablen auch ganz einfach im Programm setzen, da brauchts kein Script.

Aber ja, das ist der "Programme sollen bei Zentralenstart nicht ausgeführt werden" - Workaround.

MichaelN
Beiträge: 9685
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1627 Mal

Re: Systemvariable bei CCU Neustart falscher Status

Beitrag von MichaelN » 26.01.2024, 00:20

Ist aber unnötig, weil extern unwahrscheinlich, dass du genau zu dem periodisch anstehenden Zeitpunkt neu bootest.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Werner74579
Beiträge: 69
Registriert: 08.12.2022, 15:44
System: CCU
Hat sich bedankt: 20 Mal

Das ist nicht das Problem

Beitrag von Werner74579 » 26.01.2024, 00:56

Hey @MichaelN,
danke für deinen Einwand.

Das ist aber nicht das Problem. Sondern ich sollte mein zeitgesteuertes Programm überhaupt nicht laufen lassen, solange ich Inkonsistenten zwischen meinen internen Systemvariablen und der äußeren Hardware habe und das könnte während eines Systemausfalls durchaus vorkommen. Daher ist der Zeitpunkt des System-Neustarts nicht relevant, wichtig ist diese Inkonsistenz erst zu bearbeiten und zu beseitigen und dann erst mit dem normalen Programmablauf, das heißt mit der normalen regelmäßigen Zeitsteuerung weiterzumachen.

Werner74579
Beiträge: 69
Registriert: 08.12.2022, 15:44
System: CCU
Hat sich bedankt: 20 Mal

Scheint bei mir nicht zu funktionieren

Beitrag von Werner74579 » 28.01.2024, 23:32

Ich hab's jetzt mal getestet...

Wenn bei mir "Anwesenheit" auf "nicht anwesend" gesetzt ist, dann kann ich die CCU3 ausschalten, indem ich einfach den Strom abstelle.
Nach dem System-Neustart ist dann "Anwesenheit" immer noch "nicht anwesend".

Hmmm... keine Ahnung warum das hier nicht klappt.

Und wenn "Anwesenheit" auf "anwesend" ist, dann ist auch nach einem System-Neustart noch "Anwesenheit" auf "anwesend".

Mach ich was falsch?

Ich bin etwas verwirrt!


Antworten

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