Ungetestet mal aufgeräumt.
var hab_mich_lieb_ich_liebe_lange_Texte = dom.GetObject("hab_mich_lieb_ich_liebe_lange_Texte");
kann alles ein. String, Float, eine Systemvariable oder ein Device, der so heißt
var SysVar = dom.GetObject(ID_SYSTEM_VARIABLES).Get("hab_mich_lieb_ich_liebe_lange_Texte");
Ist eine Object auf eine Systemvariable, also nennen wir es auch so.
object oHmlIllt = dom.GetObject(ID_SYSTEM_VARIABLES).Get("hab_mich_lieb_ich_liebe_lange_Texte");
Das erste "o" sagt mir immer welcher Typ es ist.
Generell immer nur einmal eine Definition vornehmen.
string sSysVar_HB_start - Der Name der Systemvariable
object oSVr_HB_start - das Object Systemvariable
Und damit war recht schnell zu finden, das du Zeit/integer mit String addierst;
15 + Apfel = 15 Äpfel?
Hoffe das läuft so, den unteren Teil habe ich mir nicht angesehen.
LG
Michael
Code: Alles auswählen
! Pushover - Skript HZG Info
! ------------------------------
string sSysVar_HB_start = "HZG_Brenner_start";
string sSysVar_HB_stop = 'HZG_Brenner_stop';
string sSysVar_HB_dauer = 'sHZG_Brenner_dauer';
string sSysVar_HB_gesamt = 'HZG_Brenner_dauer_gesamt';
object oSVr_HB_start = dom.GetObject(ID_SYSTEM_VARIABLES).Get(sSysVar_HB_start);
if (!oSVr_HB_start) { WriteLine( oSVr_HB_start # " Variablenname ist falsch"); quit; }
object oSVr_HB_stop = dom.GetObject(ID_SYSTEM_VARIABLES).Get(sSysVar_HB_stop);
if (!oSVr_HB_stop) { WriteLine( sSysVar_HB_stop # " Variablenname ist falsch"); quit; }
object oSVr_HB_gesamt = dom.GetObject(ID_SYSTEM_VARIABLES).Get(sSysVar_HB_gesamt);
if (!oSVr_HB_gesamt) { WriteLine( sSysVar_HB_gesamt # " Variablenname ist falsch"); quit; }
object oSVr_HB_dauer = dom.GetObject(ID_SYSTEM_VARIABLES).Get(sSysVar_HB_dauer);
if (!oSVr_HB_dauer) { WriteLine( sSysVar_HB_dauer # " Variablenname ist falsch"); quit; }
oSVr_HB_stop.State( localtime );
time tHB_start = oSVr_HB_start.Timestamp().ToTime() ;
time tHB_stop = oSVr_HB_stop.Timestamp().ToTime() ;
time tHB_dauer = ((tHB_stop-tHB_start)-(3600+86400)).ToTime();
string sHZG_Brenner_dauer = tHB_dauer.Format("%H:%M h").Replace("31 Tage","00 Tage");
! alten Wert holen
integer HZG_Brenner_dauer_gesamt =oSVr_HB_gesamt.Value();
! kummulieren
HZG_Brenner_dauer_gesamt =HZG_Brenner_dauer_gesamt+tHB_dauer.ToInteger();
! Schreiben der neuen gesamt Brenndauer in die Variable
oSVr_HB_gesamt.State(HZG_Brenner_dauer_gesamt);
oSVr_HB_dauer.State(sHZG_Brenner_dauer); ! Schreiben der Brenner dauer in die Variable
!__Pushover Keys
string po_api_user="xxx";
string po_api_token="xxx";
!__Nachricht
string po_title="Brenner";
string Zeilenumbruch = "\n";
var OWtemp = dom.GetObject("owTemperatur").Value().ToString(1);
string po_message= "AUS / Aussen " # OWtemp #" C" #Zeilenumbruch #"Laufzeit " # sHZG_Brenner_dauer;
! string po_message= po_message + "Brennerpause: " # HZG_Brenner-pause #;
string po_sound="incoming";
string po_priority="-1";
!___Nur benoetigt wenn Prioritaet auf Emergency (1) gesetzt ist
string po_retry="30";
string po_expires="3600";
!___Erlaeuterungen
! Sounds: pushover, bike, bugle, cashregister, classical, cosmic, falling, gamelan, incoming, intermission, magic, mechanical, pianobar, siren, spacealarm, tugboat, alien, climb, persistent, echo, updown, none
! Prioritaeten: 0=Normal; 1=High (AudioVibration auch waehrend quiet hour); 2=Emergency (Meldung Muss bestätigt werden, solange sound/Vibration); -1=Low ; -2=Lowest
! Bei Prio 2: po_retry gibt an (in sekunden), wie hauefig eine Nachricht vom Server geschickt wird (z.B. alle 30s)
! Bei Prio 2: po_expires gibt an (in Sekunden), wie lange nachrichten geschickt werden sollen. Bestätigt der User, stoppt die Benachrichtigung. Beispiel: Alle 30 sekunden wird eine Nachricht geschickt, das passiert eine Stunde lang (1 Stunde = 3600 sekunden).
!------ NICHT MODIFIZIEREN-------
string po_request;
if(po_priority=="2"){
po_request="/usr/local/addons/cuxd/curl -X POST -k -H \"Content-Type: application/x-www-form-urlencoded\" -d \"token=" # po_api_token # "&user=" # po_api_user # "&title=" # po_title # "&priority="# po_priority # "&sound=" # po_sound # "&retry="# po_retry # "&expire=" # po_expires # "&message=" # po_message # "\" https://api.pushover.net/1/messages.json";
}
else{
po_request="/usr/local/addons/cuxd/curl -X POST -k -H \"Content-Type: application/x-www-form-urlencoded\" -d \"token=" # po_api_token # "&user=" # po_api_user # "&title=" # po_title # "&priority="# po_priority # "&sound=" # po_sound # "&message=" # po_message # "\" https://api.pushover.net/1/messages.json";
}
dom.GetObject("CUxD.CUX2801001:3.CMD_EXEC").State(po_request);