Logik funktioniert - ich versteh' sie nur nicht richtig

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
Standarduser
Beiträge: 29
Registriert: 25.04.2018, 14:40

Logik funktioniert - ich versteh' sie nur nicht richtig

Beitrag von Standarduser » 21.12.2018, 14:28

Hallo zusammen,

ich habe ein kleines Problem mit meiner Lichtsteuerung (außen), die nicht richtig funktioniert.

Folgendes soll passieren:
Sonnenuntergang -> Licht EIN
0:00 Uhr -> Licht AUS
5:00 Uhr -> Licht EIN, aber nur, wenn die Sonne noch nicht aufgegangen ist (im Juli ist Sonnenaufgang vor 5:00 Uhr)
Sonnenaufgang -> Licht AUS

Das habe ich so programmiert:
Bildschirmfoto 2018-12-21 um 14.21.08.png
Pünktlich zum Sonnenuntergang geht das Licht an, aber 0:00 Uhr leider nicht aus.
Kann mir jemand sagen, wo das Problem liegt?
Zuletzt geändert von Standarduser am 21.12.2018, 15:11, insgesamt 1-mal geändert.

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

Re: Logik funktioniert nicht richtig

Beitrag von Sammy » 21.12.2018, 14:45

Weil es um 0:00 Uhr Nacht ist!
Lies bitte die Links zur Zentralenlogik (Tipps für Anfänger)!
Hier die kurze Lösung: viewtopic.php?f=26&t=47469&p=475126#p475126

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!

manfredh
Beiträge: 4155
Registriert: 09.09.2012, 10:41
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 78 Mal
Danksagung erhalten: 301 Mal

Re: Logik funktioniert nicht richtig

Beitrag von manfredh » 21.12.2018, 14:57

Der Titel ist echt witzig - in zweifachem Sinn:

Erstens funktioniert eine Logik per Definition immer richtig.

Zweitens funktioniert das von dir erstellte Programm durchaus richtig - gemäß Logik. Es macht nämlich um 0 Uhr folgendes:
- Das Programm wird durch die Zeile "Täglich um 0:00 Uhr..." ausgelöst. Nichts anderes sagt der Zusatz "zu Zeitpunkten auslösen".
- Das Programm wird dann einmalig von oben nach unten durchlaufen.
- Es findet schon im WENN eine erfüllte Bedingung "Täglich nachts..." und führt das darunter stehende DANN aus. Die bereits eingeschalteten Lampen werden nochmals eingeschaltet.
- Danach beendet es sich sofort und schläft bis zum nächsten auslösen.

Ergo: Titel ändern in "Logik funktioniert - ich versteh' sie nur nicht richtig". :mrgreen:
Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.

Standarduser
Beiträge: 29
Registriert: 25.04.2018, 14:40

Re: Logik funktioniert nicht richtig

Beitrag von Standarduser » 21.12.2018, 15:15

manfredh hat geschrieben:
21.12.2018, 14:57
Ergo: Titel ändern in "Logik funktioniert - ich versteh' sie nur nicht richtig". :mrgreen:
Du hast vollkommen Recht, daher gestehe ich das ein und hab den Titel mal angepasst.
Obwohl vorher schon klar war, dass die Logik der CCU sicher richtig funktioniert und ich lediglich eine gewisse Asynchronität zur meines Gehirns festgestellt habe. Aber auch das hätte ich irgendwie in den Titel integrieren können :mrgreen:
Sammy hat geschrieben:
21.12.2018, 14:45
Weil es um 0:00 Uhr Nacht ist!
Lies bitte die Links zur Zentralenlogik (Tipps für Anfänger)!
Hier die kurze Lösung: viewtopic.php?f=26&t=47469&p=475126#p475126

Gruß Sammy
Danke für Deine Hinweise. So müsste es doch dann aber laufen, oder?
Bildschirmfoto 2018-12-21 um 15.10.09.png

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

Re: Logik funktioniert - ich versteh' sie nur nicht richtig

Beitrag von Sammy » 21.12.2018, 15:17

Ja
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!

Standarduser
Beiträge: 29
Registriert: 25.04.2018, 14:40

Re: Logik funktioniert - ich versteh' sie nur nicht richtig

Beitrag von Standarduser » 21.12.2018, 15:18

Besten Dank.

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: Logik funktioniert - ich versteh' sie nur nicht richtig

Beitrag von Xel66 » 21.12.2018, 16:52

Ich würde es so umsetzen.

Code: Alles auswählen

WENN täglich nachts bei Änderung auslösen
UND 
Zeitmodul täglich von 16:00 Uhr bis 23:59 Uhr zu Zeitpunkten auslösen
ODER Zeitmodul täglich von 05:00 Uhr bis 08:00 Uhr zu Zeitpunkten auslösen
DANN Lampen einschalten
SONST Lampen ausschalten
Zwei Dinge sind hierzu zu sagen. Zuerst würde die Lampen mit einem gewissen Zeitversatz einschalten (meinetwegen 10 Minuten und 601 Sekunden). Bei gleichzeitigen Befehlen könnte es Kommunikationsstörungen geben. Die WENN-Abfrage besteht aus zwei verUNDeten Blöcken. Einer enthält die Astro-Abfrage und der zweite die verODERten Zeitmodule mit den Freigabe- bzw. Triggerzeiten.

Die zweite Bemerkung: Dieser Lösungsansatz hat einen kleinen Nachteil. Er produziert unnötige Ausschaltbefehle durch die Verwendung des SONST. Dieses wird immer dann ausgeführt, wenn die Bedingungsprüfung im WENN ein FALSCH ergibt. Ist es 16:00 Uhr und noch nicht Nacht, dann wird ein Ausschaltbefehl generiert und dann aber korrekt zur Astrozeit eingeschaltet. Um 23:59 Uhr ergibt die Anfrage wieder ein FALSCH und es wird berechtigt ausgeschaltet.

Um 05:00 Uhr wird dann wieder eingeschaltet, wenn es noch Nacht ist, bzw. im Sommer ein dann unnötiger Ausschaltbefehl (wie auch beim Sonnenaufgang vor 05:00 Uhr) generiert, genau wie um 08:00 Uhr nochmal. Der Wechsel von Nacht auf Tag generiert auch einen weiteren Ausschaltbefehl. Diese unnützen Ausschaltbefehle kann man auch als Feature betrachten, denn sie verhindern ja, dass das Licht unnötig leuchtet.

Einfache Schaltbefehle belasten den Duty Cycle nicht übermäßig. Man könnte sie aber durch ein SONST WENN mit der Abfrage "Lampen eingeschaltet" (hier würde es genügen, eine der Lampen abzufragen, man kann sie auch verUNDen) nur prüfen(!). Das "nur prüfen" ist wichtig, damit ein Einschalten das Programm nicht fehlerhaft triggert. Und im dazugehörigen DANN werden dann die Lampen abgeschaltet. Das SONST WENN wird nur erreicht, wenn der WENN-Block ein FALSCH ergibt, triggert das Programm aber durch das "nur prüfen" nicht selbst. Die Aktion wird aber nur ausgeführt, wenn die Lampen eingeschaltet sind. Es werden also keine unnötigen Befehle gesendet. Das SONST muss natürlich leer bleiben. Zugegeben, ein wenig "von hinten durch die Brust ins Auge"-Lösung und nicht unbedingt notwendig und unnötig kompliziert. Die Uhrzeiten 08:00 Uhr und 16:00 Uhr sind willkürlich gewählt und müssen natürlich je nach Örtlichkeit (frühester Sonnenunter- bzw. spätester Sonnenaufgang) angepasst werden.

Viel Text für wenig Arbeit. Darum hier noch mal obiges Beispiel mit den vorgeschlagenen Änderungen zur Verhinderung unnötigen Ausschaltbefehlen.

Code: Alles auswählen

WENN täglich nachts bei Änderung auslösen
UND 
Zeitmodul täglich von 16:00 Uhr bis 23:59 Uhr zu Zeitpunkten auslösen
ODER Zeitmodul täglich von 05:00 Uhr bis 08:00 Uhr zu Zeitpunkten auslösen
DANN Lampen einschalten
SONST WENN Lampen eingeschaltet nur prüfen
DANN Lampen ausschalten
Muss dazu schreiben. Ich habe solche Lösung nicht (mehr), weil ich mit den zusätzlichen Ausschaltbefehlen leben konnte. Die Außenlampen, die ich mal so gesteuert hatte, sind durch Hue-Lampen ersetzt und werden über die Bridge gesteuert.

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 Zentrale (CCU / CCU2 / CCU3 / Charly)“