Kleiner Scriptfehler ?

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
Benutzeravatar
onkeltommy
Beiträge: 1386
Registriert: 07.05.2016, 08:03
Wohnort: Wien
Hat sich bedankt: 28 Mal
Danksagung erhalten: 26 Mal

Kleiner Scriptfehler ?

Beitrag von onkeltommy » 30.03.2018, 22:47

Hallo !

einen hab ich noch.....ich meine Error im Log...

Error: IseSingleCondition::GetValData - invalid object ID [iseCondition.cpp:695]

Der Auslöser ist der SA / SU Script, aber ich finde den Grund des Fehlers nicht.
Die SVs habe ich doppelt kontrolliert, Namen, Groß/Kleinschreibung, Art (Zahl, Logik) stimmen
Alle SVs werden richtig befüllt. Trotzdem kommt der Fehler alle 3 Minuten, wenn das Script angestoßen wird, und klar, auch
wenn ich via Script-testen ausführe

Hab 1:1 aus dem Forum übernommen.....

Code: Alles auswählen

!Berechnung SA und SU Monate Tage KW  
!stall.biz  04.04.2016  Dieses Skript verwendet nur eine (!) Skript-Variable     
!folgende Systemvariablen anlegen
!Minuten_vor_SA"    als Zahl , Wertebereich  -1000 bis +1000
!Minuten_vor_SU"    als Zahl , Wertebereich  -1000 bis +1000
!"Tageszeit_hh.mm"  als Zahl  in h
!"Datum_MM.TT"    als Zahl  
!"Monat"    als Werteliste Januar;Februar;  ...  
!"Monatstag"    als Zahl 
!"Wochennummer"    als Zahl  
!"Woche_gerade"    logisch   wahr ist gerade , unwahr ist ungerade
!"Wochentag"    als Zahl  
!"Jahrestag" als Zahl
!"Jahr" als Zahl 
 
real c_zeit =(system.Date("%M").ToFloat()+ (60.0*system.Date("%H").ToFloat())); 
 
if (c_zeit >720.0) { dom.GetObject("Minuten_vor_SA").State(999); 
  c_zeit = system.SunsetTime("%M").ToFloat() + (60.0*system.SunsetTime("%H").ToFloat());
  c_zeit = c_zeit -  (system.Date("%M").ToFloat()+ (60.0*system.Date("%H").ToFloat()));
  dom.GetObject("Minuten_vor_SU").State(c_zeit); 
}
else {dom.GetObject("Minuten_vor_SU").State(999); 
  c_zeit = system.SunriseTime("%M").ToFloat() + (60.0*system.SunriseTime("%H").ToFloat());
  c_zeit = c_zeit - (system.Date("%M").ToFloat()+ (60.0*system.Date("%H").ToFloat()));
  dom.GetObject("Minuten_vor_SA").State(c_zeit); 
}
 
c_zeit = (1.0*system.Date("%H").ToInteger()) +(0.01*system.Date("%M").ToInteger());                      
dom.GetObject("Tageszeit_hh.mm").State(c_zeit);
 
c_zeit  = (0.01 * system.Date("%d").ToInteger()) + system.Date("%m").ToInteger();
dom.GetObject("Datum_MM.TT").State(c_zeit );
 
c_zeit   = system.Date("%Y").ToInteger();
dom.GetObject("Jahr").State(c_zeit);
 
 
c_zeit   = system.Date("%m").ToInteger();
dom.GetObject("Monat").State(c_zeit  -1);
 
c_zeit    = system.Date("%d").ToInteger();
dom.GetObject("Monatstag").State(c_zeit );
 
c_zeit =  system.Date("%V").ToInteger();
dom.GetObject("Wochennummer").State(c_zeit);
 
if ((c_zeit - 2*(c_zeit/2.0)) == 1) {dom.GetObject("Woche_gerade").State(0);} else {dom.GetObject("Woche_gerade").State(1);}
 
c_zeit = system.Date("%u").ToInteger();
dom.GetObject("Wochentag").State( c_zeit);
 
c_zeit = system.Date("%j").ToInteger();
dom.GetObject("Jahrestag").State( c_zeit);


Seht ihr den Grund ? Danke !! lG Thomas
lG
Thomas
--------------------------
RaspberryMatic 3.73.9.20240130 @ TinkerS (Produktivsystem) & Historian @ SynologyVM & 2x RB3+ @ Nachwuchs

Benutzeravatar
AndiN
Beiträge: 2621
Registriert: 10.06.2015, 08:54
Wohnort: Hennef
Hat sich bedankt: 10 Mal
Danksagung erhalten: 28 Mal

Re: Kleiner Scriptfehler ?

Beitrag von AndiN » 30.03.2018, 23:42

Ich sehe pauschal keinen Grund (wenn die Systemvariablen wirklich korrekt sind).

Für Deinen Fehler gibt es ja nicht so viel Treffer im Forum. Habe die vier Beiträge auch nicht bis zum Ende gelesen. Denke die hast Du schon selber gesehen und es war Nichts Verwertbares dabei?


Was passiert, wenn Du nur einen Teil vom Skript ausführst (unter Skript testen?)
Bsp.:

Code: Alles auswählen

!Berechnung SA und SU Monate Tage KW 
!stall.biz  04.04.2016  Dieses Skript verwendet nur eine (!) Skript-Variable     
!folgende Systemvariablen anlegen
!Minuten_vor_SA"    als Zahl , Wertebereich  -1000 bis +1000
!Minuten_vor_SU"    als Zahl , Wertebereich  -1000 bis +1000
!"Tageszeit_hh.mm"  als Zahl  in h
!"Datum_MM.TT"    als Zahl 
!"Monat"    als Werteliste Januar;Februar;  ... 
!"Monatstag"    als Zahl
!"Wochennummer"    als Zahl 
!"Woche_gerade"    logisch   wahr ist gerade , unwahr ist ungerade
!"Wochentag"    als Zahl 
!"Jahrestag" als Zahl
!"Jahr" als Zahl
 
real c_zeit =(system.Date("%M").ToFloat()+ (60.0*system.Date("%H").ToFloat()));
 
if (c_zeit >720.0) { dom.GetObject("Minuten_vor_SA").State(999);
  c_zeit = system.SunsetTime("%M").ToFloat() + (60.0*system.SunsetTime("%H").ToFloat());
  c_zeit = c_zeit -  (system.Date("%M").ToFloat()+ (60.0*system.Date("%H").ToFloat()));
  dom.GetObject("Minuten_vor_SU").State(c_zeit);
}
else {dom.GetObject("Minuten_vor_SU").State(999);
  c_zeit = system.SunriseTime("%M").ToFloat() + (60.0*system.SunriseTime("%H").ToFloat());
  c_zeit = c_zeit - (system.Date("%M").ToFloat()+ (60.0*system.Date("%H").ToFloat()));
  dom.GetObject("Minuten_vor_SA").State(c_zeit);
}
P.S. Un die Meldung im Log kommt immer wenn Du das Skript testest? Also zweimal testen und direkt zwei Log Einträge.... sonst im drei Minuten Takt (Passend zum Programm Zeit Stempel?) Nicht, dass Du das falsche Skript am Wickel hast? Denke wenn Du es mal für 10 Minuten deaktivierst hören die Logmeldungen auf und somit bestätigt das Dein Verdacht?

Andi
Andi (Greenhorn)

Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control
- Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links

Benutzeravatar
onkeltommy
Beiträge: 1386
Registriert: 07.05.2016, 08:03
Wohnort: Wien
Hat sich bedankt: 28 Mal
Danksagung erhalten: 26 Mal

Re: Kleiner Scriptfehler ?

Beitrag von onkeltommy » 31.03.2018, 00:14

Hallo !

Ich habe mich nun rangetastet (ja hätte ich auch schon vorher machen können.....sry)

-ja klar, wenn ich Programm deaktiviere, sind die Meldungen weg, Zeitstempel passt auch, alle 3 Minuten

Diese Zeile ist es:

dom.GetObject("Wochennummer").State(c_zeit);

Allerdings wird die Variable richtig befüllt (steht auf 13) und ich habe diese auch in ein paar Programmen in Verwendung....

*Kopfkratz"

Edit:
so habe nun eine neue SV "Kalenderwoche" angelegt, diese gleich darunter dazu befüllt. Wert der Woche wird eingetragen.
Wenn ich die Befüllung der SV Wochennummer auskommentiere ist der Fehler weg. Also ist da irgendwas mit der Variable...mit fadem Beigschmack....wenn mal (scheinbar) eine SV spinnt....was ist mir den zig anderen.......oder kannst Du Dir da nen Reim drauf machen ?

Edit noch später...#2

Habe meine Programme nun auf neue SV "Kalenderwoche" umgestellt.....und.....der Fehler tritt schon wieder auf....ich muss mir dass dann am Vormittag mal weiter anschauen und die Programme mal deaktivieren, welche diese SV verwenden. Sind 4 Progs, welche aber nur auf "bei Änderung" abfragen. Bitte...was ist das ?????????????? Die anderen SVs aus dem Script sind ja auch in Verwendung, damit klappt alles......

lG Thomas
lG
Thomas
--------------------------
RaspberryMatic 3.73.9.20240130 @ TinkerS (Produktivsystem) & Historian @ SynologyVM & 2x RB3+ @ Nachwuchs

Benutzeravatar
onkeltommy
Beiträge: 1386
Registriert: 07.05.2016, 08:03
Wohnort: Wien
Hat sich bedankt: 28 Mal
Danksagung erhalten: 26 Mal

Re: Kleiner Scriptfehler ?

Beitrag von onkeltommy » 31.03.2018, 08:28

Guten Morgen.....

Fehler gefunden.....in einem der Programme, wo die Wochennummer bzw. jetzt Kalenderwoche verwendet wurde, war im ersten Wenn-Zweig ein leerer Eintrag drinnen - warum auch immer

Bedingung war:
Wenn SV Kalenderw von 8 bis kleiner 53
Und
SV Pflanzenlicht "Auto" nur prüfen
Und
Systemvariable

Dann
.....blablabla

Warum also die 3te Wenn leer war...keine Ahnung....

Na jedenfalls...vielen Dank und schönes Osterfest

lG
Thomas
lG
Thomas
--------------------------
RaspberryMatic 3.73.9.20240130 @ TinkerS (Produktivsystem) & Historian @ SynologyVM & 2x RB3+ @ Nachwuchs

Benutzeravatar
AndiN
Beiträge: 2621
Registriert: 10.06.2015, 08:54
Wohnort: Hennef
Hat sich bedankt: 10 Mal
Danksagung erhalten: 28 Mal

Re: Kleiner Scriptfehler ?

Beitrag von AndiN » 31.03.2018, 10:52

Sauber. Dir auch ;-)
Andi (Greenhorn)

Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control
- Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links

dieterdorn
Beiträge: 100
Registriert: 07.05.2017, 19:38
System: Alternative CCU (auf Basis OCCU)
Wohnort: nähe Münster

Re: Kleiner Scriptfehler ?

Beitrag von dieterdorn » 31.03.2018, 17:07

onkeltommy hat geschrieben:Guten Morgen.....

.. war im ersten Wenn-Zweig ein leerer Eintrag drinnen - warum auch immer

Wenn SV Kalenderw von 8 bis kleiner 53
Und
SV Pflanzenlicht "Auto" nur prüfen
Und
Systemvariable

Warum also die 3te Wenn leer war...keine Ahnung....
Thomas
Hallo,
das hatte ich auch schon mehrmals. Ich meine aber, dass so etwas nur dann auftrat, wenn ich viele Änderungen in den Programmen (oder viele Neuanlagen) gemacht habe. Habe ich nie rausbekommen und nun auch seit längerem nicht mehr gehabt. Aber wenn Du das mit der aktuellen Version hattest, bedeutet das, dass der Fehler wahrscheinlich immer noch drin ist....Schade, ich hatte so gehofft....


Gruß

Dieter
CCU2 seit 2014 (Echtbetrieb mit ca.73 Geräten)
Raspi seit 2017 (Testbetrieb mit 5 Geräten)
CCU2 im Büro, Uptime 324 Tage
Raspi seit 30.10.2017 (Echtbetrieb mit mehr als 78 Geräten, 140 Programme, 18 Scripte), längste Uptime 184 Tage
Raspi seit 30.10.2017 (Testbetrieb mit als 5 Geräten und Backup-System)
Einige Homematic IP-Geräte sowohl im Echt- als auch Testbetrieb
CuxD, E-Mail, CuxD Highcharts
CCU-Historian seit dem 09.04.2019

Benutzeravatar
onkeltommy
Beiträge: 1386
Registriert: 07.05.2016, 08:03
Wohnort: Wien
Hat sich bedankt: 28 Mal
Danksagung erhalten: 26 Mal

Re: Kleiner Scriptfehler ?

Beitrag von onkeltommy » 01.04.2018, 19:31

Hi

Vorangegangen sind Löschvorgänge con 1x Steckdose (RF) 1x Steckdose (IP) aber nicht an den selben Tagen.
Die Teile waren aber 10000000000%ig nicht in dem Programm verwendet, auch habe ich manuell noch kontrolliert, vorm Löschen, ob keine Programm die zu löschenden Teile verwenden.

Heute habe ich noch eine HM IP PSM gelöscht was mir die CCU2 mit einem Abflug gedankt hat :oops:
lG
Thomas
--------------------------
RaspberryMatic 3.73.9.20240130 @ TinkerS (Produktivsystem) & Historian @ SynologyVM & 2x RB3+ @ Nachwuchs

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“