Hallo „Wissende“,
ich würde so gerne euren Think-Tank noch einmal um Hilfe bitten.
Es geht darum, für einen Aktor die Funktion ON_TIME zu nutzen. Angenommen, ich habe 30 Sekunden vorgegeben, muss aber den Vorgang nach 10 Sekunden unterbrechen.
Ich möchte nun die verstrichene Zeit (10) von der Gesamtzeit (30) abziehen und nach der Unterbrechung den Aktor für die fehlende Zeit (20) neu starten.
Ich habe leider nichts Passendes im Forum entdecken können. Hat jemand vielleicht eine Idee, um das in einem Script zu realisieren?
Wie immer wäre ich sehr dankbar.
Aktor-Einschaltzeit anpassen
Moderator: Co-Administratoren
-
- Beiträge: 9681
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 700 Mal
- Danksagung erhalten: 1626 Mal
Re: Aktor-Einschaltzeit anpassen
Eventuell mit einem CUXD Timer.
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 +++
-
- Beiträge: 551
- Registriert: 17.04.2021, 17:12
- System: CCU
- Hat sich bedankt: 27 Mal
- Danksagung erhalten: 125 Mal
Re: Aktor-Einschaltzeit anpassen
Hallo Boris
Falls du noch eine weitere Idee gebrauchen kannst....
Der ON_TIME - Datenpunkt ist leider nur schreibend definiert. Da kann man also nicht die Restzeit auslesen.
Man muss sich also alles errechnen und ggf. merken.(Systemvariable)
So kannst du z.B. die Schaltzeitpunkte eines Kanals ermitteln und Zeitdifferenzen berechnen:
Vielleicht hilft es dir weiter.
Falls du noch eine weitere Idee gebrauchen kannst....
Der ON_TIME - Datenpunkt ist leider nur schreibend definiert. Da kann man also nicht die Restzeit auslesen.
Man muss sich also alles errechnen und ggf. merken.(Systemvariable)
So kannst du z.B. die Schaltzeitpunkte eines Kanals ermitteln und Zeitdifferenzen berechnen:
Code: Alles auswählen
!letzte Schaltzeit ermitteln lesbar und Rechnen
string Schaltzeit = dom.GetObject("HM-LC-SW4-SM.JEQ0143962:1").LastTimestamp().Format("%d.%m.%y %T Uhr");
WriteLine(Schaltzeit);
integer Schaltzeilt_numerisch = dom.GetObject("HM-LC-SW4-SM.JEQ0143962:1").Timestamp().ToInteger();
WriteLine(Schaltzeilt_numerisch);
!aktuelle Zeit lesbar und zum Rechnen
string Jetzt = system.Date().ToTime().Format("%d.%m.%y %T Uhr");
WriteLine(Jetzt);
integer Jetzt_numerisch = system.Date().ToTime().ToInteger();
WriteLine(Jetzt_numerisch);
!Zeitdifferenz zum Rechnen und lesbar
integer DifferenzSek = Jetzt_numerisch - Schaltzeilt_numerisch;
WriteLine("Differenz in Sekunden: " # DifferenzSek);
string DifferenzZeit = DifferenzSek.ToTime().Format("%T");
WriteLine("Differenz in Std/Min/Sek: " # DifferenzZeit);
!oder über Zeitpunkt der Änderungen einer Variablen
var varname = "deineVariable";
integer varzeit = dom.GetObject(ID_SYSTEM_VARIABLES).Get(varname).LastTimestamp().ToInteger();
WriteLine(dom.GetObject(ID_SYSTEM_VARIABLES).Get(varname).LastTimestamp());
WriteLine(varzeit);
Gruß
Harry
Harry
Re: Aktor-Einschaltzeit anpassen
Hallo Harry,
danke für die sehr hilfreichen Anregungen zum "Time Management".
Damit werde ich die richtige Lösung zu meiner Aufgabe finden.
Super Hilfe!
danke für die sehr hilfreichen Anregungen zum "Time Management".
Damit werde ich die richtige Lösung zu meiner Aufgabe finden.
Super Hilfe!
Gruß Boris