From 72afe0656f03e43fde646c0c6c3858dc6b85a9c0 Mon Sep 17 00:00:00 2001 From: Marko Oldenburg Date: Wed, 25 Nov 2015 08:12:10 +0100 Subject: [PATCH] =?UTF-8?q?AMADCommBridge=20receiveVoiceDevice=20Reading?= =?UTF-8?q?=20hinzugef=C3=BCgt,=20M=C3=B6glichkeit=20eine=20FHEM=20Funktio?= =?UTF-8?q?n=20als=20Variable=20im=20HTTP=20Request=20von=20Automagic=20zu?= =?UTF-8?q?=20=C3=BCbergeben=20und=20R=C3=BCckgabe=20eines=20Response=20zu?= =?UTF-8?q?r=20Verarbeitung=20in=20Automagic?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 74_AMAD.pm | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/74_AMAD.pm b/74_AMAD.pm index ee9e835..3f7c16c 100644 --- a/74_AMAD.pm +++ b/74_AMAD.pm @@ -35,7 +35,7 @@ use Time::HiRes qw(gettimeofday); use HttpUtils; use TcpServerUtils; -my $version = "0.9.4"; +my $version = "0.9.6"; @@ -962,7 +962,10 @@ sub AMAD_CommBridge_Read($) { elsif ( $fhemcmd =~ /voiceinputvalue\b/ ) { my $fhemCmd = $data[1]; - readingsSingleUpdate( $bhash, "receiveVoiceCommand", $fhemCmd, 1 ); + readingsBeginUpdate( $bhash); + readingsBulkUpdate( $bhash, "receiveVoiceCommand", $fhemCmd ); + readingsBulkUpdate( $bhash, "receiveVoiceDevice", $device ); + readingsEndUpdate( $bhash, 1 ); Log3 $name, 4, "AMAD ($name) - AMAD_CommBridge: set reading receive voice command"; $response = "header lines: \r\n AMADCommBridge receive Data complete\r\n FHEM was processes\r\n"; @@ -1002,6 +1005,29 @@ sub AMAD_CommBridge_Read($) { Log3 $name, 4, "AMAD ($name) - AMAD_CommBridge: response ReadingsVal Value to Automagic Device"; return; } + + elsif ( $fhemcmd =~ /fhemfunc\b/ ) { + my $fhemCmd = $data[1]; + + Log3 $name, 4, "AMAD ($name) - AMAD_CommBridge: receive fhem-function command"; + + if( $fhemcmd =~ /^{.*}$/ ) { + + response = $fhemCmd if( ReadingsVal( $bname, "expertMode", 0 ) eq "1" ); + + } else { + + response = "header lines: \r\n AMADCommBridge receive no typical FHEM function\r\n FHEM to do nothing\r\n"; + } + + $c = $hash->{CD}; + print $c "HTTP/1.1 200 OK\r\n", + "Content-Type: text/plain\r\n", + "Content-Length: ".length($response)."\r\n\r\n", + $response; + + return; + } $response = "header lines: \r\n AMADCommBridge receive incomplete or corrupt Data\r\n FHEM to do nothing\r\n";