Wenn Zeitgesteuertes Scripts das letzte Mal aufgerufen wird

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Antworten
Mentopolis
Beiträge: 26
Registriert: 20.09.2013, 22:55

Wenn Zeitgesteuertes Scripts das letzte Mal aufgerufen wird

Beitrag von Mentopolis » 11.12.2014, 20:40

Hallo,

Ich habe ein Script das Zeitgesteuertes alle 10 Minuten von 7 bis 24 Uhr aufgerufen wird. Ab 24 Uhr müsste ich einen Thermostat umschalten. D.h. Es wäre schön zu wissen das dieser Aufruf vom Script der letzte ist .. Geht das irgendwie. Oder Alternativ, wie formuliert man den Else Zweig für die Bedingung "Script alle 10 Minuten von 7 bis 24 Uhr", der dann von 24 bis 7 Uhr aufgerufen wird ohne das ganze wieder als vollständigen If hinzuschreiben weil ich sonst bei einer Änderung an zwei Stellen anpacken muss.

Danke und schönen Abend



Gesendet von meinem iPad mit Tapatalk

Benutzeravatar
Blackeye
Beiträge: 547
Registriert: 15.08.2015, 16:33
Hat sich bedankt: 2 Mal

Re: Wenn Zeitgesteuertes Scripts das letzte Mal aufgerufen w

Beitrag von Blackeye » 26.01.2016, 05:45

Hi,
Ich habe hier ein Script das mir den Zeitpunkt wann eine Variable gesetzt worden ist ausgibt und einen Zeitraum vergleicht.
Du müsstest einfach nur die Uhrzeit vergleichen

Code: Alles auswählen

.        

time timestamp = system.Date("%Y-%m-%d %H:%M:%S").ToTime();

var LastWas = dom.GetObject("pocketControlPushMessage");
var Was = LastWas.Variable();
time Wann2 = LastWas.Timestamp();

integer diff = timestamp.ToInteger() - Wann2.ToInteger();
WriteLine(diff);
if(diff>200)
{
WriteLine(diff);
WriteLine(Wann2)
dom.GetObject("pocketControlPushMessage").State(dom.GetObject("Tankstelle_BFT_e5").Value().ToString(2)#" Euro / von "#dom.GetObject("Tankstelle_Aktualisierung").Value());



if(Was == 0)
{


}
}

Ich hoffe es hilft dir ein wenig. 

Gruß Lars

  

Gesendet von iPhone mit Tapatalk

Benutzeravatar
Sammy
Beiträge: 9172
Registriert: 09.09.2008, 20:47
Hat sich bedankt: 15 Mal
Danksagung erhalten: 174 Mal

Re: Wenn Zeitgesteuertes Scripts das letzte Mal aufgerufen w

Beitrag von Sammy » 26.01.2016, 07:34

@Admin
da es hier nicht um Informationen zum Forum geht, bitte verschieben in den korrekten Bereich.
Links: CCU-Logik, Tipps für Anfänger, WebUI-Doku, Expertenparameter, virtuelle Aktorkanäle
Inventur vom 22.01.14: 516 Kanäle in 165 Geräten, 132 Programme, 270 Direkte Verknüpfungen
Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!

wepuc
Beiträge: 74
Registriert: 03.04.2016, 16:14

Re: Wenn Zeitgesteuertes Scripts das letzte Mal aufgerufen w

Beitrag von wepuc » 27.06.2016, 15:54

Nachdem Apps die letzte Ausführungszeit eines Skripts ausgeben denke ich, dass es auch eine Funktion dafür gibt ;-)

Cash
Beiträge: 1184
Registriert: 09.01.2016, 17:42
Wohnort: Sauerland
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Wenn Zeitgesteuertes Scripts das letzte Mal aufgerufen w

Beitrag von Cash » 28.06.2016, 13:29

wepuc hat geschrieben:Nachdem Apps die letzte Ausführungszeit eines Skripts ausgeben denke ich, dass es auch eine Funktion dafür gibt ;-)
Klar gibt es das:

Das hier ist von Alchy:

Code: Alles auswählen

string sID;
string sLIST = "letzte Verwendung eines Programmes";
object oTmp;
foreach (sID, dom.GetObject(ID_PROGRAMS).EnumUsedIDs()) {
oTmp = dom.GetObject(sID);
if(oTmp){ sLIST = sLIST #"\n" #oTmp.Name() # " : " #oTmp.ProgramLastExecuteTime(); }
}
!hier WriteLine oder aber speichern in Systemvariablen oder Versenden von Mail ....
WriteLine(sLIST);   
und ich glaube das ist von BadenPower (bin ich mir aber nicht ganz sicher)

Code: Alles auswählen

    string message = "<font color='blue'>Letzte Verwendung eines Programmes" #"\n"</font>.";
		message = message #dom.GetObject("PRG PUSH Temperatur Wohnzimmer").ProgramLastExecuteTime() # "\t" # "PRG PUSH Temperatur Wohnzimmer" # "\n";
WriteLine(message);
Beim ersten zeigt es alle Programme und beim zweiten Script halt nur das eine.

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Wenn Zeitgesteuertes Scripts das letzte Mal aufgerufen w

Beitrag von alchy » 28.06.2016, 13:44

Als erstes vielleicht mal die Begrifflichkeiten klären.
Geht es um eine Programmausführung oder Scriptausführung?

Das System speichert die Programmausführung ja schon in einem Zeitstempel, der unter anderem mittels der Funktion .ProgramLastExecuteTime() ausgelesen werden kann.
Obiges Script mal noch mal angepasst:

Code: Alles auswählen

object sec = dom.GetObject( ID_PROGRAMS );
string i;
string slist = "";
foreach(i,sec.EnumUsedIDs()) {
var item=dom.GetObject(i);
var ltime = item.ProgramLastExecuteTime();
if (!ltime == "1970-01-01 01:00:00") { WriteLine ("Programm: "#item.Name() #" letztmalig " #ltime #" gestartet"); }
}


Wird im Programm ein Script aufgerufen, könnte man am Ende des Scriptes aber auch die aktuelle Systemzeit in eine Variable speichern, um den Durchlauf des Scriptes zu speichern.
Möglich ist vieles, kommt ja auf den TE an, was er wirklich will.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

wepuc
Beiträge: 74
Registriert: 03.04.2016, 16:14

Re: Wenn Zeitgesteuertes Scripts das letzte Mal aufgerufen w

Beitrag von wepuc » 29.06.2016, 11:11

danke Alchy, erneut ein kompetenter Beitrag.

Antworten

Zurück zu „HomeMatic allgemein“