Die Logik von WebUI - Programmen

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

Moderator: Co-Administratoren

mittelhessen
Beiträge: 240
Registriert: 24.07.2015, 21:39
Danksagung erhalten: 4 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von mittelhessen » 08.06.2021, 11:17

Baxxy hat geschrieben:
08.06.2021, 09:57
Es ist doch garantiert immer einer der 3 Modi aktiv, somit kommt es niemals zum SONST.
MichaelN hat geschrieben:
08.06.2021, 10:08
Weder das eine noch das andere Programm wird wie gewünscht funktionieren.
Programm 1 funktioniert, wie gewünscht.
MichaelN hat geschrieben:
08.06.2021, 10:08
Bei Programm 1 wirst Du inaktiv beobachten, wenn 2 Geräte unterschiedliche Modi haben. Das ist aber auch nicht das, was Du willst.
Doch, das ist genau das was ich möchte. Das hatte ich leider nicht klar genug beschrieben. Ich möchte, dass die jeweilige Systemvariable immer genau dann aktiv ist, wenn alle Heizkörper eines Geschosses diesen Status haben. Sobald nur ein Heizkörper einen anderen Status hat, soll die Systemvariable inaktiv sein.
MichaelN hat geschrieben:
08.06.2021, 10:08
Zunächst mal würde ich statt mit 3 verschiedenen SV mit 1 SV Typ Werteliste arbeiten.
Sehr gute Idee, alleine aus Gründen der Einsparung von Systemvariablen und der Übersicht. Ich versuche das mal so umzusetzen und schaue danach mal, ob ich auf das gewünschte Ergebnis komme.
MichaelN hat geschrieben:
08.06.2021, 10:08
Wobei Du dir immer noch überlegen musst, wie Du damit umgehst, wenn im EG der eine HK auf Auto und der andere auf Manu steht.
Da würde ich in der Werteliste noch den Wert "unterschiedlich" hinzufügen!

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

Re: Die Logik von WebUI - Programmen

Beitrag von Baxxy » 08.06.2021, 11:30

mittelhessen hat geschrieben:
08.06.2021, 11:17
Programm 1 funktioniert, wie gewünscht.
Meine Antwort bezog sich nur auf Programm 2 welches nicht wie von dir gewünscht funktioniert. Warum hatte ich ja geschrieben.

Grüße
Baxxy

mittelhessen
Beiträge: 240
Registriert: 24.07.2015, 21:39
Danksagung erhalten: 4 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von mittelhessen » 09.06.2021, 17:04

MichaelN hat geschrieben:
08.06.2021, 10:08
Zunächst mal würde ich statt mit 3 verschiedenen SV mit 1 SV Typ Werteliste arbeiten. Damit ist dann schon mal ausgeschlossen, das ungültige Kombinationen aus aktiv/inaktiv gesetzt werden.
Wie im vorherigen Beitrag angekündigt, habe ich das so umgesetzt und nun funktioniert es genau, wie es soll.

Matsch
Beiträge: 5423
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 114 Mal
Danksagung erhalten: 733 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von Matsch » 09.06.2021, 17:21

Hier wurden Sie geholfen ! :mrgreen:

jonabi
Beiträge: 6
Registriert: 11.10.2020, 13:38
System: CCU
Hat sich bedankt: 2 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von jonabi » 19.06.2021, 12:54

Hallo zusammen,
ich habe etwa seit einem 3/4 Jahr eine CCU3 und Rolladenaktoren, Heizungsaktoren, Rauchmeldern, einem Raumthermostat, einem Temperatursensor aussen und einem Lichtsensor aussen. Bislang hab ich nur ganz einfache Programme verwendet und bin soweit ganz gut klar gekommen. Jetzt wollte ich etwas anspruchsvolleres machen und habe mich an eine Abschattungslogik getraut. Die hat aber nie so ganz das gemacht, was ich haben wollte. Nach wirklich mehrfachem "Studium" dieses Threads meine ich, es jetzt zumindest ein bisschen verstanden zu haben. Ich will mich aber noch absichern, da ich einfach noch unsicher bin und sicher sein möchte, dass es nicht nur durch Zufall so funktioniert, wie ich möchte sondern weil ich es bewusst so gemacht habe. Nachdem nämlich an mehreren Tagen die Rollläden nachts oder früh morgens unbeabsichtigt hochgefahren sind, ist die Toleranzschwelle der Familiy inzwischen ein wenig gesunken.... . :lol:

Also, was ich erreichen möchte ist folgendes: An der Ostseite sollen die Rollläden morgens/vormittags zur Abschattung auf einen bestimmten Wert herunterfahren. Und zwar nur dann, wenn der Sonnenwinkel so ist, dass die Fenster auch beschienen werden, die Sonne auch wirklich scheint und es warm genug ist. Dazu bitte soll das "Herunterfahren" auch nur innerhalb eines bestimmten Zeitfensters geschehen, das sich am Wochenende von Werktagen unterscheidet. Wenn die Auslösetemperatur morgens zu niedrig ist oder die Sonne nicht scheint oder der Winkel nicht passt sollen die Rollläden hochgefahren sein. Nachts jedoch sollen sie unten sein, dafür habe ich aber zwei eigene Programme, die das herunterfahren auch zuverlässig lösen (die fahren nur herunter, haben also keine "SONST" Bedingung oder - Aktivität).

Was ich meine verstanden zu haben, ist:
Der "WENN" Bereich lässt sich in verschiedene Blöcke aufteilen. Innerhalb eines Blockes darf man nicht mehrere "Auslösen bei Aktualisierung" oder "Auslösung bei Änderung" oder "Auslösung zu Zeitpunkten" mischen, auch wenn diese von verschiedenen Sensoren stammen. Stattdessen muss man das in unterschiedliche Blöcke aufteilen. Lieg ich da jetzt richtig?

Das bedeutet, mein Programm muss also wie folgt aussehen:(die Systemvariable sonne_azimut habe ich aus dem Thread Rollladensteuerung 2.0 . Danke an dieser Stelle dafür ;-) )
screenshot1.JPG
und nicht so:
screenshot2.JPG
Hab ich das jetzt endlich richtig verstanden?
Wenn das allso so funktioniert, kommt die nächste Stufe dran und ich will das ACCU-Wetter - Skript mit verwenden. Aber dazu muss erstmal diese "einfachere" Steuerung zuverlässig funktionieren.... . :roll:
Viele Grüße,
Joachim

Tausend tolle Sachen, die gibt es überall zu seh'n, manchmal muss man fragen, um sie zu versteh'n!
- aus: Sesamstraße -

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

Re: Die Logik von WebUI - Programmen

Beitrag von Roland M. » 19.06.2021, 13:22

Hallo und willkommen im Forum!
jonabi hat geschrieben:
19.06.2021, 12:54
Was ich meine verstanden zu haben, ist:
Der "WENN" Bereich lässt sich in verschiedene Blöcke aufteilen. Innerhalb eines Blockes darf man nicht mehrere "Auslösen bei Aktualisierung" oder "Auslösung bei Änderung" oder "Auslösung zu Zeitpunkten" mischen, auch wenn diese von verschiedenen Sensoren stammen. Stattdessen muss man das in unterschiedliche Blöcke aufteilen. Lieg ich da jetzt richtig?
Woher hast du diese Information?!
Die ist natürlich falsch!
und nicht so:
screenshot2.JPG
Diese Version funktioniert natürlich genau so.

Wenn sich nicht ein Logikfehler eingeschlichen hätte! ;)

Beide Zeitmodule sind verUNDet, dass heißt, die Bedingung wird nur wahr, wenn beide Teile wahr sind. "Wochentags" und " Am Wochenende" gleichzeitig? ;)

Richtiger wäre:
WENN Zeitmodul[07:-15:00 Wochentags]
ODER Zeitmodul[09:00-14:00 am Wochenende]
UND Temperatur...
UND Helligkeit...
UND...
UND...


Roland


Hab ich das jetzt endlich richtig verstanden?
Wenn das allso so funktioniert, kommt die nächste Stufe dran und ich will das ACCU-Wetter - Skript mit verwenden. Aber dazu muss erstmal diese "einfachere" Steuerung zuverlässig funktionieren.... . :roll:
[/quote]
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,...

MichaelN
Beiträge: 9649
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1617 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von MichaelN » 19.06.2021, 13:36

Dein "Trugschluss" kommt vermutlich daher, daß Du vereinzelte Ratschläge zu stark verallgemeinert hast. Du kannst Trigger noch und nöcher mischen - du musst nur verstehen was passiert. Daher ist es einfacher möglichst einfache Bedingungen zu gestalten und ggf ein extra Programm zu verwenden.

Vielleicht findest du in der Rollosteuerung in meiner Signatur ja Anregungen.
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: 14148
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 583 Mal
Danksagung erhalten: 1497 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von Xel66 » 19.06.2021, 13:42

jonabi hat geschrieben:
19.06.2021, 12:54
Nachdem nämlich an mehreren Tagen die Rollläden nachts oder früh morgens unbeabsichtigt hochgefahren sind, ist die Toleranzschwelle der Familiy inzwischen ein wenig gesunken.... . :lol:
Das passiert, weil Du es im SONST so programmiert hast. Immer wenn Deine Bedingungen nicht zutreffen und irgendeiner der Trigger seinen Status in irgendeiner Weise geändert hat, wird eine Bedingungsprüfung durchgeführt. Trifft keine der im WENN oder SONST WENN angelegten Bedingungen zu, wird das SONST ausgeführt. Ein SONST kann man nur nutzen, wenn es wirklich nur zwei Zustände gäbe und nur ein Programm auf die Aktoren zugreift. Sowie noch ein weiteres Programm eine abweichende Stellung auf Basis abweichender Trigger einstellt, kann das mit einem SONST nie sauber funktionieren.
jonabi hat geschrieben:
19.06.2021, 12:54
Was ich meine verstanden zu haben, ist:
Da scheint es noch einige Verständnislücken zu geben. Das WebUI-Handbuch gibt zur Logik recht nützliche Hinweise, wie die CCU arbeitet (und das unterscheidet sich etwas von der menschlichen Logik - siehe verUNDete Zeitmodule). Für den Anfang würde ich verschiedene Aktionen in separate Programme aufteilen. Das sorgt auf alle Fälle erst mal für Erfolgserlebniss.
jonabi hat geschrieben:
19.06.2021, 12:54
Wenn das allso so funktioniert, kommt die nächste Stufe dran und ich will das ACCU-Wetter - Skript mit verwenden. Aber dazu muss erstmal diese "einfachere" Steuerung zuverlässig funktionieren.... . :roll:
Kleiner Tip. Solange Du noch mit simpler Logik harderst, solltes Du noch etwas Abstand von Scripten halten. Gerade mit dann zyklisch aktualisierten Status kann man sich vorzüglich ins Knie schießen.

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

jonabi
Beiträge: 6
Registriert: 11.10.2020, 13:38
System: CCU
Hat sich bedankt: 2 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von jonabi » 19.06.2021, 15:35

Dann sag ich jetzt mal "DANKE" an all die Antwortenden :-)
Da scheint es noch einige Verständnislücken zu geben. Das WebUI-Handbuch gibt zur Logik recht nützliche Hinweise, wie die CCU arbeitet (und das unterscheidet sich etwas von der menschlichen Logik - siehe verUNDete Zeitmodule). Für den Anfang würde ich verschiedene Aktionen in separate Programme aufteilen. Das sorgt auf alle Fälle erst mal für Erfolgserlebniss.
Ja, das hab ich ja bisher so gemacht... Ich dachte ich wäre schon reif für den nächsten Schritt..... :roll: Das Script selber schreiben wollte ich definitiv nicht. Aber ich hätte damit experemetiert, dass mir das Scrip Systemvariablen erzeugt und dann mit denen gearbeitet. Mühsam ernährt sich das Eichhörnchen.... . Aber es wird auch satt!!! Ich denke mein zentraler Fehler liegt tatsächlich hier:
Ein SONST kann man nur nutzen, wenn es wirklich nur zwei Zustände gäbe und nur ein Programm auf die Aktoren zugreift. Sowie noch ein weiteres Programm eine abweichende Stellung auf Basis abweichender Trigger einstellt, kann das mit einem SONST nie sauber funktionieren.
Das mit dem "Verunden" der Zeitmodule war jetzt ein Copy Fehler. Das das nicht funktionieren kann, ist sogar mir klar! :D

Also Danke nochmal.

Viele Grüße
Joachim
Viele Grüße,
Joachim

Tausend tolle Sachen, die gibt es überall zu seh'n, manchmal muss man fragen, um sie zu versteh'n!
- aus: Sesamstraße -

Norfolk
Beiträge: 85
Registriert: 27.12.2014, 20:20
Hat sich bedankt: 8 Mal
Danksagung erhalten: 2 Mal

Re: Die Logik von WebUI - Programmen

Beitrag von Norfolk » 07.08.2021, 20:05

Hallo,

bitte um eine kurze Klarstellung:

"bei Aktualisierung auslösen"

a) Muss die zugehörige Bedingung erfüllt sein, um bei Aktualisierung das Programm zu triggern?
oder
b) Triggert die Aktualisierung das Programm auch dann, wenn die zugehörige Bedingung _nicht_ erfüllt ist?

Ich finde zu dem Thema leider für mich widersprüchliche Quellen.
Für Punkt (b) spricht für mich z.B. das WebUI-Handbuch 7.0, wo bzgl. "bei Aktualisierung auslösen" auf die Aktualisierung des Sensorwertes/Aktuators bezogen wird, somit müsste die Bedingung egal sein.
Für Punkt (a) wiederum finde ich Webseiten wie z.B. "Die Logik von WebUI-Programmen" und ähnliches, denen zur Folge auch bei Aktualisierung die zugehörige Bedingung erfüllt sein muss. Vielleicht interpretiere ich es auch nur falsch, will hier niemanden zu nahe treten ;-)

LG,
Norfolk

Antworten

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