Probleme bei der Logik bei Programmen...

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

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

Probleme bei der Logik bei Programmen...

Beitrag von DrTob » 17.10.2017, 09:11

Im zweiten Block ist Hand/Auto „bei Änderung“ enthalten. Das Programm wird also ausgelöst. Die Verdopplung der Blocks mit dem einzigen Unterschied, dass du andere Auslöser definierst (beim ersten Astro, beim zweiten Hand/Automatik) ist übrigens überflüssig. Einfach im ersten Blick in beiden Zeilen „bei Änderung auslösen“ auswählen.

Fuchsbau77
Beiträge: 21
Registriert: 15.10.2017, 17:57

Re: Probleme bei der Logik bei Programmen...

Beitrag von Fuchsbau77 » 17.10.2017, 11:46

Hallo drtop,

Danke für den Tipp, mir war nicht klar, daß ich einen zweiten Auslöser in einem Block generieren darf.
Da stellt sich mir aber die Frage, ist der doppelte Block nur überflüssig oder funktioniert es deshalb nicht?
Prinzipiell sollte es doch funktionieren, da ich andere Faktoren zum prüfen hinzu gefügt habe.
Ist das meinerseits noch ein Verständnis problem vom Aufbau der Logik?

Ich werde es heute Abend mal ausprobieren, danke dir


Mfg
Rene

Fuchsbau77
Beiträge: 21
Registriert: 15.10.2017, 17:57

Re: Probleme bei der Logik bei Programmen...

Beitrag von Fuchsbau77 » 17.10.2017, 17:35

Hallo DrTop,

ich habe mir eben mein Programm nochmal angeschaut und es hat einen Sinn das ich die 2 fast Identische Verknüpfungen erstellt habe.
In der ersten "WENN" Bedingung möchte ich, das das Rollo bei wechsel der Var. Astro+30 auf Tag, das Rollo hoch fährt.

In der zweiten "WENN" oder Verknüpfung möchte ich , das wenn die Hand/Automatik Var. auf Hand steht, die Var. Astro+30 schon auf Tag geschaltet hat und ich z.b Mittags die Var. Hand/Automatik in Auto schalte, das dann die Rollos hoch fahren weil es ja schon Tag ist. Ich möchte nicht, wenn ich die Var Hand/Auto auf Auto geschaltet habe, die Rollos manuell hoch fahren müssen.

Ich hoffe man kann meinen Gedankengang nachvollziehen, ist nicht immer ganz einfach...... :roll:

Deshalb ist mir nicht ganz klar warum es nicht funktioniert, weil die Bedingungen ja nicht doppelt sind. In der ersten Verknüpfung Trigger ich auf Var. Astro+30 und in der zweiten frage ich sie mit "Prüfen" ab.

mfg
Rene

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

Probleme bei der Logik bei Programmen...

Beitrag von DrTob » 17.10.2017, 18:18

Dein Gedankengang ist nachvollziehbar, allerdings passt er nicht zur Auslöse-/Abarbeitungslogik der Programme. Ein einziger Block in dem du in beiden Zeilen jeweils „bei Änderung auslösen“ auswählst ergibt dasselbe Ergebnis!

Fuchsbau77
Beiträge: 21
Registriert: 15.10.2017, 17:57

Re: Probleme bei der Logik bei Programmen...

Beitrag von Fuchsbau77 » 17.10.2017, 19:09

Ok, dann werde ich das gleich mal ausprobieren.

Das bedeutet aber, wenn ich in einer Funktion zwei Abfragen mit "bei Änderung auslösen" habe, wird die "Dann" Funktion ausgelöst wenn einer der beiden eine Änderung erfahren hat, oder ? Der jeweilige nicht ausgelöste "bei Änderung auslösen" wird weder geprüft noch sonstige abgefragt , er wird also nicht beachtet,oder?

Ich habe oft mit S7 SPS Programmen zu tun , wahrscheinlich hänge ich mich zu sehr an dieser Logik auf, die von Homematic muss man wohl anders betrachten.

Jetzt habe ich aber ein Brett vorm Kopf, weil mir nicht klar ist wie ich dann so eine Funktion wie Oben realisieren kann.......

Kannst du mir da nochmal einen denk Anstoß geben.... :wink:

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

Re: Probleme bei der Logik bei Programmen...

Beitrag von Sammy » 17.10.2017, 19:27

Die jeweils verknüpften Bedingenungen werden alle geprüft!
Lies Dir bitte nochmal die Links zur Zentralenlogik durch. Da ist das wirklich gut (und durch verschiedene Personen) erklärt.
Egal, was das programm triggert (z.B. eine Zeile mit "bei Änderung"), es wird von ganz oben angefangen die Bedingeungen zu prüfen.
"bei Änderung" oder "bei Aktualisierung" usw. sind dabei selbst NICHT Teil der Bedingung!!!
In den Bedingungszeilen steht also Bedingung + Auslöser. Und bei der Abarbeitung des Programms werden NUR die BEDINGUNGEN, nicht die Auslöser geprüft!

Aber genau das steht auch schon in den vielen Links zur Zentralenlogik...

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!

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

Probleme bei der Logik bei Programmen...

Beitrag von DrTob » 17.10.2017, 19:27

Bei HomeMatic wird strikt zwischen Auslösen und Abarbeiten getrennt. Nachdem ein Program durch irgend etwas ausgelöst wurde (z.B. Der Wert einer Bedingunggszeile mit „bei Änderung auslösen“ hat sich geändert) wird es von ganz oben abgearbeitet. Was zur Auslösung geführt hat ist dann egal, das „bei x auslösen“ ist nicht Teil der Bedingung.

Fuchsbau77
Beiträge: 21
Registriert: 15.10.2017, 17:57

Re: Probleme bei der Logik bei Programmen...

Beitrag von Fuchsbau77 » 17.10.2017, 20:15

Gerade da ist ja mein Verständigungsproblem,
ich habe nochmal das Bild hochgeladen, was mir die Probleme macht.
Es geht nur um die oberen beiden Blöcke.

Ich habe jeweils einen Auslöser und 4 Bedingungen zum Prüfen........


ahhhhhhh,
jetzt ist mir der Groschen gefallen, ich wollte gerade euch nochmal mein Problem erklären und studiere gerade das Programm, da viel mir der Schleier von den Augen..... Wie ihr versucht habt mir zu erklären , ist der Auslöser kein Teil der Bedingung, wenn ich den Auslöser mal rausnehme, habe ich in beiden Blöcken bzw in den anderen auch, die gleichen Bedingungen die geprüft werden und somit ein aulösen meines aktors verursachen.

Soweit OK?

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

Re: Probleme bei der Logik bei Programmen...

Beitrag von DrTob » 17.10.2017, 20:57

Nach der Auslösung wird immer nur der erste Zweig mit zutreffender Bedingung ausgeführt. Auch wenn es nachfolgende Zweige mit zutreffender Bedingung gibt, der erste „gewinnt“.

Antworten

Zurück zu „HomeMatic allgemein“