Timer via Skript mit zwei Zeiten füttern

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Antworten
Benutzeravatar
hanan
Beiträge: 222
Registriert: 15.12.2012, 16:00
Danksagung erhalten: 1 Mal

Timer via Skript mit zwei Zeiten füttern

Beitrag von hanan » 05.11.2016, 15:14

Hallo zusammen
Ich möchte den CUxD-Timer via Skript mit zwei Zeiten füttern.

Leider komme ich da nicht ganz mit der Skriptsprache weiter...

Beispiel:

Code: Alles auswählen

string Tag = system.SunriseTime("%H:%M.%S");
string Nacht = system.SunsetTime("%H:%M.%S");

dom.GetObject("CUxD.CUX2800001:2.TIMER_SET").State(Tag/Nacht);
Hat mir hier bitte jemand einen Tipp.
Besten Dank im Voraus.

Grüsse aus der Schweiz
Liebe Grüsse aus der Schweiz
Andy
_________________________________________________________________________________________________
Raspberrymatic auf NUC unter Proxmox mit RPI-RF-MOD Funkmodul und Antenne Aurel GP868, ca. 19x BidCos-RF und ca. 46x HmIP-RF, ioBroker auf NUC unter Proxmox, 4x Wiffi 3.0, Pulsecounter, Weatherman-Edition

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Timer via Skript mit zwei Zeiten füttern

Beitrag von alchy » 05.11.2016, 23:00

lt. Handbuch ca. Seite 90 solltest im Format:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2800001:1.TIMER_SET").State("14:45:00"); 
einen Timer Setzen können.
Das entspricht jedoch nicht deinem gewähltem Format,

Code: Alles auswählen

string Tag = system.SunriseTime("%H:%M.%S");
da statt : ein . zwischen Minuten und Sekunden ist.

Soll heissen:

Code: Alles auswählen

string Tag = system.SunriseTime("%H:%M:%S");
dom.GetObject("CUxD.CUX2800001:2.TIMER_SET").State(Tag);
oder auch.

Code: Alles auswählen

dom.GetObject("CUxD.CUX2800001:2.TIMER_SET").State(system.SunriseTime("%H:%M:%S"));
Sollte dir einen Timer 2 setzen für den Sonnenaufgang.

Die Zeit bis dahin kannst du dann ebenfalls lt. Handbuch zu auslesen.

Code: Alles auswählen

var Time = dom.GetObject("CUxD.CUX2800001:2.TIMER_GET").State(); 
Time = (Time-3600).ToTime().Format("%H:%M:%S"); 
WriteLine(Time);
Darf man Fragen, warum du einen Timer setzen willst, den es ja ohne Zutun schon gibt?

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Benutzeravatar
hanan
Beiträge: 222
Registriert: 15.12.2012, 16:00
Danksagung erhalten: 1 Mal

Re: Timer via Skript mit zwei Zeiten füttern

Beitrag von hanan » 06.11.2016, 09:45

Hallo Alchy
Besten Dank für die Erläuterungen. Das mit dem . anstelle des Kommas war ein Schreibfehler in der Fragestellung.

Ich würde gerne bei gewissen Bedienungen die Start und die Endzeit via Skript in den Timer schreiben.
Sonnenaufgang- und Sonnenuntergang sind nur als Beispiel zu betrachten.

Der Timer sollte dann mit den errechneten Werten so aussehen:
CUxD-Timer 2.jpg
Ist dieses überhaupt möglich, oder muss ich die Startzeit und die errechnete Differenz an den Timer übergeben?

Gruess aus der Schweiz
Liebe Grüsse aus der Schweiz
Andy
_________________________________________________________________________________________________
Raspberrymatic auf NUC unter Proxmox mit RPI-RF-MOD Funkmodul und Antenne Aurel GP868, ca. 19x BidCos-RF und ca. 46x HmIP-RF, ioBroker auf NUC unter Proxmox, 4x Wiffi 3.0, Pulsecounter, Weatherman-Edition

paul53
Beiträge: 2554
Registriert: 26.04.2012, 20:42
Wohnort: Berlin
Danksagung erhalten: 15 Mal

Re: Timer via Skript mit zwei Zeiten füttern

Beitrag von paul53 » 06.11.2016, 10:36

hanan hat geschrieben:

Code: Alles auswählen

string Tag = system.SunriseTime("%H:%M.%S");
string Nacht = system.SunsetTime("%H:%M.%S");

dom.GetObject("CUxD.CUX2800001:2.TIMER_SET").State(Tag/Nacht);
Da die Zeiten an CUxD als Zeicheketten übergeben werden, sollten 2 Zeiten auch per Zeichenkettenverknüpfung gebildet werden.

Code: Alles auswählen

string Tag = system.SunriseTime("%H:%M:%S");
string Nacht = system.SunsetTime("%H:%M:%S");

dom.GetObject("CUxD.CUX2800001:2.TIMER_SET").State(Tag#"/"#Nacht);
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)

Benutzeravatar
hanan
Beiträge: 222
Registriert: 15.12.2012, 16:00
Danksagung erhalten: 1 Mal

Re: Timer via Skript mit zwei Zeiten füttern

Beitrag von hanan » 06.11.2016, 11:50

Hallo Paul53
Supi. das wars...

Wieder etwas dazugelernt.

Noch eine kurze Frage:
Gibt es eine Möglichkeit den Timer-Status via Skript von 0 auf 1 zu stellen?
Möchte nicht immer einen Tag warten bis der Timer richtig funktioniert.
Liebe Grüsse aus der Schweiz
Andy
_________________________________________________________________________________________________
Raspberrymatic auf NUC unter Proxmox mit RPI-RF-MOD Funkmodul und Antenne Aurel GP868, ca. 19x BidCos-RF und ca. 46x HmIP-RF, ioBroker auf NUC unter Proxmox, 4x Wiffi 3.0, Pulsecounter, Weatherman-Edition

Benutzeravatar
uwe111
Beiträge: 4820
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 246 Mal
Kontaktdaten:

Re: Timer via Skript mit zwei Zeiten füttern

Beitrag von uwe111 » 06.11.2016, 18:07

hanan hat geschrieben:Gibt es eine Möglichkeit den Timer-Status via Skript von 0 auf 1 zu stellen?
Ja, der Datenpunkt ist auch beschreibbar.

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

Antworten

Zurück zu „CUxD“