From c13dfbff830ccde9bd93324246082d5846968781 Mon Sep 17 00:00:00 2001 From: pest <> Date: Thu, 23 Jun 2011 19:40:58 +0000 Subject: [PATCH] WinMatic virtual key simulation (orig. by Frank) git-svn-id: https://svn.fhem.de/fhem/trunk@918 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/10_CUL_HM.pm | 73 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 71 insertions(+), 2 deletions(-) diff --git a/fhem/FHEM/10_CUL_HM.pm b/fhem/FHEM/10_CUL_HM.pm index e1e3dd619..a840c8c48 100755 --- a/fhem/FHEM/10_CUL_HM.pm +++ b/fhem/FHEM/10_CUL_HM.pm @@ -580,7 +580,7 @@ my %culHmSubTypeSets = ( remote => { text => " [on|off] " }, winMatic => - { matic => "" }, + { matic => "", read => "", config => " ", create => "" }, ); my %culHmModelSets = ( "HM-CC-TC"=> @@ -762,8 +762,77 @@ CUL_HM_Set($@) # Trigger pre-programmed action in the winmatic. These actions must be # programmed via the original software. - $sndcmd = sprintf("++B03E%s%s%s40%02X%s",$id, $dst, $id, $a[2], $chn); + $sndcmd = sprintf("++B03E%s%s%s40%02X%s", $id, $dst, $id, $a[2], $chn); + } elsif($cmd eq "create") { ################################### + $sndcmd = sprintf("++B001%s%s0101%s%02X%s", $id, $dst, $id, $a[2], $chn); + CUL_HM_SendCmd($hash, $sndcmd, 1, 1); + sleep(2); + $sndcmd = sprintf("++A001%s%s0104%s%02X%s", $id, $dst, $id, $a[2], $chn); + + } elsif($cmd eq "read") { ################################### + $sndcmd = sprintf("++B001%s%s0104%s%02X03", $id, $dst, $id, $a[2]); + + } elsif($cmd eq "config") { ##################################### + if ($a[3] eq "tilt") { + $sndcmd = sprintf("++B001%s%s0105%s%02X03", $id, $dst, $id, $a[2]); + CUL_HM_SendCmd ($hash, $sndcmd, 2, 2); + $sndcmd = sprintf("++A001%s%s01080B220D838B228D83", $id, $dst); + sleep (2); + CUL_HM_SendCmd ($hash, $sndcmd, 2, 2); + sleep(2); + $sndcmd = sprintf("++A001%s%s0106", $id, $dst); + + } elsif ($a[3] eq "close") { + $sndcmd = sprintf("++B001%s%s0105%s%02X03", $id, $dst, $id, $a[2]); + CUL_HM_SendCmd($hash, $sndcmd, 2, 2); + $sndcmd = sprintf("++A001%s%s01080B550D838B558D83", $id, $dst); + sleep(2); + CUL_HM_SendCmd($hash, $sndcmd, 2, 2); + sleep(2); + $sndcmd = sprintf("++A001%s%s0106", $id, $dst); + + } elsif ($a[3] eq "closed") { + $sndcmd = sprintf("++B001%s%s0105%s%02X03", $id, $dst, $id, $a[2]); + CUL_HM_SendCmd($hash, $sndcmd , 2, 2); + $sndcmd = sprintf("++A001%s%s01080F008F00", $id, $dst); + sleep(2); + CUL_HM_SendCmd($hash, $sndcmd , 2, 2); + sleep(2); + $sndcmd = sprintf("++A001%s%s0106", $id, $dst); + + } elsif ($a[3] eq "bolt") { + $sndcmd = sprintf("++B001%s%s0105%s%02X03", $id, $dst, $id, $a[2]); + CUL_HM_SendCmd($hash, $sndcmd , 2, 2); + $sndcmd = sprintf("++A001%s%s01080FFF8FFF", $id, $dst); + sleep(2); + CUL_HM_SendCmd($hash, $sndcmd , 2, 2); + sleep(2); + $sndcmd = sprintf("++A001%s%s0106", $id, $dst); + + } elsif ($a[3] eq "delete") { + $sndcmd = sprintf("++B001%s%s0102%s%02X%s", $id, $dst, $id, $a[2], $chn); + + } elsif ($a[3] eq "speedclose") { + $sndcmd = sprintf("++B001%s%s0105%s%02X03", $id, $dst, $id, $a[2]); + CUL_HM_SendCmd($hash, $sndcmd , 2, 2); + $sndcmd = $a[4]*2; + $sndcmd = sprintf("++A001%s%s010823%02XA3%02X", $id, $dst, $sndcmd, $sndcmd); + sleep(2); + CUL_HM_SendCmd($hash, $sndcmd , 2, 2); + sleep(2); + $sndcmd = sprintf("++A001%s%s0106", $id, $dst); + + } elsif ($a[3] eq "speedtilt") { + $sndcmd = sprintf("++B001%s%s0105%s%02X03", $id, $dst, $id, $a[2]); + CUL_HM_SendCmd($hash, $sndcmd , 2, 2); + $sndcmd = $a[4]*2; + $sndcmd = sprintf("++A001%s%s010822%02XA2%02X", $id, $dst, $sndcmd, $sndcmd); + sleep(2); + CUL_HM_SendCmd($hash, $sndcmd , 2, 2); + sleep(2); + $sndcmd = sprintf("++A001%s%s0106", $id, $dst); + } } if($state) {