|
From: <sw...@us...> - 2011-08-06 09:28:08
|
Revision: 392
http://openautomation.svn.sourceforge.net/openautomation/?rev=392&view=rev
Author: swiss1
Date: 2011-08-06 09:28:01 +0000 (Sat, 06 Aug 2011)
Log Message:
-----------
Plugin um die Weckzeiten des Chumby als 14Byte-Text an den BUS zu senden. Version 0.2 BETA
Added Paths:
-----------
wiregate/plugin/generic/chumby_weckzeit.pl
Added: wiregate/plugin/generic/chumby_weckzeit.pl
===================================================================
--- wiregate/plugin/generic/chumby_weckzeit.pl (rev 0)
+++ wiregate/plugin/generic/chumby_weckzeit.pl 2011-08-06 09:28:01 UTC (rev 392)
@@ -0,0 +1,54 @@
+# Plugin zum auslesen der Weckzeit aus dem Chumby
+# Version 0.2 BETA 06.08.2011
+# 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!
+
+
+####################
+###Einstellungen:###
+####################
+
+my $chumby_ip = "192.168.1.7"; #Hier die IP-Adresse des Chumby eintragen.
+
+
+#Pro Weckzeit die als TEXT auf den BUS gesendet werden soll, muss ein entsprechender Eintrag angelegt werden. z.B ('test_1' => '10/1/2',)
+my %weckzeit_ga = (
+ '' => '10/1/0', #Hier den genauen Namen der Weckzeit und die GA eintragen (14Byte-Text)
+ 'test' => '10/1/1',
+ 'test_1' => '10/1/2',
+ 'test_2' => '10/1/3',
+
+ );
+
+
+######################
+##ENDE Einstellungen##
+######################
+
+$plugin_info{$plugname.'_cycle'} = 30;
+# Zyklischer Aufruf nach restart und alle 30 sek.
+
+use XML::Simple;
+use Encode qw(encode decode);
+# use open ":utf8";
+
+my $command = "ping -c 2 -w 2 ".$chumby_ip;
+my $status = `$command`;
+if($status =~ /bytes from/) {
+ my $url = "http://$chumby_ip/cgi-bin/custom/alarms.pl?page=download";
+ my $xml = encode("utf8",get($url));
+ die "Fehler beim aufrufen der URL: $url. Bitte mit Anleitung \xFCberpr\xFCfen." unless defined $xml;
+ my $alarms = XMLin($xml)->{alarm};
+
+ while ((my $key) = each %{$alarms}) {
+ my $zeitdez = $alarms->{$key}->{time} / 60;
+ my $minuten = $alarms->{$key}->{time} % 60;
+ my $stunde = int $zeitdez;
+ my $zeit = $stunde . ":" . $minuten;
+ knx_write($weckzeit_ga{$key},$zeit,16);
+ }
+ return "Status OK";
+}elsif($status =~ /0 received/) {
+ return "Ein Fehler ist beim Testen der IP $chumby_ip aufgetreten";
+}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sw...@us...> - 2011-08-06 11:23:53
|
Revision: 393
http://openautomation.svn.sourceforge.net/openautomation/?rev=393&view=rev
Author: swiss1
Date: 2011-08-06 11:23:45 +0000 (Sat, 06 Aug 2011)
Log Message:
-----------
Plugin f?\195?\188r zuk?\195?\188nftige Erweiterungen angepasst. ein paar kleine BUG's behoben. Versoin 0.3 BETA
Modified Paths:
--------------
wiregate/plugin/generic/chumby_weckzeit.pl
Modified: wiregate/plugin/generic/chumby_weckzeit.pl
===================================================================
--- wiregate/plugin/generic/chumby_weckzeit.pl 2011-08-06 09:28:01 UTC (rev 392)
+++ wiregate/plugin/generic/chumby_weckzeit.pl 2011-08-06 11:23:45 UTC (rev 393)
@@ -1,5 +1,5 @@
# Plugin zum auslesen der Weckzeit aus dem Chumby
-# Version 0.2 BETA 06.08.2011
+# Version 0.3 BETA 06.08.2011
# 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!
@@ -8,18 +8,15 @@
####################
###Einstellungen:###
####################
+my %weckzeit;
my $chumby_ip = "192.168.1.7"; #Hier die IP-Adresse des Chumby eintragen.
-#Pro Weckzeit die als TEXT auf den BUS gesendet werden soll, muss ein entsprechender Eintrag angelegt werden. z.B ('test_1' => '10/1/2',)
-my %weckzeit_ga = (
- '' => '10/1/0', #Hier den genauen Namen der Weckzeit und die GA eintragen (14Byte-Text)
- 'test' => '10/1/1',
- 'test_1' => '10/1/2',
- 'test_2' => '10/1/3',
-
- );
+#Pro Weckzeit die auf den BUS gesendet werden soll, muss ein entsprechender Eintrag angelegt werden. z.B $weckzeit_ga{ 'test' } = { text_ga => '10/2/0', ga_aktiv => '10/2/1', ga_alarm => '10/2/2', };
+$weckzeit{ '' } = { text_ga => '10/1/0', ga_aktiv => '10/1/1', };
+$weckzeit{ 'test' } = { text_ga => '10/2/0', ga_aktiv => '10/2/1', };
+$weckzeit{ 'test_1' } = { text_ga => '', ga_aktiv => '10/3/1', };
######################
@@ -42,13 +39,22 @@
my $alarms = XMLin($xml)->{alarm};
while ((my $key) = each %{$alarms}) {
- my $zeitdez = $alarms->{$key}->{time} / 60;
- my $minuten = $alarms->{$key}->{time} % 60;
- my $stunde = int $zeitdez;
- my $zeit = $stunde . ":" . $minuten;
- knx_write($weckzeit_ga{$key},$zeit,16);
+ if (exists $weckzeit{$key}){
+ if ($weckzeit{$key}{text_ga} ne ''){
+ my $zeitdez = $alarms->{$key}->{time} / 60;
+ my $minuten = $alarms->{$key}->{time} % 60;
+ my $stunde = int $zeitdez;
+ my $zeit = $stunde . ":" . $minuten;
+ knx_write($weckzeit{$key}{text_ga},$zeit,16);
+ }
+ if ($weckzeit{$key}{ga_aktiv} ne ''){
+ knx_write($weckzeit{$key}{ga_aktiv},$alarms->{$key}->{enabled},1.001);
+ }
+ }
}
return "Status OK";
}elsif($status =~ /0 received/) {
return "Ein Fehler ist beim Testen der IP $chumby_ip aufgetreten";
-}
\ No newline at end of file
+}
+
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sw...@us...> - 2011-08-06 12:32:38
|
Revision: 394
http://openautomation.svn.sourceforge.net/openautomation/?rev=394&view=rev
Author: swiss1
Date: 2011-08-06 12:32:32 +0000 (Sat, 06 Aug 2011)
Log Message:
-----------
Eine wetere Textausgabe f?\195?\188r "wann" wurde hinzugef?\195?\188gt, Ein BUG wurde behoben. Version 0.4 BETA
Modified Paths:
--------------
wiregate/plugin/generic/chumby_weckzeit.pl
Modified: wiregate/plugin/generic/chumby_weckzeit.pl
===================================================================
--- wiregate/plugin/generic/chumby_weckzeit.pl 2011-08-06 11:23:45 UTC (rev 393)
+++ wiregate/plugin/generic/chumby_weckzeit.pl 2011-08-06 12:32:32 UTC (rev 394)
@@ -1,5 +1,5 @@
# Plugin zum auslesen der Weckzeit aus dem Chumby
-# Version 0.3 BETA 06.08.2011
+# Version 0.4 BETA 06.08.2011
# 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!
@@ -12,11 +12,22 @@
my $chumby_ip = "192.168.1.7"; #Hier die IP-Adresse des Chumby eintragen.
+#
+#Hier die beschreibung der Parameter:
+#Nichtben\xF6tigte Parameter einfach auf '' setzen. z.B. text_ga => ''
+#
+#
+# $weckzeit{ '' } Hier muss der genaue Name der Weckzeit aus dem Chumby eingetragen werden
+# text_zeit_ga => '10/1/0' Hier kann man eine GA eintragen um die Weckzeit als 14Byte-text an den BUS zu senden.
+# text_wann_ga => '10/1/1' Hier kann man eine GA eintragen um die g\xFCltigkeit der Weckzeit (wann) als 14Byte-Text an den BUS zu senden.
+# ga_aktiv => '10/1/1' ier kann man eine GA eintragen um den Status (inaktiv/aktiv) als 1Bit (0/1) an den BUS zu senden
+#
+
#Pro Weckzeit die auf den BUS gesendet werden soll, muss ein entsprechender Eintrag angelegt werden. z.B $weckzeit_ga{ 'test' } = { text_ga => '10/2/0', ga_aktiv => '10/2/1', ga_alarm => '10/2/2', };
-$weckzeit{ '' } = { text_ga => '10/1/0', ga_aktiv => '10/1/1', };
-$weckzeit{ 'test' } = { text_ga => '10/2/0', ga_aktiv => '10/2/1', };
-$weckzeit{ 'test_1' } = { text_ga => '', ga_aktiv => '10/3/1', };
+$weckzeit{ '' } = { text_zeit_ga => '10/1/0', text_wann_ga => '10/1/1', ga_aktiv => '10/1/2', };
+$weckzeit{ 'test' } = { text_zeit_ga => '10/2/0', text_wann_ga => '10/2/1', ga_aktiv => '10/2/2', };
+$weckzeit{ 'test_1' } = { text_zeit_ga => '10/3/0', text_wann_ga => '10/3/1', ga_aktiv => '10/3/2', };
######################
@@ -27,9 +38,22 @@
# Zyklischer Aufruf nach restart und alle 30 sek.
use XML::Simple;
+use LWP::Simple;
use Encode qw(encode decode);
# use open ":utf8";
+my %uebersetzungstabelle = ("daily" => "T\xE4glich",
+ "weekend" => "Wochenends",
+ "weekday" => "Mo - Fr",
+ "sunday" => "Sonntags",
+ "monday" => "Montags",
+ "tuesday" => "Dienstags",
+ "wednesday" => "Mittwochs",
+ "thursday" => "Donnerstags",
+ "friday" => "Freitags",
+ "saturday" => "Sammstags",);
+
+
my $command = "ping -c 2 -w 2 ".$chumby_ip;
my $status = `$command`;
if($status =~ /bytes from/) {
@@ -40,13 +64,18 @@
while ((my $key) = each %{$alarms}) {
if (exists $weckzeit{$key}){
- if ($weckzeit{$key}{text_ga} ne ''){
+ if ($weckzeit{$key}{text_zeit_ga} ne ''){
my $zeitdez = $alarms->{$key}->{time} / 60;
my $minuten = $alarms->{$key}->{time} % 60;
my $stunde = int $zeitdez;
my $zeit = $stunde . ":" . $minuten;
- knx_write($weckzeit{$key}{text_ga},$zeit,16);
+
+ knx_write($weckzeit{$key}{text_zeit_ga},$zeit,16);
}
+ if ($weckzeit{$key}{text_wann_ga} ne ''){
+ my $text_wann = $uebersetzungstabelle{$alarms->{$key}->{when}} . " um ";
+ knx_write($weckzeit{$key}{text_wann_ga},$text_wann,16);
+ }
if ($weckzeit{$key}{ga_aktiv} ne ''){
knx_write($weckzeit{$key}{ga_aktiv},$alarms->{$key}->{enabled},1.001);
}
@@ -56,5 +85,3 @@
}elsif($status =~ /0 received/) {
return "Ein Fehler ist beim Testen der IP $chumby_ip aufgetreten";
}
-
-
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|