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

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

dodi
Beiträge: 137
Registriert: 26.12.2016, 11:59
Hat sich bedankt: 2 Mal

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

Beitrag von dodi » 29.09.2017, 17:49

Hagbard Celine hat geschrieben:Hallo,
Wollte noch mal nachhaken... hat vllt einer einen Ansatz zu meiner Frage?

LG


Gesendet von iPhone mit Tapatalk
Hi,
dazu solltest du als Erstes mal nach "Ultimativer Kalender" suchen. So solltest du ein Skript finden, welches dir Variablen mit der Info z.B. Wochenende_Heute zur Verfügung stellt.
Diese kannst du dann entsprechend in deinem Programm mit dem Astrotimer und Werktag_Heute oder dem Zeitmodul und Wochenende_Heute verknüpfen...

Xel66
Beiträge: 14148
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 583 Mal
Danksagung erhalten: 1497 Mal

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

Beitrag von Xel66 » 29.09.2017, 20:47

dodi hat geschrieben:So solltest du ein Skript finden, welches dir Variablen mit der Info z.B. Wochenende_Heute zur Verfügung stellt.
Das kann das Zeitmodul der WebGUI auch selbst. Da braucht man keinen Scriptlauf, um festzustellen, dass Wochenende ist.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Hagbard Celine
Beiträge: 22
Registriert: 23.01.2017, 20:55

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

Beitrag von Hagbard Celine » 29.09.2017, 21:43

Das wäre auch meine bevorzugte Herangehensweise. Nur weiß ich nicht genau wie ich das dann in einem Programm unterbringen muss. Hab das mit dem wenn oder dann noch nicht richtig geblickt. Über Hilfestellung würde ich mich freuen.

LG


Gesendet von iPhone mit Tapatalk

dodi
Beiträge: 137
Registriert: 26.12.2016, 11:59
Hat sich bedankt: 2 Mal

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

Beitrag von dodi » 30.09.2017, 07:41

Xel66 hat geschrieben:
dodi hat geschrieben:So solltest du ein Skript finden, welches dir Variablen mit der Info z.B. Wochenende_Heute zur Verfügung stellt.
Das kann das Zeitmodul der WebGUI auch selbst. Da braucht man keinen Scriptlauf, um festzustellen, dass Wochenende ist.

Gruß Xel66
Das ist richtig, mit dem Skript hat man dann nur die Möglichkeit "Feiertag" ebenfalls auszuwerten.
Die Frage kommt ja meist als Nächstes [emoji12]

Hagbard Celine
Beiträge: 22
Registriert: 23.01.2017, 20:55

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

Beitrag von Hagbard Celine » 30.09.2017, 16:29

So wirklich helfen tut mir das jetzt aber nicht. Habe halt Probleme ein funktionierendes Programm zu erstelle. Da wäre ich für Hilfestellung dankbar.


Gesendet von iPhone mit Tapatalk

Adrian-01
Beiträge: 26
Registriert: 01.09.2016, 21:28

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

Beitrag von Adrian-01 » 27.10.2017, 06:13

Guten Tag,

Ich habe immer folgenden Error im Log, kann mir da eventuell jemand behilflich sein ?

Oct 27 06:12:00 homematic-raspi local0.err ReGaHss: Error: IseESP::ScriptRuntimeError: !Skript zur Berechnung der Minuten vor SA und SU ! !stall.biz 18.02.2016 Dieses Skript verwendet nur eine (!) Skript-Variable !folgende Systemvariablen anlegen !Minuten_vor_SA" als Zahl , Wertebereich -1000 bis +1000 !Minuten_vor_SU" als Zahl , Wertebereich -1000 bis +1000 !"Tageszeit_hh.mm" als Zahl in h !"Datum_MM.TT" als Zahl !"Monat" als Werteliste Januar;Februar; ... !"Monatstag
als Werteliste 1;2;3; ... ;31 !"Wochennummer" als Zahl !"Woche_gerade" logisch wahr ist gerade , unwahr ist ungerade !"Wochentag" als Zahl !"Jahrestag" als Zahl real c_zeit =(system.Date("%M").ToFloat()+ (60.0*system.Date("%H").ToFloat())); if (c_zeit >720.0) { dom.GetObject("Minuten_vor_SA").State(999); c_zeit = system.SunsetTime("%M").ToFloat() + (60.0*system.SunsetTime("%H").ToFloat()); c_zeit = c_zeit - (system.Date("%M").ToFloat()+ (60.0*system.Date("%H").ToFloat())); d
m.GetObject("Minuten_vo


Vielen dank im Voraus.

Gruß, Adrian

Benutzeravatar
funkleuchtturm
Beiträge: 2365
Registriert: 13.06.2011, 16:42
Hat sich bedankt: 23 Mal
Danksagung erhalten: 357 Mal
Kontaktdaten:

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

Beitrag von funkleuchtturm » 27.10.2017, 10:33

Hagbard Celine hat geschrieben:So wirklich helfen tut mir das jetzt aber nicht. Habe halt Probleme ein funktionierendes Programm zu erstelle. Da wäre ich für Hilfestellung dankbar.
Warun liest Du den Threadd einfach nicht richtig durch. Da steht doch Wochentag als Systemvariable und das Wochenende ist einfach nur der Wochentag 6 und 7.
Das Programm müßte etwa so aussehen:
roll_nacht.jpg
Lediglich meine verwendete Systemvariable roll_nacht mußt Du durch Deine verwendete Systemvariable ersetzen (umgekehrte Logik!). Das müßte doch klappen, oder ? :D
Viele Gruesse
Eugen
________________________________________________
SmartHome-Eintopf mit feinem Homeduino-Gemüse
... und für Feinschmecker gibt´s den WIFFI, den WEATHERMAN-2, den PULSECOUNTER und den AIRSNIFFER
mit vielen Kochrezepten für den ambitionierten Homematiker

Benutzeravatar
funkleuchtturm
Beiträge: 2365
Registriert: 13.06.2011, 16:42
Hat sich bedankt: 23 Mal
Danksagung erhalten: 357 Mal
Kontaktdaten:

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

Beitrag von funkleuchtturm » 27.10.2017, 10:39

Adrian-01 hat geschrieben:Ich habe immer folgenden Error im Log, kann mir da eventuell jemand behilflich sein ?
Mit so einer Fehlerbeschreibung kann niemand was anfangen!
Wenn im Fenster "Skript bearbeiten" die Fehlerprüfung mit "Kein Fehler" beantwortet wird (ist das so?) und Du exakt die Schreibweise der CCU-Systemvariablen richtig gemacht hast (ist das so?) , dann läuft auch das Skript.
Viele Gruesse
Eugen
________________________________________________
SmartHome-Eintopf mit feinem Homeduino-Gemüse
... und für Feinschmecker gibt´s den WIFFI, den WEATHERMAN-2, den PULSECOUNTER und den AIRSNIFFER
mit vielen Kochrezepten für den ambitionierten Homematiker

robsdobs
Beiträge: 510
Registriert: 08.08.2015, 22:52
Danksagung erhalten: 1 Mal

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

Beitrag von robsdobs » 27.10.2017, 19:05

funkleuchtturm hat geschrieben:
Adrian-01 hat geschrieben:Ich habe immer folgenden Error im Log, kann mir da eventuell jemand behilflich sein ?
Mit so einer Fehlerbeschreibung kann niemand was anfangen!
Wenn im Fenster "Skript bearbeiten" die Fehlerprüfung mit "Kein Fehler" beantwortet wird (ist das so?) und Du exakt die Schreibweise der CCU-Systemvariablen richtig gemacht hast (ist das so?) , dann läuft auch das Skript.
Bei der CCU mit Standard oder Community Logikschicht oder bei RaspberryMatic, zeigen die ScriptRuntimeError Fehler im Script an und sind dort auch ernst zu nehmen.

Leider fehlt hier die Information, was genutzt wird.

Hier ist eine etwas Fehlertolerantere Version des scriptes:

Code: Alles auswählen

!Skript zur Berechnung der Minuten vor SA und SU        !  
!stall.biz  18.02.2016  Dieses Skript verwendet nur eine (!) Skript-Variable     
!folgende Systemvariablen anlegen
!Minuten_vor_SA"    als Zahl , Wertebereich  -1000 bis +1000
!Minuten_vor_SU"    als Zahl , Wertebereich  -1000 bis +1000
!"Tageszeit_hh.mm"  als Zahl  in h
!"Datum_MM.TT"    als Zahl  
!"Monat"    als Werteliste Januar;Februar;  ...  
!"Monatstag"    als Werteliste 1;2;3; ... ;31  
!"Wochennummer"    als Zahl  
!"Woche_gerade"    logisch   wahr ist gerade , unwahr ist ungerade
!"Wochentag"    als Zahl  
!"Jahrestag" als Zahl
real c_zeit =(system.Date("%M").ToFloat()+ (60.0*system.Date("%H").ToFloat())); 
string s_SV_SA = "Minuten_vor_SA";
string s_SV_SU = "Minuten_vor_SU";
string s_SV_TGZ = "Tageszeit_hh.mm";
string s_SV_DATE = "Datum_MM.TT";
string s_SV_MONAT = "Monat";
string s_SV_MTAG = "Monatstag";
string s_SV_WNUM = "Wochennummer";
string s_SV_WTAG = "Wochentag";
string s_SV_JTAG = "Jahrestag";
string s_SV_WEVE = "Woche_gerade";

var o_SA = (dom.GetObject(ID_SYSTEM_VARIABLES)).Get(s_SV_SA);
var o_SU = (dom.GetObject(ID_SYSTEM_VARIABLES)).Get(s_SV_SU);

if (o_SA && o_SU) {
  if (c_zeit >720.0) { o_SA.State(999); 
    c_zeit = system.SunsetTime("%M").ToFloat() + (60.0*system.SunsetTime("%H").ToFloat());
    c_zeit = c_zeit -  (system.Date("%M").ToFloat()+ (60.0*system.Date("%H").ToFloat()));
    o_SU.State(c_zeit); 
  } else {o_SU.State(999); 
    c_zeit = system.SunriseTime("%M").ToFloat() + (60.0*system.SunriseTime("%H").ToFloat());
    c_zeit = c_zeit - (system.Date("%M").ToFloat()+ (60.0*system.Date("%H").ToFloat()));
    o_SA.State(c_zeit); 
  }
}

var obj = ((dom.GetObject(ID_SYSTEM_VARIABLES)).Get(s_SV_TGZ));
if (obj) {
  real c_zeit = (1.0*system.Date("%H").ToInteger()) +(0.01*system.Date("%M").ToInteger());
  obj.State(c_zeit);
}

var obj = ((dom.GetObject(ID_SYSTEM_VARIABLES)).Get(s_SV_DATE));
if (obj) {
  real c_zeit  = (0.01 * system.Date("%d").ToInteger()) + system.Date("%m").ToInteger();
  obj.State(c_zeit);
}

var obj = ((dom.GetObject(ID_SYSTEM_VARIABLES)).Get(s_SV_MONAT));
if (obj) {
  integer c_zeit   = system.Date("%m").ToInteger();
  obj.State(c_zeit  -1);
}

var obj = ((dom.GetObject(ID_SYSTEM_VARIABLES)).Get(s_SV_MTAG));
if (obj) {
  integer c_zeit    = system.Date("%d").ToInteger();
  obj.State(c_zeit);
}

var obj = ((dom.GetObject(ID_SYSTEM_VARIABLES)).Get(s_SV_WNUM));
if (obj) {
  integer c_zeit =  system.Date("%V").ToInteger();
  obj.State(c_zeit);
}

var obj = ((dom.GetObject(ID_SYSTEM_VARIABLES)).Get(s_SV_WEVE));
if (obj) {
  if ((c_zeit - 2*(c_zeit/2.0)) == 1) {obj.State(0);} else {obj.State(1);}
}

var obj = ((dom.GetObject(ID_SYSTEM_VARIABLES)).Get(s_SV_WTAG));
if (obj) {
  integer  c_zeit = system.Date("%u").ToInteger();
  obj.State(c_zeit);
}

var obj = ((dom.GetObject(ID_SYSTEM_VARIABLES)).Get(s_SV_JTAG));
if (obj) {
  integer c_zeit = system.Date("%j").ToInteger();
  obj.State(c_zeit);
}
Gruß
sehr selten im Forum

Benutzeravatar
Meyer11
Beiträge: 89
Registriert: 28.11.2017, 11:32
System: Alternative CCU (auf Basis OCCU)
Wohnort: Ostfriesland
Hat sich bedankt: 13 Mal
Danksagung erhalten: 3 Mal

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

Beitrag von Meyer11 » 03.12.2017, 11:30

Hallo zusammen,

ich bin blutiger Anfänger und gerade dabei mich an dieser Astro Schaltung zu probieren.
Eigentlich ganz simpel: Eine Steckdose soll 30 min nach vor Sonnenuntergang einschalten.

Obwohl ich (meiner Meinung nach) alles so gemacht habe wie beschrieben, schaltet die Steckdose 30 nach SU ein :?:

Hier mal meine Programme, wäre schön, wenn die Profis hier mir das Ganze mal ein wenig näher bringen. :lol:
Dateianhänge
Status.jpg
Progs.jpg
Programme.jpg
Programm.jpg
Zuletzt geändert von Meyer11 am 03.12.2017, 12:53, insgesamt 1-mal geändert.
Gruß Frank

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“