Wenn Dann Sonst Logik

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Antworten
Serverknecht
Beiträge: 29
Registriert: 04.03.2017, 23:19
System: CCU und Access Point
Wohnort: frankfurt am Main

Wenn Dann Sonst Logik

Beitrag von Serverknecht » 23.04.2017, 16:00

Hallo allerseits,
ich habe ein Verständnis Problem mit der Wenn dann sonst Logik. Folgender Fall:
Ich will auf einem ePaper Display den Status von Türen/Fenster anzeigen. Wenn 5 wichtige Fenster zu sind soll eine Anzeige "Geschlossen" erscheinen und wenn nur eines offen ist, soll "Offen" erscheinen. Kann nicht so schwer sein, dachte ich.
Ich setze beim Öffnen oder Schließen jedes Fensters eine Variable "TürBewegung" auf "Bewegt" und triggere dann auf die Änderung dieser Variable, ("Wenn Variable=Bewegt" bei Änderung auslösen) sowie 5 "nur Prüfen" Bedingungen für jedes Fenster, ob es geschlossen ist. Diese 5 Prüfungen sind "UND" verknüpft mit der auslösenden Variable. Im Dann und im Sonst Zweig gebe ich unterschiedliche Meldungen auf das Display und dann wird dann die Variable "TürBewegung" wieder auf "Ruhe" gesetzt, als abschließende Aktion.
Mein Problem: Das Programm läuft immer auf den "Sonst Zweig". Ich öffne eine Tür und sehe, dass das ePaper Display aktualisiert und "Offen anzeigt. Das ist korrekt. Dann schließe ich die Tür, sehe, dass das Display wieder aktualisiert, aber immer noch "Offen" anzeigt. Das heißt, dass die Triggerung über die Variable wohl funktioniert, aber mit den Prüfungen bin ich unsicher. Ich habe sogar eine Zeitversatz von 5 Sekunden eingebaut, damit der Status der Fenster bei Abfrage stimmt.
Meine Überlegung ist, wenn alle Bedingungen im Wenn Zweig wahr sind, (Also die Variable sich ändern und Fenster 1 geschlossen und Fenster2 geschlossen ...)wird "Dann" ausgeführt, sonst der "Sonst" Zweig.
Das scheint so wohl aber ein Denkfehler zu sein.
Was mache ich falsch? Hat jemand eine Idee?
Danke für Eure Hilfe
Serverknecht

Benutzeravatar
JRiemann
Beiträge: 3903
Registriert: 12.11.2015, 21:05
Wohnort: Aurich
Danksagung erhalten: 3 Mal

Re: Wenn Dann Sonst Logik

Beitrag von JRiemann » 23.04.2017, 16:07

Bitte keine Nacherzählungen sondern Screenshots der Programme.
Nur damit ist echte Hilfe möglich!
Viele Grüße!
Jörg

Gerti
Beiträge: 3025
Registriert: 28.01.2016, 18:06
System: CCU
Wohnort: Hürth
Hat sich bedankt: 16 Mal
Danksagung erhalten: 268 Mal

Re: Wenn Dann Sonst Logik

Beitrag von Gerti » 23.04.2017, 16:28

Hi!

Warum so kompliziert?

Wenn
Fenster A geschlossen Auf Änderung auslösen
Und
Fenster B geschlossen Auf Änderung auslösen
Und
Fenster C geschlossen Auf Änderung auslösen
Und
etc.
Dann
Systemvariable Fenster zu
Sonst
Systemvariable Fenster auf

Gruß
Gerti

Serverknecht
Beiträge: 29
Registriert: 04.03.2017, 23:19
System: CCU und Access Point
Wohnort: frankfurt am Main

Re: Wenn Dann Sonst Logik

Beitrag von Serverknecht » 23.04.2017, 17:10

ok, hier noch mal ein Screenshot als Anhang.
Läuft immer in den Sonst Zweig.
Danke für Eure HIlfe
Dateianhänge
WennDannSonst.png
Screenshot
Serverknecht

Benutzeravatar
JRiemann
Beiträge: 3903
Registriert: 12.11.2015, 21:05
Wohnort: Aurich
Danksagung erhalten: 3 Mal

Re: Wenn Dann Sonst Logik

Beitrag von JRiemann » 23.04.2017, 17:27

Du nutzt eine Variable als Auslöser die dann anschließend wieder verändert wird.
Die Variable "Bewegung" löst dem Programmdurchlauf aus, alle Fenster sind geschlossen, der Block ist erfüllt, das folgend DANN setzt die Variable auf "Ruhe", das wiederum ist eine Änderung, das Programm wird wieder ausgelöst, nun ist der erste Block nicht mehr erfüllt weil die Variable auf "Ruhe" steht, somit wird das SONST-WENN ausgeführt.

Warum setzt Du zuerst mit den Fensterzuständen die Variable und fragst dann nochmals die Zustände ab. Das ist ja doppelt...
Viele Grüße!
Jörg

Serverknecht
Beiträge: 29
Registriert: 04.03.2017, 23:19
System: CCU und Access Point
Wohnort: frankfurt am Main

Re: Wenn Dann Sonst Logik

Beitrag von Serverknecht » 23.04.2017, 18:04

Die Überlegung war, die Variable nach der Display Aktualisierung wieder in den Grundzustand zu bringen. Sonst würde sie nach einer Fensterzustandsänderung ewig auf "Bewegung" stehen bleiben.
Aber Dein Ansatz hört sich logisch an. Vielleicht liegt es daran.
Danke
Serverknecht

Serverknecht
Beiträge: 29
Registriert: 04.03.2017, 23:19
System: CCU und Access Point
Wohnort: frankfurt am Main

Re: Wenn Dann Sonst Logik

Beitrag von Serverknecht » 23.04.2017, 18:14

Gerties Lösung hat Erfolg gebracht.

Ich denke da noch irgendwo falsch. Auf Gerties Lösung bin ich nicht gekommen, weil ich dachte, wenn 5 "UND" Bedingungen im "Wenn Bereich" sind, auf die getriggert wird, werden nie alle gleichzeitig erfüllt sein. Deshalb der Aufwand über die Variable.
Danke an alle jetzt läufts.
Serverknecht

Benutzeravatar
JRiemann
Beiträge: 3903
Registriert: 12.11.2015, 21:05
Wohnort: Aurich
Danksagung erhalten: 3 Mal

Re: Wenn Dann Sonst Logik

Beitrag von JRiemann » 23.04.2017, 18:21

Am besten funktioniert es wenn Du das setzen der Variable und steuern der Anzeige in zwei getrennte Programme packst. Dieses beiden Dinge sind "artfremd" und haben in einem Programm nichts zu suchen...
Programm 1: wie von Gerti vorgeschlagen
Programm 2: WENN > Variable > Fenster offen > bei Änderung
DANN > Anzeige > LED rot
SONST > Anzeige > LED grün
Viele Grüße!
Jörg

Antworten

Zurück zu „HomeMatic allgemein“