Die Logik von WebUI - Programmen

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

Moderator: Co-Administratoren

DrTob
Beiträge: 3426
Registriert: 29.10.2010, 08:24
Danksagung erhalten: 5 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von DrTob » 03.06.2016, 10:55

Du hast doch immer noch das "sonst aus" das schaltet den Aktor aus. Das passiert (selbstverständlich) auch wenn die Einschaltdauer noch läuft.

LenzK
Beiträge: 59
Registriert: 21.11.2015, 13:53
Hat sich bedankt: 1 Mal

Verstehe CUU-Logik nicht ganz

Beitrag von LenzK » 13.06.2016, 11:06

Halli Hallo,

Ich programmiere nun schon eine ganze Weile mit meiner CCU2 rum, aber einige Dinge habe ich noch nicht ganz begriffen.
Wie arbeitet die CCU die Programme ab?
Das ist das was ich glaube zu wissen:

Bei einem Programmaufruf werden immer von oben nach unten alle Wenn-Bedingungen überprüft und wenn etwas zutreffend ist der "dann-Bereich" ausgeführt.

Dazu die Frage:
Verbleibt die CCU dann solange in diesem "dann-Bereich" bis alles abgearbeitet ist? Kann es also sein, dass sie wegen irgendwelchen Schleifen sehr lange in einem Skript verweilt? Oder arbeitet die CCU parallel mehrere Programme ab?


Ich habe mal (hier im Forum irgendwo) gelesen, dass es besser ist mehrere einzelne Programme mit jeweils nur einer Wenn-Bedingung zu erstellen, als dass man mehrere Wenn-Bedingungen in einem Programm unterbringt?

Dazu die Frage:
Stimmt das? Und was hat das konkret für einen Vorteil? Für die Übersicht wäre es schöner wenn ich Programme mit vielen Wenn-Bedinungen hätte.


Vielen Dank an alle Gurus :mrgreen:

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Verstehe CUU-Logik nicht ganz

Beitrag von alchy » 13.06.2016, 11:11

>> H I E R << sollte doch vieles davon erklärt sein.

Und gleich mal hergeschoben

Alchy
Zuletzt geändert von alchy am 13.06.2016, 11:16, insgesamt 1-mal geändert.
Grund: Thema verschoben

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Benutzeravatar
Sammy
Beiträge: 9172
Registriert: 09.09.2008, 20:47
Hat sich bedankt: 15 Mal
Danksagung erhalten: 174 Mal

Re: Verstehe CUU-Logik nicht ganz

Beitrag von Sammy » 13.06.2016, 15:28

LenzK hat geschrieben:Verbleibt die CCU dann solange in diesem "dann-Bereich" bis alles abgearbeitet ist? Kann es also sein, dass sie wegen irgendwelchen Schleifen sehr lange in einem Skript verweilt? Oder arbeitet die CCU parallel mehrere Programme ab?
Ja, meines Wissens hängt die CCU so lange in dem Programm fest, bis alles abgearbeitet wurde. Deshalb sollte man da auch keine langen Schleifen oder Warte-Zyklen in Skripte einbauen, sondern lieber einen Stufen-Zähler setzen und dessen Änderung in einem weiteren Programm ggfs. verzögert die nächste Aktion (mit nächster Stufe) aufrufen.
LenzK hat geschrieben: Stimmt das? (besser mehrere kleine Programme) Und was hat das konkret für einen Vorteil? Für die Übersicht wäre es schöner wenn ich Programme mit vielen Wenn-Bedinungen hätte.
Ja, mehrere kleine Programme sind performanter als ein großes. Außerdem reduzieren sich oft viele Abfragen, die man einbauen müsste, wenn man ein sehr großes Programm mit vielen unabhängigen Auslösern hat.

Gruß Sammy
Links: CCU-Logik, Tipps für Anfänger, WebUI-Doku, Expertenparameter, virtuelle Aktorkanäle
Inventur vom 22.01.14: 516 Kanäle in 165 Geräten, 132 Programme, 270 Direkte Verknüpfungen
Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!

LenzK
Beiträge: 59
Registriert: 21.11.2015, 13:53
Hat sich bedankt: 1 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von LenzK » 13.06.2016, 22:09

Da bleibt mir nur eins zu sagen: Dankeschön! :)

b2k07
Beiträge: 3
Registriert: 08.01.2017, 18:30

Re: Die Logik von WebUI - Programmen

Beitrag von b2k07 » 08.01.2017, 18:48

Moin zusammen.
Nachdem ich mich hier eine ganze Weile eingelesen habe, habe ich mir jetzt zu Testzwecken eine RaspberryPi3 mit der RaspberryMatic zugelegt. Außerdem einen
HM-LC-Sw1PBU-FM um eine einfache Ausschaltung anzusteuern. Die grundsätzliche Funktion ist gegeben, sprich, ich kann über das WebUI die Lampe ein- bzw. ausschalten. Zwecks Anwesenheitssimulation habe ich mir hier im Forum ein paar Skripte zusammengesucht, die z.B. einen Zufallsmodus simulieren. Funktioniert prima.

Ich habe im WebUI ein Programm zusammengebaut, das folgendes machen soll:
WENN
der "Zufallswert" einen gewissen Wert erreicht
UND
gewisse Zeitfenster vorliegen (grob Dämmerung morgens und abends)
UND
ein virtueller Schalter (den ich zunächst manuell betätige) eine Systemvariable auf Abwesend geschaltet hat
DANN
soll das Licht angehen.

Das passiert auch alles hervorragend! Danke an alle, bei deren Skripte ich mich bedienen durfte ;-)

Jetzt mein Problem:
Wenn ich zu einer der "Dämmerungszeiten" in entsprechendem Zimmer bin, mein virtueller Schalter die Systemvariable auf Anwesend gesetzt hat, geht das Licht aus, wenn es unter meinen "Zufallswert" fällt. Es wäre natürlich wünschenswert, dass ich dann nicht immer manuell das Licht wieder einschalten muss, sondern sobald die Systemvariable Anwesend anzeigt, soll die komplette Anwesenheitssimulation unberücksichtigt bleiben.

Anbei der Screenshot von meinem Programm.
Der Fehler scheint mir irgendwo in der SONST-Definition zu liegen, ich komme hier aber irgendwie nicht weiter. Die Programmlogik verwirrt mich doch ein wenig. Und JA, ich habe die Ratschläge zur WebUI-Logik von Programmen gelesen, scheine hier aber vll. ein Brett vorm Kopf zu haben.
Über gute Ratschläge würde ich mich sehr freuen!
Gruß, Jacques
Dateianhänge
Screenshot.jpg

DrTob
Beiträge: 3426
Registriert: 29.10.2010, 08:24
Danksagung erhalten: 5 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von DrTob » 08.01.2017, 19:23

du willst, dass das alles nur bei "nicht anwesend" passiert, also muss das auch ins sonst (dann sonst wenn)

-->

sonst wenn
nicht anwesend
DANN (licht = aus).


nachteil:
Wenn das Licht von der Automatik angeschaltet wird während du nicht anwesend bist und dann nach hause kommst geht es nicht mehr von alleine aus. (weil du dann ja anwesend bist) (-> könnte man auch noch korrigieren, wenn nötig)

b2k07
Beiträge: 3
Registriert: 08.01.2017, 18:30

Re: Die Logik von WebUI - Programmen

Beitrag von b2k07 » 08.01.2017, 19:35

Vielen Dank DrTob für die schnelle Antwort.
Habs grade mal modifiziert. Werd mir das jetzt mal ne Weile anschauen. Aber wie schon zuvor gesagt, so ganz logisch erscheint mir das nicht. Aber das ist ja zum Glück nicht euer Maßstab ;-) Werde mich aber wohl oder übel weiter eindenken müssen, wenn ich mein Testsystem hier über die Probephase hinaus bringe. Ist quasi open Beta :D
Melde mich, wenns getestet ist.
Gruß, Jacques

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: Die Logik von WebUI - Programmen

Beitrag von manfredh » 09.01.2017, 09:17

b2k07 hat geschrieben:... so ganz logisch erscheint mir das nicht.
Folgt aber genau der Logik der WebUi-Programme, wenn man den zweistufigen Programmablauf kapiert hat:

1. Anstoßen des Programmes. Hier: Systemzustand random_tp ändert sich (unterschreitet den definierten Wert)
2. Abarbeiten des gesamten Programmes und Ausführen des Zweiges, wenn eine Bedingung wahr ist.
Hier:
- das unbedingte Sonst schaltet das Licht aus
oder
- das bedingte Sonst (Sonst Wenn) schaltet das Licht aus, wenn abwesend.

Es dauert ne Weile, bis man's intus hat, aber irgendwann ist das ganz logisch. Du ahnst gar nicht, was ich bei der kürzlichen Umstellung von CCU1 auf CCU2 in alten Programmen entrümpeln konnte...
Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.

b2k07
Beiträge: 3
Registriert: 08.01.2017, 18:30

Re: Die Logik von WebUI - Programmen

Beitrag von b2k07 » 09.01.2017, 18:36

Hallo manfredh,
danke auch für deine Unterstützung.

Vielleicht habe ich auch etwas falsches vor Augen, das ich erreichen will. Muss mir die Logik der Programmabläufe nochmal zu Gemüte führen.

Bisher scheint es aber gut zu laufen mit dem Hinweis von DrTob. Die Tatsache, dass mal das Licht anbleiben kann, wenn man nach Hause kommt, kann ich verschmerzen. Noch ist es ja nur ein Licht. ;-)

Ich betrachte mein Anliegen daher als erledigt an!
DANKE!
Gruß, Jacques

Antworten

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