"Letzte Ausführung" eines Programms per Script feststellen

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
bumaas
Beiträge: 128
Registriert: 29.03.2010, 16:40
Hat sich bedankt: 4 Mal
Danksagung erhalten: 1 Mal

"Letzte Ausführung" eines Programms per Script feststellen

Beitrag von bumaas » 12.11.2010, 20:17

Hallo zusammen,

eine Frage an die Scriptexperten: Gibt es eine Möglichkeit, per Scriptbefehl auf Zeit einer letzten Programmausführung zuzugreifen.

So nach dem Motto

Code: Alles auswählen

time tLastPerform = dom.GetObject("<Programm Name>").Timestamp();
Die Methode Timestamp() funktioniert jedoch bei Programm Objekten nicht.

Und gleich noch eine Frage: gibt es eine einfache Möglichkeit, die Zeitdifferenz zwischen zwei Zeitpunkten zu errechnen? Mit den Variablen vom Typ "time" lässt sich leider nicht rechnen :(

Viele Grüße

Burkhard

Benutzeravatar
anli
Beiträge: 4326
Registriert: 10.06.2009, 14:01
Wohnort: 20 Min. nördlich von Hannover und bei Bremen
Hat sich bedankt: 1 Mal
Danksagung erhalten: 23 Mal
Kontaktdaten:

Re: "Letzte Ausführung" eines Programms per Script feststell

Beitrag von anli » 12.11.2010, 21:14

bumaas hat geschrieben:Und gleich noch eine Frage: gibt es eine einfache Möglichkeit, die Zeitdifferenz zwischen zwei Zeitpunkten zu errechnen? Mit den Variablen vom Typ "time" lässt sich leider nicht rechnen :(
Du könntest mit den einzelnen Komponten des time-Typs rechnen: http://www.homematic.com/fileadmin/pdfs ... g_V1.2.pdf, Seite 13f.
Herzliche Grüße, anli

Alle Angaben ohne Gewähr und Haftung meinerseits. Verwendung der von mir zur Verfügung gestellten Downloads auf eigene Gefahr. Ich bitte um Verständnis, dass ich aus zeitlichen Gründen keine unaufgeforderte Hilfestellung per PN/Mail geben kann. Bitte allgemeine Fragen ins Forum stellen, hier können viele fähige User viel schneller helfen.

Homematic-Manager v2: einfaches Tool zum Erstellen von Direktverknüpfungen und Bearbeiten von Gerätenamen, -parametern etc. für Homematic und HomematicIP (Alternative diesbzgl. zur WebUI)

Einsteiger-Hilfeerweiterter Skript-Parser

bumaas
Beiträge: 128
Registriert: 29.03.2010, 16:40
Hat sich bedankt: 4 Mal
Danksagung erhalten: 1 Mal

Re: "Letzte Ausführung" eines Programms per Script feststell

Beitrag von bumaas » 12.11.2010, 22:36

anli hat geschrieben:
Du könntest mit den einzelnen Komponten des time-Typs rechnen
Ja, sicherlich. Ist aber recht kompliziert wegen der Schaltjahre ... :cry:

Benutzeravatar
anli
Beiträge: 4326
Registriert: 10.06.2009, 14:01
Wohnort: 20 Min. nördlich von Hannover und bei Bremen
Hat sich bedankt: 1 Mal
Danksagung erhalten: 23 Mal
Kontaktdaten:

Re: "Letzte Ausführung" eines Programms per Script feststell

Beitrag von anli » 12.11.2010, 23:07

Das stimmt. Wusste nicht, dass Du so weit rechnen wolltest - ich dachte, es handelt sich eher um Stunden...
Herzliche Grüße, anli

Alle Angaben ohne Gewähr und Haftung meinerseits. Verwendung der von mir zur Verfügung gestellten Downloads auf eigene Gefahr. Ich bitte um Verständnis, dass ich aus zeitlichen Gründen keine unaufgeforderte Hilfestellung per PN/Mail geben kann. Bitte allgemeine Fragen ins Forum stellen, hier können viele fähige User viel schneller helfen.

Homematic-Manager v2: einfaches Tool zum Erstellen von Direktverknüpfungen und Bearbeiten von Gerätenamen, -parametern etc. für Homematic und HomematicIP (Alternative diesbzgl. zur WebUI)

Einsteiger-Hilfeerweiterter Skript-Parser

rkhomematic
Beiträge: 142
Registriert: 04.12.2009, 09:28
Wohnort: FFM
Danksagung erhalten: 6 Mal

Re: "Letzte Ausführung" eines Programms per Script feststell

Beitrag von rkhomematic » 12.11.2010, 23:49

wegen Differenz von Zeiten schau mal hier nach:

http://homematic-forum.de/forum/viewtop ... =31&t=4218
RASPI 4, HB-RF-USB - USB Funkmodul für piVCCU, RPI-RF-MOD, HomeMatic RS485 Gateway
PIVCCU3, XML-API, E-Mail, Historian, Webmatic, Programme Drucken, CUx-Daemon

Benutzeravatar
a.krypthul
Beiträge: 41
Registriert: 27.01.2008, 13:51
Danksagung erhalten: 1 Mal

Re: "Letzte Ausführung" eines Programms per Script feststell

Beitrag von a.krypthul » 13.11.2010, 10:16

Hallo Burkhart,
bumaas hat geschrieben: Gibt es eine Möglichkeit, per Scriptbefehl auf Zeit einer letzten Programmausführung zuzugreifen.

So nach dem Motto

Code: Alles auswählen

time tLastPerform = dom.GetObject("<Programm Name>").Timestamp();
Und gleich noch eine Frage: gibt es eine einfache Möglichkeit, die Zeitdifferenz zwischen zwei Zeitpunkten zu errechnen? Mit den Variablen vom Typ "time" lässt sich leider nicht rechnen :(
der funktionierende Befehl hierzu lautet

Code: Alles auswählen

time tLastPerform = dom.GetObject("<Programm Name>").ProgramLastExecuteTime();
Zur einfachen Berechnung von Zeitdifferenzen gibt es von nahezu allen "TimeStamp"-Befehlen die Variante "Seconds" welche die Sekunden seit 1.1.1970 als Integer liefert.

also

Code: Alles auswählen

integer tLastPerform = dom.GetObject("<Programm Name>").ProgramLastExecuteTimeSeconds();

Alex

bumaas
Beiträge: 128
Registriert: 29.03.2010, 16:40
Hat sich bedankt: 4 Mal
Danksagung erhalten: 1 Mal

Re: "Letzte Ausführung" eines Programms per Script feststell

Beitrag von bumaas » 14.11.2010, 18:09

Hallo Alex,

super! Das war wonach ich gesucht habe. :D

Mit

Code: Alles auswählen

integer iTimeDiffSecs = system.Date("%Y-%m-%d %H:%M:%S").ToTime().ToInteger()  - dom.GetObject("<Programm Name>").ProgramLastExecuteTimeSeconds();
kann ich nun leicht errechnen, wieviele Sekunden seit der letzten Programmausführung vergangen sind.

Vielen Dank!

Burkhard

joesch
Beiträge: 789
Registriert: 03.02.2007, 14:57
Hat sich bedankt: 65 Mal
Danksagung erhalten: 2 Mal

Re: "Letzte Ausführung" eines Programms per Script feststell

Beitrag von joesch » 10.04.2011, 17:03

Eine kurze Frage dazu: Wie kann ich diese Zeitdifferenz mit einer Systemvariable anzeigen?
Ich dachte, es müsste so gehen:

Code: Alles auswählen

var i = dom.GetObject("i");
i = system.Date("%Y-%m-%d %H:%M:%S").ToTime().ToInteger()  - dom.GetObject("Programmanme").ProgramLastExecuteTimeSeconds();
I ist eine Systemvariable. Beim Typ Zeichen erhalte ich nur "???", beim Typ Zahl nur "0" als Ausgabe.

Vielen Dank und VG - Joesch
System: RaspberryMatic auf Raspberry Pi 3 Model B Rev 1.2 (rpi3) mit RPI-RF-MOD (4.4.22)

Benutzeravatar
anli
Beiträge: 4326
Registriert: 10.06.2009, 14:01
Wohnort: 20 Min. nördlich von Hannover und bei Bremen
Hat sich bedankt: 1 Mal
Danksagung erhalten: 23 Mal
Kontaktdaten:

Re: "Letzte Ausführung" eines Programms per Script feststell

Beitrag von anli » 11.04.2011, 08:33

Hallo.

Du weist i den integer-Wert zu und setzt nicht die Systemvariable darauf. Du kannst die Systemvariable so setzen:

Code: Alles auswählen

var dauer = system.Date("%Y-%m-%d %H:%M:%S").ToTime().ToInteger()  - dom.GetObject("Programmanme").ProgramLastExecuteTimeSeconds();
i.State(dauer);
Herzliche Grüße, anli

Alle Angaben ohne Gewähr und Haftung meinerseits. Verwendung der von mir zur Verfügung gestellten Downloads auf eigene Gefahr. Ich bitte um Verständnis, dass ich aus zeitlichen Gründen keine unaufgeforderte Hilfestellung per PN/Mail geben kann. Bitte allgemeine Fragen ins Forum stellen, hier können viele fähige User viel schneller helfen.

Homematic-Manager v2: einfaches Tool zum Erstellen von Direktverknüpfungen und Bearbeiten von Gerätenamen, -parametern etc. für Homematic und HomematicIP (Alternative diesbzgl. zur WebUI)

Einsteiger-Hilfeerweiterter Skript-Parser

joesch
Beiträge: 789
Registriert: 03.02.2007, 14:57
Hat sich bedankt: 65 Mal
Danksagung erhalten: 2 Mal

Beitrag von joesch » 11.04.2011, 17:06

Besten Dank! :)
System: RaspberryMatic auf Raspberry Pi 3 Model B Rev 1.2 (rpi3) mit RPI-RF-MOD (4.4.22)

Antworten

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