2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-09 20:57:11 +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.
# 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
- update: 88_HMCCU: Homematic firmware download, advanced scripting
- feature: 98_TRAFFIC: v1.3.2, stroke styles, warnings reduced, bugfix

View File

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

View File

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