Kann man Zeitstempel per Script modifizieren?

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

Antworten
JoDi
Beiträge: 17
Registriert: 22.12.2014, 12:03

Kann man Zeitstempel per Script modifizieren?

Beitrag von JoDi » 15.11.2016, 11:34

Hoffe ich bin in diesem Bereich des Forums richtig.

Folgendes Problem:
Ich errechne mir über den Tag eine mittlere Außentemperatur und speichere diese jeden Abend 23.55h zusammen mit den zu deisem Zeitpunkt aktuellen Tagesverbräuchen an Gas, Strom und Wasser in Systemvariablen weg. Somit habe ich dann im CCU Historian für jeden Tag eine einzige Angabe für die tatsächlichen Tagesendwerte.
Was mir dabei nicht gefällt ist, dass der Zeitstempel natürlich 23.55h ist. Man sieht also im Historian den ganzen Tag eine Linie für den Vortagesverbrauch, die dann naturgemäß erst am Ende des Tages auf den aktuellen Tageswert springt. Bei Export und Nachbearbeitung kein Problem, aber ich hätte gerne im Historian nach Abspeichern der Werte den richtigen Wert im korrekten Tag.

Gibt es eine Möglichkeit per Script zusammen mit dem Wert auch den Zeitstempel eines Datenpunktes zu schreiben?

Damit könnte man dann um 23.55h die Werte schreiben und gleichzeitig den Zeitstempel auf den entsprechenden Tag um 0.01h zurücksetzen.

Mein Datenbankwissen ist sehr rudimentär (vorsichtig ausgedrückt), nicht sicher ob so eine nachträgliche Einbringung in den Historian überhaupt geht und ob er das rückwirkend berücksichtigen würde.

Studium des Forums und der Scriptdokumentation hat mich da bisher nicht weitergebracht.

BadenPower

Re: Kann man Zeitstempel per Script modifizieren?

Beitrag von BadenPower » 16.11.2016, 17:13

JoDi hat geschrieben:Gibt es eine Möglichkeit per Script zusammen mit dem Wert auch den Zeitstempel eines Datenpunktes zu schreiben?
Sorry, dafür habe ich leider noch keine Möglichkeit gefunden.
.

svenp
Beiträge: 630
Registriert: 11.12.2012, 14:24
Hat sich bedankt: 3 Mal
Danksagung erhalten: 4 Mal

Re: Kann man Zeitstempel per Script modifizieren?

Beitrag von svenp » 16.11.2016, 18:44

Hallo, Timestamps verändern sich wenn der Aktor seinen Zustand ändert, selbst wenn z.b. ein Schalter auf an steht und ihm der Befehl an gesendet wird.
Das würde natürlich nur bei Aktoren funktionieren bei denen man den Zustand per Script ändern kann.
Mit Türkontakte etc. würden das nicht funktionieren.

Blöd ist, das das der Aktor unnötig schalten muss und auch Funkverkehr anfällt.

Hilft die das weiter?

BadenPower

Re: Kann man Zeitstempel per Script modifizieren?

Beitrag von BadenPower » 16.11.2016, 20:16

svenp hat geschrieben:Hilft die das weiter?
Nein, nicht wirklich!

1. Weil er den Timestamp in die Vergangenheit setzen möchte.
2. Weil das Geschriebene, mit Verlaub, vollkommener Käse ist.
svenp hat geschrieben:Hallo, Timestamps verändern sich wenn der Aktor seinen Zustand ändert, selbst wenn z.b. ein Schalter auf an steht und ihm der Befehl an gesendet wird.
Das würde natürlich nur bei Aktoren funktionieren bei denen man den Zustand per Script ändern kann.
Mit Türkontakte etc. würden das nicht funktionieren.

Blöd ist, das das der Aktor unnötig schalten muss und auch Funkverkehr anfällt.
Den Timestamp auf den aktuellen Wert zu setzen ist ganz einfach und funktioniert auch ohne einen Aktor zu schalten und selbstverständlich auch bei Sensoren, also auch bei Türkontakten.

Kleines Beispiel:

Code: Alles auswählen

object lDatapoint = (channels.Get("TK Flur Kanal1")).DPByHssDP("STATE");
if(lDatapoint)
{
  WriteLine(lDatapoint.Timestamp());
  WriteLine(lDatapoint.State());  
  WriteLine(lDatapoint.Timestamp());
}
WriteLine("---Ende---");

JoDi
Beiträge: 17
Registriert: 22.12.2014, 12:03

Re: Kann man Zeitstempel per Script modifizieren?

Beitrag von JoDi » 16.11.2016, 21:01

Dachte mir schon, dass das evtl. nicht geht. Wenn man nach langer Recherche im Netz und diesem Forum nichts dazu gefunden hat ist das ein deutliches Anzeichen :D
Schade, aber so hinken die Plots im Historian eben optisch immer einen Tag hinterher. Solange Temperatur und Verbrauch zusammenpassen ist das rückwirkend ein rein kosmetisches Problem ob es einen Tag früher oder später kalt war :D
Falls ich zufällig einen Weg finde, mit dem sich ein Timestamp aktiv beschreiben lässt, gebe ich hier Bescheid.

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“