Seite 39 von 43

Re: Universelles Astro/Zeit-Skript für Rolladen, Lampen und mehr

Verfasst: 06.02.2019, 09:29
von G-Punkt
Hallo zusammen!
Mein erstes Posting hier und gleich eine Hilfestellung von Anfänger zu (warscheinlich) ebenfalls Anfänger: :lol:
Ralle14 hat geschrieben:
05.02.2019, 23:29
...Ich habe aber alle Variablen angelegt.
Die Variable !Minuten_vor_S ist doch nicht vorgesehen....
Nein, natürlich nicht! "!Minuten_vor_S" ist nur das Ende der Fehlermeldung, die sich aus den ersten Zeilen des Sriptes ergibt!

Anhand Deiner Fragestellung befürchte ich, daß Du die HM-Scriptsprache nicht verstehst und nicht nachvollziehen kannst, was das Script macht!

Gehe nochmal sämtliche Schritte der Installationsanweisung (Seite 1 dieses Threads) durch und kopiere das Script '1zu1'. Tritt danach immer noch ein Fehler auf, mußt Du wohl an anderer Stelle suchen!

Re: Universelles Astro/Zeit-Skript für Rolladen, Lampen und mehr

Verfasst: 06.02.2019, 17:46
von majacom
majacom hat geschrieben:
04.02.2019, 16:20
Hallo,

ich bin Neu hier und lese seit einiger Zeit mit und habe sehr viel gelernt in dem Forum.
Nun hätte ich auch eine Frage bezgl. eines Scriptes. Vielleicht kann mir hier auch Jemand behilflich sein.

Ich setzte das Astro/Zeit-Skript von hier erfolgreich ein.

Ich würde jetzt noch gerne zwei weitere Variablen mit dem Script setzen lassen und zwar, dass mir zwei Uhrzeiten zusätzlich angezeigt werden.

Ausgabe Variable "Uhrzeit_Aquariumlicht_Sonnenaufgang" (reale Einschaltzeit in HH.MM)

Uhrzeit von 30 Minuten vor SA, aber nicht früher als 6:30 soll berücksichtigt werden

Ausgabe Variable "Uhrzeit:Aquariumlicht_Sonnenuntergang" (reale Ausschaltzeit in HH.MM)

Uhrzeit von 180 Minuten nach SU, aber nicht später als 22:00 soll berücksichtigt werden

Wie ich dies als Wenn-Bedingung im Programmablauf zum Ein/Ausschalten der Beleuchtung realisiere weiß ich, jedoch nicht wie das Script zur Uhrzeitausgabe in einer Variable aussehen soll bei den jeweiligen Bedingungen.

Hat Jemand einen Vorschlag?

Viele Grüße
Markus

Kann mir Jemand behilflich sein?

Re: Universelles Astro/Zeit-Skript für Rolladen, Lampen und mehr

Verfasst: 06.02.2019, 23:14
von majacom

Code: Alles auswählen

real SA1 = (1.0*system.SunriseTime("%H").ToInteger()) + 0.01*system.SunriseTime("%M").ToInteger();
real SA2 = (SA1 - 0.25);
if (SA2 < 6.00) { dom.GetObject("Aquariumlicht an um").State(6.00)}
if (SA2 > 6.00) { dom.GetObject("Aquariumlicht an um").State(SA2)};

real SU1 = (1.0*system.SunsetTime("%H").ToInteger()) + 0.01*system.SunsetTime("%M").ToInteger();
real SU2 = (SU1 + 3.00);
if (SU2 > 21.45) { dom.GetObject("Aquariumlicht aus um").State(21.45)}
if (SU2 < 21.45) { dom.GetObject("Aquariumlicht aus um").State(SU2)}
if (SU2 < 19.30) { dom.GetObject("Aquariumlicht aus um").State(19.30)}
Habe es mal alleine versucht. Es funktioniert soweit!
Wenn Jemand Verbesserungsvorschläge hat, dann bitte schreiben.

Re: Universelles Astro/Zeit-Skript für Rolladen, Lampen und mehr

Verfasst: 07.02.2019, 08:27
von G-Punkt
Mit dem Einsatz von '...else...' gewinnst Du ein ganz klein wenig Rechenzeit! :wink:

Code: Alles auswählen

real SA1 = (1.0*system.SunriseTime("%H").ToInteger()) + 0.01*system.SunriseTime("%M").ToInteger();
real SA2 = (SA1 - 0.25);
if (SA2 < 6.00) { dom.GetObject("Aquariumlicht an um").State(6.00)}
else { dom.GetObject("Aquariumlicht an um").State(SA2)};

real SU1 = (1.0*system.SunsetTime("%H").ToInteger()) + 0.01*system.SunsetTime("%M").ToInteger();
real SU2 = (SU1 + 3.00);
if (SU2 < 19.30) { dom.GetObject("Aquariumlicht aus um").State(19.30)}
elseif (SU2 < 21.45) { dom.GetObject("Aquariumlicht aus um").State(SU2)}
else { dom.GetObject("Aquariumlicht aus um").State(21.45)}
Ich habe mir dieses Astro-Script nicht angeschaut. Da Du die Variablen aber hier deklarierst, scheinen sie nicht Bestandteil des Astro-Scriptes zu sein. Insofern könntest Du auch noch 3 Scriptvariablen einsparen:

Code: Alles auswählen

real rVariable = ((1.0*system.SunriseTime("%H").ToInteger()) + 0.01*system.SunriseTime("%M").ToInteger()) - 0.25;
if (rVariable < 6.00) { dom.GetObject("Aquariumlicht an um").State(6.00)}
else { dom.GetObject("Aquariumlicht an um").State(rVariable)};

rVariable = ((1.0*system.SunsetTime("%H").ToInteger()) + 0.01*system.SunsetTime("%M").ToInteger()) + 3.00;
if (rVariable < 19.30) { dom.GetObject("Aquariumlicht aus um").State(19.30)}
elseif (rVariable < 21.45) { dom.GetObject("Aquariumlicht aus um").State(rVariable)}
else { dom.GetObject("Aquariumlicht aus um").State(21.45)}
Und wenn Du jetzt noch die Stunden der Sonnenauf- und untergangszeiten nicht erst in Ganzzahlen umwandelst und diese dann mit 1.00 multiplizierst, sondern gleich in eine Gleitzahl umwandelst, sparst Du wieder etwas winzige Rechenzeit und das Ganze wird logischer.

Wenn's mein Code wäre, sähe der so aus:

Code: Alles auswählen

real rVariable = (system.SunriseTime("%H").ToFloat() + (0.01*system.SunriseTime("%M").ToInteger())) - 0.25;
if (rVariable < 6.00) {
	dom.GetObject("Aquariumlicht an um").State(6.00);
}
else {
	dom.GetObject("Aquariumlicht an um").State(rVariable);
}

rVariable = (system.SunsetTime("%H").ToFloat() + (0.01*system.SunsetTime("%M").ToInteger())) + 3.00;
if (rVariable < 19.30) {
	dom.GetObject("Aquariumlicht aus um").State(19.30);
}
elseif (rVariable < 21.45) {
	dom.GetObject("Aquariumlicht aus um").State(rVariable);
}
else {
	dom.GetObject("Aquariumlicht aus um").State(21.45);
}
Ich benutze bei Namensgebungen von Geräten, Script- und Systemvariablen, Programmnamen etc. übrigens keine Leerzeichen. Ob Leerzeichen an irgendeiner Stelle innerhalb HM-Systems zu Problemen führen können, weiß ich nicht.
Ich habe es noch nie gemacht bei meinen Programmierprojekten, also auch hier bei HM nicht....

Re: Universelles Astro/Zeit-Skript für Rolladen, Lampen und mehr

Verfasst: 07.02.2019, 18:32
von majacom
Prima vielen Dank, werde ich gleich nachher mal ausprobieren

Markus

Re: Universelles Astro/Zeit-Skript für Rolladen, Lampen und mehr

Verfasst: 12.02.2019, 13:26
von majacom
Hallo,
ich nochmal!

Die Ausgabe der Variable "Aquariumlicht an um" ist in meinem Fall "7.180000"
Ich möchte jetzt um diese Uhrzeit ein Programm ausführen lassen.
Ich denke, dass das nur mit einem CuxD Timer zu realisieren ist. Der benötigt aber meines Wissens das Format "HH:MM:SS".

Wie kann ich aus der Variablenausgabe "7.180000" das Fornat auf "07:18:00" ändern, damit ich die Zeit an den CuxdTimer übermitteln kann?
Oder gibt es eine andere Möglichkeit, ein Programm mit diesen Werten über den Cuxd Timer starten zu lassen?

Anders formuliert: Wie kann ich am Besten ein Programm, um die in der Variable ausgegeben Uhrzeit, ausführen lassen?

Gruß
Markus

Re: Universelles Astro/Zeit-Skript für Rolladen, Lampen und mehr

Verfasst: 12.02.2019, 14:39
von Xel66
Ist zwar nicht die Antwort auf die Benutzung des Scripts, aber ich schreibe mir auch Sonnenauf- und -untergangszeiten in einen CUxD-Timer und variiere diesen im Nachgang. Ich benutze hierfür dieses Script:

Code: Alles auswählen

! ++++++++++++ Setzen eigener Sonnenstandszeiten ++++++++++
string Sonnunter = system.SunsetTime("%H:%M:%S").ToString();
string Sonnauf = system.SunriseTime("%H:%M:%S").ToString();
dom.GetObject("CUxD.CUX2800002:16.TIMER_SET").State(Sonnunter);
dom.GetObject("CUxD.CUX2800002:15.TIMER_SET").State(Sonnauf);
dom.GetObject("CUxD.CUX2800002:16.TIMER_SET").State("-1800");
dom.GetObject("CUxD.CUX2800002:15.TIMER_SET").State("-2700");
In den ersten beiden Zeilen werden die vom System ermittelten Daten für Sonnenauf- und -untergang ermittelt, dann in jeweils einen Timer geschrieben und im Nachgang um 1800 (aka 30 Minuten) bzw. um 2700 Sekunden (aka 45 Minuten) vorgezogen. Funktioniert bei mir seit Jahren problemlos. Das Script läuft ein Mal täglich kurz nach Mitternacht.

Gruß Xel66

Re: Universelles Astro/Zeit-Skript für Rolladen, Lampen und mehr

Verfasst: 18.02.2019, 11:16
von wendy2702
sissiwup hat geschrieben:
08.01.2019, 21:52
Siehe zur Anleitung mein Post in Tipps und Tricks.
Hi,

kannst du mir sagen wie die Überschrift dazu heißt?

Danke und Gruß

Mirko

Re: Universelles Astro/Zeit-Skript für Rolladen, Lampen und mehr

Verfasst: 18.02.2019, 11:44
von Sammy
Über die erweiterte Suche einfach nach Beiträgen von sissiwup gesucht und ratzfatz gefunden:
viewtopic.php?f=31&t=48286

Re: Universelles Astro/Zeit-Skript für Rolladen, Lampen und mehr

Verfasst: 18.02.2019, 12:56
von wendy2702
Danke.

Ich habe mich gerade durch die 22 Seiten seiner Beiträge geklickt.... bin aber nicht auf diese Überschrift gekommen.

Hatte etwas mit Rolladen erwartet.