Timerausfall - benötige Hilfe
Moderator: Co-Administratoren
- 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: Timerausfall - benötige Hilfe
Na das ist ja mal vielversprechend
Grüße
Tom
Zuletzt geändert von TomT am 05.12.2016, 14:58, insgesamt 1-mal geändert.
-
- Beiträge: 494
- Registriert: 29.04.2014, 18:38
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 9 Mal
Re: Timerausfall - benötige Hilfe
Hallo Tom
reboot bringt nichts das liegt an bestimmten Einträgen in der Datei.
Das Systemprotokoll wird bis kurz vor solchen Zeilen eingelesen/angezeigt dann hört es auf. Wenn solche Zeilen an Anfang sind bekommst du überhaupt kein Systemprotokoll angezeigt.
Das ist für mich aber ein unwichtiges Schönheitsproblem hat ja nichts direkt mit den Timer zu tun. Hier müßte BadenPower nur das Kontrollscript verschönern. Das wichtige macht ja das Script den Timer wieder starten wenn er steht.
Meine Tests mit einen 2 Timer da ich ja keine Geräte mehr an der TestCCU habe zum triggern sind aber auch blöd. Der 2 Timer bleibt teilweise ja auch stehen obwohl er auf eine 1 Minute gestellt ist.
Dadurch ergeben sich hänger von größer 1 Minute auch wieder blöd und kein workaround.
Gruß
Bulli
reboot bringt nichts das liegt an bestimmten Einträgen in der Datei.
Das Systemprotokoll wird bis kurz vor solchen Zeilen eingelesen/angezeigt dann hört es auf. Wenn solche Zeilen an Anfang sind bekommst du überhaupt kein Systemprotokoll angezeigt.
Das ist für mich aber ein unwichtiges Schönheitsproblem hat ja nichts direkt mit den Timer zu tun. Hier müßte BadenPower nur das Kontrollscript verschönern. Das wichtige macht ja das Script den Timer wieder starten wenn er steht.
Meine Tests mit einen 2 Timer da ich ja keine Geräte mehr an der TestCCU habe zum triggern sind aber auch blöd. Der 2 Timer bleibt teilweise ja auch stehen obwohl er auf eine 1 Minute gestellt ist.
Dadurch ergeben sich hänger von größer 1 Minute auch wieder blöd und kein workaround.
Gruß
Bulli
- 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: Timerausfall - benötige Hilfe
Danke Bulli,
auch wieder was gelernt
>Ich logge jetzt mal nur noch die Ausfälle und Werte , keine Zeichenketten mehr....
auch wieder was gelernt
>Ich logge jetzt mal nur noch die Ausfälle und Werte , keine Zeichenketten mehr....
-
- Beiträge: 494
- Registriert: 29.04.2014, 18:38
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 9 Mal
Re: Timerausfall - benötige Hilfe
Hallo
Thema Workaround oder Alternative
Ich bin ja schon immer der Meinung ein "cronjob" funkioniert zu 100%. Das wollte ich zur Sicherheit auch auf der Test-CCU verifizieren.
Ergebniss 100%
Gestern ein Shellscript erstellt und um 16:00 einen cronjob aktiviert.
Ist auch nicht wirklich schwer die ersten 3 Zeilen schreiben dann das Testsrcipt nehmen und noch eine } am Ende fertig.
cronjob
* * * * * /usr/local/x;sleep 1;/usr/local/x;sleep 1;/usr/local/x;sleep 1;/usr/local/x;sleep 1;/usr/local/x;sleep 1;/usr/local/x;sleep 1
Zählerstand 18:00 9360
9360 / 6 / 60 = 26
passt 26 Stunden ohne Fehler.
Teil des Systemsprotokoll Gruß
Bulli
Thema Workaround oder Alternative
Ich bin ja schon immer der Meinung ein "cronjob" funkioniert zu 100%. Das wollte ich zur Sicherheit auch auf der Test-CCU verifizieren.
Ergebniss 100%
Gestern ein Shellscript erstellt und um 16:00 einen cronjob aktiviert.
Code: Alles auswählen
################ cat /usr/local/x
#!/bin/tclsh
load tclrega.so
rega_script {
string lSysvarCounterName = "CCU-TimerControl-Counter";
string lSysvarInfoName = "CCU-TimerControl-Info";
!---------------Ende Einstellungen
object lSysvars = dom.GetObject(ID_SYSTEM_VARIABLES);
object lSrc = dom.GetObject("$src$");
object lThis = dom.GetObject("$this$");
object lSysvarCounter = lSysvars.Get(lSysvarCounterName);
object lSysvarInfo = lSysvars.Get(lSysvarInfoName);
integer lCounter = 0;
string lInfo = "TimerControl: " # currenttime.ToString();
if(lThis)
{
lInfo = lInfo # " " # lThis.Name();
}
if(lSysvarCounter)
{
lCounter = lSysvarCounter.Value();
if(lCounter > 1000000000)
{
lCounter = 0;
}
lSysvarCounter.State(lCounter + 1);
}
if(lSysvarInfo)
{
if(lSrc)
{
if(lSrc.Type() == OT_CALENDARDP)
{
lInfo = lInfo # " ID: " # lSrc.ID();
lInfo = lInfo # " TS: " # (lSrc.Timestamp()).ToString();
lInfo = lInfo # " LTS: " # (lSrc.LastTimestamp()).ToString();
lInfo = lInfo # " N: " # (lSrc.Next()).ToString();
}
else
{
lInfo = lInfo # " ausgelöst durch " # lSrc.ID();
}
}
else
{
lInfo = lInfo # " manuell gestartet";
}
lSysvarInfo.State(lInfo);
}
}
cronjob
* * * * * /usr/local/x;sleep 1;/usr/local/x;sleep 1;/usr/local/x;sleep 1;/usr/local/x;sleep 1;/usr/local/x;sleep 1;/usr/local/x;sleep 1
Zählerstand 18:00 9360
9360 / 6 / 60 = 26
passt 26 Stunden ohne Fehler.
Teil des Systemsprotokoll Gruß
Bulli
Re: Timerausfall - benötige Hilfe
Habe ich direkt im Skript auf Seite 17 gerade gemacht.Bulli hat geschrieben:Hier müßte BadenPower nur das Kontrollscript verschönern.
.
- 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: Timerausfall - benötige Hilfe
Nächster Versuch :
Nun steht sogar der Resettimer ....
Anbei das Syslog - Leider vergessen auf Alles Loggen zu stellen, daher nur Fehler
Grüße
Tom
Nun steht sogar der Resettimer ....
Anbei das Syslog - Leider vergessen auf Alles Loggen zu stellen, daher nur Fehler
Grüße
Tom
- Dateianhänge
-
- homematic-ccu2-2016-12-06.log
- (80.22 KiB) 40-mal heruntergeladen
- uwe111
- Beiträge: 4827
- Registriert: 26.02.2011, 22:22
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 246 Mal
- Kontaktdaten:
Re: Timerausfall - benötige Hilfe
Hallo Bulli,
Das funktioniert dann auch völlig unabhängig von der CCU-Logikschicht und man spart sich die Änderung der crontab, weil diese Änderung nach dem nächsten FW-Update wahrscheinlich wieder weg ist.
Viele Grüße
Uwe
Und falls das CUxD-AddOn installiert ist, kann beim CUxD System.Timer() die folgende CMD_EXEC-Zeile eingetragen werden.Bulli hat geschrieben:Ich bin ja schon immer der Meinung ein "cronjob" funkioniert zu 100%. Das wollte ich zur Sicherheit auch auf der Test-CCU verifizieren.
Ergebniss 100%
Code: Alles auswählen
/usr/local/x
Viele Grüße
Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN Download: CUxD 2.11, SSH KeyDir
SPENDEN Download: CUxD 2.11, SSH KeyDir
-
- Beiträge: 494
- Registriert: 29.04.2014, 18:38
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 9 Mal
Re: Timerausfall - benötige Hilfe
Hallo
@Tom das neue Script geht nicht warum auch immer. Sind zum alten eigentlich nicht viele Änderungen.
Das ist ja nur für einen Workaround. Da gibt es viele Möglichkeiten das sollten wir erst mal auf Eis legen.
@Uwe danke für den Hinweis. Hier geht es aber um meine Test CCU, da ist Null Fremdsoftware drauf um endlich mal festzustellen was der CCU Timer macht oder eben nicht macht. Auf meiner Prod CCU ist natürlich CuxD drauf, das spart mir Geld und ist eine einfache Möglichkeit meine nicht HM Sensoren anzuschließen.
Cronjobs bleiben erhalten. Das ist zum Glück kein Problem die werden im schreibbaren Bereich abgelegt.
Zurück zu cronjobs und CCU Timer, wann sollte man CCU Timer nicht einsetzen auch wenn Sie zuverlässig funktionieren würden?
Was viele vielleicht nicht bedenken aber im schlechtesten Fall zum total Ausfall/Blockieren vieler Timer führen kann. Sind Aktion wie Wetter Tanken Netatmo usw. von Internet Seiten abzurufen und in der CCU zu verarbeiten.
1 Beispiel z.B Spritpreise abfragen sagen wir alle 10 Minuten dauert normal 3-10 Sekunden. Jetzt ist die Seite Ausgelastet/Nicht erreichbar, läuft halt jetzt bis zu Timeout sag wir 5 Minuten. Jetzt haben wir noch einen Timer der alle Stunde und 1 Minute läuft und der Frau sagt das Sie die Beste ist. Im schlecht Fall und das kommt immer wieder mal vor läuft der 1 Timer noch und der 2 wird nicht ausgeführt und schon ist der WAF Faktor im Keller. Wir kommen noch Hause und hören das Homematic doch scheisse ist und haben nur ??? im Kopf
2 Beispiel der Internetanschluss ist gestört. Kommt auch vor siehe letzte Woche Telekom. Bei Kabel Deutschland jetzt Vodafon kann es auch mehre Tage Ausfallen alles schon erlebt. In diesen Fall laufen dann wahrscheinlich X Timer nicht mehr. In diesen Fall sind wir natürlich auf Dienstreise oder im Urlaub. Jetzt können wir auch über VPN nicht mehr helfen .................
Warum schreibe in dann nicht schon öfters das man doch cronjobs verwendet sollte?
Viele User (> 60-80%) im Forum haben Windows und kennen sich mit Unix/Linux (noch) nicht aus. Also er Kontraproduktiv.
Mit CuxD Timern hat man für Windowsuser eine machbare Alternative.
Gruß
Bulli
@Tom das neue Script geht nicht warum auch immer. Sind zum alten eigentlich nicht viele Änderungen.
Code: Alles auswählen
root@Bulli-L:/tmp# diff xyz xyz1
3,4c3,4
< rega_script {
< boolean lReactivate = true;
---
> rega_script {
> boolean lReactivate = true;
78,83c78,84
< lProtocolText = "Timerausfall -";
< lProtocolText = lProtocolText # " Programm: '" # lProgram.Name() # "'";
< lProtocolText = lProtocolText # " PrgID: '" # lProgram.ID() # "'";
< lProtocolText = lProtocolText # " TimerID: '" # lTimer.ID() # "'";
< lProtocolText = lProtocolText # " TS: '" # lTimer.Timestamp() # "'";
< lProtocolText = lProtocolText # " N: '" # lTimer.Next() # "'";
---
> lProtocolText = "Timerausfall ";
> lProtocolText = lProtocolText # " Programm: " # lProgram.Name();
> lProtocolText = lProtocolText # " PrgID: " # (lProgram.ID()).ToString();
> lProtocolText = lProtocolText # " TimerID: " # (lTimer.ID()).ToString();
> lProtocolText = lProtocolText # " TS: " # (lTimer.Timestamp()).ToString();
> lProtocolText = lProtocolText # " N: " # (lTimer.Next()).ToString();
> lProtocolText = lProtocolText # " Ende"
130c131
< }
---
> }
@Uwe danke für den Hinweis. Hier geht es aber um meine Test CCU, da ist Null Fremdsoftware drauf um endlich mal festzustellen was der CCU Timer macht oder eben nicht macht. Auf meiner Prod CCU ist natürlich CuxD drauf, das spart mir Geld und ist eine einfache Möglichkeit meine nicht HM Sensoren anzuschließen.
Cronjobs bleiben erhalten. Das ist zum Glück kein Problem die werden im schreibbaren Bereich abgelegt.
Code: Alles auswählen
# pwd
/var/spool/cron
# ll
total 0
227 0 drwxrwxr-x 2 root root 60 Dec 6 07:37 .
220 0 drwxrwxr-x 3 root root 60 Dec 2 09:26 ..
228 0 lrwxrwxrwx 1 root root 19 Dec 2 09:26 crontabs -> /usr/local/crontabs
# cd /usr/local/crontabs
# ll
total 4
65 0 drwxrwxr-x 2 root root 224 Dec 6 07:37 .
1 0 drwxr-xr-x 4 default default 488 Dec 5 18:58 ..
400 4 -rw------- 1 root root 264 Dec 6 07:37 root
# cat root
12 4 * * * /bin/setHWClock.sh
14 4 * * * /bin/SetInterfaceClock 127.0.0.1:2001
#* * * * * /usr/local/x;sleep 1;/usr/local/x;sleep 1;/usr/local/x;sleep 1;/usr/local/x;sleep 1;/usr/local/x;sleep 1;/usr/local/x;sleep 1
#* * * * * /usr/local/xx;sleep 30;/usr/local/xx
Zurück zu cronjobs und CCU Timer, wann sollte man CCU Timer nicht einsetzen auch wenn Sie zuverlässig funktionieren würden?
Was viele vielleicht nicht bedenken aber im schlechtesten Fall zum total Ausfall/Blockieren vieler Timer führen kann. Sind Aktion wie Wetter Tanken Netatmo usw. von Internet Seiten abzurufen und in der CCU zu verarbeiten.
1 Beispiel z.B Spritpreise abfragen sagen wir alle 10 Minuten dauert normal 3-10 Sekunden. Jetzt ist die Seite Ausgelastet/Nicht erreichbar, läuft halt jetzt bis zu Timeout sag wir 5 Minuten. Jetzt haben wir noch einen Timer der alle Stunde und 1 Minute läuft und der Frau sagt das Sie die Beste ist. Im schlecht Fall und das kommt immer wieder mal vor läuft der 1 Timer noch und der 2 wird nicht ausgeführt und schon ist der WAF Faktor im Keller. Wir kommen noch Hause und hören das Homematic doch scheisse ist und haben nur ??? im Kopf
2 Beispiel der Internetanschluss ist gestört. Kommt auch vor siehe letzte Woche Telekom. Bei Kabel Deutschland jetzt Vodafon kann es auch mehre Tage Ausfallen alles schon erlebt. In diesen Fall laufen dann wahrscheinlich X Timer nicht mehr. In diesen Fall sind wir natürlich auf Dienstreise oder im Urlaub. Jetzt können wir auch über VPN nicht mehr helfen .................
Warum schreibe in dann nicht schon öfters das man doch cronjobs verwendet sollte?
Viele User (> 60-80%) im Forum haben Windows und kennen sich mit Unix/Linux (noch) nicht aus. Also er Kontraproduktiv.
Mit CuxD Timern hat man für Windowsuser eine machbare Alternative.
Gruß
Bulli
Re: Timerausfall - benötige Hilfe
Wenn ein Skript in der Abarbeitung durch eine lahme Internetverbindung hängt und 5 Minuten braucht, dann hilft Dir auch ein CUxD-Timer nicht, denn das Event wird auch nicht zu dem Zeitpunkt der Auslösung verarbeitet, sondern auch erst wenn es dann endlich mal an die Reihe kommt.Bulli hat geschrieben:Mit CuxD Timern hat man für Windowsuser eine machbare Alternative.
Das Beste ist einfach auf den ganzen Schnick-Schnak zu verzichten.
.
- uwe111
- Beiträge: 4827
- Registriert: 26.02.2011, 22:22
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 246 Mal
- Kontaktdaten:
Re: Timerausfall - benötige Hilfe
In diesem Fall schon, denn das Event wird überhaupt nicht benötigt.BadenPower hat geschrieben:Wenn ein Skript in der Abarbeitung durch eine lahme Internetverbindung hängt und 5 Minuten braucht, dann hilft Dir auch ein CUxD-Timer nicht, denn das Event wird auch nicht zu dem Zeitpunkt der Auslösung verarbeitet, sondern auch erst wenn es dann endlich mal an die Reihe kommt.
Viele Grüße
Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN Download: CUxD 2.11, SSH KeyDir
SPENDEN Download: CUxD 2.11, SSH KeyDir