2 Programme greifen ineinander - Variablen - Warum startet das Programm? Entgeht meiner Logik!

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

bruce700
Beiträge: 40
Registriert: 18.11.2020, 01:28
System: CCU

2 Programme greifen ineinander - Variablen - Warum startet das Programm? Entgeht meiner Logik!

Beitrag von bruce700 » 03.10.2021, 14:24

Halo zusammen,

habe hier folgendes Problem. Ein Programm wird manuell eingeschaltet und setzt eine Variable auf "Ein". Das zweite Programm soll prüfen ob es starten darf. Dies darf es nur wenn gewisse Bedingungen erfüllt sind und die Variable auf "Aus" steht. Eine der Bedingungen ist die PV Leistung. Bei jeder Aktualisierung der Variable PV Leistung startet das Programm, obwohl die Variable vom anderen Programm auf "Ein" gesetzt wurde und nichts starten darf... :( Bin hier etwas am verzweifeln.

Die beiden Programme befinden sich im Anhang.

Hat vielleicht einer von euch eine Idee wieso da passiert. Es soll ja so sein, dass das Programm "PV Esszimmer" völlig automatisch läuft und wenn die Wohnzimmer Temperatur unter 21°c liegt, die momentane PV Leistung zwischen 3800 - 1200w liegt, sowie die Uhrzeit erfüllt ist und die Variablen auf "Aus" stehen, nur dann das Programm anlaufen darf.

Momentan passiert jedoch folgendes...

Sofern ich den kurzen Tastendruck BidCoS-RF:14 auslöse, startet die Esszimmerheizung kurz und bleibt bis zur nächsten Änderung der PV Leistung an (auch wenn die Änderung nicht im definierten Bereich liegt, sondern weit darunter). Und obwohl die Variable "Heizung Boost 3h" auf "Ein" steht, schaltet das zweite Programm (PV Esszimmer) die Esszimmerheizung aus.

Warum führt sich dieses Programm "PV Esszimmer" überhaupt bei einer Leistungsänderung aus, wenn die Variable "Heizung Boost 3h" es doch verhindern sollte??


Wäre euch für eine Idee sehr dankbar!
Dateianhänge
ess.jpg

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

Re: 2 Programme greifen ineinander - Variablen - Warum startet das Programm? Entgeht meiner Logik!

Beitrag von Baxxy » 03.10.2021, 14:41

bruce700 hat geschrieben:
03.10.2021, 14:24
Warum führt sich dieses Programm "PV Esszimmer" überhaupt bei einer Leistungsänderung aus, wenn die Variable "Heizung Boost 3h" es doch verhindern sollte??
Das Programm wird durch die Aktualisierung der SysVar "Solarleistung" jedesmal getriggert. Die Prüfung läuft dann von oben nach unten und da deine Solarleistung...
bruce700 hat geschrieben:
03.10.2021, 14:24
nicht im definierten Bereich liegt, sondern weit darunter
... ergibt der Bedingungsblock falsch und das SONST wird ausgelöst.

Grüße, Baxxy

MichaelN
Beiträge: 9679
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: 2 Programme greifen ineinander - Variablen - Warum startet das Programm? Entgeht meiner Logik!

Beitrag von MichaelN » 03.10.2021, 14:47

Dann wird das wohl durch ein anderes Programm ausgelöst. Oder das Programm ist kaputt editiert.

Tipps zum debugging siehe Signatur.
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 +++

bruce700
Beiträge: 40
Registriert: 18.11.2020, 01:28
System: CCU

Re: 2 Programme greifen ineinander - Variablen - Warum startet das Programm? Entgeht meiner Logik!

Beitrag von bruce700 » 03.10.2021, 15:07

Hmm soo, soo...

welche Lösung gäbe es denn da? Was müsste ich ändern?

MichaelN
Beiträge: 9679
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: 2 Programme greifen ineinander - Variablen - Warum startet das Programm? Entgeht meiner Logik!

Beitrag von MichaelN » 03.10.2021, 15:24

Kein bedingungsloses sonst verwenden.Entweder extra Programm oder mindestens sonst wenn mit allen nötigen Bedingungen.
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 +++

bruce700
Beiträge: 40
Registriert: 18.11.2020, 01:28
System: CCU

Re: 2 Programme greifen ineinander - Variablen - Warum startet das Programm? Entgeht meiner Logik!

Beitrag von bruce700 » 03.10.2021, 17:03

Also meinst du bei "Sonst..."

nicht nur

"Heizung.Esszimmer" "Sofort" Schaltzzustand Aus",

sondern noch oberen Bedingungen noch einmal abfragen?

bruce700
Beiträge: 40
Registriert: 18.11.2020, 01:28
System: CCU

Re: 2 Programme greifen ineinander - Variablen - Warum startet das Programm? Entgeht meiner Logik!

Beitrag von bruce700 » 03.10.2021, 17:10

Baxxy hat geschrieben:
03.10.2021, 14:41
bruce700 hat geschrieben:
03.10.2021, 14:24
Warum führt sich dieses Programm "PV Esszimmer" überhaupt bei einer Leistungsänderung aus, wenn die Variable "Heizung Boost 3h" es doch verhindern sollte??
Das Programm wird durch die Aktualisierung der SysVar "Solarleistung" jedesmal getriggert. Die Prüfung läuft dann von oben nach unten und da deine Solarleistung...
bruce700 hat geschrieben:
03.10.2021, 14:24
nicht im definierten Bereich liegt, sondern weit darunter
... ergibt der Bedingungsblock falsch und das SONST wird ausgelöst.

Grüße, Baxxy
Hi Baxxy,
aber weshalb wird dann trotz Variable "Ein" das Programm ausgeführt. Dürfte doch nicht anlaufen wenn nicht alle Bedingungen erfüllt sind?

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

Re: 2 Programme greifen ineinander - Variablen - Warum startet das Programm? Entgeht meiner Logik!

Beitrag von Baxxy » 03.10.2021, 17:34

bruce700 hat geschrieben:
03.10.2021, 17:10
aber weshalb wird dann trotz Variable "Ein" das Programm ausgeführt.
Das ist die CCU-Logik. :wink:
Du musst zwischen Triggern und Ausführen unterscheiden.
Alles in deinem Programm was nicht "nur prüfen" ist kann dein Programm triggern. Dabei ist es total egal wo der Trigger steht.
Dann beginnt die Bedingungsprüfung von oben nach unten.

Beispiel:
SysVar "Solarleistung" triggert mit Wert < 3800W
Die Bedingungsprüfung rennt von oben los.
Temp < 21° (vermutlich) --> WAHR
Solarleistung im Bereich 3800 - 12000 --> FALSCH
Zeitraum (vermutlich) --> WAHR
Boiler Boost AUS (vermutlich) --> WAHR
Heizung Boost AUS (vermutlich) --> WAHR

ergibt: (durch die verUNDung) --> FALSCH

Programm rennt ins SONST

Grüße, Baxxy

bruce700
Beiträge: 40
Registriert: 18.11.2020, 01:28
System: CCU

Re: 2 Programme greifen ineinander - Variablen - Warum startet das Programm? Entgeht meiner Logik!

Beitrag von bruce700 » 03.10.2021, 18:10

Danke für die Erklärung :lol:, war mir bislang so nicht bewusst!

Dann lässt sich die Sache so einfach nicht lösen, denke ich ^^, denn an sich kann ich ja die Variablen, Zeit und Innentemperatur "nur prüfen" lassen. DIE PV Leistung kann ich jedoch nicht "prüfen" lassen, da ja die Heizung mit jeder Wolke abschalten soll. Dann wiederum wird die nächste Leistungsänderung wieder das Programm auslösen und ins "sonst" springen.... :roll:

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

Re: 2 Programme greifen ineinander - Variablen - Warum startet das Programm? Entgeht meiner Logik!

Beitrag von Baxxy » 03.10.2021, 19:03

bruce700 hat geschrieben:
03.10.2021, 18:10
da ja die Heizung mit jeder Wolke abschalten soll.
Ok, "jede Wolke" bedeutet dann also SysVar "Solarleistung" < 3800W?

Nun sehe ich aber das das gar nicht das Problem ist. Es ist eher die SysVar "Heizung Boost 3h". Die setzt du ja in Programm 1 auf "Boost EIN" (die dann für 3h und 1s so bleibt) aber prüfst im 2.Programm auf "Boost AUS".

Gehst du nun meine "Wahrheitstabelle" durch ist klar warum die Heizung immer AUS geht, egal welchen PV Ertrag du hast.

Grüße, Baxxy

Antworten

Zurück zu „HomeMatic allgemein“