From c5d60bcd5a1817027ce6cf028e72cfb3c65781c8 Mon Sep 17 00:00:00 2001 From: martinp876 Date: Wed, 25 Sep 2013 20:53:18 +0000 Subject: [PATCH] problem with multiple conditional devices improved git-svn-id: svn://svn.code.sf.net/p/fhem/code/trunk@3960 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/10_CUL_HM.pm | 13 +++++++++---- fhem/FHEM/HMConfig.pm | 8 +++++--- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/fhem/FHEM/10_CUL_HM.pm b/fhem/FHEM/10_CUL_HM.pm index d5a51e632..78958aea7 100755 --- a/fhem/FHEM/10_CUL_HM.pm +++ b/fhem/FHEM/10_CUL_HM.pm @@ -877,6 +877,11 @@ sub CUL_HM_Parse($$) {############################## ) if ($tHash); } + elsif($mTp eq "3F" && $id eq $dst) { # Timestamp request + my $s2000 = sprintf("%02X", CUL_HM_secSince2000()); + push @ack,$shash,"++803F$id${src}0204$s2000"; + push @event, "time-request"; + } } elsif($md =~ m/^(HM-Sen-Wa-Od|HM-CC-SCD)$/){ ################################ if (($mTp eq "02" && $p =~ m/^01/) || # handle Ack_Status @@ -923,7 +928,7 @@ sub CUL_HM_Parse($$) {############################## } } elsif($st eq "THSensor") { ################################################## - if ($mTp eq "70"){ + if ($mTp eq "70"){ my $chn = 1; $chn = 5 if ($md eq "HM-WDS30-OT2-SM"); $chn = 10 if ($md =~ m/^(WS550|WS888|HM-WDC7000)/);#todo use channel correct @@ -2840,7 +2845,7 @@ sub CUL_HM_Set($@) { elsif($cmd eq "sysTime") { ################################################## $state = ""; my $s2000 = sprintf("%02X", CUL_HM_secSince2000()); - CUL_HM_PushCmdStack($hash,"++803F$id${dst}0204$s2000"); + CUL_HM_PushCmdStack($hash,"++A03F$id${dst}0204$s2000"); } elsif($cmd eq "valvePos") { ################################################# return "only number <= 100 or 'off' allowed" @@ -2985,7 +2990,7 @@ sub CUL_HM_Set($@) { my $pHash = CUL_HM_id2Hash($peer); my $peerFlag = $peer eq '00000000'?'A4':CUL_HM_getFlag($pHash); $peerFlag =~ s/0/4/;# either 'A4' or 'B4' - CUL_HM_SndCmd($hash, "++B412$dst".substr($peer,0,6)) + CUL_HM_SndCmd($hash, "++B112$dst".substr($peer,0,6)) if (CUL_HM_getRxType($pHash) & 0x80); CUL_HM_SndCmd($hash, sprintf("++%s41%s%s%02X%02X%02X" ,$peerFlag,$dst,$peer @@ -3108,7 +3113,7 @@ sub CUL_HM_Set($@) { !$devHash->{helper}{respWait}{cmd} && !$devHash->{helper}{respWait}{Pending} ){ - CUL_HM_SndCmd($devHash,"++B412$id$dst"); + CUL_HM_SndCmd($devHash,"++B112$id$dst"); } return ("",1);# no not generate trigger outof command } diff --git a/fhem/FHEM/HMConfig.pm b/fhem/FHEM/HMConfig.pm index 4db69ba14..2ff2b4943 100644 --- a/fhem/FHEM/HMConfig.pm +++ b/fhem/FHEM/HMConfig.pm @@ -190,7 +190,7 @@ my %culHmModel=( "0092" => {name=>"Schueco_263-144" ,st=>'switch' ,cyc=>'' ,rxt=>'c' ,lst=>'4' ,chn=>"",}, # HM Switch Interface 3 switches "0093" => {name=>"Schueco_263-158" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w:f' ,lst=>'p' ,chn=>"",}, # "0094" => {name=>"IS-WDS-TH-OD-S-R3" ,st=>'THSensor' ,cyc=>'00:10' ,rxt=>'c:w' ,lst=>'p' ,chn=>"",}, # - "0095" => {name=>"HM-CC-RT-DN" ,st=>'thermostat' ,cyc=>'00:10' ,rxt=>'c:w:f' ,lst=>'p:1p.2p.5p.6p,3:3p.6p,7:4' + "0095" => {name=>"HM-CC-RT-DN" ,st=>'thermostat' ,cyc=>'00:10' ,rxt=>'c:w:f' ,lst=>'p:1p.2p.5p.6p,3:3p.6p,1,7:4' ,chn=>"Weather:1:1,Climate:2:2,WindowRec:3:3,ClimRT_tr:4:4,ClimaTeam:5:5,remote:6:6"}, # "0096" => {name=>"WDF-solar" ,st=>'blindActuatorSol' ,cyc=>'' ,rxt=>'b' ,lst=>'1,3' ,chn=>"win:1:1,blind_2:3",}, # "009B" => {name=>"Schueco_263-xxx" ,st=>'tipTronic' ,cyc=>'28:00' ,rxt=>'c:w' ,lst=>'1:1.2,3:1p.3p',chn=>"act:1:1,sen:2:2,sec:3:3",}, # @@ -1218,8 +1218,10 @@ my %culHmBits = ( "58" => { txt => "ClimateEvent", params => { CMD => "00,2", ValvePos => '02,2,$val=(hex($val))', } }, - "59" => { txt => "Climate unknown", params => { - CMD => "00,2", } }, + "59" => { txt => "setTeamTemp" , params => { + CMD => "00,2", + desTemp => '02,2,$val=((hex($val)>>2) /2)', + mode => '02,2,$val=(hex($val) & 0x3)',} }, "70" => { txt => "WeatherEvent", params => { TEMP => '00,4,$val=((hex($val)&0x3FFF)/10)*((hex($val)&0x4000)?-1:1)', HUM => '04,2,$val=(hex($val))', } },