|
From: <vl...@us...> - 2011-10-26 11:19:05
|
Revision: 474
http://openautomation.svn.sourceforge.net/openautomation/?rev=474&view=rev
Author: vlamers
Date: 2011-10-26 11:18:59 +0000 (Wed, 26 Oct 2011)
Log Message:
-----------
Fixed Bug of looping the recorded message
Modified Paths:
--------------
wiregate/plugin/generic/I-Button.pl
Modified: wiregate/plugin/generic/I-Button.pl
===================================================================
--- wiregate/plugin/generic/I-Button.pl 2011-10-26 11:14:43 UTC (rev 473)
+++ wiregate/plugin/generic/I-Button.pl 2011-10-26 11:18:59 UTC (rev 474)
@@ -16,6 +16,7 @@
my $gelb= '13/2/4';
my $rot = '13/2/3';
my $Anwesenheit = '13/2/0';
+my $verstaerker = '13/1/2';
# mpd
my $IP = "192.168.178.33";
@@ -34,10 +35,10 @@
# merker => merker GA des jeweiligen I-Buttons um die Telegram Wiederholung abzufangen
# besitzer => Name der mp3 (Begruessung) ohne Dateiendung
my @AlleButtons;
-push @AlleButtons, {besitzer => "Elisa", name => "rot", GA => "13/2/3", merker => "13/2/8"};
+push @AlleButtons, {besitzer => "Elisa", name => "rot", GA => "13/2/3", merker => "13/2/7"};
push @AlleButtons, {besitzer => "Volker", name => "schwarz", GA => "13/2/1", merker => "13/2/10"};
push @AlleButtons, {besitzer => "Samuel", name => "blau", GA => "13/2/2", merker => "13/2/9"};
-push @AlleButtons, {besitzer => "Christina", name => "gelb", GA => "13/2/4", merker => "13/2/7"};
+push @AlleButtons, {besitzer => "Christina", name => "gelb", GA => "13/2/4", merker => "13/2/8"};
#################################################################
# do not change anything below, all config stays above
@@ -46,7 +47,8 @@
# Plugin f\xFCr jedes oben definiertes Element ausf\xFChren
foreach my $element (@AlleButtons) {
#nur ausf\xFChren wenn das Ziel die definierte GA ist und das Telegram ein Write Telegram ist und kein Read oder Response Telegram. Der Status der Elemente wird unten im Plugin "gemerkt"
- if ($msg{'dst'} eq ($element->{GA}) && ($msg{'apci'} eq 'A_GroupValue_Write') && knx_read($msg{'dst'},0,1) != $plugin_info{$plugname.'_' . ($element->{name}) })
+ if ($msg{'dst'} eq ($element->{GA}) && ($msg{'apci'} eq 'A_GroupValue_Write') )
+ # && knx_read($msg{'dst'},0,1) != $plugin_info{$plugname.'_' . ($element->{name}) })
{
## Status der GA\xB4s holen
my $status = knx_read($Anwesenheit ,0,1);
@@ -54,30 +56,31 @@
my $schwarz_stat = knx_read($schwarz,0,1);
my $gelb_stat = knx_read($gelb,0,1);
my $blau_stat = knx_read($blau,0,1);
- my $stat = knx_read($element->{merker},0,1);
+
## definierte if else anweisung die ausgef\xFChrt werden soll nach bestimmten zust\xE4nden
- if (($msg{'value'} == 01) && ($status == 00)) {
+ if (($msg{'value'} == 1) && (knx_read($Anwesenheit ,0,1) == 0)) {
knx_write($Anwesenheit ,1,1);
plugin_log($plugname,"name: " . $status);
}
- if (($msg{'value'} == 01) && ($stat == 00)) {
+ if (($msg{'value'} == 1) && (knx_read($element->{merker} ,0,1) == 0)) {
+ knx_write($verstaerker, 1,1);
knx_write($element->{merker}, 1,1);
my $debug = `MPD_HOST=$IP MPD_PORT=$Port mpc clear && MPD_HOST=$IP MPD_PORT=$Port mpc add $element->{besitzer}.mp3 && MPD_HOST=$IP MPD_PORT=$Port mpc volume $Lautstaerke && MPD_HOST=$IP MPD_PORT=$Port mpc play`;
}
- if (($msg{'value'} == 00) && ($stat == 01)) {
+ if (($msg{'value'} == 0) && (knx_read($element->{merker} ,0,1) == 1)) {
knx_write($element->{merker}, 0,1);
}
- elsif (($msg{'value'} == 00) && ($rot_stat == 00) && ($gelb_stat == 00) && ($schwarz_stat == 00) && ($blau_stat == 00)) {
+ elsif (($msg{'value'} == 0) && ($rot_stat == 0) && ($gelb_stat == 0) && ($schwarz_stat == 0) && ($blau_stat == 0)) {
knx_write($Anwesenheit ,0,1);
plugin_log($plugname,"name: " . $element->{name} . "; aus: ");
}
#merken der Zust\xE4nde:
- $plugin_info{$plugname.'_' . ($element->{name}) } = knx_read($element->{GA} ,0,1);
+ # $plugin_info{$plugname.'_' . ($element->{name}) } = knx_read($element->{GA} ,0,1);
$plugin_info{$plugname.'_' . ($Anwesenheit) } = knx_read($Anwesenheit ,0,1);
- $plugin_info{$plugname.'_' . ($element->{merker}) } = knx_read($element->{merker} ,0,1);
+ # $plugin_info{$plugname.'_' . ($element->{merker}) } = knx_read($element->{merker} ,0,1);
}
# wenn keine der oben genannten bedingungen zutrifft dann das n\xE4chste Element abarbbeiten
else {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|