Howto - Vermeidung von Programmstarts nach Neustart der CCU

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

jp112sdl
Beiträge: 12116
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 849 Mal
Danksagung erhalten: 2150 Mal
Kontaktdaten:

Re: Howto - Vermeidung von Programmstarts nach Neustart der CCU

Beitrag von jp112sdl » 06.12.2020, 22:01

Xel66 hat geschrieben:
06.12.2020, 19:52
das System in einen kosistenten Zustand zu stellen, der den aktuellen Gegebenheiten und dem Zeitpunkt entspricht, bzw. wie es der Anwender in seiner Programmierung hinterlegt hat. Steht das System nicht so, wie es der Anwender es sich gedacht hat, dann hat er bei seiner Programmierung einen Fehler gemacht.
Und wieder der Hinweis, dass Sensoren einen Default-Wert nach dem Reboot haben und für Bedingungsprüfungen bis zur ersten Meldung unbrauchbar sind.

"WENN Zeitmodul tagsüber UND Fenster = offen (prüfen) DANN ...."

Neustart am Vormittag, das Fenster ist offen... ups :mrgreen:

Was kann der Programmierer hier besser machen?

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Benutzeravatar
Roland M.
Beiträge: 9805
Registriert: 08.12.2012, 15:53
System: CCU
Wohnort: Graz, Österreich
Hat sich bedankt: 252 Mal
Danksagung erhalten: 1381 Mal

Re: Howto - Vermeidung von Programmstarts nach Neustart der CCU

Beitrag von Roland M. » 06.12.2020, 22:11

Hallo Jérôme!
jp112sdl hat geschrieben:
06.12.2020, 22:01
"WENN Zeitmodul tagsüber UND Fenster = offen (prüfen) DANN ...."

Neustart am Vormittag, das Fenster ist offen... ups :mrgreen:

Was kann der Programmierer hier besser machen?
Wie erst vor kurzem geschrieben, ich erstelle da Systemvariablen als Wertelisten, die neben dem (Fenster-) Zustand "offen" und "geschlossen" auch noch "unbekannt" beinhalten. Auf diesen Wert wird die SV bei Neustart der CCU (eben die gute alte 950er...) gesetzt.
So kann ich dann auch je nach Situation diesen Status auswerten und zur Not den Turnschuh-Administrator los schicken...


Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
  • Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
  • Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
  • Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
  • Fehlermeldungen genau abschreiben, besser noch...
  • Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!

-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...

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

Re: Howto - Vermeidung von Programmstarts nach Neustart der CCU

Beitrag von Xel66 » 06.12.2020, 22:20

Ja, das ist ein Beispiel und gerade bei Batteriesensoren kommt das Prinzip an seine Grenzen. Aber solche Einzelbeispiele sind noch lange kein Grund, diesen Workaround sinnfreierweise in ALLE Programme auf dem System einzubinden, wie dieses häufig geschieht.

Man kann den Workaround ja in bestimmten Anwendungsfällen benutzen, aber die Empfehlung, diesen in alle Programme einzubauen, ist schlichtweg falsch. In zeitgesteuerten Programmen, und welchen mit Tasterbedienung, oder Programmtriggern in Abhängigkeit von netzversorgten Aktorenrückmeldungen ist dieser Workaround sinnfrei. Selbst bei durch Systemvariablen getriggerten Programmen ist die Verwendung grenzwertig, denn die Status der Systemvariablen werden aus ihren gespeicherten Zuständen gesetzt. Nun kann zwischen dem Zwischenspeicherzeitpunkt (alle 12 Stunden) und Reboot schon eine Statuswechsel erfolgt sein. Das fällt einem aber nur bei einem harten Reboot (Verlust der Spannungsversorgung) auf die Füße. Bei einem sauberen Reboot per WebUI nicht.

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

gmp
Beiträge: 72
Registriert: 05.12.2020, 18:25
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 5 Mal
Danksagung erhalten: 1 Mal

Re: Howto - Vermeidung von Programmstarts nach Neustart der CCU

Beitrag von gmp » 07.12.2020, 08:46

Xel66 hat geschrieben:
06.12.2020, 22:20
Ja, das ist ein Beispiel und gerade bei Batteriesensoren kommt das Prinzip an seine Grenzen. Aber solche Einzelbeispiele sind noch lange kein Grund, diesen Workaround sinnfreierweise in ALLE Programme auf dem System einzubinden, wie dieses häufig geschieht.
Dann sollte man auf Seite 1 die Formulierung mal ändern:
"3. Schaue hinter der Systemvariablen "CCU SV Status" durch Klick auf den Button "Programme" nach, mit welchen Programmen sie verknüpft ist und ändere dann in jedem Programm die dortige Systemvariable "CCU SV Status" in "Haus SV Anwesenheit". Diese Vorgehensweise hat den Vorteil, dass Skripte, in denen die ehemalige Systemvariable "Anwesenheit" abgefragt oder gesetzt wurde, nicht geändert werden müssen."

Jetzt ist mir die genaue Vorgehensweise auch klar, wann sinnvoll und wann nicht, nachdem ich mir den ganzen Thread hier reingezogen habe. :)
Und das Entfernen der Abfrage in meinen Zwischensteckern hat auch zum Erfolg geführt. Sie schalten nun auch direkt nach Neustart wieder.
Alles bestens.

VG
Thomas

Benutzeravatar
robbi77
Beiträge: 13860
Registriert: 19.01.2011, 19:15
System: CCU
Wohnort: Landau
Hat sich bedankt: 182 Mal
Danksagung erhalten: 739 Mal

Re: Howto - Vermeidung von Programmstarts nach Neustart der CCU

Beitrag von robbi77 » 07.12.2020, 09:18

Dieser Punkt trifft nur zu, wenn du die Originale Anwesenheitsvariable bereits in Programmen benutzt ...

Du sollst ja auch nicht in jedem Programm die einsetzen, sondern nur in jedem Programm was angezeigt wird wenn du bei der originalen SV auf Programme klickst die SV austauschen.

Lesen und Verständnis Problem.
Bei Risiken und Nebenwirkungen fragen Sie den Elektriker Ihres geringsten Mißtrauens!
http://www.eq-3.de/service/downloads.html
Tips und Tricks für Anfänger: viewtopic.php?t=22801
Programmlogik: viewtopic.php?f=31&t=4251
Webui-Handbuch: https://www.eq-3.de/downloads/download/ ... h_eQ-3.pdf
Script und Linksammlung: viewtopic.php?f=26&t=27907
Troll des Forums ...

gmp
Beiträge: 72
Registriert: 05.12.2020, 18:25
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 5 Mal
Danksagung erhalten: 1 Mal

Re: Howto - Vermeidung von Programmstarts nach Neustart der CCU

Beitrag von gmp » 07.12.2020, 10:29

robbi77 hat geschrieben:
07.12.2020, 09:18
Du sollst ja auch nicht in jedem Programm die einsetzen, sondern nur in jedem Programm was angezeigt wird wenn du bei der originalen SV auf Programme klickst die SV austauschen.

Lesen und Verständnis Problem.
Völlig klar. Nur wenn man noch nicht so 100%ig in der Thematik drin ist und man wird vom unabhängigen Thema "zPNP" zu diesem hier weitergeleitet, um eine weitere Einstellungen vorzunehmen, ohne kurz darauf hinzuweisen, warum das überhaupt gemacht werden sollte (oder auch nicht), dann kommt es halt zu diesen Missverständnissen. Sorry. Nicht jeder möchte sich erst durch einen 14-seitigen Beitrag wälzen, um erst dann die Problematik zu verstehen. :wink:

Das Thema existiert ja schon seit 2015 und man fragt sich hier, warum eq-3 diese Einstellung nicht in die Firmware übernimmt.
Ist man denn vielleicht mal an Jens Maus herangetreten, ob er diese Funktion nicht schon mal in Raspberrymatic übernehmen möchte?

VG
Thomas

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

Re: Howto - Vermeidung von Programmstarts nach Neustart der CCU

Beitrag von dtp » 07.12.2020, 10:43

Xel66 hat geschrieben:
06.12.2020, 22:20
diesen Workaround sinnfreierweise in ALLE Programme auf dem System einzubinden
Wo steht denn das? Wenn du schon mit Pauschalkritik um dich schlägst, dann intepretiere das Ausgangsposting wenigstens korrekt.

Unter Punkt 5 steht lediglich, dass in JEDE Wenn- bzw. Sonst-Wenn-Abfrage die UND-verknüpfte Zusatzbedingung "CCU SV Status Normalbetrieb nur prüfen" einzufügen ist, die beim Start der CCU nicht mehr ausgeführt werden soll. Da steht nicht, dass man das in allen Programmen so machen soll. Und wenn man bereits ein Zeitmodul aktiviert hat, dass diese Funktion übernimmt, dann braucht man das logischerweise auch nicht zu tun.
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.

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

Re: Howto - Vermeidung von Programmstarts nach Neustart der CCU

Beitrag von dtp » 07.12.2020, 10:47

gmp hat geschrieben:
07.12.2020, 08:46
Dann sollte man auf Seite 1 die Formulierung mal ändern:
Nein, weil sich Punkt 3 doch auf etwas völlig anderes bezieht. Da geht es darum, dass man die bisher verwendete Systemvariable "Anwesenheit", die ja durch die Umbenennung nun "CCU SV Reboot" heißt, durch die neu angelegte Systemvariable "CCU SV Anwesenheit" ersetzt, damit die entsprechenden Programme weiterhin den Anwesenheitsstatus berücksichtigen können. Das ist aber eben nur notwendig, wenn man mit der ursprünglichen Systemvariablen "Anwesenheit" bereits gearbeitet hatte.
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.

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

Re: Howto - Vermeidung von Programmstarts nach Neustart der CCU

Beitrag von Xel66 » 07.12.2020, 10:49

gmp hat geschrieben:
07.12.2020, 10:29
Das Thema existiert ja schon seit 2015 und man fragt sich hier, warum eq-3 diese Einstellung nicht in die Firmware übernimmt.
Vermutlich deswegen, weil diese Funktion grundsätzlich zielführend ist und davon auszugehen ist, dass sie absichtlich implementiert wurde. Dann gibt es auch keinen Grund, dieses abschaltbar zu machen. Wie Du aus dieser Diskussion entnehmen kannst, würden dann alle Anwender in Unkenntnis der Sachlage die Porgramme zum Systemstart "abschalten", weil ja die CCU beim Systemstart "alle Programme startet" (was nachweislich nicht der Fall ist, weil die Bedingungsprüfungen der Programme durch Statusabfragen und/oder das Setzen von gespeicherten oder Defaultwerten getriggert werden ).

Diese Option würde zusätzlichen Supportaufwand generieren, weil das System bei der Aktivierung inkonsitente Zustände hinstellen würde, bzw. die Zustände weder zu den herrschenden Bedingungen bzw. Zeitpunkten/-spannen passen. Mit dem Einsatz des Workarounds hat(te) man zumindest noch die Hoffnung, dass der nachklickende Anwender sich wenigstens ansatzweise mit der zugrundeliegenden Problematik auseinandergesetzt hat und diesen bewusst einsetzt. Diese Hoffnung hast Du übrigens gerade kaputt gemacht. Es werden blind und ohne Nachdenken irgendwelche "Empfehlungen" nachgeklickt.
dtp hat geschrieben:
07.12.2020, 10:43
Da steht nicht, dass man das in allen Programmen so machen soll.
Mag ja sein, dass das hier nicht steht. Die Erfahrung lehrt aber im Gegensatz dazu, dass die Variable ohne Sinn und Verstand in alle Programme implementiert wird. Schau Dir mal viele Screenshots von Programmen hier im Forum an. Da habe ich schon eindeutige Statements von teils jahrelangen Anwendern, von denen man meinen könnte, dass sie es besser wissen müssten, gelesen. So ist der Status quo. Und darum versuche ich, die Leute wenigstens zum Nachdenken vor dem Nachklicken anzuregen, ob ihr Tun wirklich so zielführend ist. Nur darum geht es. Über die Logik der CCU wird unter Ignoranz der Beschreibung im WebUI-Handbuch, dem Einsteigerthread sowie gefühlt hunderter Threads dazu viel Falsches kommuniziert. Beispiel: nur mal im ersten Absatz dieses Postings schauen.

Gruß Xel66
Zuletzt geändert von Xel66 am 07.12.2020, 10:57, insgesamt 1-mal geändert.
-------------------------------------------------------------------------------------------
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

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

Re: Howto - Vermeidung von Programmstarts nach Neustart der CCU

Beitrag von dtp » 07.12.2020, 10:53

Nochmals zur Klarstellung. Ich habe diese Anleitung damals auf Grundlage anderer Beiträge geschrieben, die bereits im Forum existierten. Es steht jedem frei, es so umzusetzen, es sein zu lassen oder eine andere Lösung zu bevorzugen.

ABER. Die Lösung funktioniert. Und sie funktioniert seit zig Jahren. Wie immer, sollte man jedoch wissen, was man tut und warum man es tut.

Ich arbeite z.B. so gut wie gar nicht mit dem Zeitmodul. Einfach, weil ich es so gut wie gar nicht brauche. Welche Lösung bietet sich da nun zur Vermeidung der Ausführung von Programmzweigen nach dem Neustart der CCU an?

Und selbst, wenn man die Lösung in Verbindung mit dem Zeitmodul verwendet, tut sie nicht weh. Sie ist dann lediglich wirkungslos.
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.

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“