programm klappt nur manuell

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

micba01
Beiträge: 12
Registriert: 01.02.2015, 14:44

programm klappt nur manuell

Beitrag von micba01 » 17.06.2017, 10:14

Habe für meine Rolladensteuerung ein Programm, welches das Hochfahren nach bestimmten Bedingungen (Wochenende, Sonnenaufgang, Uhrzeit) steuern soll. das Programm setzt eine Variable auf wahr. Wenn diese sich ändert werden die Rolladen über ein weiteres Programm angesteuert.
IMG_0056.PNG
Das Ganze funktioniert, wenn ich das Programm manuell starte, aber nicht, wenn das über die Änderung der Parameter laufen soll. Dann bleibt die Variable immer auf false . Ich mache da wohl was mit den Bedingungen ( bei Änderung, nur prüfen) falsch. Wo muss ich da welche Variante wählen?

Laut Log wird das Programm automatisch immer wieder gestartet, aber halt die Variable nicht geändert, also die Bedingung bleibt immer unerfüllt. Die einzelnen Variablen der Abfrage sind aber so, dass die Bedingung erfüllt ist.

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

Re: programm klappt nur manuell

Beitrag von JRiemann » 17.06.2017, 10:29

Programme die manuell gestartet werden arbeiten IMMER das erste DANN ab ohne irgendwelche Bedingungen zu prüfen!!

So wie Dein Programm geschrieben ist löst es zum Sonnenaufgang aus. Dies geschieht nur 1x wenn eine Änderung auf kleiner 0 gemeldet wird. Damit ein Block erfüllt ist muss zusätzlich zum Auslösezeitpunkt die von Dir angegebene Uhrzeit überschritten sein.
Aktuell liegt der Sonnenaufgang bei ca. 5:00 Uhr. Der Sonnenaufgang wird also frühestens im Herbst nach 6:15 bzw. 7:30 liegen. Dann werden die Bedingungen der Blöcke auch erfüllt sein.

Ich würde die "Uhrzeit" von "nur prüfen" auf "bei Änderung" setzen.

Außerdem gibt es Überschneidungen bei der Abfrage des Tages. Das könnte evtl. irgendwann ungewollte Schaltungen auslösen.
Doppelte Auslöser in einem Programm sind auch unnötig. Also: "Minuten vor SA" steht bereits im ersten Block auf "Änderung" darum reicht im 2. Block "nur prüfen". Der Programmdurchlauf startet ja in der ersten Zeile des Programms.
Viele Grüße!
Jörg

micba01
Beiträge: 12
Registriert: 01.02.2015, 14:44

Re: programm klappt nur manuell

Beitrag von micba01 » 17.06.2017, 16:13

Erst mal Danke für die Antwort.

Das Ändern der Uhrzeitprüfung auf "bei ändern" hat leider auch nichts gebracht.
Zur Erklärung: die Variable Minuten_vor_SA wird alle 5 Minuten neu geschrieben un ist nach Sonnenaufgang negativ. Diese ändert sich also alle 5 Minuten.

Ich möchte mit dem Prorgramm bewirken, dass die Rolladen zum Sonnenaufgang aber nicht vor 06.15 und am WE nicht vor 7:30 hochfahren. Ich dachte jetzt, dass das Prog immer anstartet, wenn sich der Wert Minuten_vor_SA geändert hat (es wird auch alle 5 Minuten gestatet) und dann nur die anderen Vaiablen prüft. Diese stimmen auch von den Wertenn her. Irgendwie ist meine If-Abfrage wohl nicht plausibel...

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

Re: programm klappt nur manuell

Beitrag von Sammy » 17.06.2017, 16:30

Dein Programmname beginnt mit einer Null. Bin mir nicht sicher, ob das erlaubt ist.
Wenn Du vor und nach dem Auslösezeitpunkt die Variablenwerte bei "Status" ansiehst, stehen sie jeweils so, dass die Bedingungen erfüllt sein müssten?
Wenn augenscheinlich alles richtig gemacht wurde, würe ich zum Debuggen das Programm vereinfachen und die UND-geprüften Bedingungen entfernen.
Alternativ einfach direkt neu anlegen (und dabei zuerst nur die SA-Variable ins Programm packen).

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!

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

Re: programm klappt nur manuell

Beitrag von JRiemann » 17.06.2017, 16:39

Du hast leider die Logik der CCU nicht verstanden!
Wie oft sich die Variable ändert, bzw. wie oft sie neu geschrieben wird ist für das Programm total egal!!!
In dem Programm steht: Minuten vor SA - kleiner als 0 - bei Änderung auslösen...
Der Auslöser "bei Änderung" steht dabei in Verbindung mit der Befingung "kleiner als 0".
Das Programm wir genau 2x in 24 Stunden ausgelöst! Also nur dann wenn der Schwellwert 0 in irgendeine Richtung übersprungen wird. (Im Fall des Tageszeitenskrip wird 0 evtl sogar nur 1x übersprungen). Nach dem Auslösen startet der Programmdurchlauf in der ersten Zeile des Programms und es werden die Bedingungen geprüft.

Die Annahme das das Programm bei jeder Statusänderung der Variable ausgelöst wird ist falsch!!
Um dies zu erreichen müsste "bei Aktualisierung auslösen" gewählt sein. Mit diesem Auslöser sollte man aber sehr sparsam umgehen da es dadurch schnell zu unnötigen und übermäßigen Schaltbefehlen kommen kann!
Die Einträge im Log sind da etwas verwirrend und schon fast als Bug zu bezeichnen. Der veränderte Zeitstempel gaukelt ein ausgeführtes Programm vor was aber nicht so ist! Dieses Fehlverhalten wurde im Forum bereits öfter diskutiert.

Wenn Du "Minuten vor SA" und "Tageszeit" mit "bei Änderung auslösen" abfragst, dann sollte es morgen In der Früh funktionieren.
Viele Grüße!
Jörg

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

Re: programm klappt nur manuell

Beitrag von JRiemann » 17.06.2017, 16:47

@Sammy
0 Minuten vor SA wäre aktuell ca. 5 Uhr
In Verbindung mit der UND-Verknüpften Zeitprüfung später 7:30 kann der Block nicht erfüllt sein.

Der Fehler des TE liegt wohl in der Erwartung das jede Statusänderung von Minuten vor SA das Programm auslöst. Außerdem steht die Uhrzeit auf "prüfen"
Viele Grüße!
Jörg

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: programm klappt nur manuell

Beitrag von Xel66 » 17.06.2017, 17:04

Ganz abgesehen von den ganzen Logik- und Verständnisfehlern ist in dieser Anwendung die Verwendung des Sonnenstandsscripts überflüssig. Es werden ausschließlich Uhrzeiten und Sonnenauf- bzw. Sonnenuntergangszeiten ohne jegliche Differenz zu den im System sowieso innerhalb des Zeitmoduls vorhandenen Triggern benutzt. Es läuft also alle fünf Minuten ein Script, welches im Grund nicht mal benötigt wird.

Meines Erachtens macht die Benutzung des Sonnenstandsscripts nur bei Verwendung der Elevation einen Sinn. Den azimutalen Sonnenstand kann man mit Hilfe der Sonnenauf- und -untergangszeit sowie der Uhrzeit bestimmen. Wäre diese nicht so, würden Sonnenuhren nicht funktionieren. Soll heißen, die Sonne steht jeden Tag zur gleichen Zeit an der gleichen Stelle. Nur die Höhe über dem Horizont variiert etwas über das Jahr, was eben die Auf- und Untergangszeit beeinflusst. Und man muss natürlich die Stunde Sommerzeit berücksichtigen. Aber Beschattung ist ja meist nur im Sommer notwendig.

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

Benutzeravatar
TomT
Beiträge: 565
Registriert: 19.11.2014, 15:13
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 4 Mal
Danksagung erhalten: 4 Mal

Re: programm klappt nur manuell

Beitrag von TomT » 18.06.2017, 08:43

Sammy hat geschrieben:Dein Programmname beginnt mit einer Null. Bin mir nicht sicher, ob das erlaubt ist.
Ändere mal deinen Programmnamen....
0_Rolladen_zeitplan ist nicht erlaubt, Programmnamen dürfen nicht mit Zahlen beginnen....
Steht IWO in den Regeln zur CCU Programmierung

Grüße
Tom

micba01
Beiträge: 12
Registriert: 01.02.2015, 14:44

Re: programm klappt nur manuell

Beitrag von micba01 » 05.07.2017, 19:14

Danke nochmals für die Infos auch wenn die hier nicht weitergeholfen haben. Ich gebe mal ein kleines Update:

Den Fehler konnte ich selber ausmachen. Habe die Programme jetzt anders aufgesetzt und seit zwei Wochen läuft alles so wie ich wollte.
Wenn es jemanden interessiert, kann ich das gerne hier posten.

Zwei Anmerkungen noch:
1) die Programme laufen bei mir seit langen auch mit einer Zahl im Programmnamen, habe das auch nicht verändert. Ebenso konnte ich auf Anhieb nichts finden, was die Verwendung von Zahlen in Programmnamen verbietet...Das scheint also kein Problem zu sein.

2) habe ich gelöscht!
Zuletzt geändert von micba01 am 06.07.2017, 13:11, insgesamt 1-mal geändert.

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: programm klappt nur manuell

Beitrag von Xel66 » 05.07.2017, 21:00

micba01 hat geschrieben:Verwendung von Zahlen in Programmnamen verbietet...Das scheint also kein Problem zu sein.
Ist es auch grundsätzlich nicht. Sie dürfen nur nicht mit einer Ziffer beginnen. Dann kann es Effekte geben, die nicht nachvollziehbar sind. Dieses ist mehrfach hier im Forum in alten Threads dokumentiert und es ist auch nicht bekannt, dass dieses gefixt wurde.

Wenn Du aktuell keine Probleme hast, heißt das noch lange nicht, dass Du sie in Zukunft wegen irgendeiner anderen Konstellation nicht bekommen kannst. Im Zuge eines stabilen Systems sollte man also solche Ratschläge, die sich niemand aus den Fingern saugt, sondern auf Erfahrung beruhen, ruhig berücksichtigen. Wenn Du aber unbedingt Dein System auf den Bauch legen willst, dann schlage solche guten Ratschläge zukünftig in den Wind. Viel Spaß dann bei der Fehlersuche.

Du beschwerst Du über den Ton mancher Anwender. Was erwartest Du, wenn Du als Einsteiger solche Statements, wie die Programmbenamung ablässt. Leute mit einiger Erfahrung geben Dir Hinweise und Du stellst Dich hin, stampfst mit dem Fuß auf und legst dar, dass es bei Dir ja funktioniert. Das ist so, als wenn eine Eintagsfliege einer Schildkröte erklärt, dass es soetwas wie Schnee nicht gibt. Sie hat es schließlich noch nie gesehen. Wenn solche Leute aber Dir nicht antworten würden, dann würdest Du auf Deinem Problem sitzenbleiben. Das hat absolut nichts mit Herablassung zu tun.

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)“