Rollladen Steuerung

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

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

Re: Rollladen Steuerung

Beitrag von Xel66 » 06.08.2019, 02:10

roe1974 hat geschrieben:
05.08.2019, 20:42
... das entspricht auch nicht meinen Erfahrungen ...
Dann war eben meine CCU2 kaputt und meine Raspberrymatic ebenfalls. Bei mir wird kein Programm gestartet, welches nicht entsprechende Trigger hat. So wird derzeit ein Großteil meiner Heizungsprogramme nicht getriggert, weil sie eben über die Systemvariable Heizungsperiode verriegelt sind. Ich habe seit dem letzten Update noch einige Programme ohne Zeitstempel in meiner Programmbedienung. Im Winterhalbjahr wäre das nicht so. Das ist meine Erfahrung und deckt sich auch mit den Erwartungen, die sich aus oben beschriebenen Grundsätzen zur Programmtriggerung und -abarbeitung ergeben. Es ist daher eher zu vermuten, dass die Trigger Deiner Programme und der komplette Programmaufbau so angelegt ist. Und es werden definitv keine Programme beim Systemstart ausgeführt, die nicht über eine Zustandsabfrage oder -rückmeldung eines Aktors oder Sensors getriggert werden.

Wenn Du an einer Überprüfung interessiert bist, brauchst Du nur mal vor dem nächsten Reboot bei einem Update o.ä. ein Programm mit einer virtuellen oder realen Taste als Trigger anlegen und dann nach dem Systemstart und auch ein paar Tage später in der Programmbedienung den nicht vorhandenen Zeitstempel (als Zeichen, dass in diesem Programm weder die Bedingungsprüfung noch der Ausführungsteil gestartet wurde) bewundern. Ein Programm mit einem Zeitpunkt als Trigger tut es auch (natürlich nur, bis das Zeitmodul erstmalig WAHR wurde). Die Gegenprobe kannst Du auch gern mit einem Zeitmodul und einem Zeitbereich, der den Bootzeitpunkt überdeckt machen. Dort kannst Du alle Grundsätze nachvollziehen.

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

Sven_A
Beiträge: 4152
Registriert: 26.01.2016, 08:14
System: Alternative CCU (auf Basis OCCU)
Wohnort: Renningen
Hat sich bedankt: 345 Mal
Danksagung erhalten: 281 Mal

Re: Rollladen Steuerung

Beitrag von Sven_A » 06.08.2019, 07:27

Ich glaube ihr redet aneinander vorbei.

Beim starten werden NICHT alle Programme bedingungslos ausgeführt wie das der Fall wäre wenn man manuell auf "Programm starten" klickt.

Es werden aber sehr wohl bei allen Programmen die Bedingungen geprüft, und wenn die zu dem Zeitpunkt wahr sind (oder die CCU glaubt das die wahr wären, weil eben Fenstersensoren nach dem Neustart als "ZU" angenommen werden) werden die auch ausgeführt. Wenn eben wie im Beispiel von xel eine SysVar abgefragt wird und die Prüfung negativ verläuft wird der entsprechende DANN Zweig nicht ausgeführt. Dann werden eben die "SONST WENN" Zweige geprüft, und im Zweifelsfall ein vorhandenes, bedingungsloses "SONST" ausgeführt.

In meinen CCU2 Zeiten hatte ich teilweise durchaus den Fall das ein Programm einen Zeitstempel bekommen hatte, auch wenn es nicht ausgeführt worden ist sondern nur geprüft wurde. War meiner Meinung nach bei mindestens einer CCU2 Version der Fall.

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: Rollladen Steuerung

Beitrag von manfredh » 06.08.2019, 10:55

Gib dir keine Mühe Sven,

es werden zwar offensichtlich DANNs ausgeführt, deren WENNs wahr sind, aber ohne dass die Programme gestartet werden. :roll: :wink: 🤯

Mir ist das wurscht. Hauptsache ich weiss, welche Ergebnisse ich erwarten kann.
Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.

nimmnenkeks
Beiträge: 453
Registriert: 30.11.2016, 20:24
Hat sich bedankt: 43 Mal
Danksagung erhalten: 19 Mal

Re: Rollladen Steuerung

Beitrag von nimmnenkeks » 06.08.2019, 14:52

Im Prinzip lässt sich die Kiste gaaanz leicht klären :shock:
Mann nehme eine SysVar (z.B. „Watt denn nu“),
WattDennNu_01.PNG
WattDennNu_01.PNG (10.83 KiB) 3739 mal betrachtet

stelle Diese auf protokolliert
WattDennNu_02.PNG
WattDennNu_02.PNG (13.29 KiB) 3739 mal betrachtet
[


und packe in jedem „DANN“ den Programmnamen und DANN-Nr, schaue nach Reboot ins Sysprotokoll
WattDennNu_05.PNG
WattDennNu_05.PNG (3.17 KiB) 3739 mal betrachtet
und staune

ODER

man liest einmal den 1. Beitrag von BadenPower in diesem Fred
viewtopic.php?f=31&t=39187&p=386406&hil ... nd#p386406

dort schaut man in das 1. (erste) abgebildete Programm (nein, nicht das erste Bild) mit dem Programm-Namen "CCU-Rebooter" (ggf. mit Klick vergrößern) und in das "WENN" gugge :!:

Legt man jetzt die übliche Programmlogik zu Grunde, dann dürfte absolut "NIX" / "Nada" passieren und der gesamte Fred wäre für die Katz

DENN
im "WENN" steht ja nur was von "prüfen"

und somit das Programm düfte überhaupt nicht ausgeführt werden (wenn denn die These stimmt und beim Reboot nix ausgeführt wird).

Komischerweise startet eben genau dieses Programm "CCU-Rebooter" den gesamten weiteren Ablauf nach einem Reboot nach der im Fred angegebenen Reihenfolgen. :mrgreen:

Das im Programm "CCU-Rebooter" ebenfalls enthaltene "Sonst" wird ebenfalls nicht ausgeführt (oh Gott, dass ist ja fast wie https://www.youtube.com/watch?v=2haQJ-dfNFE )

uuuuups :shock:


..

Benutzeravatar
roe1974
Beiträge: 746
Registriert: 17.10.2017, 16:15
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wien
Hat sich bedankt: 52 Mal
Danksagung erhalten: 13 Mal

Re: Rollladen Steuerung

Beitrag von roe1974 » 06.08.2019, 21:11

und hier noch einmal ein beispiel von badenpower ganz frisch aus dem Fhem forum mit einer virtuellen taste:

https://forum.fhem.de/index.php/topic,1 ... #msg964859

lg richard

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

Re: Rollladen Steuerung

Beitrag von Xel66 » 06.08.2019, 23:47

nimmnenkeks hat geschrieben:
06.08.2019, 14:52
Legt man jetzt die übliche Programmlogik zu Grunde, dann dürfte absolut "NIX" / "Nada" passieren und der gesamte Fred wäre für die Katz
Eben nicht und wieder ein Beispiel von "nicht richtig gelesen". Das Programm enthält ein SONST und somit wird eine Bedingungsprüfung ausgeführt, und eine Prüfung der Bedingungen beim Systemstart im WENN ergibt in jedem Fall ein WAHR (siehe auch meine Ausführungen vom 03.08.2019, 17:34 ). Jetzt klar?

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

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

Re: Rollladen Steuerung

Beitrag von Black » 07.08.2019, 07:10

Die von Badenpower aufgeführte (im Partnerforum beschriebene) , von nimmnenkeks zitierte und auch von mir schon einige Male (u.a. ausführlich hier: viewtopic.php?f=26&t=49806&p=501728&hil ... ur#p499306) beschriebene Startfolge ist richtig.

Bei systemstart werden ALLE Programme, welche als .Active() gekennzeichnet sind, in der Reihe Folge ihres Vorkommens in ID_PROGRAMS zur Ausführung gebracht.

AUSFÜHRUNG heisst.
$scr$ referenziert null , klar gibt ja keinen Trigger
Dann wird das Programm brav wie bei einem Programmstart von oben bis unten durchgearbeitet solange bis eine conditions wahr ist. Diese Destination wird dann ausgeführt.
Gab es keine conditions mit ergebnis wahr wird sonst ausgeführt.

Dies ist das gleiche als wenn ich in einem script ausführe:
oprg .Active (false); oprg. Active (true);

Dies startet auch ein Programm, aber nicht blind die erste Destination wie oprg. ProgramExecute ().
Hierbei werden auch die Bedingungen geprüft.

Im Gegensatz dazu startet das bekannte ProgramExecute() bei einem Programm IMMER OHNE JEDE PRÜFUNG die erste Destination.

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

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

Re: Rollladen Steuerung

Beitrag von dtp » 07.08.2019, 09:39

Black hat geschrieben:
07.08.2019, 07:10
Die von Badenpower aufgeführte (im Partnerforum beschriebene) , von nimmnenkeks zitierte und auch von mir schon einige Male (u.a. ausführlich hier: viewtopic.php?f=26&t=49806&p=501728&hil ... ur#p499306) beschriebene Startfolge ist richtig.
Das wurde ja auch nicht bestritten, wenn ich die vorherigen Postings korrekt interpretiert habe.

Es dürfte aber auch unbestritten sein, dass ein SONST-Zweig eines Programms nach einem Neustart immer ausgeführt wird, wenn die Bedingungen für die vorherigen WENN- und SONST-WENN-Zweige nicht erfüllt waren. Und das gilt unabhängig davon, ob man nun mit der Reboot-SV oder mit dem Zeitmodul arbeitet. Jeder, der das tut, sollte daher in den entsprechenden Programmen auf SONST-Zweige verzichten, außer er will eine explizite Ausführung dieses SONST-Zweiges nach einem Neustart.

Oder habe ich da jetzt noch was Essentielles übersehen?
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.

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

Re: Rollladen Steuerung

Beitrag von Black » 07.08.2019, 09:56

@dtp, deine Aussage ist auch korekt.

wenn das Programm bei Neustart oder bei einem .Active (true); zur Abarbeitung gebracht wird, und dabei die Bedingungsprüfungen der Conditions in den Wenn und sonst wenn Teilen immer false ergebem, dann kommt natürlich am Ende der Sonst zweig zur Ausführung.

Dies ist ja einer der Lieblings Anfängerfehler bei tatafahrenden Rolladen bei neustart.

Es stand hier in diesem Threat aber auch eine Aussage (nicht von dir) im Raum, das bei einem Neustart nicht alle Programme gestartet würden. Diese Aussage ist so nicht korrekt. (siehe Zitate in meinem VorPost)

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

nimmnenkeks
Beiträge: 453
Registriert: 30.11.2016, 20:24
Hat sich bedankt: 43 Mal
Danksagung erhalten: 19 Mal

Re: Rollladen Steuerung

Beitrag von nimmnenkeks » 07.08.2019, 12:16

dtp hat geschrieben:
07.08.2019, 09:39
...
Es dürfte aber auch unbestritten sein, dass ein SONST-Zweig eines Programms nach einem Neustart immer ausgeführt wird, wenn die Bedingungen für die vorherigen WENN- und SONST-WENN-Zweige nicht erfüllt waren.
Stimmt auch nicht so ganz, denn um bei meinem Beispiel zu bleiben (viewtopic.php?f=31&t=39187&p=386406&hil ... nd#p386406, Programm "CCU-Rebooter" müsste im Systemprotokoll ein Eintrag "Else - CCU-Rebooter" nach dem Reboot vorhanden sein.
Das ist aber nicht der Fall, stattdessen steht im SYS-Protokoll "OK - CCU-Rebooter" (siehe Befehl Nr. 4 im "Dann".
Es wird das "Dann" mit all den enthaltenen Befehlen ausgeführt, sonnst könnte auch der gesamte Reboot-Prozess aus dem Fred NICHT stattfinden, denn die Virtuelle Taste 'VT11' würde nicht durch das Programm betätigt werden, wenn nur das "SONST" ausgeführt würde (klar soweit?)

dtp hat geschrieben:
07.08.2019, 09:39
...
Und das gilt unabhängig davon, ob man nun mit der Reboot-SV oder mit dem Zeitmodul arbeitet. Jeder, der das tut, sollte daher in den entsprechenden Programmen auf SONST-Zweige verzichten, außer er will eine explizite Ausführung dieses SONST-Zweiges nach einem Neustart.

Oder habe ich da jetzt noch was Essentielles übersehen?
IMHO etwas sehr "Essentielles", denn BadenPower hat sich ja was bei seinem ebenfalls in o.g. Fred erwähnten und beschriebenen Programmaufbau gedacht und er beschreibt die Vorgehens- und Wirkungsweise dieser so aufgebauten Programme direkt unter dem 4. Bild in seinem 1. Beitrag in dem Fred.
Das wird scheinbar gerne überlesen, doch wenn die :idea: aufgeht, dann ist ein solcher Programmaufbau auch für Anfänger eine Hilfestellung, denn es gibt nur EINEN Exec-Bereich mit den Auslösern.

Im "Sonst, wenn"
werden zu dem/n Auslöser(n) noch ggf. die Zusatzbedingungen geprüft, sofern diese im Programm benötigt werden.

Mann kan mit dieser (ich nenne es einmal die:) "BadenPower-Programmstruktur" auch das übliche "Sonst" entfallen lassen *, da man dieses in einem weiteren "Sonst, wenn" im Programm verarbeitet. Ein "Sonst" dient einzig zum Fehlereintrag (und dazu Fehlersuche im Programm) im SYS-Protokoll.


Hier ein Bsp aus seinem Fred.
Bild

Das erste "Wenn" wird während des CCU-Reboots immer ausgeführt und führt zu einem Eintrag im Systemprotokoll (im o.g. Bsp. SysVar "SYS-Protokoll -> protokolliert") mit Uhrzeit und wie im Programm bestimmten Eintrag "Header - ActSVB-Rollos-Öffnen-Wecken-Zeittriger".

OBWOHL

ein "SONST" im Programmbeispiel vorhanden ist, welches bei o.g. These einem zu einem Eintrag von Else - ActSVB-Rollos-Öffnen-Wecken-Zeittriger ins Systemprotokoll führen müsste (was jedoch nicht der Fall ist).

..

Antworten

Zurück zu „HomeMatic allgemein“