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:
parent
81881e7d58
commit
3d73eb79e4
@ -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
|
||||||
|
@ -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})) {
|
||||||
|
@ -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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user