2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-10 03:06:37 +00:00

HMCCU: Fixed config commands

git-svn-id: https://svn.fhem.de/fhem/trunk@14113 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
zap 2017-04-26 17:35:16 +00:00
parent 81881e7d58
commit 3d73eb79e4
3 changed files with 28 additions and 25 deletions

View File

@ -1,5 +1,6 @@
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide. # Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
# Do not insert empty lines here, update check depends on it. # Do not insert empty lines here, update check depends on it.
- bugfix: 88_HMCCU: fixed config commands
- feature: 30_pilight_contact: add battery reading if information is available - feature: 30_pilight_contact: add battery reading if information is available
- update: 88_HMCCU: Homematic firmware download, advanced scripting - update: 88_HMCCU: Homematic firmware download, advanced scripting
- feature: 98_TRAFFIC: v1.3.2, stroke styles, warnings reduced, bugfix - feature: 98_TRAFFIC: v1.3.2, stroke styles, warnings reduced, bugfix

View File

@ -4,7 +4,7 @@
# #
# $Id$ # $Id$
# #
# Version 4.0.001 # Version 4.0.002
# #
# Module for communication between FHEM and Homematic CCU2. # Module for communication between FHEM and Homematic CCU2.
# #
@ -36,7 +36,7 @@
# get <name> dump {devtypes|datapoints} [<filter>] # get <name> dump {devtypes|datapoints} [<filter>]
# get <name> dutycycle # get <name> dutycycle
# get <name> exportdefaults {filename} # get <name> exportdefaults {filename}
# get <name> firmware [list] # get <name> firmware
# get <name> parfile [<parfile>] # get <name> parfile [<parfile>]
# get <name> rpcevents # get <name> rpcevents
# get <name> rpcstate # get <name> rpcstate
@ -105,7 +105,7 @@ my %HMCCU_CUST_CHN_DEFAULTS;
my %HMCCU_CUST_DEV_DEFAULTS; my %HMCCU_CUST_DEV_DEFAULTS;
# HMCCU version # HMCCU version
my $HMCCU_VERSION = '4.0.001'; my $HMCCU_VERSION = '4.0.002';
# RPC Ports and URL extensions # RPC Ports and URL extensions
my $HMCCU_RPC_PORT_DEFAULT = 2001; my $HMCCU_RPC_PORT_DEFAULT = 2001;
@ -4589,17 +4589,18 @@ sub HMCCU_GetVariables ($$)
my $ccureadings = AttrVal ($hash->{NAME}, 'ccureadings', 1); my $ccureadings = AttrVal ($hash->{NAME}, 'ccureadings', 1);
my $script = qq( # my $script = qq(
object osysvar; # object osysvar;
string ssysvarid; # string ssysvarid;
foreach (ssysvarid, dom.GetObject(ID_SYSTEM_VARIABLES).EnumUsedIDs()) # foreach (ssysvarid, dom.GetObject(ID_SYSTEM_VARIABLES).EnumUsedIDs())
{ # {
osysvar = dom.GetObject(ssysvarid); # osysvar = dom.GetObject(ssysvarid);
WriteLine (osysvar.Name() # "=" # osysvar.Variable() # "=" # osysvar.Value()); # WriteLine (osysvar.Name() # "=" # osysvar.Variable() # "=" # osysvar.Value());
} # }
); # );
#
my $response = HMCCU_HMScript ($hash, $script); # my $response = HMCCU_HMScript ($hash, $script);
my $response = HMCCU_HMScriptExt ($hash, "!GetVariables", undef);
return (-2, $result) if ($response eq ''); return (-2, $result) if ($response eq '');
readingsBeginUpdate ($hash) if ($ccureadings); readingsBeginUpdate ($hash) if ($ccureadings);
@ -4894,21 +4895,22 @@ sub HMCCU_RPCGetConfig ($$$$)
HMCCU_Trace ($hash, 2, "HMCCU: $fnc: Method=$method Addr=$addr Port=$port", $ccuflags); HMCCU_Trace ($hash, 2, "HMCCU: $fnc: Method=$method Addr=$addr Port=$port", $ccuflags);
$res = HMCCURPC_SendBinRequest ($defs{$rpcdev}, $port, $method, $BINRPC_STRING, $addr, $res = HMCCURPC_SendBinRequest ($defs{$rpcdev}, $port, $method, $BINRPC_STRING, $addr,
$BINRPC_STRING, "MASTER"); $BINRPC_STRING, "MASTER");
if ($ccuflags =~ /trace/ && defined ($res)) {
Log3 $name, 2, "HMCCU: $fnc: Dump of binary RPC request $method $addr:";
Log3 $name, 2, HMCCU_RefToString ($res);
}
} }
else { else {
my $url = "http://".$hmccu_hash->{host}.":".$port."/"; my $url = "http://".$hmccu_hash->{host}.":".$port."/";
$url .= $HMCCU_RPC_URL{$port} if (exists ($HMCCU_RPC_URL{$port})); $url .= $HMCCU_RPC_URL{$port} if (exists ($HMCCU_RPC_URL{$port}));
HMCCU_Trace ($hash, 2, "HMCCU: $fnc: Method=$method Addr=$addr Port=$port", $ccuflags); HMCCU_Trace ($hash, 2, "HMCCU: $fnc: Method=$method Addr=$addr Port=$port", $ccuflags);
my $client = RPC::XML::Client->new ($url); my $client = RPC::XML::Client->new ($url);
my $res = $client->simple_request ($method, $addr, "MASTER"); $res = $client->simple_request ($method, $addr, "MASTER");
} }
return (-5, "Function not available") if (!defined ($res)); return (-5, "Function not available") if (!defined ($res));
if ($ccuflags =~ /trace/ && defined ($res)) {
Log3 $name, 2, "HMCCU: $fnc: Dump of RPC request $method $addr. Result type=".ref($res);
Log3 $name, 2, HMCCU_RefToString ($res);
}
if (ref ($res) eq 'HASH') { if (ref ($res) eq 'HASH') {
my $parcount = scalar (keys %$res); my $parcount = scalar (keys %$res);
if (exists ($res->{faultString})) { if (exists ($res->{faultString})) {

View File

@ -4,7 +4,7 @@
# #
# $Id$ # $Id$
# #
# Version 4.0.001 # Version 4.0.002
# #
# Configuration parameters for HomeMatic devices. # Configuration parameters for HomeMatic devices.
# #
@ -713,7 +713,7 @@ object oSV = dom.GetObject("\$name");
if (!oSV){ if (!oSV){
object oSysVars = dom.GetObject(ID_SYSTEM_VARIABLES); object oSysVars = dom.GetObject(ID_SYSTEM_VARIABLES);
oSV = dom.CreateObject(OT_VARDP); oSV = dom.CreateObject(OT_VARDP);
oSysVars.Add(svObj.ID()); oSysVars.Add(oSV.ID());
oSV.Name("\$name"); oSV.Name("\$name");
oSV.ValueType(ivtString); oSV.ValueType(ivtString);
oSV.ValueSubType(istChar8859); oSV.ValueSubType(istChar8859);
@ -738,7 +738,7 @@ object oSV = dom.GetObject("\$name");
if (!oSV){ if (!oSV){
object oSysVars = dom.GetObject(ID_SYSTEM_VARIABLES); object oSysVars = dom.GetObject(ID_SYSTEM_VARIABLES);
oSV = dom.CreateObject(OT_VARDP); oSV = dom.CreateObject(OT_VARDP);
oSysVars.Add(svObj.ID()); oSysVars.Add(oSV.ID());
oSV.Name("\$name"); oSV.Name("\$name");
oSV.ValueType(ivtFloat); oSV.ValueType(ivtFloat);
oSV.ValueSubType(istGeneric); oSV.ValueSubType(istGeneric);
@ -765,7 +765,7 @@ object oSV = dom.GetObject("\$name");
if (!oSV){ if (!oSV){
object oSysVars = dom.GetObject(ID_SYSTEM_VARIABLES); object oSysVars = dom.GetObject(ID_SYSTEM_VARIABLES);
oSV = dom.CreateObject(OT_VARDP); oSV = dom.CreateObject(OT_VARDP);
oSysVars.Add(svObj.ID()); oSysVars.Add(oSV.ID());
oSV.Name("\$name"); oSV.Name("\$name");
oSV.ValueType(ivtBinary); oSV.ValueType(ivtBinary);
oSV.ValueSubType(istBool); oSV.ValueSubType(istBool);
@ -789,7 +789,7 @@ object oSV = dom.GetObject("p2");
if (!oSV){ if (!oSV){
object oSysVars = dom.GetObject(ID_SYSTEM_VARIABLES); object oSysVars = dom.GetObject(ID_SYSTEM_VARIABLES);
oSV = dom.CreateObject(OT_VARDP); oSV = dom.CreateObject(OT_VARDP);
oSysVars.Add(svObj.ID()); oSysVars.Add(oSV.ID());
oSV.Name("\$name"); oSV.Name("\$name");
oSV.ValueType(ivtInteger); oSV.ValueType(ivtInteger);
oSV.ValueSubType(istEnum); oSV.ValueSubType(istEnum);