Uhrzeit Differenz Script
Moderatoren: jmaus, Co-Administratoren
-
- Beiträge: 222
- Registriert: 26.02.2013, 21:11
- Hat sich bedankt: 39 Mal
Re: Uhrzeit Differenz Script
Dann sag mir wie DU das löst
Das Brenner-Ende benötige ich noch für eine zweite berechnung. Daher beide als SV
-
- Beiträge: 531
- Registriert: 17.04.2021, 17:12
- System: CCU
- Hat sich bedankt: 26 Mal
- Danksagung erhalten: 121 Mal
- Henke
- Beiträge: 1500
- Registriert: 27.06.2022, 20:51
- System: CCU
- Hat sich bedankt: 133 Mal
- Danksagung erhalten: 304 Mal
Re: Uhrzeit Differenz Script
Nope, die Lösung hatte Tyfys schon.
1 Programm mit einem Script und einer Systemvariable.
Programm:
Wenn Brenner an
und Systemvariable aus
-> Systemvariable auf an
Sonst wenn Brenner aus
und Systemvariable auf an
-> Script
Script:
1. Aktelle Zeit - Zeit aus Setzen der Systemvariable = Differenz -> Anzeigen, versenden oder was weiß ich
2. Systemvariable auf aus!
Was dabei in der Systemvariablen steht ist vollkommen egal, da die Zeit aus der Änderung der Variablen genommen wird.
Aber zurück zu deiner Frage: NodeRed macht es einfacher
Wobei sich eigentlich die Frage stellt, was willst du damit?
Die Schaltzyklen der Heizung werte ich über den Historian aus bzw. durch einen Betriebsstundenzähler und lasse mir die aktuellen Werte als Diagramm anzeigen. Scripte, egal ob direkt in der CCU oder NodeRed, sind eher was für eine Steuerung.
1 Programm mit einem Script und einer Systemvariable.
Programm:
Wenn Brenner an
und Systemvariable aus
-> Systemvariable auf an
Sonst wenn Brenner aus
und Systemvariable auf an
-> Script
Script:
1. Aktelle Zeit - Zeit aus Setzen der Systemvariable = Differenz -> Anzeigen, versenden oder was weiß ich
2. Systemvariable auf aus!
Was dabei in der Systemvariablen steht ist vollkommen egal, da die Zeit aus der Änderung der Variablen genommen wird.
Aber zurück zu deiner Frage: NodeRed macht es einfacher
Wobei sich eigentlich die Frage stellt, was willst du damit?
Die Schaltzyklen der Heizung werte ich über den Historian aus bzw. durch einen Betriebsstundenzähler und lasse mir die aktuellen Werte als Diagramm anzeigen. Scripte, egal ob direkt in der CCU oder NodeRed, sind eher was für eine Steuerung.
-
- Beiträge: 222
- Registriert: 26.02.2013, 21:11
- Hat sich bedankt: 39 Mal
Re: Uhrzeit Differenz Script
Irgendwo hängts noch...
Die beiden SV start und stop werden gesetzt, weiter jedoch nichts. Wo hab ich den Fehler?
SV als Typ Zeichenkette
Wenn Brenner ein dann Script
Programm bei Brenner aus
Die beiden SV start und stop werden gesetzt, weiter jedoch nichts. Wo hab ich den Fehler?
SV als Typ Zeichenkette
- HZG_Brenner_start
- HZG_Brenner_stop
- HZG_Brenner_dauer
Wenn Brenner ein dann Script
Code: Alles auswählen
dom.GetObject('HZG_Brenner_start').State(system.Date("%H:%M Uhr"));
...
pushover usw.
Code: Alles auswählen
dom.GetObject('HZG_Brenner_stop').State(system.Date("%H:%M Uhr"));
string SysVarName = "HZG_Brenner_start";
object SVrObj = dom.GetObject(ID_SYSTEM_VARIABLES).Get(SysVarName);
if (SVrObj) {
HZG_Brenner_start = SVrObj.Timestamp().ToTime() ;
} else {
WriteLine("Variablenname ist falsch");
}
string SysVarName = "HZG_Brenner_stop";
object SVrObj = dom.GetObject(ID_SYSTEM_VARIABLES).Get(SysVarName);
if (SVrObj) {
HZG_Brenner_stop = SVrObj.Timestamp().ToTime() ;
} else {
WriteLine("Variablenname ist falsch");
}
var HZG_Brenner_dauer =(((HZG_Brenner_stop-HZG_Brenner_start)-(3600+86400).ToTime()).Format("%d Tage %H:%M h")).Replace("31 Tage","00 Tage");
WriteLine(HZG_Brenner_dauer);
...
pushover usw.
-
- Beiträge: 531
- Registriert: 17.04.2021, 17:12
- System: CCU
- Hat sich bedankt: 26 Mal
- Danksagung erhalten: 121 Mal
Re: Uhrzeit Differenz Script
Diese Zeile war ja nur zur Kontrolle im Skript testen gedacht:
zum Schreiben in deine Systemvariable noch diese danach einfügen :
(die WriteLine - Zeile kann auch entfallen)
Code: Alles auswählen
WriteLine(HZG_Brenner_dauer);
(die WriteLine - Zeile kann auch entfallen)
Code: Alles auswählen
dom.GetObject("HZG_Brenner_dauer").State(HZG_Brenner_dauer); !Schreiben der Brennder dauer in die Variable
Gruß
Harry
Harry
-
- Beiträge: 222
- Registriert: 26.02.2013, 21:11
- Hat sich bedankt: 39 Mal
Re: Uhrzeit Differenz Script
Guten Morgen zusammen
Tipitopi!
Das mit den Variablen klappt soweit.
Ich bekomme die mehrfachauswahl in der Ausgabe aber nicht hin. Es wird ein Scriptfehler angegeben.
Ich wollte die Brennerlaufzeitz / Pumpenpause wie folgt mit ausgeben:
Tipitopi!
Das mit den Variablen klappt soweit.
Ich bekomme die mehrfachauswahl in der Ausgabe aber nicht hin. Es wird ein Scriptfehler angegeben.
Ich wollte die Brennerlaufzeitz / Pumpenpause wie folgt mit ausgeben:
Code: Alles auswählen
! bisheriger Code
string po_message= "Brenner AUS " # OWtemp #" C ";
! gewünschte Änderung
string po_message= "Brenner AUS " # OWtemp #" C " # HZG_Brenner_dauer #;
! evtl mit Zeilenumbruch
string po_message= "Brenner AUS " \n# OWtemp #" C " # HZG_Brenner_dauer #;
-
- Beiträge: 531
- Registriert: 17.04.2021, 17:12
- System: CCU
- Hat sich bedankt: 26 Mal
- Danksagung erhalten: 121 Mal
Re: Uhrzeit Differenz Script
das # darf in den beiden Zeilen am Ende nicht sein !
HZG_Brenner_dauer #; in HZG_Brenner_dauer ; ändern
das # i sorgt für Verkettungen von Zeichenketten.
Wenn danach nichts mehr kommt, gibt es einen Fehler
HZG_Brenner_dauer #; in HZG_Brenner_dauer ; ändern
das # i sorgt für Verkettungen von Zeichenketten.
Wenn danach nichts mehr kommt, gibt es einen Fehler
Gruß
Harry
Harry
-
- Beiträge: 222
- Registriert: 26.02.2013, 21:11
- Hat sich bedankt: 39 Mal
Re: Uhrzeit Differenz Script
Verrückt...
Mit einem kleinen Zusatz, den ich nachgetragen habe, läuft das Script nicht mehr wo ist da der Fehler?
Hier der funktionierende Code:
Das wollte ich am Ende noch hinzu fügen:
Danach erfolgt das Versenden per Pushover, welches mit der obigen Änderung auch nicht mehr ausgeführt wird.
Mit einem kleinen Zusatz, den ich nachgetragen habe, läuft das Script nicht mehr wo ist da der Fehler?
Hier der funktionierende Code:
Code: Alles auswählen
dom.GetObject('HZG_Brenner_stop').State(system.Date("%H:%M Uhr"));
string SysVarName = "HZG_Brenner_start";
object SVrObj = dom.GetObject(ID_SYSTEM_VARIABLES).Get(SysVarName);
if (SVrObj) {
HZG_Brenner_start = SVrObj.Timestamp().ToTime() ;
} else {
WriteLine("Variablenname ist falsch");
}
string SysVarName = "HZG_Brenner_stop";
object SVrObj = dom.GetObject(ID_SYSTEM_VARIABLES).Get(SysVarName);
if (SVrObj) {
HZG_Brenner_stop = SVrObj.Timestamp().ToTime() ;
} else {
WriteLine("Variablenname ist falsch");
}
var HZG_Brenner_dauer =(((HZG_Brenner_stop-HZG_Brenner_start)-(3600+86400).ToTime()).Format("%H:%M h")).Replace("31 Tage","00 Tage");
dom.GetObject("HZG_Brenner_dauer").State(HZG_Brenner_dauer); ! Schreiben der Brennder dauer in die Variable
Code: Alles auswählen
var HZG_Brenner_dauer_gesamt =(((HZG_Brenner_dauer_gesamt+HZG_Brenner_dauer)-(3600+86400).ToTime()).Format("%H:%M h")).Replace("31 Tage","00 Tage");
dom.GetObject("HZG_Brenner_dauer_gesamt").State(HZG_Brenner_dauer_gesamt); ! Schreiben der neuen Brennder dauer in die Variable
-
- Beiträge: 9562
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 696 Mal
- Danksagung erhalten: 1608 Mal
Re: Uhrzeit Differenz Script
Code: Alles auswählen
var HZG_Brenner_dauer_gesamt =(((HZG_Brenner_dauer_gesamt+
Generell: unterteile solche Befehle in einzelne Schritte bist Du den Fehler gefunden hast.
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++