1. das mit dem kontrollierten start werde ich demnächst hier neu publizieren:
http://homematic-forum.de/forum/viewtop ... 18&t=21920
2. das mit wann wurde welches programm das letzte mal gestartet mache ich so:
Code: Alles auswählen
! Sendet letzte Programm Benutzung mittels curl an iFoen
string infolist;
var infolist = "Letzte Verwendung eines Programmes" # "\n\n";
infolist = infolist # dom.GetObject("A Anfangsinit 0").ProgramLastExecuteTime() # "\t" # "A Anfangsinit 0" # "\n";
infolist = infolist # dom.GetObject("A Anfangsinit 1").ProgramLastExecuteTime() # "\t" # "A Anfangsinit 1" # "\n";
infolist = infolist # dom.GetObject("Alarm Alarmanlage").ProgramLastExecuteTime() # "\t" # "Alarm Alarmanlage" # "\n";
infolist = infolist # dom.GetObject("Alarm Batterieladungen").ProgramLastExecuteTime() # "\t" # "Alarm Batterieladungen" # "\n";
infolist = infolist # dom.GetObject("Alarm Bewegungen").ProgramLastExecuteTime() # "\t" # "Alarm Bewegungen" # "\n";
infolist = infolist # dom.GetObject("Alarm Blinklichter").ProgramLastExecuteTime() # "\t" # "Alarm Blinklichter" # "\n";
infolist = infolist # dom.GetObject("Alarm Co2melder").ProgramLastExecuteTime() # "\t" # "Alarm Co2melder" # "\n";
infolist = infolist # dom.GetObject("Alarm Feuermelder").ProgramLastExecuteTime() # "\t" # "Alarm Feuermelder" # "\n";
infolist = infolist # dom.GetObject("Alarm Temperaturen").ProgramLastExecuteTime() # "\t" # "Alarm Temperaturen" # "\n";
infolist = infolist # dom.GetObject("Alarm Wasser Feuchte").ProgramLastExecuteTime() # "\t" # "Alarm Wasser Feuchte" # "\n";
infolist = infolist # dom.GetObject("Check Bewegung").ProgramLastExecuteTime() # "\t" # "Check Bewegung" # "\n";
infolist = infolist # dom.GetObject("Check FT off").ProgramLastExecuteTime() # "\t" # "Check FT off" # "\n";
infolist = infolist # dom.GetObject("Check iPhone").ProgramLastExecuteTime() # "\t" # "Check iPhone" # "\n";
infolist = infolist # dom.GetObject("Check Kaffee").ProgramLastExecuteTime() # "\t" # "Check Kaffee" # "\n";
infolist = infolist # dom.GetObject("Check Lichter AUS").ProgramLastExecuteTime() # "\t" # "Check Lichter AUS" # "\n";
infolist = infolist # dom.GetObject("Check Speaker").ProgramLastExecuteTime() # "\t" # "Check Speaker" # "\n";
infolist = infolist # dom.GetObject("Check Speaker ON").ProgramLastExecuteTime() # "\t" # "Check Speaker ON" # "\n";
infolist = infolist # dom.GetObject("Check Speaker OFF").ProgramLastExecuteTime() # "\t" # "Check Speaker OFF" # "\n";
infolist = infolist # dom.GetObject("Check Tageszeit").ProgramLastExecuteTime() # "\t" # "Check Tageszeit" # "\n";
infolist = infolist # dom.GetObject("Check Wetter").ProgramLastExecuteTime() # "\t" # "Check Wetter" # "\n";
infolist = infolist # dom.GetObject("Heizung Buero").ProgramLastExecuteTime() # "\t" # "Heizung Buero" # "\n";
infolist = infolist # dom.GetObject("Heizung Buero Peter").ProgramLastExecuteTime() # "\t" # "Heizung Buero Peter" # "\n";
infolist = infolist # dom.GetObject("Heizung Dusche/Bad oben").ProgramLastExecuteTime() # "\t" # "Heizung Dusche/Bad oben" # "\n";
infolist = infolist # dom.GetObject("Heizung Dusche/HEingang/Gang unten").ProgramLastExecuteTime() # "\t" # "Heizung Dusche/HEingang/Gang unten" # "\n";
infolist = infolist # dom.GetObject("Heizung Gaeste").ProgramLastExecuteTime() # "\t" # "Heizung Gaeste" # "\n";
infolist = infolist # dom.GetObject("Heizung Kino").ProgramLastExecuteTime() # "\t" # "Heizung Kino" # "\n";
infolist = infolist # dom.GetObject("Heizung Kueche/WZEingang").ProgramLastExecuteTime() # "\t" # "Heizung Kueche/WZEingang" # "\n";
infolist = infolist # dom.GetObject("Heizung Schlafen").ProgramLastExecuteTime() # "\t" # "Heizung Schlafen" # "\n";
infolist = infolist # dom.GetObject("Heizung Wohnen/Essen").ProgramLastExecuteTime() # "\t" # "Heizung Wohnen/Essen" # "\n";
infolist = infolist # dom.GetObject("Steuerung Alarmanlage").ProgramLastExecuteTime() # "\t" # "Steuerung Alarmanlage" # "\n";
infolist = infolist # dom.GetObject("Steuerung Licht Garten").ProgramLastExecuteTime() # "\t" # "Steuerung Licht Garten" # "\n";
infolist = infolist # dom.GetObject("Steuerung Licht Haus").ProgramLastExecuteTime() # "\t" # "Steuerung Licht Haus" # "\n";
infolist = infolist # dom.GetObject("Steuerung Musik").ProgramLastExecuteTime() # "\t" # "Steuerung Musik" # "\n";
infolist = infolist # dom.GetObject("Steuerung PoolWP").ProgramLastExecuteTime() # "\t" # "Steuerung PoolWP" # "\n";
infolist = infolist # dom.GetObject("Steuerung Rolladen aussen").ProgramLastExecuteTime() # "\t" # "Steuerung Rolladen aussen" # "\n";
infolist = infolist # dom.GetObject("Steuerung Rolladen innen").ProgramLastExecuteTime() # "\t" # "Steuerung Rolladen innen" # "\n";
infolist = infolist # dom.GetObject("Steuerung Rolladen Garagen").ProgramLastExecuteTime() # "\t" # "Steuerung Rolladen Garagen" # "\n";
infolist = infolist # dom.GetObject("Steuerung Server/Boiler").ProgramLastExecuteTime() # "\t" # "Steuerung Server/Boiler" # "\n";
infolist = infolist # dom.GetObject("Steuerung Sonnenstoren").ProgramLastExecuteTime() # "\t" # "Steuerung Sonnenstoren" # "\n";
infolist = infolist # dom.GetObject("Steuerung Speaker").ProgramLastExecuteTime() # "\t" # "Steuerung Speaker" # "\n";
infolist = infolist # dom.GetObject("Steuerung Statusanzeige").ProgramLastExecuteTime() # "\t" # "Steuerung Statusanzeige" # "\n";
infolist = infolist # dom.GetObject("Steuerung Venti Klappen").ProgramLastExecuteTime() # "\t" # "Steuerung Venti Klappen" # "\n";
infolist = infolist # dom.GetObject("Steuerung Venti Zustand").ProgramLastExecuteTime() # "\t" # "Steuerung Venti Zustand" # "\n";
infolist = infolist # dom.GetObject("System Geraete Ping").ProgramLastExecuteTime() # "\t" # "System Geraete Ping" # "\n";
infolist = infolist # dom.GetObject("System ProgAktivDeaktiv").ProgramLastExecuteTime() # "\t" # "System ProgAktivDeaktiv" # "\n";
infolist = infolist # dom.GetObject("System ProgTraffic").ProgramLastExecuteTime() # "\t" # "System ProgTraffic" # "\n";
infolist = infolist # dom.GetObject("Alarmmeldungen anzeigen").ProgramLastExecuteTime() # "\t" # "Alarmmeldungen anzeigen" # "\n";
infolist = infolist # dom.GetObject("Mitternacht").ProgramLastExecuteTime() # "\t" # "Mitternacht" # "\n";
infolist = infolist # dom.GetObject("Regentagesmenge aktualisieren").ProgramLastExecuteTime() # "\t" # "Regentagesmenge aktualisieren" # "\n";
infolist = infolist # dom.GetObject("Regentagesmenge zuruecksetzen").ProgramLastExecuteTime() # "\t" # "Regentagesmenge zuruecksetzen" # "\n";
infolist = infolist # dom.GetObject("Servicemeldungen anzeigen").ProgramLastExecuteTime() # "\t" # "Servicemeldungen anzeigen" # "\n";
infolist = infolist # dom.GetObject("Servicemeldungen aufraeumen").ProgramLastExecuteTime() # "\t" # "Servicemeldungen aufraeumen" # "\n";
dom.GetObject("MailTo").State("mail@mail.ch; prowlaccount@api.prowlapp.com");
dom.GetObject("MailSubject").State("HomeMatic Letzte Program Nutzung");
dom.GetObject("MailInfo").State("Letzte Programm Nutzung:");
dom.GetObject("MailMessage").State(infolist);
string stdout;
string stderr;
system.Exec("/etc/config/addons/email/email 01",&stdout,&stderr);
Code: Alles auswählen
! Dieses Script setzt die Systemvariable "Anwesend" auf zu Hause oder abwesend je nach Status iPhoneMZ iPhonePE
! Aufgrund der zuletzt aktualisierten iPhone Variablen wird auch Tor beim Heimkommen geoeffnet
! dazu zuerst die aktuelle Zeit auslesen
time now = system.Date("%Y-%m-%d %H:%M:%S").ToTime(); ! wie spät ist es jetzt?
integer jetzt = now.ToInteger();
! Jetzt auslesen welches iPhone in den letzten Sekunden den Status geaendert haben
! iFoen
time ziFoen = dom.GetObject("Zone iFoen").Timestamp();
integer timeiFoen = ziFoen.ToInteger();
integer diffziFoen = jetzt.ToInteger() - timeiFoen.ToInteger();
! iQuaki
time ziQuaki = dom.GetObject("Zone iQuaki").Timestamp();
integer timeiQuaki = ziQuaki.ToInteger();
integer diffziQuaki = jetzt.ToInteger() - timeiQuaki.ToInteger();
! iCar
time ziCar = dom.GetObject("Zone iCar").Timestamp();
integer timeiCar = ziCar.ToInteger();
integer diffziCar = jetzt.ToInteger() - timeiCar.ToInteger();
! iBookBook
time ziBookBook = dom.GetObject("Zone iBookBook").Timestamp();
integer timeiBookBook = ziBookBook.ToInteger();
integer diffziBookBook = jetzt.ToInteger() - timeiBookBook.ToInteger();
! Sprechen dass Haus verlassen wird
if (((diffziFoen < 60) && (dom.GetObject("Zone iFoen").State() == false)) && ((diffziQuaki < 60) && (dom.GetObject("Zone iQuaki").State() == false))) {
dom.GetObject("InfoLight").State("1,1,108000,33,33,33,0,0,0,0,0,0,0");
dom.GetObject("InfoSpeak").State("1,2,108000,0,84,42,43,45");
dom.GetObject("InfoToDo").State("4");
var ProgRun = dom.GetObject("Steuerung Speaker");
ProgRun.ProgramExecute();
dom.GetObject('Anwesenheit').State(false);
dom.GetObject("Ambiente Haus").State(true);
}
...
Code: Alles auswählen
! Dieses Script setzt die Systemvariable "Anwesend" auf zu Hause oder abwesend je nach Status iPhoneMZ iPhonePE
! Aufgrund der zuletzt aktualisierten iPhone Variablen wird auch Tor beim Heimkommen geoeffnet
var ProgRun = dom.GetObject("Steuerung Speaker");
! Sprechen dass Haus verlassen wird
if (((((system.Date("%Y-%m-%d %H:%M:%S").ToTime()).ToInteger() - (dom.GetObject("Zone iFoen").Timestamp()).ToInteger()) < 60) && (dom.GetObject("Zone iFoen").Value() == false)) && ((((system.Date("%Y-%m-%d %H:%M:%S").ToTime()).ToInteger() - (dom.GetObject("Zone iQuaki").Timestamp()).ToInteger()) < 60) && (dom.GetObject("Zone iQuaki").Value() == false))) {
dom.GetObject("InfoSpeak").State("1,2,108000,78,84,42,43,45");
dom.GetObject("InfoToDo").State("4");
ProgRun.ProgramExecute();
}
...
Code: Alles auswählen
if (((((system.Date("%Y-%m-%d %H:%M:%S").ToTime()).ToInteger() - (dom.GetObject("Zone iFoen").Timestamp()).ToInteger()) < 60) && (dom.GetObject("Zone iFoen").Value() == false)) && ((((system.Date("%Y-%m-%d %H:%M:%S").ToTime()).ToInteger() - (dom.GetObject("Zone iQuaki").Timestamp()).ToInteger()) < 60) && (dom.GetObject("Zone iQuaki").Value() == false))) {
...