|
From: <sw...@us...> - 2012-02-29 19:33:42
|
Revision: 716
http://openautomation.svn.sourceforge.net/openautomation/?rev=716&view=rev
Author: swiss1
Date: 2012-02-29 19:33:36 +0000 (Wed, 29 Feb 2012)
Log Message:
-----------
Astro Funktion by ZeitlerW integriert und auf Version 0.6 BETA aktualisiert
Modified Paths:
--------------
wiregate/plugin/generic/schaltuhr.pl
Modified: wiregate/plugin/generic/schaltuhr.pl
===================================================================
--- wiregate/plugin/generic/schaltuhr.pl 2012-02-25 18:43:35 UTC (rev 715)
+++ wiregate/plugin/generic/schaltuhr.pl 2012-02-29 19:33:36 UTC (rev 716)
@@ -1,27 +1,45 @@
-# Plugin zum Zeit abh\xE4ngigem schaten von GA's (Schaltuhr)
-# Version 0.5 BETA 03.07.2011
+# Plugin zum Zeit abh\xE4ngigem schalten von GA's (Schaltuhr)
+# Version 0.6 BETA 29.02.2012
# Copyright: swiss (http://knx-user-forum.de/members/swiss.html)
# License: GPL (v2)
# Aufbau m\xF6glichst so, dass man unterhalb der Einstellungen nichts ver\xE4ndern muss!
+# -Erweitert um Sonnenauf / - untergang von ZeitlerW (http://knx-user-forum.de/members/zeitlerw.html)
+# -Inspiriert von kleinklausi's Rolladen - Plugin
####################
###Einstellungen:###
####################
+
+# Die Standortdaten
+# Die Koordinaten des Hauses. Sehr einfach \xFCber http://www.getlatlon.com/ zu ermitteln.
+my ($lat, $lon) = (
+ 50.27816466477597, # Breitengrad in Grad
+ 11.64325475692749 # L\xE4ngengrad in Grad
+ );
+
+#Winkel f\xFCr Beginn der D\xE4mmerung
+# siehe auch: http://search.cpan.org/~rkhill/Astro-Sunrise-0.91/Sunrise.pm#DESCRIPTION
+my $winkel=-3;
my @Schaltzeiten;
+
#Pro Schaltpunkt einfach den unten stehenden Eintrag kopieren und anpassen.
+#Sollen Schaltzeiten astronomisch geschaltet werden, so mu\xDF bei Astro 'a' f\xFCr Sonnenaufgang
+#und 'u' f\xFCr Sonnenuntergang eingetragen werden. Der Stunden und Minutenwert wird dann ignoriert.
-push @Schaltzeiten, { name => "bew\xE4sserung_ein", montag => 1, dienstag => 1, mittwoch => 1, donnerstag => 1, freitag => 1, samstag => 0, sonntag => 1, Stunden => 21, Minuten => 02, Wert => 1, DPT => 1, ga => '2/0/0', KW => '', Monat => '' };
+push @Schaltzeiten, { name => "weckzeit", montag => 1, dienstag => 1, mittwoch => 1, donnerstag => 1, freitag => 1, samstag => 0, sonntag => 0, Stunden => 05, Minuten => 45, Wert => 1, DPT => 1, ga => '1/5/4', KW => '', Monat => '', Astro => '' };
-push @Schaltzeiten, { name => "bew\xE4sserung_aus", montag => 1, dienstag => 1, mittwoch => 1, donnerstag => 1, freitag => 1, samstag => 0, sonntag => 1, Stunden => 21, Minuten => 03, Wert => 0, DPT => 1, ga => '2/0/0', KW => '', Monat => '' };
+
######################
##ENDE Einstellungen##
######################
use POSIX;
use Time::Local;
+# Wir brauchen auch Sonnenstandsberechnung
+use Astro::Sunrise;
# Eigenen Aufruf-Zyklus auf 20sek. setzen
$plugin_info{$plugname.'_cycle'} = 20;
@@ -47,6 +65,15 @@
foreach my $element (@Schaltzeiten) {
if (knx_read($element->{ga},0,$element->{DPT}) ne $element->{Wert}) {
+ if ($element->{Astro} ne '') {
+ if ($element->{Astro} eq 'a') {
+ $element->{Stunden}=$sunrise[0];
+ $element->{Minuten}=$sunrise[1];
+ } elsif ($element->{Astro} eq 'u') {
+ $element->{Stunden}=$sunset[0];
+ $element->{Minuten}=$sunset[1];
+ }
+ }
if ($element->{$Wochentag[$wday]} == 1 && $element->{Stunden} == $hour && $element->{Minuten} == $min && $element->{KW} ne '') {
if ($element->{KW} == $kw) {
knx_write($element->{ga},$element->{Wert},$element->{DPT});
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|