Zustände bei CCU Start aufzwingen, wie ???

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Antworten
coffeejunk
Beiträge: 27
Registriert: 04.06.2020, 13:32
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Zustände bei CCU Start aufzwingen, wie ???

Beitrag von coffeejunk » 11.04.2021, 15:16

Hallo Michael und Black,

habe für dieses Thema hier einen neuen Thread aufgemacht.
Black hat geschrieben:
11.04.2021, 14:06
Ebenso kann man den Geräten (in der regaHSS) bei Start CCU zustände aufzwingen. Ich nutze dies z.b.für die fenster und Türsensoriken.
UseCase: tur ist auf, hinten im garten mit dem Nachbarn am quatschen... stromausfall, netzwiederkehr - sensoren werden als tür zu erkannt, es kommt die nacht erkennung und du pennst die nacht auf der terasse, weil die türrollos zugefahren sind.

umgekehrt, wenn ein unklarer zustand gefährliche Bewegungen hervorrufen kann (Zerstörung einer Jalosie bei offener Tur, so muss der Zustand nach Neustart als unklar gespeichert werden, und bei unklar finden keine automatischen bewegungen statt.
Das ist aber Sache des Anwenders dies zu definieren und auch zu programmieren.

Black
MichaelN hat geschrieben:
11.04.2021, 14:00
Ich löse das so, indem ich diesen Sensoren beim Reboot einen fail-safe Status "Unterschiebe". Meinem SRH also "offen". Das bleibt dann solange bis der Sensor seinen Status aktualisiert oder ich den Türgriff betätige. Aber ich blockiere nicht einfach alle Programme bei Systemstart wahllos. Ganz im Gegenteil ist mir dann wichtig, das schnellstmöglich Stati wie "Tag", "Sonne", etc. wieder aktualisiert werden.
OK, das habe ich jetzt im Grunde verstanden, aber wie macht man das im Detail einen "FailSafe" Status oder beim Start einem "Gerät Zustände aufzwingen" ??

Mache ich das über Systemvariable, habe ich nach einem Neustart das selbe Problem, soweit ich mich erinnere werden bei Start:
  • Alle Systemvariable werden auf den Wert "" oder NULL gesetzt
  • danach wird aus der abgespeicherten DB der Zustand der SysVars vor dem Neustart geladen
  • danach werden alle Programme angetriggert....
Gruß
Jürgen

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: Zustände bei CCU Start aufzwingen, wie ???

Beitrag von manfredh » 11.04.2021, 15:23

Bei einem Systemstart gibt es nur eine SV, der ein Wert aufgezwungen wird - die Anwesenheit. Alle anderen bleiben "gemerkt". Und das ist der Punkt, an dem du den Einfluss hast, einen Wert aufzuzwingen.

Sensoren melden sich allenfalls zyklisch bei der CCU. Bis das passiert, nimmt die CCU einen Wert an. Das ist z.B. bei einem TFK "geschlossen", bei einem Temperatursensor (m.W.) 0°.

Du könntest also den Zustand eines Sensors immer auf eine SV abbilden und in allen Programmen nur diese SV statt dem Sensor abfragen. Beim Systemstart steht es dir frei, auf den gespeicherten Wert der SV zu vertrauen oder mit einem Programm, das ein leeres "Wenn" hat, die SV auf einen definierten Wert zu setzen. Bei einem Neustart werden nämlich die Bedingungen aller Programme geprüft und ein leeres "Wenn" heißt "unbedingt".
Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.

Benutzeravatar
Black
Beiträge: 5480
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: Zustände bei CCU Start aufzwingen, wie ???

Beitrag von Black » 11.04.2021, 15:27

damit es ganz sauber ist brauchst du eine CCU (real oder VM),die über eine USV gestützt ist,damit diese kontroliert herunterfahren kann (persistieren der Rega).

Ich lege bei mir die Zustände gewisser Sensoren in den Metadaten des entsprechenden kanales des Gerätes ab. bei einem Neustart der CCU läuft eines der programme von mir über die Geräte und schreibt dann die Zustände aus den metadaten via Rega Event in den Datenpunkt. Damit hat der Datenpunkt des gerätes nun innerhalb der Rega den letzten bekannten Zustand. Dieser Wert steht solange an, bis ein realer Wert aus dem Schnittstellenprozess dann diesen Wert wieder überschreibt. Ab dann ist das aber der Aktuelle zustand. (Das kleingedruckte, dieser Weg wirkt nur auf die RegaHss. Middlewares wie z.B. Iobroker, die direkt über xmlrpc an den Schnittstellenprozess anbinden, lassen sich so nicht überlisten)

Ebenso kannst du ein dabei auch noch einen Merker setzen (auch wieder in den Metas) oder wenn du es in der WebUI als Entscheidungswert brauchst, als Systemvararible, dabei bei CCU Start auf Unklar. mit dem eintrudeln der ersten relaen Statusmessage dann unklar auf klar wecheln.

und irgendwelche Programme, die bewegungen hervorrufen, fragen den Status ab: bei Unklar, keine Bewegung.

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 allgemein“