Hallo Zusammen,
vielleicht sehe ich vor lauter Bäumen den Wald nicht mehr, aber ein Teil meiner Anwesenheitsimulation funktioniert seit einer der letzen Patch Updates nicht mehr. Einen Fehler im Code kann ich nicht finden. Die Funktion hat vorher aber auch 1-2 Jahre problemlos funktioniert.
Um 20 Uhr plus eine Zufallszeit soll das Licht im Kinderzimmer angehen, nach einer zufälligen Verzögerung sollen dann die Rolladen herunterfahren und nach der gleichen Verzögerung das Licht wieder ausgehen.
Die Ausschaltung des Lichts funktioniert nun aber leider bei jeder Nutzung der Funktion nicht mehr. Die ersten drei Vorgänge sind immer sauber im Log zu finden.
2015-06-20 20:04:44, EibPC, "Kinderzimmer R Wandleuchte-2/2/3", Binärwert, EIN, Schreiben
2015-06-20 20:06:42, EibPC, "Kinderzimmer R/R Auf/Ab-3/2/40", Binärwert, EIN, Schreiben
2015-06-20 20:06:42, EibPC, "Kinderzimmer R/V Auf/Ab-3/2/50", Binärwert, EIN, Schreiben
Um 20:10:40 müßte eigentlich "Kinderzimmer R Wandleuchte-2/2/3" auf AUS gehen, aber der write wird nicht ausgeführt.
Firmwareversion des EibPCs: v3.007
Objektnutzung | Anzahl Webserverobjekte | Anzahl
====================================== ======================================
Schaltuhr | 181 mpbutton | 7
Timer | 69 mpchart | 50
Timebuffer | 0 mtimechart | 4
String Operationen | 1345 pbutton | 199
TCP/IP/UDP Operationen | 45 pshifter | 6
Stringsuche | 199 weboutput | 7
Flash | 0 --------------------------------------
Fliesskommaoperationen | 164 Summe (15 Webseiten) | 273
if/else | 1166
Gruppenaddressen | 500
KNX Busoperationen | 510
Stringvariablen | 528
Verarbeitungsobjekte | 9873
--------------------------------------
Summe | 14580
Genutzte Objekte EibPC 22.3 %.
// Definition der Parameter
Schaltvorgang_Kinderzimmer = AUS
Zufallminute_Kinderzimmer = convert(random(10u32),0u08)
Zufallsekunde_Kinderzimmer = convert(random(60u32),0u08)
Verzoegerung_Kinderzimmer = convert(60u32+random(60u32),0u64) * 1000u64
// Licht zwischen 20 Uhr und 20.10 Uhr einschalten
if Init == EIN \\
and "Abwesenheit Ein/Aus-1/0/0" == EIN \\
and htime(20, Zufallminute_Kinderzimmer, Zufallsekunde_Kinderzimmer) then \\
write("Kinderzimmer R Wandleuchte-2/2/3", EIN); \\
Schaltvorgang_Kinderzimmer = EIN \\
endif
// Rolladen 1-2 Minuten nach Einschalten des Lichts herunterfahren
if Init == EIN \\
and "Abwesenheit Ein/Aus-1/0/0" == EIN \\
and Schaltvorgang_Kinderzimmer == EIN \\
and after("Kinderzimmer R Wandleuchte-2/2/3"==EIN, Verzoegerung_Kinderzimmer) then \\
write("Kinderzimmer R/R Auf/Ab-3/2/40",EIN); \\
write("Kinderzimmer R/V Auf/Ab-3/2/50",EIN) \\
endif
// Licht 1-2 Minuten nach Schließen der Rolladen wieder ausschalten
if Init == EIN \\
and "Abwesenheit Ein/Aus-1/0/0" == EIN \\
and Schaltvorgang_Kinderzimmer == EIN \\
and after("Kinderzimmer R/R Auf/Ab-3/2/40"==EIN, Verzoegerung_Kinderzimmer) then \\
write("Kinderzimmer R Wandleuchte-2/2/3", AUS); \\
Schaltvorgang_Kinderzimmer = AUS \\
endif
vielleicht sehe ich vor lauter Bäumen den Wald nicht mehr, aber ein Teil meiner Anwesenheitsimulation funktioniert seit einer der letzen Patch Updates nicht mehr. Einen Fehler im Code kann ich nicht finden. Die Funktion hat vorher aber auch 1-2 Jahre problemlos funktioniert.
Um 20 Uhr plus eine Zufallszeit soll das Licht im Kinderzimmer angehen, nach einer zufälligen Verzögerung sollen dann die Rolladen herunterfahren und nach der gleichen Verzögerung das Licht wieder ausgehen.
Die Ausschaltung des Lichts funktioniert nun aber leider bei jeder Nutzung der Funktion nicht mehr. Die ersten drei Vorgänge sind immer sauber im Log zu finden.
2015-06-20 20:04:44, EibPC, "Kinderzimmer R Wandleuchte-2/2/3", Binärwert, EIN, Schreiben
2015-06-20 20:06:42, EibPC, "Kinderzimmer R/R Auf/Ab-3/2/40", Binärwert, EIN, Schreiben
2015-06-20 20:06:42, EibPC, "Kinderzimmer R/V Auf/Ab-3/2/50", Binärwert, EIN, Schreiben
Um 20:10:40 müßte eigentlich "Kinderzimmer R Wandleuchte-2/2/3" auf AUS gehen, aber der write wird nicht ausgeführt.
Firmwareversion des EibPCs: v3.007
Objektnutzung | Anzahl Webserverobjekte | Anzahl
====================================== ======================================
Schaltuhr | 181 mpbutton | 7
Timer | 69 mpchart | 50
Timebuffer | 0 mtimechart | 4
String Operationen | 1345 pbutton | 199
TCP/IP/UDP Operationen | 45 pshifter | 6
Stringsuche | 199 weboutput | 7
Flash | 0 --------------------------------------
Fliesskommaoperationen | 164 Summe (15 Webseiten) | 273
if/else | 1166
Gruppenaddressen | 500
KNX Busoperationen | 510
Stringvariablen | 528
Verarbeitungsobjekte | 9873
--------------------------------------
Summe | 14580
Genutzte Objekte EibPC 22.3 %.
// Definition der Parameter
Schaltvorgang_Kinderzimmer = AUS
Zufallminute_Kinderzimmer = convert(random(10u32),0u08)
Zufallsekunde_Kinderzimmer = convert(random(60u32),0u08)
Verzoegerung_Kinderzimmer = convert(60u32+random(60u32),0u64) * 1000u64
// Licht zwischen 20 Uhr und 20.10 Uhr einschalten
if Init == EIN \\
and "Abwesenheit Ein/Aus-1/0/0" == EIN \\
and htime(20, Zufallminute_Kinderzimmer, Zufallsekunde_Kinderzimmer) then \\
write("Kinderzimmer R Wandleuchte-2/2/3", EIN); \\
Schaltvorgang_Kinderzimmer = EIN \\
endif
// Rolladen 1-2 Minuten nach Einschalten des Lichts herunterfahren
if Init == EIN \\
and "Abwesenheit Ein/Aus-1/0/0" == EIN \\
and Schaltvorgang_Kinderzimmer == EIN \\
and after("Kinderzimmer R Wandleuchte-2/2/3"==EIN, Verzoegerung_Kinderzimmer) then \\
write("Kinderzimmer R/R Auf/Ab-3/2/40",EIN); \\
write("Kinderzimmer R/V Auf/Ab-3/2/50",EIN) \\
endif
// Licht 1-2 Minuten nach Schließen der Rolladen wieder ausschalten
if Init == EIN \\
and "Abwesenheit Ein/Aus-1/0/0" == EIN \\
and Schaltvorgang_Kinderzimmer == EIN \\
and after("Kinderzimmer R/R Auf/Ab-3/2/40"==EIN, Verzoegerung_Kinderzimmer) then \\
write("Kinderzimmer R Wandleuchte-2/2/3", AUS); \\
Schaltvorgang_Kinderzimmer = AUS \\
endif
Kommentar