Programm schaltet variable nicht

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Antworten
Chevi
Beiträge: 37
Registriert: 19.09.2018, 19:41
Hat sich bedankt: 5 Mal

Programm schaltet variable nicht

Beitrag von Chevi » 19.09.2020, 18:48

Hallo Leute,

Ich verstehe es einfach nicht:
Warum schaltet die VAR nicht?
99EB7AAA-67AE-4E2F-BB41-25A12AE28621.jpeg
70821586-C49D-45E9-9269-021C9E941F64.jpeg
Bin ich zu doof, oder spackt da die CCU ?

Lg
steffen
Zuletzt geändert von Chevi am 19.09.2020, 19:49, insgesamt 2-mal geändert.

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

Re: Programm schaltet variable nicht

Beitrag von Xel66 » 19.09.2020, 18:55

Vermutlich weil die Elevation nicht mehr größer als 20° war, als die Systemvariable "Sonne" ihren Status gewechselt hat. An meinem Standort war zu diesem Zeitpunkt die Elevation etwas größer als 8°. Und wenn man vom groben Daumenwert 12° pro Stunde (je nach Jahreszeit) ausgeht, dürfte es knapp mit den 20° werden.

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

Chevi
Beiträge: 37
Registriert: 19.09.2018, 19:41
Hat sich bedankt: 5 Mal

Re: Programm schaltet variable nicht

Beitrag von Chevi » 19.09.2020, 19:00

Hmm,
Ok, daaaas könnte natürlich sein...

Dann probiere ich das verUNDen und verODERen mal neu zu verknuddeln, und probiere...

Danke für den Denkanstoß!

Chevi
Beiträge: 37
Registriert: 19.09.2018, 19:41
Hat sich bedankt: 5 Mal

Re: Programm schaltet variable nicht

Beitrag von Chevi » 19.09.2020, 19:11

Ja, neee.....

Sollte doch trotzdem gehen!?

3 Bedingungen
wenn alle 3 wahr
dann VAR Süd auf wahr
Ansonsten (irgendeine Bedingung falsch)
Dann VAR Süd auf falsch

Es sind NICHT alle 3 Bedingungen wahr
Also sollte doch VAR Süd auf falsch schalten - steht aber auf wahr.
:|
113A3430-763F-4EE8-A5CD-4C9371BC26CC.jpeg

MichaelN
Beiträge: 9806
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 711 Mal
Danksagung erhalten: 1656 Mal

Re: Programm schaltet variable nicht

Beitrag von MichaelN » 19.09.2020, 19:53

Zum einen muss das Programm ausgelöst werden und "bei Änderung" ist auch eine Bedingung die erfüllt werden muss.
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 +++

Chevi
Beiträge: 37
Registriert: 19.09.2018, 19:41
Hat sich bedankt: 5 Mal

Re: Programm schaltet variable nicht

Beitrag von Chevi » 19.09.2020, 20:25

MichaelN hat geschrieben:
19.09.2020, 19:53
Zum einen muss das Programm ausgelöst werden und "bei Änderung" ist auch eine Bedingung die erfüllt werden muss.

Also entweder steh ich auf dem Schlauch, oder ihr missversteht mich....

Mein Verständnis:

WENN eine der 3 Bedingungen sich ändert —> DANN Programm auslösen
|—- WENN alle 3 Bedingungen = WAHR —> DANN Systemvariable = WAHR
|—- WENN NICHT alle 3 Bedingungen = WAHR —> DANN Systemvariable = FALSCH

Es waren im Screenshot nur 2 von 3 Bedingungen wahr, somit sollte doch die Systemvariable auf Falsch springen.

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

Re: Programm schaltet variable nicht

Beitrag von Xel66 » 19.09.2020, 22:02

Die Bedingungsprüfung des Programms muss durch einen der Trigger angestoßen werden. Ändert sich keiner der Trigger über den hinterlegten Schwellwert, passiert auch nichts. Manuelles Starten des Programms führt immer das erste DANN ohne Prüfung der Bedingungen aus. Steht auch so im WebUI-Handbuch und in den Einsteigertipps.

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

Chevi
Beiträge: 37
Registriert: 19.09.2018, 19:41
Hat sich bedankt: 5 Mal

Re: Programm schaltet variable nicht

Beitrag von Chevi » 20.09.2020, 09:14

Ahhh, ok.
Das „manuelle starten dann erstes Wenn“ hatte ich nicht auf dem Schirm.
Beim Speichern wird ja m.W. Manuell gestartet!?
Somit würde sich das Verhalten erklären.

Es könnte so schön sein wenn die Logik einfach logisch wäre... wie es bei 100 anderen Programmiersprachen auch ist. Warum nur weicht man bei einer Scriptsprache nur von allen bekannten Regeln ab.... ich versteh‘s einfach nicht.

Danke für die Denkanstöße!

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

Re: Programm schaltet variable nicht

Beitrag von Xel66 » 20.09.2020, 09:36

Chevi hat geschrieben:
20.09.2020, 09:14
Warum nur weicht man bei einer Scriptsprache nur von allen bekannten Regeln ab.... ich versteh‘s einfach nicht.
Weil das was Du dort angelegt hast ein Programm logischer Verknüpfungen und kein Script ist und darum verhält es sich anders als ein Script. Und letztendlich ist es der Art und Weise geschuldet, wie die CCU Programme abarbeitet. Die Bedingungsprüfung wird durch einen der angelegten Trigger gestartet und dann eben von oben nach unten abgearbeitet. Die manuelle Ausführung ist nur eine Krücke, die man vermutlich zusätzlich angebaut hat, um die Aktionen zu prüfen. Konsequent wäre gewesen, dort auch das DANN auswählen zu können oder eben eine richtige Bedingungsprüfung zu machen.

Eigentlich ist diese Funktion überflüssig. Es gibt aber Anwender, die Programme aus Scripten heraus aufrufen. Dort läuft es aber nach der gleichen Maßgabe. Es wird nur das erste DANN ausgeführt. Da es sich bei der Logik um eine zugekaufte Funktionalität handelt, ist eq-3 daran wohl unschuldig. Alternativ legt man in dem Programm als zusätzlichen verODERten Trigger eine virtuelle Taste an, dann werden auch die Bedingungen geprüft. Das kann man auch in einem SONST WENN machen. Ein SONST funktioniert aber dann nicht, da die Bedingungsprüfung der Taste ein WAHR ergibt und das zugehörige DANN ausgeführt würde. Legt man dort die gleichen Bedingungen wie im SONST an, hat man so auch eine funktionierende Konstellation. Alles in Allem aber zu viel Aufwand für einen überschaubaren Zweck. Besser wäre es, wenn es sich erwartungsgemäß verhielte (Prüfung der Bedingungen).

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

Antworten

Zurück zu „HomeMatic allgemein“