Tageszeit in Abschnitte unterteilen Problem

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Panman
Beiträge: 23
Registriert: 24.12.2010, 13:22

Re: Tageszeit in Abschnitte unterteilen Problem

Beitrag von Panman » 14.09.2011, 18:55

Hallo,

Ich glaube ich habe den Fehler gefunden: in der Weteliste der Variablen fehlte die "Nacht" daher kam da alles aus dem Lot.
Habe das Programm nun "Tageszeiten" genannt und die Variable "Tageszeit " umgetauft.

Und siehe Da nun haben wir plötzlich "Nachmittag" ( Es ist jetzt 18:52 Uhr )

Danke für Eure Unterstützung !!! Dann kann ich ja morgen ruig in den Urlaub fliegen.
Mal sehen ob ich die Beleuchtung von Agypten aus steuern kann :D

Vielleicht noch eine Frage, wie kann ich in dem Skipt dokumentieren ?

Möchte irgendwo die Zeiten als Testbaustein festhalten :

Zitat :

Nacht 23:00-05:00
Frühmorgens 05:00- 06:00
Morgengrauen 06:00-07:00
Vormittag 07:00-12:00
Mittag 12:00- 14:00
Nachmittag 14:00-21:00
Dämmerung 21:00-22:00
Abend 22:00- 23:00


Danke nochmal !!
MFG
Stefan

Tore
Beiträge: 13
Registriert: 18.08.2011, 23:26

Re: Tageszeit in Abschnitte unterteilen Problem

Beitrag von Tore » 14.09.2011, 19:21

Der Kommentarzeile einfach ein "!" voranstellen. Also:

! Nacht 23:00-05:00
! Frühmorgens 05:00- 06:00
! Morgengrauen 06:00-07:00
! Vormittag 07:00-12:00
! Mittag 12:00- 14:00
! Nachmittag 14:00-21:00
! Dämmerung 21:00-22:00
! Abend 22:00- 23:00

Na dann, gute Zeit in Ägypten!

Benutzeravatar
Klaus
Beiträge: 4
Registriert: 09.01.2012, 23:03

Re: Tageszeit in Abschnitte unterteilen Problem

Beitrag von Klaus » 09.01.2012, 23:10

Hallo zusammen, bin neu hier.
Habe seit 3 Wochen eine Homematic CCU und bin gerade am programmieren.
Über das Tageszeitskript bin ich auch gestolpert. Das kann nicht immer exakt funtionieren, weil die Umwandlung der Systemzeitminuten in Stunden mit 1/100 (=0.01) anstatt mit 1/60 gerechnet wird. 30 Min sind dann 0.3 statt 0.5 usw. Durch diese Zeitlücken scheint das Script dann zu spinnen.

Goofy77
Beiträge: 39
Registriert: 07.08.2011, 14:51

Re: Tageszeit in Abschnitte unterteilen Problem

Beitrag von Goofy77 » 26.01.2012, 09:25

Hallo,

ich habe das Script von homematic inside auch seit gestern im Einsatz und nutze es für meine Rolladensteuerung.

Ich habe das so eingestellt das das Zeitintervall für die Berechnung bei 15 Minuten liegt. Was mir jetzt auffällt das sobald der entsprechende Wert erreicht ist meine Rolladen ständig angesteuert werden. Heute morgen als Beispiel gingen die Rolladen wie programmiert hoch als "vormittag" erreicht wurde. Seitdem höre ich alle paar Minuten wie die Aktoren klicken. Ich vermute mal das jetzt, solange die Bedingung "vormittag" erfüllt ist, alle 15 Minuten das Programm Rolladen aktiviert wird obwohl dieses bereits erledigt ist.

Gibt es dafür eine Lösung? Ansonsten scheint mir das Tageszeiten Script ja eine feine Sache zu sein...
+++ Anfänger +++

bisher: 12x Funk-Jalousieaktor Unterputz Taster, 3x Rauchmelder, 1x Aussentemp,
3x Wassermelder

dwm
Beiträge: 207
Registriert: 10.08.2010, 21:56

Re: Tageszeit in Abschnitte unterteilen Problem

Beitrag von dwm » 30.01.2012, 17:33

Zuerst mal das Problem mit den Rollläden:

Ich vermute ganz stark, dass die Tageszeit immer gesetzt wird UND das script für die Rollläden auf "Bei Aktualisieren" steht....
Bei mir sind die beiden Sachen anders: Die Tageszeit-Systemvariable wird nur neu geschrieben, wenn sie unterschiedlich zum vom Script ermittelten Wert ist,
UND alle Scripts reagieren bei den Tageszeiten auf "Auf Änderung".

Der Beitrag vorher hatte die 100stel Teilung der Tageszeiten angesprochen.
Das hat mir auch nicht gefallen, ich verstehe allerdings mittlerweile warum: Wenn man KEINE Hunderstelteilung macht, wird die Programmzeile GANZ GANZ gruselig:

Code: Alles auswählen

real c_zeit =
 ( 1.0 * system.Date("%H").ToInteger() ) + (( 1.0 * system.Date("%M").ToInteger()) / 60.0);
real c_tagesbeginn =
 ( 1.0 * system.SunriseTime("%H").ToInteger() ) + (( 1.0 * system.SunriseTime("%M").ToInteger()) / 60.0);
real c_tagesende =
 ( 1.0 * system.SunsetTime("%H").ToInteger() ) + (( 1.0 * system.SunsetTime("%M").ToInteger()) / 60.0);
Wieso das so aussehen muss, überlasse ich dem geneigten Leser :)
Tipp: Die Evaluierung der Ausdrücke erfolgt beim HM-Script von rechts nach links, genauso wie die implizite Typumwandlung.

Vorteil: Dann allerdings lassen sich die "Minuten" ohne Lücken berechnen. Eine 3/4 Stunde sind dann 0.75 (was ja vorhin nicht so einfach war).

Spaß beim Coden ...
Werner
194 Kanäle in 101 Geräten:
3x HM-LC-Sw1-Pl, 7x HM-LC-Sw1-PB-FM, 2x HM-WDS10-TH-O, 22x HM-Sec-SC, 4x HM-Sec-MDIR, 4x HM-Sen-MDIR-O, 3x HM-LC-Dim1T-FM, 1x HM-PB-4Dis-WM, 1x HM-RC-19, 1x HM-Sec-TiS, 2x HM-OU-CF-Pl, 1x HM-RC-4-B, 9x HM-CC-VD, 7x HM-CC-TC, 3x HM-WDS30-T-O, 1x HM-CCU-1, 1x HM-LC-Sw2-PB-FM, 1x HM-LC-Sw1PBU-FM, 6x HM-PB-2-WM, 1x HM-LC-Dim2T-SM, 5x HM-PB-4-WM, 1x HM-LC-Sw2-FM, 1x HM-OU-CFM-Pl, 1x HM-LC-Bl1PBU-FM, 4x HM-LC-Bl1-PB-FM, 4x HM-LC-Sw4-SM, 3x HM-Sec-WDS

Goofy77
Beiträge: 39
Registriert: 07.08.2011, 14:51

Re: Tageszeit in Abschnitte unterteilen Problem

Beitrag von Goofy77 » 31.01.2012, 17:55

dwm hat geschrieben:Zuerst mal das Problem mit den Rollläden:

Ich vermute ganz stark, dass die Tageszeit immer gesetzt wird UND das script für die Rollläden auf "Bei Aktualisieren" steht....
Bei mir sind die beiden Sachen anders: Die Tageszeit-Systemvariable wird nur neu geschrieben, wenn sie unterschiedlich zum vom Script ermittelten Wert ist,
UND alle Scripts reagieren bei den Tageszeiten auf "Auf Änderung".

Genau das war das Problem! Hab das jetzt "auf Änderung" umgestellt und es klappt, danke!

Eine Frage noch: wie meinst du das das die Tageszeit nur neu geschrieben wird wenn Sie sich ändert?
+++ Anfänger +++

bisher: 12x Funk-Jalousieaktor Unterputz Taster, 3x Rauchmelder, 1x Aussentemp,
3x Wassermelder

Mr.Fusion
Beiträge: 154
Registriert: 24.12.2008, 15:55

Re: Tageszeit in Abschnitte unterteilen Problem

Beitrag von Mr.Fusion » 28.03.2012, 21:59

Ich würde gerne die Definierung der versch. Tageszeiten etwas an meine Bedürfnisse anpassen.
Ich versteh allerdings nicht so ganz das Script.
Kann mir jemand sagen, was ich machen muss, wenn ich z.B. den "Abend" eine Stunde länger haben möchte und dafür die Nacht auch 1 Stunde nach hinten verschieben?

Grüße
Mr.Fusion

Benutzeravatar
JPS
Beiträge: 1093
Registriert: 07.08.2010, 22:51
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 8 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: Tageszeit in Abschnitte unterteilen Problem

Beitrag von JPS » 31.03.2012, 20:15

Mr.Fusion hat geschrieben:Ich würde gerne die Definierung der versch. Tageszeiten etwas an meine Bedürfnisse anpassen.
Ich versteh allerdings nicht so ganz das Script.
Kann mir jemand sagen, was ich machen muss, wenn ich z.B. den "Abend" eine Stunde länger haben möchte und dafür die Nacht auch 1 Stunde nach hinten verschieben?

Grüße
Mr.Fusion
ändere...

Code: Alles auswählen

if (c_zeit < c_tagesende + 2) {
 v_tageszeit = 7; ! Abend
}

if (c_zeit < c_tagesende + 1) {
 v_tageszeit = 6; ! Abenddaemmerung
}
in...

Code: Alles auswählen

if (c_zeit < c_tagesende + 3) {
 v_tageszeit = 7; ! Abend
}

if (c_zeit < c_tagesende + 2) {
 v_tageszeit = 6; ! Abenddaemmerung
}
und falls die Nacht auch morgens eine Stunde länger dauern soll, zusätzlich statt...

Code: Alles auswählen

if (c_zeit < c_tagesbeginn - 2) {
 v_tageszeit = 0; ! Nacht
}
wie folgt...

Code: Alles auswählen

if (c_zeit < c_tagesbeginn - 1) {
 v_tageszeit = 0; ! Nacht
}
Dann fällt allerdings das Ende der "Nacht" mit dem Ende von "frühmorgens" zusammen und du solltest dann den Teil...

Code: Alles auswählen

if (c_zeit < c_tagesbeginn - 1) {
 v_tageszeit = 1; ! fruemorgens;
}
...löschen oder die anderen Bereiche auch verschieben.
Verwendung meiner Hinweise und Skripte auf eigenes Risiko | Ich übernehme hierfür keinerlei Gewährleistung bzw. Haftung

Mr.Fusion
Beiträge: 154
Registriert: 24.12.2008, 15:55

Re: Tageszeit in Abschnitte unterteilen Problem

Beitrag von Mr.Fusion » 02.04.2012, 19:34

Super, vielen Dank JPS!!

Mr.Fusion
Beiträge: 154
Registriert: 24.12.2008, 15:55

Re: Tageszeit in Abschnitte unterteilen Problem

Beitrag von Mr.Fusion » 04.04.2012, 21:40

Irgendwie bekomme ich dieses Script nicht zum laufen. :-(
Habe noch nicht so viel mit Systemvariablen gemacht, aber ich kann keinen offensichtlichen Fehler finden.
Die Systemvariable scheint sich nicht zu aktualisieren. Sie bleibt immer auf "Nacht" stehen.

Folgendermaßen sieht das bei mir aus:
Die Systemvariable eingerichtet:
systemvariable.JPG
Die eingerichtete Systemvariable
Der Status der Systemvariable (Screenshot wurde am 04.04. gemacht!)
Status_Systemvariable.JPG
Status_Systemvariable.JPG (22.21 KiB) 2221 mal betrachtet
Das Programm führt das Script alle 60 Sekunden aus:
Pragramm_tagszeiten.JPG
Das Programm soll wenn Dämmerung oder Abend das Licht an den beiden angegebenen Aktoren anschalten.

Kann mir jemand sagen, was ich falsch mache? :(

Pgrammlicht.JPG

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“