Skript zur Schaltung nach erfüllter Wartezeit
Moderator: Co-Administratoren
-
- Beiträge: 86
- Registriert: 24.03.2012, 11:40
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 2 Mal
Skript zur Schaltung nach erfüllter Wartezeit
Hallo in die Runde,
Leider bekomme ich einfach folgende Aufgabenstellung per Skript nicht hin:
Ich habe das Datum der letzten Schaltung eines Kanals A als sysvar in Form z.B. „21-04-24 16:35-Uhr“.
Wenn ein Kanal B einschaltet, sollen im Rahmen einer Prüfung zu vorgenannter sysvar sieben Tage (eine Woche) addiert werden. Die Uhrzeit ist völlig unwichtig und sollte sogar unberücksichtigt bleiben. Wenn das Ergebnis >hier also z.B. 28-04-24, unabhängig von der Uhrzeit< per aktueller Systemzeit erreicht wurde, soll der Kanal A eingeschaltet werden (wodurch sich durch ein bestehendes Skript die sysvar aktualisiert). Wenn der Abstand von 7 Tagen nicht erreicht wurde, bleibt Kanal A aus.
Für hilfreiche Tips bedanke ich mich schon jetzt.
Leider bekomme ich einfach folgende Aufgabenstellung per Skript nicht hin:
Ich habe das Datum der letzten Schaltung eines Kanals A als sysvar in Form z.B. „21-04-24 16:35-Uhr“.
Wenn ein Kanal B einschaltet, sollen im Rahmen einer Prüfung zu vorgenannter sysvar sieben Tage (eine Woche) addiert werden. Die Uhrzeit ist völlig unwichtig und sollte sogar unberücksichtigt bleiben. Wenn das Ergebnis >hier also z.B. 28-04-24, unabhängig von der Uhrzeit< per aktueller Systemzeit erreicht wurde, soll der Kanal A eingeschaltet werden (wodurch sich durch ein bestehendes Skript die sysvar aktualisiert). Wenn der Abstand von 7 Tagen nicht erreicht wurde, bleibt Kanal A aus.
Für hilfreiche Tips bedanke ich mich schon jetzt.
-
- Beiträge: 577
- Registriert: 17.04.2021, 17:12
- System: CCU
- Hat sich bedankt: 29 Mal
- Danksagung erhalten: 133 Mal
Re: Skript zur Schaltung nach erfüllter Wartezeit
Hier mal ein Beispiel, wie man es machen könnte :
ich musste das Datum aus der SysVar ändern auf 15.4. , damit es HEUTE klappt. morgen auf 16.4. setzen etc.
ich musste das Datum aus der SysVar ändern auf 15.4. , damit es HEUTE klappt. morgen auf 16.4. setzen etc.
Code: Alles auswählen
!alle Zeitangaben auf 12:00 UHr setzen
time heute= ( localtime.Format("%F") # " 12:00:00").ToTime();
string sysvar = "15-04-24 16:35-Uhr";
time alt =("20"#sysvar.Substr(6,2) #sysvar.Substr(2,3)#"-"#sysvar.Substr(0,2)# " 12:00:00").ToTime();
time neu= alt + ( 7*86400);
!Kontrollausgaben - können auskommentiert werden
WriteLine(alt);
WriteLine(neu);
WriteLine(heute);
if ( heute == neu ) {
!mach was z.B.:
WriteLine("7 Tage vergangen")
}
Gruß
Harry
Harry
-
- Beiträge: 86
- Registriert: 24.03.2012, 11:40
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 2 Mal
Re: Skript zur Schaltung nach erfüllter Wartezeit
Zur Verwendung: Ich will an meiner per MQTT angebunden Heizung in den empfohlenen Abständen von 7 Tagen die Warmwasser-Desinfektion starten. Anlass soll dabei die mit definierter Temperatur angeforderderte Warmwasserbereitung sein. Zum Duschen reichen bei unserem 150Liter-Speicher über die Woche 50°C, immer Abends bereitet. Zum Baden braucht man etwas mehr und dort soll dann das auf 70°C erhitzte Wasser mit herhalten. Mit einem derartigen Heizungs- und Warmwasser-Management habe ich meinen Gasverbrauch um sage und schreibe 30% gesenkt!
Also nichts geheimes
Also nichts geheimes
-
- Beiträge: 86
- Registriert: 24.03.2012, 11:40
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 2 Mal
Re: Skript zur Schaltung nach erfüllter Wartezeit
Tyfys hat geschrieben: ↑22.04.2024, 21:28Hier mal ein Beispiel, wie man es machen könnte :
Hallo Tyfys
funktioniert offensichtlich genau so, wie vorgesehen. Nochmals recht herzlichen Dank.
Jetzt sehe ich auch meinen (blöden) Fehler: Ich hatte mit Woche und Tag experimentiert, statt mit Sekunden zu multiplizieren - Manchmal ist man wie vernagelt.
Da ich die nächsten zwei Wochen unterwegs bin, werde ich jetzt noch einen Testausgang mit einer Test-SMS anschließen. Dann kann die Lösung live gehen
- Roland M.
- Beiträge: 9855
- Registriert: 08.12.2012, 15:53
- System: CCU
- Wohnort: Graz, Österreich
- Hat sich bedankt: 255 Mal
- Danksagung erhalten: 1403 Mal
Re: Skript zur Schaltung nach erfüllter Wartezeit
Hallo!
DANN CUxD-Timer starten mit 168 h
SONSTWENN Wassertemperatur > 67°C
DANN CUxD-Timer stoppen
WENN CUxD-Timer = 0
DANN Desinfektion starten
Roland
WENN Wassertemperatur < 63°CVolGra hat geschrieben: ↑22.04.2024, 21:51Zur Verwendung: Ich will an meiner per MQTT angebunden Heizung in den empfohlenen Abständen von 7 Tagen die Warmwasser-Desinfektion starten. Anlass soll dabei die mit definierter Temperatur angeforderderte Warmwasserbereitung sein. Zum Duschen reichen bei unserem 150Liter-Speicher über die Woche 50°C, immer Abends bereitet. Zum Baden braucht man etwas mehr und dort soll dann das auf 70°C erhitzte Wasser mit herhalten.
DANN CUxD-Timer starten mit 168 h
SONSTWENN Wassertemperatur > 67°C
DANN CUxD-Timer stoppen
WENN CUxD-Timer = 0
DANN Desinfektion starten
Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...
- Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
- Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
- Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
- Fehlermeldungen genau abschreiben, besser noch...
- Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!
-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...
-
- Beiträge: 86
- Registriert: 24.03.2012, 11:40
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 2 Mal
Re: Skript zur Schaltung nach erfüllter Wartezeit
Hallo Roland,
danke für die Lösung per CuxD. Letzteres habe ich NOCH nicht installiert und TYFYS hat mir eine Lösung per Skript genannt, die schon im Test läuft
danke für die Lösung per CuxD. Letzteres habe ich NOCH nicht installiert und TYFYS hat mir eine Lösung per Skript genannt, die schon im Test läuft
-
- Beiträge: 86
- Registriert: 24.03.2012, 11:40
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 2 Mal
Re: Skript zur Schaltung nach erfüllter Wartezeit
Tyfys hat geschrieben: ↑22.04.2024, 21:28Code: Alles auswählen
!alle Zeitangaben auf 12:00 UHr setzen time heute= ( localtime.Format("%F") # " 12:00:00").ToTime(); string sysvar = "Letzte_WW-Desinf"; time alt =("20"#sysvar.Substr(6,2) #sysvar.Substr(2,3)#"-"#sysvar.Substr(0,2)# " 12:00:00").ToTime(); ... [/quote] Hallo Tyfys, muß leider noch mal durchkommen-bin doch noch zu sehr Skript-Anfänger. Ich habe die sysvar nun erst mal ordentlich definiert und komme jetzt nicht weiter. Wenn ich den Wert der sysvar manuell ändere, wirft mir das Skript unveränderte Ergebnisse mit alt=20.04.24 aus. Dies stammt offensichtlich aus Deiner Zeile "time alt". Wenn ich dort die sysvar statt der "20" einsetze, wird das Ergebnis falsch formatiert (1970-01-01 01:00:00). Nun verstehe ich nicht den Rest der Zeile. Irgendwo müsste doch der Wert der sysvar übernommen werden :oops: Wäre toll, wenn Du mir noch mal auf die Sprünge hilfst - vielen Dank im Voraus