2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-07 19:04:20 +00:00

98_Modbus: updated tests and TestUtils.pm

git-svn-id: https://svn.fhem.de/fhem/trunk@26104 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
StefanStrobel 2022-05-31 18:23:01 +00:00
parent d48931a37b
commit 24568def07
28 changed files with 3016 additions and 2277 deletions

View File

@ -1,310 +1,310 @@
#########################################################################
# $Id$
# Utility functions for testing Modbus that can be uses by other Fhem modules
#
# This file is part of fhem.
#
# Fhem is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# Fhem is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with fhem. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
package FHEM::Modbus::TestUtils;
use strict;
use warnings;
use GPUtils qw(:all);
use Time::HiRes qw(gettimeofday);
use Test::More;
use Exporter ('import');
our @EXPORT_OK = qw(
CallStep
NextStep
LogStep
SimRead
findTimesInLog
calcDelays
SetTestOptions
CheckAndReset
);
our %EXPORT_TAGS = (all => [@EXPORT_OK]);
BEGIN {
GP_Import( qw(
fhem
Log3
RemoveInternalTimer
InternalTimer
gettimeofday
FmtDateTime
FmtTimeMs
ReadingsVal
ReadingsTimestamp
AttrVal
InternalVal
featurelevel
FhemTestUtils_gotEvent
FhemTestUtils_gotLog
FhemTestUtils_getLogTime
FhemTestUtils_resetLogs
FhemTestUtils_resetEvents
defs
modules
attr
done_testing
logInform
));
};
our $testStep = 0;
our %testOptions;
our %results;
#####################################################################
#
# NextStep
# - GetNextStep
# - set timer for CallStep or end Testing
#
# InternalTimer -> CallStep
# - step via eval
# - NextStep -> Timer for CallStep
# - step via eval
# - NextStep
#
# LogInform -> ReactOnLogRegex ->
# - InternalTimer for SimResponseRead
#
# InternalTimer -> SimResponseRead
# - SimResponseRead
# - NextStep -> Timer for CallStep
# - step via eval
# - send -> LogInform -> SimResponseRead ...
# - NextStep?? (don't set timer for next step in this case)
#
##################################################################
# find the next test step number
# internal function, called from NextStep
sub GetNextStep {
#Log3 undef, 1, "Test GetNextStep: look for next step";
my $next = $testStep;
FINDSTEP:
while (1) {
$next++;
return 0 if ($next > 99);
#Log3 undef, 1, "Test GetNextStep: check step $next";
next FINDSTEP if (!defined (&{"main::testStep$next"}));
return $next;
}
return; # never reached
}
######################################################################
# set internalTimer to call the next test step after an optional delay
# normally in tests to have the first step called and
# also internally by CallStep and SimResponseRead
sub NextStep {
my $delay = shift // 0;
my $next = shift // GetNextStep();
if (!$next || ($delay && $delay eq 'end')) { # done if no more steps
Log3 undef, 1, "Test NextStep: no more steps found - exiting";
done_testing;
exit(0);
}
if (!$delay || $delay ne 'wait') { # set timer to next step unless waiting for reception of data
#Log3 undef, 1, "Test NextStep: set timer to call step $next with delay $delay";
InternalTimer(gettimeofday() + $delay, \&CallStep, "main::testStep$next");
$testStep = $next;
}
#Log3 undef, 1, "Test NextStep: done.";
return;
}
#############################################################################
# Call the Test step and then set the timer for the next one
# called by internalTimer
sub CallStep {
my $func = shift;
$func =~ /^(.*[A-Za-z]+)(\d+)$/;
my $step = $2;
Log3 undef, 1, "----------------------------------------------------";
Log3 undef, 1, "Test step $step ($func)";
no strict "refs"; ## no critic - function name needs to be string
my $delay = eval { &{$func}() }; # call the next step and check for errors
if ($@) {
Log3 undef, 1, "Test step $step call created error: $@";
} else {
Log3 undef, 1, "Test step $step ($func) done" . (defined ($delay) ? ", delay before next step is $delay" : "");
}
# if step function returns 'wait' then do not set timer for next step but wait for ReactOnLogRegex or similar
NextStep($delay); # check for next step and set timer or end testing
return;
}
################################################################################
# check if a regex is found in logs (typically the sending of a request)
# and call SmResponseRead via timer to simulate the reception of a response
# called via logInform
sub ReactOnLogRegex {
my $name = shift;
my $line = shift;
#die "line got: $line";
if ($line =~ /$testOptions{RespondTo}/) {
my $send = $1;
my $id = substr ($send, 0, 2);
my $recv = $testOptions{ResponseHash}{$send}; # simulate broken error response by default
if (!$recv) {
$recv = ($id . '800041c0');
Log3 undef, 1, "Test: request $send is not in Reply hash, respond with default error instead";
}
my $delay = $testOptions{ResponseDelay} // 0.05;
Log3 undef, 1, "------------------------------------------------------------------------";
Log3 undef, 1, "Test saw sending $send, id $id, set timer to simulate receiving $recv in $delay";
InternalTimer(gettimeofday() + $delay, \&SimResponseRead, $recv); # set timer to simulate response and go to next step
}
return;
}
#######################################################################################
# simulate the reception of a response by calling SimRead
# and then setting the timer for the next step.
# todo: delay should be definable
sub SimResponseRead {
my $data = shift;
Log3 undef, 1, "Test now simulates reception of response and then checks for next step";
SimRead($testOptions{IODevice}, $data);
NextStep($testOptions{delayAfterResponse} // 0);
return;
}
##########################################################################
# interface to set options hash
# used options:
# - delayAfterResponse : time in seconds to wait after a simualted response before the next step function is called
# - IODevice : name of the device for sending and receiving
# - RespondTo : Regex to be used when monitoring the Fhem log and reacting on a "sending" log with a simulated reception
# - ResponseHash : Hash that maps from data sent (as found in log) to a valid response for the simulation
# - ResponseDelay : delay before the reception of a response is sumulated
# - Time1Regex and Time1Name : name and regex to be searched in log to find the time when it was logged, used by calcDelays
# - Time2Regex and Time2Name : name and regex to be searched in log to find the time when it was logged, used by calcDelays
sub SetTestOptions {
my $opt = shift;
foreach my $k (keys %{$opt}) {
$testOptions{$k} = $opt->{$k};
}
if ($testOptions{RespondTo}) {
$logInform{$testOptions{IODevice}} = \&ReactOnLogRegex;
}
return;
}
##############################################################
# simulate reading from a device.
# the device should be defined with 'none' as interface
# and the readFn should take data from $hash->{TestInput}
# in this case
sub SimRead {
my $name = shift; # Name of the io device that should read data
my $input = shift; # binary input string (coded as hex-string) to be read
my $option = shift; # further otions (so far only 'ASCII' to treat the input string as text instead of hex)
my $hash = $defs{$name};
my $data;
Log3 undef, 1, "Test simulate reception of $input";
if ($option && $option eq 'ASCII') {
$data = $input; # ascii
} else {
$data = pack ('H*', $input); # hex coded binary
}
$hash->{TestInput} = $data;
my $type = $defs{$name}{TYPE};
my $modHash = $modules{$type};
my $readFn = $modHash->{ReadFn};
eval { &{$readFn}($hash) };
if ($@) {
Log3 undef, 1, "Test step $testStep call to readFn created error: $@";
} else {
Log3 undef, 1, "Test step $testStep readFn done.";
}
return;
}
#############################################################
# wrapper for Log3 to be used in tests
sub LogStep {
my $msg = shift // '';
Log3 undef, 1, "Test step $testStep: $msg";
return;
}
###########################################################################
# find the time of two regexes in the log
sub findTimesInLog {
$results{$testOptions{Time1Name}.$testStep} = FhemTestUtils_getLogTime($testOptions{Time1Regex});
$results{$testOptions{Time2Name}.$testStep} = FhemTestUtils_getLogTime($testOptions{Time2Regex});
Log3 undef, 1, "Test step $testStep: LogTime for last $testOptions{Time1Name} is " .
($results{$testOptions{Time1Name}.$testStep} ? FmtTimeMs($results{$testOptions{Time1Name}.$testStep}) : 'unknown');
Log3 undef, 1, "Test step $testStep: LogTime for last $testOptions{Time2Name} is " .
($results{$testOptions{Time2Name}.$testStep} ? FmtTimeMs($results{$testOptions{Time2Name}.$testStep}) : 'unknown');
return;
}
################################################################################
# calculate and log the time differences found by calling findTimesInLog
sub calcDelays {
my ($lastDelay, $commDelay, $sendDelay);
if (defined ($results{$testOptions{Time1Name} . $testStep}) &&
defined ($results{$testOptions{Time2Name} . $testStep})) {
$lastDelay = sprintf '%.3f', ($results{$testOptions{Time2Name} . $testStep} // 0) - ($results{$testOptions{Time1Name} . ($testStep)} // 0);
Log3 undef, 1, "Test step $testStep: delay between $testOptions{Time1Name} in step " . ($testStep) . " and $testOptions{Time2Name} in step $testStep is $lastDelay";
}
if (defined ($results{$testOptions{Time1Name} . ($testStep - 1)}) &&
defined ($results{$testOptions{Time2Name} . ($testStep - 1)})) {
$commDelay = sprintf '%.3f', ($results{$testOptions{Time1Name} . $testStep} // 0) - ($results{$testOptions{Time2Name} . ($testStep - 1)} // 0);
$sendDelay = sprintf '%.3f', ($results{$testOptions{Time1Name} . $testStep} // 0) - ($results{$testOptions{Time1Name} . ($testStep - 1)} // 0);
Log3 undef, 1, "Test step $testStep: delay between $testOptions{Time2Name} in step " . ($testStep - 1) . " and $testOptions{Time1Name} in step $testStep is $commDelay, between each $testOptions{Time1Name} $sendDelay";
}
return ($commDelay, $sendDelay, $lastDelay);
}
################################################################################
# Reset Logs and Events and check for Warnings
sub CheckAndReset {
is(FhemTestUtils_gotLog('PERL WARNING'), 0, "no Perl Warnings so far");
FhemTestUtils_resetLogs();
FhemTestUtils_resetEvents();
return;
}
#########################################################################
# $Id$
# Utility functions for testing Modbus that can be uses by other Fhem modules
#
# This file is part of fhem.
#
# Fhem is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# Fhem is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with fhem. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
package FHEM::Modbus::TestUtils;
use strict;
use warnings;
use GPUtils qw(:all);
use Time::HiRes qw(gettimeofday);
use Test::More;
use Exporter ('import');
our @EXPORT_OK = qw(
CallStep
NextStep
LogStep
SimRead
findTimesInLog
calcDelays
SetTestOptions
CheckAndReset
);
our %EXPORT_TAGS = (all => [@EXPORT_OK]);
BEGIN {
GP_Import( qw(
fhem
Log3
RemoveInternalTimer
InternalTimer
gettimeofday
FmtDateTime
FmtTimeMs
ReadingsVal
ReadingsTimestamp
AttrVal
InternalVal
featurelevel
FhemTestUtils_gotEvent
FhemTestUtils_gotLog
FhemTestUtils_getLogTime
FhemTestUtils_resetLogs
FhemTestUtils_resetEvents
defs
modules
attr
done_testing
logInform
));
};
our $testStep = 0;
our %testOptions;
our %results;
#####################################################################
#
# NextStep
# - GetNextStep
# - set timer for CallStep or end Testing
#
# InternalTimer -> CallStep
# - step via eval
# - NextStep -> Timer for CallStep
# - step via eval
# - NextStep
#
# LogInform -> ReactOnLogRegex ->
# - InternalTimer for SimResponseRead
#
# InternalTimer -> SimResponseRead
# - SimResponseRead
# - NextStep -> Timer for CallStep
# - step via eval
# - send -> LogInform -> SimResponseRead ...
# - NextStep?? (don't set timer for next step in this case)
#
##################################################################
# find the next test step number
# internal function, called from NextStep
sub GetNextStep {
#Log3 undef, 1, "Test GetNextStep: look for next step";
my $next = $testStep;
FINDSTEP:
while (1) {
$next++;
return 0 if ($next > 99);
#Log3 undef, 1, "Test GetNextStep: check step $next";
next FINDSTEP if (!defined (&{"main::testStep$next"}));
return $next;
}
return; # never reached
}
######################################################################
# set internalTimer to call the next test step after an optional delay
# normally in tests to have the first step called and
# also internally by CallStep and SimResponseRead
sub NextStep {
my $delay = shift // 0;
my $next = shift // GetNextStep();
if (!$next || ($delay && $delay eq 'end')) { # done if no more steps
Log3 undef, 1, "Test NextStep: no more steps found - exiting";
done_testing;
exit(0);
}
if (!$delay || $delay ne 'wait') { # set timer to next step unless waiting for reception of data
#Log3 undef, 1, "Test NextStep: set timer to call step $next with delay $delay";
InternalTimer(gettimeofday() + $delay, \&CallStep, "main::testStep$next");
$testStep = $next;
}
#Log3 undef, 1, "Test NextStep: done.";
return;
}
#############################################################################
# Call the Test step and then set the timer for the next one
# called by internalTimer
sub CallStep {
my $func = shift;
$func =~ /^(.*[A-Za-z]+)(\d+)$/;
my $step = $2;
Log3 undef, 1, "----------------------------------------------------";
Log3 undef, 1, "Test step $step ($func)";
no strict "refs"; ## no critic - function name needs to be string
my $delay = eval { &{$func}() }; # call the next step and check for errors
if ($@) {
Log3 undef, 1, "Test step $step call created error: $@";
} else {
Log3 undef, 1, "Test step $step ($func) done" . (defined ($delay) ? ", delay before next step is $delay" : "");
}
# if step function returns 'wait' then do not set timer for next step but wait for ReactOnLogRegex or similar
NextStep($delay); # check for next step and set timer or end testing
return;
}
################################################################################
# check if a regex is found in logs (typically the sending of a request)
# and call SmResponseRead via timer to simulate the reception of a response
# called via logInform
sub ReactOnLogRegex {
my $name = shift;
my $line = shift;
#die "line got: $line";
if ($line =~ /$testOptions{RespondTo}/) {
my $send = $1;
my $id = substr ($send, 0, 2);
my $recv = $testOptions{ResponseHash}{$send}; # simulate broken error response by default
if (!$recv) {
$recv = ($id . '800041c0');
Log3 undef, 1, "Test: request $send is not in Reply hash, respond with default error instead";
}
my $delay = $testOptions{ResponseDelay} // 0.05;
Log3 undef, 1, "------------------------------------------------------------------------";
Log3 undef, 1, "Test saw sending $send, id $id, set timer to simulate receiving $recv in $delay";
InternalTimer(gettimeofday() + $delay, \&SimResponseRead, $recv); # set timer to simulate response and go to next step
}
return;
}
#######################################################################################
# simulate the reception of a response by calling SimRead
# and then setting the timer for the next step.
# todo: delay should be definable
sub SimResponseRead {
my $data = shift;
Log3 undef, 1, "Test now simulates reception of response and then checks for next step";
SimRead($testOptions{IODevice}, $data);
NextStep($testOptions{delayAfterResponse} // 0);
return;
}
##########################################################################
# interface to set options hash
# used options:
# - delayAfterResponse : time in seconds to wait after a simualted response before the next step function is called
# - IODevice : name of the device for sending and receiving
# - RespondTo : Regex to be used when monitoring the Fhem log and reacting on a "sending" log with a simulated reception
# - ResponseHash : Hash that maps from data sent (as found in log) to a valid response for the simulation
# - ResponseDelay : delay before the reception of a response is sumulated
# - Time1Regex and Time1Name : name and regex to be searched in log to find the time when it was logged, used by calcDelays
# - Time2Regex and Time2Name : name and regex to be searched in log to find the time when it was logged, used by calcDelays
sub SetTestOptions {
my $opt = shift;
foreach my $k (keys %{$opt}) {
$testOptions{$k} = $opt->{$k};
}
if ($testOptions{RespondTo}) {
$logInform{$testOptions{IODevice}} = \&ReactOnLogRegex;
}
return;
}
##############################################################
# simulate reading from a device.
# the device should be defined with 'none' as interface
# and the readFn should take data from $hash->{TestInput}
# in this case
sub SimRead {
my $name = shift; # Name of the io device that should read data
my $input = shift; # binary input string (coded as hex-string) to be read
my $option = shift; # further otions (so far only 'ASCII' to treat the input string as text instead of hex)
my $hash = $defs{$name};
my $data;
Log3 undef, 1, "Test simulate reception of $input";
if ($option && $option eq 'ASCII') {
$data = $input; # ascii
} else {
$data = pack ('H*', $input); # hex coded binary
}
$hash->{TestInput} = $data;
my $type = $defs{$name}{TYPE};
my $modHash = $modules{$type};
my $readFn = $modHash->{ReadFn};
eval { &{$readFn}($hash) };
if ($@) {
Log3 undef, 1, "Test step $testStep call to readFn created error: $@";
} else {
Log3 undef, 1, "Test step $testStep readFn done.";
}
return;
}
#############################################################
# wrapper for Log3 to be used in tests
sub LogStep {
my $msg = shift // '';
Log3 undef, 1, "Test step $testStep: $msg";
return;
}
###########################################################################
# find the time of two regexes in the log
sub findTimesInLog {
$results{$testOptions{Time1Name}.$testStep} = FhemTestUtils_getLogTime($testOptions{Time1Regex});
$results{$testOptions{Time2Name}.$testStep} = FhemTestUtils_getLogTime($testOptions{Time2Regex});
Log3 undef, 1, "Test step $testStep: LogTime for last $testOptions{Time1Name} is " .
($results{$testOptions{Time1Name}.$testStep} ? FmtTimeMs($results{$testOptions{Time1Name}.$testStep}) : 'unknown');
Log3 undef, 1, "Test step $testStep: LogTime for last $testOptions{Time2Name} is " .
($results{$testOptions{Time2Name}.$testStep} ? FmtTimeMs($results{$testOptions{Time2Name}.$testStep}) : 'unknown');
return;
}
################################################################################
# calculate and log the time differences found by calling findTimesInLog
sub calcDelays {
my ($lastDelay, $commDelay, $sendDelay);
if (defined ($results{$testOptions{Time1Name} . $testStep}) &&
defined ($results{$testOptions{Time2Name} . $testStep})) {
$lastDelay = sprintf '%.3f', ($results{$testOptions{Time2Name} . $testStep} // 0) - ($results{$testOptions{Time1Name} . ($testStep)} // 0);
Log3 undef, 1, "Test step $testStep: delay between $testOptions{Time1Name} in step " . ($testStep) . " and $testOptions{Time2Name} in step $testStep is $lastDelay";
}
if (defined ($results{$testOptions{Time1Name} . ($testStep - 1)}) &&
defined ($results{$testOptions{Time2Name} . ($testStep - 1)})) {
$commDelay = sprintf '%.3f', ($results{$testOptions{Time1Name} . $testStep} // 0) - ($results{$testOptions{Time2Name} . ($testStep - 1)} // 0);
$sendDelay = sprintf '%.3f', ($results{$testOptions{Time1Name} . $testStep} // 0) - ($results{$testOptions{Time1Name} . ($testStep - 1)} // 0);
Log3 undef, 1, "Test step $testStep: delay between $testOptions{Time2Name} in step " . ($testStep - 1) . " and $testOptions{Time1Name} in step $testStep is $commDelay, between each $testOptions{Time1Name} $sendDelay";
}
return ($commDelay, $sendDelay, $lastDelay);
}
################################################################################
# Reset Logs and Events and check for Warnings
sub CheckAndReset {
is(FhemTestUtils_gotLog('PERL WARNING'), 0, "no Perl Warnings so far");
FhemTestUtils_resetLogs();
FhemTestUtils_resetEvents();
return;
}
1;

View File

@ -1,42 +1,42 @@
##############################################
# $Id: 98_ModbusGen${fName}.pm automatically generated by ModbusAttr $
# module generated automatically by ModbusAttr
package ModbusGen${fName};
use strict;
use warnings;
use GPUtils qw(:all);
use Exporter ('import');
our @EXPORT_OK = qw();
our %EXPORT_TAGS = (all => [@EXPORT_OK]);
BEGIN {
GP_Import( qw(
LoadModule
));
GP_Export( qw(
Initialize
));
};
my %ModbusGen${fName}parseInfo = (
${t}
#####################################
sub Initialize {
my $modHash = shift;
$modHash->{parseInfo} = \%ModbusGen${fName}parseInfo; # defines registers, inputs, coils etc. for this Modbus Defive
$modHash->{deviceInfo} = \%ModbusGen${fName}deviceInfo; # defines properties of the device like defaults and supported function codes
LoadModule "Modbus";
Modbus::InitializeLD($modHash); # Generic function of the Modbus module does the rest
$modHash->{AttrList} = $modHash->{AttrList} . " " . # Standard Attributes like IODEv etc
$modHash->{ObjAttrList} . " " . # Attributes to add or overwrite parseInfo definitions
$modHash->{DevAttrList} . " " . # Attributes to add or overwrite devInfo definitions
"poll-.* " . # overwrite poll with poll-ReadingName
"polldelay-.* "; # overwrite polldelay with polldelay-ReadingName
}
##############################################
# $Id: 98_ModbusGen${fName}.pm automatically generated by ModbusAttr $
# module generated automatically by ModbusAttr
package ModbusGen${fName};
use strict;
use warnings;
use GPUtils qw(:all);
use Exporter ('import');
our @EXPORT_OK = qw();
our %EXPORT_TAGS = (all => [@EXPORT_OK]);
BEGIN {
GP_Import( qw(
LoadModule
));
GP_Export( qw(
Initialize
));
};
my %ModbusGen${fName}parseInfo = (
${t}
#####################################
sub Initialize {
my $modHash = shift;
$modHash->{parseInfo} = \%ModbusGen${fName}parseInfo; # defines registers, inputs, coils etc. for this Modbus Defive
$modHash->{deviceInfo} = \%ModbusGen${fName}deviceInfo; # defines properties of the device like defaults and supported function codes
LoadModule "Modbus";
Modbus::InitializeLD($modHash); # Generic function of the Modbus module does the rest
$modHash->{AttrList} = $modHash->{AttrList} . " " . # Standard Attributes like IODEv etc
$modHash->{ObjAttrList} . " " . # Attributes to add or overwrite parseInfo definitions
$modHash->{DevAttrList} . " " . # Attributes to add or overwrite devInfo definitions
"poll-.* " . # overwrite poll with poll-ReadingName
"polldelay-.* "; # overwrite polldelay with polldelay-ReadingName
}

View File

@ -1,3 +1,3 @@
define M1 ModbusAttr 1 1
attr M1 verbose 5
define MS Modbus none
define M1 ModbusAttr 1 1
attr M1 verbose 5
define MS Modbus none

View File

@ -1,236 +1,236 @@
attr global mseclog 1
define MS Modbus none
attr MS verbose 4
attr MS clientSwitchDelay 0
attr MS busDelay 0
define M5 ModbusAttr 5 0
attr M5 verbose 3
attr M5 dev-timing-sendDelay 0
attr M5 dev-timing-commDelay 0
attr M5 nonPrioritizedGet 1
attr M5 obj-h256-reading TempWasserEin
attr M5 obj-h258-reading TempWasserAus
attr M5 obj-h10-reading o1
attr M5 obj-h10-map 0:off, 1:on
attr M5 obj-h10-set 1
attr M5 obj-h11-reading o2
attr M5 obj-h11-hint 1,2,3
attr M5 dev-h-defSet 1
attr M5 dev-h-defShowGet 1
define M1 ModbusAttr 1 0
attr M1 verbose 3
attr M1 dev-timing-sendDelay 0
attr M1 dev-timing-commDelay 0
attr M1 nonPrioritizedGet 1
attr M1 dev-c-defPoll 1
attr M1 dev-h-combine 5
attr M1 dev-h-defLen 2
attr M1 dev-h-defPoll 1
attr M1 dev-h-defRevRegs 1
attr M1 dev-h-write 16
attr M1 dev-i-defFormat %.1f
attr M1 dev-i-defLen 2
attr M1 dev-i-defPoll 1
attr M1 dev-i-defRevRegs 1
attr M1 dev-i-defUnpack f>
attr M1 dev-type-VT_Date-expr sprintf("%02d.%02d",($val >> 8),($val & 0xff))
attr M1 dev-type-VT_Date-len 1
attr M1 dev-type-VT_Date-unpack n
attr M1 dev-type-VT_R4-format %.1f
attr M1 dev-type-VT_R4-len 2
attr M1 dev-type-VT_R4-revRegs 1
attr M1 dev-type-VT_R4-unpack f>
attr M1 dev-type-VT_String-bswapRegs 1
attr M1 dev-type-VT_String-decode cp850
attr M1 dev-type-VT_String-encode utf8
attr M1 dev-type-VT_String-expr $val =~ s/[\00]+//gr
attr M1 dev-type-VT_String-len 8
attr M1 dev-type-VT_String-revRegs 0
attr M1 dev-type-VT_String-unpack a*
attr M1 dev-type-VT_Time-expr sprintf("%02d:%02d",($val >> 8),($val & 0xff))
attr M1 dev-type-VT_Time-len 1
attr M1 dev-type-VT_Time-unpack n
attr M1 obj-c1009-map 0:false, 1:true
attr M1 obj-c1009-polldelay 3600
attr M1 obj-c1009-reading HeatOff
attr M1 obj-c1329-map 0:false, 1:true
attr M1 obj-c1329-polldelay 300
attr M1 obj-c1329-reading HeatIncreaseOff
attr M1 obj-c1409-map 0:0, 1:1=2, 2:1->2, 3:1->2->3
attr M1 obj-c1409-polldelay 60
attr M1 obj-c1409-reading AuxilaryModeHeating
attr M1 obj-c1457-map 0:false, 1:true
attr M1 obj-c1457-reading CoolOff
attr M1 obj-c1633-map 0:false, 1:true
attr M1 obj-c1633-reading DomesticWaterOff
attr M1 obj-h1-len 13
attr M1 obj-h1-poll 0
attr M1 obj-h1-reading RTCTime
attr M1 obj-h1-unpack H*
attr M1 obj-h1025-polldelay 86400
attr M1 obj-h1025-reading HeatTimeOn
attr M1 obj-h1025-type VT_Time
attr M1 obj-h1041-polldelay 86400
attr M1 obj-h1041-reading HeatTimeOff
attr M1 obj-h1041-type VT_Time
attr M1 obj-h1057-max 30
attr M1 obj-h1057-min 10
attr M1 obj-h1057-reading HeatCharacteristicSetPoint
attr M1 obj-h1057-type VT_R4
attr M1 obj-h1089-max 65
attr M1 obj-h1089-min 15
attr M1 obj-h1089-reading HeatCharacteristicSetPointBaseTemp
attr M1 obj-h1089-set 1
attr M1 obj-h1089-type VT_R4
attr M1 obj-h1121-max 100
attr M1 obj-h1121-min 0
attr M1 obj-h1121-reading HeatCharacteristicGradient
attr M1 obj-h1121-type VT_R4
attr M1 obj-h1153-max 72
attr M1 obj-h1153-min 10
attr M1 obj-h1153-reading HeatCharacteristicLimit
attr M1 obj-h1153-type VT_R4
attr M1 obj-h1185-reading HeatReturnTemp
attr M1 obj-h1185-type VT_R4
attr M1 obj-h1249-max 3
attr M1 obj-h1249-min 1
attr M1 obj-h1249-reading HeatTempHyst
attr M1 obj-h1249-type VT_R4
attr M1 obj-h1281-reading RoomTempNominal
attr M1 obj-h1281-type VT_R4
attr M1 obj-h1313-len 1
attr M1 obj-h1313-max 200
attr M1 obj-h1313-min 0
attr M1 obj-h1313-reading RoomTempFactor
attr M1 obj-h1313-unpack S>
attr M1 obj-h1345-polldelay 86400
attr M1 obj-h1345-reading HeatIncreaseTimeOn
attr M1 obj-h1345-type VT_Time
attr M1 obj-h1361-polldelay 86400
attr M1 obj-h1361-reading HeatIncreaseTimeOff
attr M1 obj-h1361-type VT_Time
attr M1 obj-h1377-max 5
attr M1 obj-h1377-min -5
attr M1 obj-h1377-reading HeatIncreaseSetPtOffset
attr M1 obj-h1377-type VT_R4
attr M1 obj-h1425-max 5
attr M1 obj-h1425-min 0
attr M1 obj-h1425-reading AuxilaryMaxDifference
attr M1 obj-h1425-type VT_R4
attr M1 obj-h1473-polldelay 86400
attr M1 obj-h1473-reading CoolTimeOn
attr M1 obj-h1473-type VT_Time
attr M1 obj-h1489-polldelay 86400
attr M1 obj-h1489-reading CoolTimeOff
attr M1 obj-h1489-type VT_Time
attr M1 obj-h1505-max 30
attr M1 obj-h1505-min 18
attr M1 obj-h1505-reading CoolCharacteristicSetPoint
attr M1 obj-h1505-type VT_R4
attr M1 obj-h1569-reading CoolReturnTempNominal
attr M1 obj-h1569-type VT_R4
attr M1 obj-h1601-max 3
attr M1 obj-h1601-min 1
attr M1 obj-h1601-reading CoolReturnTempHyst
attr M1 obj-h1601-type VT_R4
attr M1 obj-h1649-polldelay 86400
attr M1 obj-h1649-reading DomesticWaterTimeOn
attr M1 obj-h1649-type VT_Time
attr M1 obj-h1665-polldelay 86400
attr M1 obj-h1665-reading DomesticWaterTimeOff
attr M1 obj-h1665-type VT_Time
attr M1 obj-h1713-reading DomesticWaterTempNominal
attr M1 obj-h1713-set 1
attr M1 obj-h1713-type VT_R4
attr M1 obj-h1745-max 10
attr M1 obj-h1745-min 5
attr M1 obj-h1745-reading DomesticWaterTempHyst
attr M1 obj-h1745-type VT_R4
attr M1 obj-h1777-len 16
attr M1 obj-h1777-polldelay 86400
attr M1 obj-h1777-reading LegionellaSchedule
attr M1 obj-h1777-unpack H*
attr M1 obj-h1793-polldelay 86400
attr M1 obj-h1793-type VT_Time
attr M1 obj-h1809-polldelay 86400
attr M1 obj-h1809-reading LegionellaTimeOff
attr M1 obj-h1809-type VT_Time
attr M1 obj-h209-len 13
attr M1 obj-h209-poll 0
attr M1 obj-h209-reading RTCDate
attr M1 obj-h209-unpack H*
attr M1 obj-h417-len 1
attr M1 obj-h417-polldelay 86400
attr M1 obj-h417-reading LngSelect
attr M1 obj-h4497-reading PElectric
attr M1 obj-h4497-type VT_R4
attr M1 obj-h4529-reading PThermal
attr M1 obj-h4529-type VT_R4
attr M1 obj-h4689-polldelay 86400
attr M1 obj-h4689-reading FirmwareVersion
attr M1 obj-h4689-showGet 1
attr M1 obj-h4689-type VT_String
attr M1 obj-h4689-unpack (a*)
attr M1 obj-h4817-polldelay 86400
attr M1 obj-h4817-reading FirmwareDate
attr M1 obj-h4817-type VT_String
attr M1 obj-h4945-polldelay 86400
attr M1 obj-h4945-reading ManufType
attr M1 obj-h4945-type VT_String
attr M1 obj-h5073-polldelay 86400
attr M1 obj-h5073-reading ManufSerialNum
attr M1 obj-h5073-type VT_String
attr M1 obj-h5457-len 1
attr M1 obj-h5457-map 0048:Kühlung, 0040:Idle, 0051:Warmwasser, 0052:Heizung
attr M1 obj-h5457-reading OperatingState
attr M1 obj-h5457-unpack H*
attr M1 obj-h5505-len 16
attr M1 obj-h5505-reading ADC_Error
attr M1 obj-h5505-unpack H*
attr M1 obj-h5521-reading LCD_Display_Line_1
attr M1 obj-h5521-type VT_String
attr M1 obj-h5649-reading LCD_Display_Line_2
attr M1 obj-h5649-type VT_String
attr M1 obj-i1217-reading HeatReturnTempNominal
attr M1 obj-i1537-reading CoolReturnTemp
attr M1 obj-i1681-reading DomesticWaterTempActual
attr M1 obj-i2625-reading OHCompressor1
attr M1 obj-i2657-reading OHCompressor2
attr M1 obj-i2689-reading OHHeatingCompressor
attr M1 obj-i2721-reading OHHeatingAuxilary
attr M1 obj-i2753-reading OHCooling
attr M1 obj-i2785-reading OHDomesticWaterCompressor
attr M1 obj-i433-reading OutdoorTemp
attr M1 obj-i433-showGet 1
attr M1 obj-i4561-reading COP
attr M1 obj-i4561-showGet 1
attr M1 obj-i465-reading OutdoorTemp1h
attr M1 obj-i497-reading OutdoorTemp24h
attr M1 obj-i529-reading HeatSourceIn
attr M1 obj-i561-reading HeatSourceOut
attr M1 obj-i593-reading EvaporationTemp
attr M1 obj-i625-reading SuctionGasTemp
attr M1 obj-i657-reading EvaporationPress
attr M1 obj-i689-reading ReturnTempNominal
attr M1 obj-i721-reading ReturnTemp
attr M1 obj-i753-reading FlowTemp
attr M1 obj-i785-reading CondensationTemp
attr M1 obj-i817-reading CondensationPress
attr M1 obj-i849-reading RoomTemp
attr M1 obj-i881-reading RoomTemp1h
attr M1 obj-i913-reading DomesticWaterTemp
attr M1 obj-i945-reading PoolTemp
attr M1 obj-i977-reading SolarTemp
attr M1 sortUpdate 1
attr global mseclog 1
define MS Modbus none
attr MS verbose 4
attr MS clientSwitchDelay 0
attr MS busDelay 0
define M5 ModbusAttr 5 0
attr M5 verbose 3
attr M5 dev-timing-sendDelay 0
attr M5 dev-timing-commDelay 0
attr M5 nonPrioritizedGet 1
attr M5 obj-h256-reading TempWasserEin
attr M5 obj-h258-reading TempWasserAus
attr M5 obj-h10-reading o1
attr M5 obj-h10-map 0:off, 1:on
attr M5 obj-h10-set 1
attr M5 obj-h11-reading o2
attr M5 obj-h11-hint 1,2,3
attr M5 dev-h-defSet 1
attr M5 dev-h-defShowGet 1
define M1 ModbusAttr 1 0
attr M1 verbose 3
attr M1 dev-timing-sendDelay 0
attr M1 dev-timing-commDelay 0
attr M1 nonPrioritizedGet 1
attr M1 dev-c-defPoll 1
attr M1 dev-h-combine 5
attr M1 dev-h-defLen 2
attr M1 dev-h-defPoll 1
attr M1 dev-h-defRevRegs 1
attr M1 dev-h-write 16
attr M1 dev-i-defFormat %.1f
attr M1 dev-i-defLen 2
attr M1 dev-i-defPoll 1
attr M1 dev-i-defRevRegs 1
attr M1 dev-i-defUnpack f>
attr M1 dev-type-VT_Date-expr sprintf("%02d.%02d",($val >> 8),($val & 0xff))
attr M1 dev-type-VT_Date-len 1
attr M1 dev-type-VT_Date-unpack n
attr M1 dev-type-VT_R4-format %.1f
attr M1 dev-type-VT_R4-len 2
attr M1 dev-type-VT_R4-revRegs 1
attr M1 dev-type-VT_R4-unpack f>
attr M1 dev-type-VT_String-bswapRegs 1
attr M1 dev-type-VT_String-decode cp850
attr M1 dev-type-VT_String-encode utf8
attr M1 dev-type-VT_String-expr $val =~ s/[\00]+//gr
attr M1 dev-type-VT_String-len 8
attr M1 dev-type-VT_String-revRegs 0
attr M1 dev-type-VT_String-unpack a*
attr M1 dev-type-VT_Time-expr sprintf("%02d:%02d",($val >> 8),($val & 0xff))
attr M1 dev-type-VT_Time-len 1
attr M1 dev-type-VT_Time-unpack n
attr M1 obj-c1009-map 0:false, 1:true
attr M1 obj-c1009-polldelay 3600
attr M1 obj-c1009-reading HeatOff
attr M1 obj-c1329-map 0:false, 1:true
attr M1 obj-c1329-polldelay 300
attr M1 obj-c1329-reading HeatIncreaseOff
attr M1 obj-c1409-map 0:0, 1:1=2, 2:1->2, 3:1->2->3
attr M1 obj-c1409-polldelay 60
attr M1 obj-c1409-reading AuxilaryModeHeating
attr M1 obj-c1457-map 0:false, 1:true
attr M1 obj-c1457-reading CoolOff
attr M1 obj-c1633-map 0:false, 1:true
attr M1 obj-c1633-reading DomesticWaterOff
attr M1 obj-h1-len 13
attr M1 obj-h1-poll 0
attr M1 obj-h1-reading RTCTime
attr M1 obj-h1-unpack H*
attr M1 obj-h1025-polldelay 86400
attr M1 obj-h1025-reading HeatTimeOn
attr M1 obj-h1025-type VT_Time
attr M1 obj-h1041-polldelay 86400
attr M1 obj-h1041-reading HeatTimeOff
attr M1 obj-h1041-type VT_Time
attr M1 obj-h1057-max 30
attr M1 obj-h1057-min 10
attr M1 obj-h1057-reading HeatCharacteristicSetPoint
attr M1 obj-h1057-type VT_R4
attr M1 obj-h1089-max 65
attr M1 obj-h1089-min 15
attr M1 obj-h1089-reading HeatCharacteristicSetPointBaseTemp
attr M1 obj-h1089-set 1
attr M1 obj-h1089-type VT_R4
attr M1 obj-h1121-max 100
attr M1 obj-h1121-min 0
attr M1 obj-h1121-reading HeatCharacteristicGradient
attr M1 obj-h1121-type VT_R4
attr M1 obj-h1153-max 72
attr M1 obj-h1153-min 10
attr M1 obj-h1153-reading HeatCharacteristicLimit
attr M1 obj-h1153-type VT_R4
attr M1 obj-h1185-reading HeatReturnTemp
attr M1 obj-h1185-type VT_R4
attr M1 obj-h1249-max 3
attr M1 obj-h1249-min 1
attr M1 obj-h1249-reading HeatTempHyst
attr M1 obj-h1249-type VT_R4
attr M1 obj-h1281-reading RoomTempNominal
attr M1 obj-h1281-type VT_R4
attr M1 obj-h1313-len 1
attr M1 obj-h1313-max 200
attr M1 obj-h1313-min 0
attr M1 obj-h1313-reading RoomTempFactor
attr M1 obj-h1313-unpack S>
attr M1 obj-h1345-polldelay 86400
attr M1 obj-h1345-reading HeatIncreaseTimeOn
attr M1 obj-h1345-type VT_Time
attr M1 obj-h1361-polldelay 86400
attr M1 obj-h1361-reading HeatIncreaseTimeOff
attr M1 obj-h1361-type VT_Time
attr M1 obj-h1377-max 5
attr M1 obj-h1377-min -5
attr M1 obj-h1377-reading HeatIncreaseSetPtOffset
attr M1 obj-h1377-type VT_R4
attr M1 obj-h1425-max 5
attr M1 obj-h1425-min 0
attr M1 obj-h1425-reading AuxilaryMaxDifference
attr M1 obj-h1425-type VT_R4
attr M1 obj-h1473-polldelay 86400
attr M1 obj-h1473-reading CoolTimeOn
attr M1 obj-h1473-type VT_Time
attr M1 obj-h1489-polldelay 86400
attr M1 obj-h1489-reading CoolTimeOff
attr M1 obj-h1489-type VT_Time
attr M1 obj-h1505-max 30
attr M1 obj-h1505-min 18
attr M1 obj-h1505-reading CoolCharacteristicSetPoint
attr M1 obj-h1505-type VT_R4
attr M1 obj-h1569-reading CoolReturnTempNominal
attr M1 obj-h1569-type VT_R4
attr M1 obj-h1601-max 3
attr M1 obj-h1601-min 1
attr M1 obj-h1601-reading CoolReturnTempHyst
attr M1 obj-h1601-type VT_R4
attr M1 obj-h1649-polldelay 86400
attr M1 obj-h1649-reading DomesticWaterTimeOn
attr M1 obj-h1649-type VT_Time
attr M1 obj-h1665-polldelay 86400
attr M1 obj-h1665-reading DomesticWaterTimeOff
attr M1 obj-h1665-type VT_Time
attr M1 obj-h1713-reading DomesticWaterTempNominal
attr M1 obj-h1713-set 1
attr M1 obj-h1713-type VT_R4
attr M1 obj-h1745-max 10
attr M1 obj-h1745-min 5
attr M1 obj-h1745-reading DomesticWaterTempHyst
attr M1 obj-h1745-type VT_R4
attr M1 obj-h1777-len 16
attr M1 obj-h1777-polldelay 86400
attr M1 obj-h1777-reading LegionellaSchedule
attr M1 obj-h1777-unpack H*
attr M1 obj-h1793-polldelay 86400
attr M1 obj-h1793-type VT_Time
attr M1 obj-h1809-polldelay 86400
attr M1 obj-h1809-reading LegionellaTimeOff
attr M1 obj-h1809-type VT_Time
attr M1 obj-h209-len 13
attr M1 obj-h209-poll 0
attr M1 obj-h209-reading RTCDate
attr M1 obj-h209-unpack H*
attr M1 obj-h417-len 1
attr M1 obj-h417-polldelay 86400
attr M1 obj-h417-reading LngSelect
attr M1 obj-h4497-reading PElectric
attr M1 obj-h4497-type VT_R4
attr M1 obj-h4529-reading PThermal
attr M1 obj-h4529-type VT_R4
attr M1 obj-h4689-polldelay 86400
attr M1 obj-h4689-reading FirmwareVersion
attr M1 obj-h4689-showGet 1
attr M1 obj-h4689-type VT_String
attr M1 obj-h4689-unpack (a*)
attr M1 obj-h4817-polldelay 86400
attr M1 obj-h4817-reading FirmwareDate
attr M1 obj-h4817-type VT_String
attr M1 obj-h4945-polldelay 86400
attr M1 obj-h4945-reading ManufType
attr M1 obj-h4945-type VT_String
attr M1 obj-h5073-polldelay 86400
attr M1 obj-h5073-reading ManufSerialNum
attr M1 obj-h5073-type VT_String
attr M1 obj-h5457-len 1
attr M1 obj-h5457-map 0048:Kühlung, 0040:Idle, 0051:Warmwasser, 0052:Heizung
attr M1 obj-h5457-reading OperatingState
attr M1 obj-h5457-unpack H*
attr M1 obj-h5505-len 16
attr M1 obj-h5505-reading ADC_Error
attr M1 obj-h5505-unpack H*
attr M1 obj-h5521-reading LCD_Display_Line_1
attr M1 obj-h5521-type VT_String
attr M1 obj-h5649-reading LCD_Display_Line_2
attr M1 obj-h5649-type VT_String
attr M1 obj-i1217-reading HeatReturnTempNominal
attr M1 obj-i1537-reading CoolReturnTemp
attr M1 obj-i1681-reading DomesticWaterTempActual
attr M1 obj-i2625-reading OHCompressor1
attr M1 obj-i2657-reading OHCompressor2
attr M1 obj-i2689-reading OHHeatingCompressor
attr M1 obj-i2721-reading OHHeatingAuxilary
attr M1 obj-i2753-reading OHCooling
attr M1 obj-i2785-reading OHDomesticWaterCompressor
attr M1 obj-i433-reading OutdoorTemp
attr M1 obj-i433-showGet 1
attr M1 obj-i4561-reading COP
attr M1 obj-i4561-showGet 1
attr M1 obj-i465-reading OutdoorTemp1h
attr M1 obj-i497-reading OutdoorTemp24h
attr M1 obj-i529-reading HeatSourceIn
attr M1 obj-i561-reading HeatSourceOut
attr M1 obj-i593-reading EvaporationTemp
attr M1 obj-i625-reading SuctionGasTemp
attr M1 obj-i657-reading EvaporationPress
attr M1 obj-i689-reading ReturnTempNominal
attr M1 obj-i721-reading ReturnTemp
attr M1 obj-i753-reading FlowTemp
attr M1 obj-i785-reading CondensationTemp
attr M1 obj-i817-reading CondensationPress
attr M1 obj-i849-reading RoomTemp
attr M1 obj-i881-reading RoomTemp1h
attr M1 obj-i913-reading DomesticWaterTemp
attr M1 obj-i945-reading PoolTemp
attr M1 obj-i977-reading SolarTemp
attr M1 sortUpdate 1

View File

@ -1,123 +1,123 @@
attr global mseclog 1
define D1 dummy
define Slave ModbusAttr 5 slave global:5501
attr Slave obj-h256-reading TempWasserEin
attr Slave obj-h258-reading TempWasserAus
attr Slave obj-h100-reading Test1
attr Slave obj-h100-setexpr $val * 4
attr Slave obj-h101-reading Test2
attr Slave obj-h101-unpack f>
attr Slave obj-h101-len 2
attr Slave obj-h103-reading Test3
attr Slave obj-h103-unpack a8
attr Slave obj-h103-len 4
attr Slave obj-h120-reading Test4
attr Slave obj-h120-unpack f>
attr Slave obj-h120-len 2
attr Slave obj-h130-reading Test5
attr Slave obj-h130-unpack a*
attr Slave obj-h130-len 2
attr Slave obj-c400-reading c0
attr Slave obj-c401-reading c1
attr Slave obj-c402-reading c2
attr Slave obj-c403-reading c3
attr Slave obj-c404-reading c4
attr Slave obj-c405-reading c5
attr Slave obj-c406-reading c6
attr Slave obj-c407-reading c7
attr Slave obj-c408-reading c8
attr Slave obj-c409-reading c9
attr Slave obj-c410-reading c10
attr Slave obj-c411-reading c11
attr Slave obj-c412-reading c12
attr Slave obj-c413-reading c13
attr Slave obj-c414-reading c14
attr Slave obj-c415-reading c15
attr Slave obj-c416-reading c16
attr Slave obj-c417-reading c17
attr Slave obj-c418-reading c18
define Master ModbusAttr 5 0 localhost:5501
attr Master disable 1
attr Master verbose 3
attr Master nonPrioritizedGet 1
attr Master nonPrioritizedSet 1
attr Master dev-timing-sendDelay 0
attr Master dev-timing-commDelay 0
attr Master obj-h256-reading TempWasserEin
attr Master obj-h258-reading TempWasserAus
attr Master obj-h100-reading Test1
attr Master obj-h100-expr $val + 2
attr Master obj-h100-poll 1
attr Master obj-h101-reading Test2
attr Master obj-h101-unpack f>
attr Master obj-h101-len 2
attr Master obj-h101-format %.2f
attr Master obj-h101-poll 1
attr Master obj-h103-reading Test3
attr Master obj-h103-unpack a8
attr Master obj-h103-len 4
attr Master obj-h103-poll 1
attr Master obj-h120-reading Test4
attr Master obj-h120-unpack f>
attr Master obj-h120-len 2
attr Master obj-h120-format %.2f
attr Master obj-h120-poll 1
attr Master obj-h120-ignoreExpr $val > 10
attr Master obj-h130-reading Test5
attr Master obj-h130-unpack a*
attr Master obj-h130-len 2
attr Master obj-h130-encode utf8
attr Master obj-h10-reading o1
attr Master obj-h10-map 0:off, 1:on
attr Master obj-h11-reading o2
attr Master obj-h11-min 1
attr Master obj-h11-max 3
attr Master dev-h-defSet 1
attr Master dev-c-defSet 1
attr Master dev-h-defShowGet 1
attr Master obj-c400-reading c0
attr Master obj-c401-reading c1
attr Master obj-c402-reading c2
attr Master obj-c403-reading c3
attr Master obj-c404-reading c4
attr Master obj-c405-reading c5
attr Master obj-c406-reading c6
attr Master obj-c407-reading c7
attr Master obj-c408-reading c8
attr Master obj-c409-reading c9
attr Master obj-c410-reading c10
attr Master obj-c411-reading c11
attr Master obj-c412-reading c12
attr Master obj-c413-reading c13
attr Master obj-c414-reading c14
attr Master obj-c415-reading c15
attr Master obj-c416-reading c16
attr Master obj-c417-reading c17
attr Master obj-c418-reading c18
attr Master obj-c400-poll 1
attr Master obj-c405-poll 1
attr Master obj-c406-poll 1
attr Master obj-c417-poll 1
attr Master dev-h-combine 19
attr global mseclog 1
define D1 dummy
define Slave ModbusAttr 5 slave global:5501
attr Slave obj-h256-reading TempWasserEin
attr Slave obj-h258-reading TempWasserAus
attr Slave obj-h100-reading Test1
attr Slave obj-h100-setexpr $val * 4
attr Slave obj-h101-reading Test2
attr Slave obj-h101-unpack f>
attr Slave obj-h101-len 2
attr Slave obj-h103-reading Test3
attr Slave obj-h103-unpack a8
attr Slave obj-h103-len 4
attr Slave obj-h120-reading Test4
attr Slave obj-h120-unpack f>
attr Slave obj-h120-len 2
attr Slave obj-h130-reading Test5
attr Slave obj-h130-unpack a*
attr Slave obj-h130-len 2
attr Slave obj-c400-reading c0
attr Slave obj-c401-reading c1
attr Slave obj-c402-reading c2
attr Slave obj-c403-reading c3
attr Slave obj-c404-reading c4
attr Slave obj-c405-reading c5
attr Slave obj-c406-reading c6
attr Slave obj-c407-reading c7
attr Slave obj-c408-reading c8
attr Slave obj-c409-reading c9
attr Slave obj-c410-reading c10
attr Slave obj-c411-reading c11
attr Slave obj-c412-reading c12
attr Slave obj-c413-reading c13
attr Slave obj-c414-reading c14
attr Slave obj-c415-reading c15
attr Slave obj-c416-reading c16
attr Slave obj-c417-reading c17
attr Slave obj-c418-reading c18
define Master ModbusAttr 5 0 localhost:5501
attr Master disable 1
attr Master verbose 3
attr Master nonPrioritizedGet 1
attr Master nonPrioritizedSet 1
attr Master dev-timing-sendDelay 0
attr Master dev-timing-commDelay 0
attr Master obj-h256-reading TempWasserEin
attr Master obj-h258-reading TempWasserAus
attr Master obj-h100-reading Test1
attr Master obj-h100-expr $val + 2
attr Master obj-h100-poll 1
attr Master obj-h101-reading Test2
attr Master obj-h101-unpack f>
attr Master obj-h101-len 2
attr Master obj-h101-format %.2f
attr Master obj-h101-poll 1
attr Master obj-h103-reading Test3
attr Master obj-h103-unpack a8
attr Master obj-h103-len 4
attr Master obj-h103-poll 1
attr Master obj-h120-reading Test4
attr Master obj-h120-unpack f>
attr Master obj-h120-len 2
attr Master obj-h120-format %.2f
attr Master obj-h120-poll 1
attr Master obj-h120-ignoreExpr $val > 10
attr Master obj-h130-reading Test5
attr Master obj-h130-unpack a*
attr Master obj-h130-len 2
attr Master obj-h130-encode utf8
attr Master obj-h10-reading o1
attr Master obj-h10-map 0:off, 1:on
attr Master obj-h11-reading o2
attr Master obj-h11-min 1
attr Master obj-h11-max 3
attr Master dev-h-defSet 1
attr Master dev-c-defSet 1
attr Master dev-h-defShowGet 1
attr Master obj-c400-reading c0
attr Master obj-c401-reading c1
attr Master obj-c402-reading c2
attr Master obj-c403-reading c3
attr Master obj-c404-reading c4
attr Master obj-c405-reading c5
attr Master obj-c406-reading c6
attr Master obj-c407-reading c7
attr Master obj-c408-reading c8
attr Master obj-c409-reading c9
attr Master obj-c410-reading c10
attr Master obj-c411-reading c11
attr Master obj-c412-reading c12
attr Master obj-c413-reading c13
attr Master obj-c414-reading c14
attr Master obj-c415-reading c15
attr Master obj-c416-reading c16
attr Master obj-c417-reading c17
attr Master obj-c418-reading c18
attr Master obj-c400-poll 1
attr Master obj-c405-poll 1
attr Master obj-c406-poll 1
attr Master obj-c417-poll 1
attr Master dev-h-combine 19
attr Master dev-c-combine 32

View File

@ -1,235 +1,235 @@
define MS Modbus none
attr MS verbose 5
attr MS clientSwitchDelay 0
attr MS busDelay 0
attr MS queueDelay 0.4
define M5 ModbusAttr 5 0
attr M5 verbose 5
attr M5 dev-timing-sendDelay 0
attr M5 dev-timing-commDelay 0
attr M5 nonPrioritizedGet 1
attr M5 obj-h256-reading TempWasserEin
attr M5 obj-h258-reading TempWasserAus
attr M5 obj-h10-reading o1
attr M5 obj-h10-map 0:off, 1:on
attr M5 obj-h10-set 1
attr M5 obj-h11-reading o2
attr M5 obj-h11-hint 1,2,3
attr M5 dev-h-defSet 1
attr M5 dev-h-defShowGet 1
define M1 ModbusAttr 1 0
attr M1 verbose 5
attr M1 dev-timing-sendDelay 0
attr M1 dev-timing-commDelay 0
attr M1 nonPrioritizedGet 1
attr M1 dev-c-defPoll 1
attr M1 dev-h-combine 5
attr M1 dev-h-defLen 2
attr M1 dev-h-defPoll 1
attr M1 dev-h-defRevRegs 1
attr M1 dev-h-write 16
attr M1 dev-i-defFormat %.1f
attr M1 dev-i-defLen 2
attr M1 dev-i-defPoll 1
attr M1 dev-i-defRevRegs 1
attr M1 dev-i-defUnpack f>
attr M1 dev-type-VT_Date-expr sprintf("%02d.%02d",($val >> 8),($val & 0xff))
attr M1 dev-type-VT_Date-len 1
attr M1 dev-type-VT_Date-unpack n
attr M1 dev-type-VT_R4-format %.1f
attr M1 dev-type-VT_R4-len 2
attr M1 dev-type-VT_R4-revRegs 1
attr M1 dev-type-VT_R4-unpack f>
attr M1 dev-type-VT_String-bswapRegs 1
attr M1 dev-type-VT_String-decode cp850
attr M1 dev-type-VT_String-encode utf8
attr M1 dev-type-VT_String-expr $val =~ s/[\00]+//gr
attr M1 dev-type-VT_String-len 8
attr M1 dev-type-VT_String-revRegs 0
attr M1 dev-type-VT_String-unpack a*
attr M1 dev-type-VT_Time-expr sprintf("%02d:%02d",($val >> 8),($val & 0xff))
attr M1 dev-type-VT_Time-len 1
attr M1 dev-type-VT_Time-unpack n
attr M1 obj-c1009-map 0:false, 1:true
attr M1 obj-c1009-polldelay 3600
attr M1 obj-c1009-reading HeatOff
attr M1 obj-c1329-map 0:false, 1:true
attr M1 obj-c1329-polldelay 300
attr M1 obj-c1329-reading HeatIncreaseOff
attr M1 obj-c1409-map 0:0, 1:1=2, 2:1->2, 3:1->2->3
attr M1 obj-c1409-polldelay 60
attr M1 obj-c1409-reading AuxilaryModeHeating
attr M1 obj-c1457-map 0:false, 1:true
attr M1 obj-c1457-reading CoolOff
attr M1 obj-c1633-map 0:false, 1:true
attr M1 obj-c1633-reading DomesticWaterOff
attr M1 obj-h1-len 13
attr M1 obj-h1-poll 0
attr M1 obj-h1-reading RTCTime
attr M1 obj-h1-unpack H*
attr M1 obj-h1025-polldelay 86400
attr M1 obj-h1025-reading HeatTimeOn
attr M1 obj-h1025-type VT_Time
attr M1 obj-h1041-polldelay 86400
attr M1 obj-h1041-reading HeatTimeOff
attr M1 obj-h1041-type VT_Time
attr M1 obj-h1057-max 30
attr M1 obj-h1057-min 10
attr M1 obj-h1057-reading HeatCharacteristicSetPoint
attr M1 obj-h1057-type VT_R4
attr M1 obj-h1089-max 65
attr M1 obj-h1089-min 15
attr M1 obj-h1089-reading HeatCharacteristicSetPointBaseTemp
attr M1 obj-h1089-set 1
attr M1 obj-h1089-type VT_R4
attr M1 obj-h1121-max 100
attr M1 obj-h1121-min 0
attr M1 obj-h1121-reading HeatCharacteristicGradient
attr M1 obj-h1121-type VT_R4
attr M1 obj-h1153-max 72
attr M1 obj-h1153-min 10
attr M1 obj-h1153-reading HeatCharacteristicLimit
attr M1 obj-h1153-type VT_R4
attr M1 obj-h1185-reading HeatReturnTemp
attr M1 obj-h1185-type VT_R4
attr M1 obj-h1249-max 3
attr M1 obj-h1249-min 1
attr M1 obj-h1249-reading HeatTempHyst
attr M1 obj-h1249-type VT_R4
attr M1 obj-h1281-reading RoomTempNominal
attr M1 obj-h1281-type VT_R4
attr M1 obj-h1313-len 1
attr M1 obj-h1313-max 200
attr M1 obj-h1313-min 0
attr M1 obj-h1313-reading RoomTempFactor
attr M1 obj-h1313-unpack S>
attr M1 obj-h1345-polldelay 86400
attr M1 obj-h1345-reading HeatIncreaseTimeOn
attr M1 obj-h1345-type VT_Time
attr M1 obj-h1361-polldelay 86400
attr M1 obj-h1361-reading HeatIncreaseTimeOff
attr M1 obj-h1361-type VT_Time
attr M1 obj-h1377-max 5
attr M1 obj-h1377-min -5
attr M1 obj-h1377-reading HeatIncreaseSetPtOffset
attr M1 obj-h1377-type VT_R4
attr M1 obj-h1425-max 5
attr M1 obj-h1425-min 0
attr M1 obj-h1425-reading AuxilaryMaxDifference
attr M1 obj-h1425-type VT_R4
attr M1 obj-h1473-polldelay 86400
attr M1 obj-h1473-reading CoolTimeOn
attr M1 obj-h1473-type VT_Time
attr M1 obj-h1489-polldelay 86400
attr M1 obj-h1489-reading CoolTimeOff
attr M1 obj-h1489-type VT_Time
attr M1 obj-h1505-max 30
attr M1 obj-h1505-min 18
attr M1 obj-h1505-reading CoolCharacteristicSetPoint
attr M1 obj-h1505-type VT_R4
attr M1 obj-h1569-reading CoolReturnTempNominal
attr M1 obj-h1569-type VT_R4
attr M1 obj-h1601-max 3
attr M1 obj-h1601-min 1
attr M1 obj-h1601-reading CoolReturnTempHyst
attr M1 obj-h1601-type VT_R4
attr M1 obj-h1649-polldelay 86400
attr M1 obj-h1649-reading DomesticWaterTimeOn
attr M1 obj-h1649-type VT_Time
attr M1 obj-h1665-polldelay 86400
attr M1 obj-h1665-reading DomesticWaterTimeOff
attr M1 obj-h1665-type VT_Time
attr M1 obj-h1713-reading DomesticWaterTempNominal
attr M1 obj-h1713-set 1
attr M1 obj-h1713-type VT_R4
attr M1 obj-h1745-max 10
attr M1 obj-h1745-min 5
attr M1 obj-h1745-reading DomesticWaterTempHyst
attr M1 obj-h1745-type VT_R4
attr M1 obj-h1777-len 16
attr M1 obj-h1777-polldelay 86400
attr M1 obj-h1777-reading LegionellaSchedule
attr M1 obj-h1777-unpack H*
attr M1 obj-h1793-polldelay 86400
attr M1 obj-h1793-type VT_Time
attr M1 obj-h1809-polldelay 86400
attr M1 obj-h1809-reading LegionellaTimeOff
attr M1 obj-h1809-type VT_Time
attr M1 obj-h209-len 13
attr M1 obj-h209-poll 0
attr M1 obj-h209-reading RTCDate
attr M1 obj-h209-unpack H*
attr M1 obj-h417-len 1
attr M1 obj-h417-polldelay 86400
attr M1 obj-h417-reading LngSelect
attr M1 obj-h4497-reading PElectric
attr M1 obj-h4497-type VT_R4
attr M1 obj-h4529-reading PThermal
attr M1 obj-h4529-type VT_R4
attr M1 obj-h4689-polldelay 86400
attr M1 obj-h4689-reading FirmwareVersion
attr M1 obj-h4689-showGet 1
attr M1 obj-h4689-type VT_String
attr M1 obj-h4689-unpack (a*)
attr M1 obj-h4817-polldelay 86400
attr M1 obj-h4817-reading FirmwareDate
attr M1 obj-h4817-type VT_String
attr M1 obj-h4945-polldelay 86400
attr M1 obj-h4945-reading ManufType
attr M1 obj-h4945-type VT_String
attr M1 obj-h5073-polldelay 86400
attr M1 obj-h5073-reading ManufSerialNum
attr M1 obj-h5073-type VT_String
attr M1 obj-h5457-len 1
attr M1 obj-h5457-map 0048:Kühlung, 0040:Idle, 0051:Warmwasser, 0052:Heizung
attr M1 obj-h5457-reading OperatingState
attr M1 obj-h5457-unpack H*
attr M1 obj-h5505-len 16
attr M1 obj-h5505-reading ADC_Error
attr M1 obj-h5505-unpack H*
attr M1 obj-h5521-reading LCD_Display_Line_1
attr M1 obj-h5521-type VT_String
attr M1 obj-h5649-reading LCD_Display_Line_2
attr M1 obj-h5649-type VT_String
attr M1 obj-i1217-reading HeatReturnTempNominal
attr M1 obj-i1537-reading CoolReturnTemp
attr M1 obj-i1681-reading DomesticWaterTempActual
attr M1 obj-i2625-reading OHCompressor1
attr M1 obj-i2657-reading OHCompressor2
attr M1 obj-i2689-reading OHHeatingCompressor
attr M1 obj-i2721-reading OHHeatingAuxilary
attr M1 obj-i2753-reading OHCooling
attr M1 obj-i2785-reading OHDomesticWaterCompressor
attr M1 obj-i433-reading OutdoorTemp
attr M1 obj-i433-showGet 1
attr M1 obj-i4561-reading COP
attr M1 obj-i4561-showGet 1
attr M1 obj-i465-reading OutdoorTemp1h
attr M1 obj-i497-reading OutdoorTemp24h
attr M1 obj-i529-reading HeatSourceIn
attr M1 obj-i561-reading HeatSourceOut
attr M1 obj-i593-reading EvaporationTemp
attr M1 obj-i625-reading SuctionGasTemp
attr M1 obj-i657-reading EvaporationPress
attr M1 obj-i689-reading ReturnTempNominal
attr M1 obj-i721-reading ReturnTemp
attr M1 obj-i753-reading FlowTemp
attr M1 obj-i785-reading CondensationTemp
attr M1 obj-i817-reading CondensationPress
attr M1 obj-i849-reading RoomTemp
attr M1 obj-i881-reading RoomTemp1h
attr M1 obj-i913-reading DomesticWaterTemp
attr M1 obj-i945-reading PoolTemp
attr M1 obj-i977-reading SolarTemp
attr M1 sortUpdate 1
define MS Modbus none
attr MS verbose 5
attr MS clientSwitchDelay 0
attr MS busDelay 0
attr MS queueDelay 0.4
define M5 ModbusAttr 5 0
attr M5 verbose 5
attr M5 dev-timing-sendDelay 0
attr M5 dev-timing-commDelay 0
attr M5 nonPrioritizedGet 1
attr M5 obj-h256-reading TempWasserEin
attr M5 obj-h258-reading TempWasserAus
attr M5 obj-h10-reading o1
attr M5 obj-h10-map 0:off, 1:on
attr M5 obj-h10-set 1
attr M5 obj-h11-reading o2
attr M5 obj-h11-hint 1,2,3
attr M5 dev-h-defSet 1
attr M5 dev-h-defShowGet 1
define M1 ModbusAttr 1 0
attr M1 verbose 5
attr M1 dev-timing-sendDelay 0
attr M1 dev-timing-commDelay 0
attr M1 nonPrioritizedGet 1
attr M1 dev-c-defPoll 1
attr M1 dev-h-combine 5
attr M1 dev-h-defLen 2
attr M1 dev-h-defPoll 1
attr M1 dev-h-defRevRegs 1
attr M1 dev-h-write 16
attr M1 dev-i-defFormat %.1f
attr M1 dev-i-defLen 2
attr M1 dev-i-defPoll 1
attr M1 dev-i-defRevRegs 1
attr M1 dev-i-defUnpack f>
attr M1 dev-type-VT_Date-expr sprintf("%02d.%02d",($val >> 8),($val & 0xff))
attr M1 dev-type-VT_Date-len 1
attr M1 dev-type-VT_Date-unpack n
attr M1 dev-type-VT_R4-format %.1f
attr M1 dev-type-VT_R4-len 2
attr M1 dev-type-VT_R4-revRegs 1
attr M1 dev-type-VT_R4-unpack f>
attr M1 dev-type-VT_String-bswapRegs 1
attr M1 dev-type-VT_String-decode cp850
attr M1 dev-type-VT_String-encode utf8
attr M1 dev-type-VT_String-expr $val =~ s/[\00]+//gr
attr M1 dev-type-VT_String-len 8
attr M1 dev-type-VT_String-revRegs 0
attr M1 dev-type-VT_String-unpack a*
attr M1 dev-type-VT_Time-expr sprintf("%02d:%02d",($val >> 8),($val & 0xff))
attr M1 dev-type-VT_Time-len 1
attr M1 dev-type-VT_Time-unpack n
attr M1 obj-c1009-map 0:false, 1:true
attr M1 obj-c1009-polldelay 3600
attr M1 obj-c1009-reading HeatOff
attr M1 obj-c1329-map 0:false, 1:true
attr M1 obj-c1329-polldelay 300
attr M1 obj-c1329-reading HeatIncreaseOff
attr M1 obj-c1409-map 0:0, 1:1=2, 2:1->2, 3:1->2->3
attr M1 obj-c1409-polldelay 60
attr M1 obj-c1409-reading AuxilaryModeHeating
attr M1 obj-c1457-map 0:false, 1:true
attr M1 obj-c1457-reading CoolOff
attr M1 obj-c1633-map 0:false, 1:true
attr M1 obj-c1633-reading DomesticWaterOff
attr M1 obj-h1-len 13
attr M1 obj-h1-poll 0
attr M1 obj-h1-reading RTCTime
attr M1 obj-h1-unpack H*
attr M1 obj-h1025-polldelay 86400
attr M1 obj-h1025-reading HeatTimeOn
attr M1 obj-h1025-type VT_Time
attr M1 obj-h1041-polldelay 86400
attr M1 obj-h1041-reading HeatTimeOff
attr M1 obj-h1041-type VT_Time
attr M1 obj-h1057-max 30
attr M1 obj-h1057-min 10
attr M1 obj-h1057-reading HeatCharacteristicSetPoint
attr M1 obj-h1057-type VT_R4
attr M1 obj-h1089-max 65
attr M1 obj-h1089-min 15
attr M1 obj-h1089-reading HeatCharacteristicSetPointBaseTemp
attr M1 obj-h1089-set 1
attr M1 obj-h1089-type VT_R4
attr M1 obj-h1121-max 100
attr M1 obj-h1121-min 0
attr M1 obj-h1121-reading HeatCharacteristicGradient
attr M1 obj-h1121-type VT_R4
attr M1 obj-h1153-max 72
attr M1 obj-h1153-min 10
attr M1 obj-h1153-reading HeatCharacteristicLimit
attr M1 obj-h1153-type VT_R4
attr M1 obj-h1185-reading HeatReturnTemp
attr M1 obj-h1185-type VT_R4
attr M1 obj-h1249-max 3
attr M1 obj-h1249-min 1
attr M1 obj-h1249-reading HeatTempHyst
attr M1 obj-h1249-type VT_R4
attr M1 obj-h1281-reading RoomTempNominal
attr M1 obj-h1281-type VT_R4
attr M1 obj-h1313-len 1
attr M1 obj-h1313-max 200
attr M1 obj-h1313-min 0
attr M1 obj-h1313-reading RoomTempFactor
attr M1 obj-h1313-unpack S>
attr M1 obj-h1345-polldelay 86400
attr M1 obj-h1345-reading HeatIncreaseTimeOn
attr M1 obj-h1345-type VT_Time
attr M1 obj-h1361-polldelay 86400
attr M1 obj-h1361-reading HeatIncreaseTimeOff
attr M1 obj-h1361-type VT_Time
attr M1 obj-h1377-max 5
attr M1 obj-h1377-min -5
attr M1 obj-h1377-reading HeatIncreaseSetPtOffset
attr M1 obj-h1377-type VT_R4
attr M1 obj-h1425-max 5
attr M1 obj-h1425-min 0
attr M1 obj-h1425-reading AuxilaryMaxDifference
attr M1 obj-h1425-type VT_R4
attr M1 obj-h1473-polldelay 86400
attr M1 obj-h1473-reading CoolTimeOn
attr M1 obj-h1473-type VT_Time
attr M1 obj-h1489-polldelay 86400
attr M1 obj-h1489-reading CoolTimeOff
attr M1 obj-h1489-type VT_Time
attr M1 obj-h1505-max 30
attr M1 obj-h1505-min 18
attr M1 obj-h1505-reading CoolCharacteristicSetPoint
attr M1 obj-h1505-type VT_R4
attr M1 obj-h1569-reading CoolReturnTempNominal
attr M1 obj-h1569-type VT_R4
attr M1 obj-h1601-max 3
attr M1 obj-h1601-min 1
attr M1 obj-h1601-reading CoolReturnTempHyst
attr M1 obj-h1601-type VT_R4
attr M1 obj-h1649-polldelay 86400
attr M1 obj-h1649-reading DomesticWaterTimeOn
attr M1 obj-h1649-type VT_Time
attr M1 obj-h1665-polldelay 86400
attr M1 obj-h1665-reading DomesticWaterTimeOff
attr M1 obj-h1665-type VT_Time
attr M1 obj-h1713-reading DomesticWaterTempNominal
attr M1 obj-h1713-set 1
attr M1 obj-h1713-type VT_R4
attr M1 obj-h1745-max 10
attr M1 obj-h1745-min 5
attr M1 obj-h1745-reading DomesticWaterTempHyst
attr M1 obj-h1745-type VT_R4
attr M1 obj-h1777-len 16
attr M1 obj-h1777-polldelay 86400
attr M1 obj-h1777-reading LegionellaSchedule
attr M1 obj-h1777-unpack H*
attr M1 obj-h1793-polldelay 86400
attr M1 obj-h1793-type VT_Time
attr M1 obj-h1809-polldelay 86400
attr M1 obj-h1809-reading LegionellaTimeOff
attr M1 obj-h1809-type VT_Time
attr M1 obj-h209-len 13
attr M1 obj-h209-poll 0
attr M1 obj-h209-reading RTCDate
attr M1 obj-h209-unpack H*
attr M1 obj-h417-len 1
attr M1 obj-h417-polldelay 86400
attr M1 obj-h417-reading LngSelect
attr M1 obj-h4497-reading PElectric
attr M1 obj-h4497-type VT_R4
attr M1 obj-h4529-reading PThermal
attr M1 obj-h4529-type VT_R4
attr M1 obj-h4689-polldelay 86400
attr M1 obj-h4689-reading FirmwareVersion
attr M1 obj-h4689-showGet 1
attr M1 obj-h4689-type VT_String
attr M1 obj-h4689-unpack (a*)
attr M1 obj-h4817-polldelay 86400
attr M1 obj-h4817-reading FirmwareDate
attr M1 obj-h4817-type VT_String
attr M1 obj-h4945-polldelay 86400
attr M1 obj-h4945-reading ManufType
attr M1 obj-h4945-type VT_String
attr M1 obj-h5073-polldelay 86400
attr M1 obj-h5073-reading ManufSerialNum
attr M1 obj-h5073-type VT_String
attr M1 obj-h5457-len 1
attr M1 obj-h5457-map 0048:Kühlung, 0040:Idle, 0051:Warmwasser, 0052:Heizung
attr M1 obj-h5457-reading OperatingState
attr M1 obj-h5457-unpack H*
attr M1 obj-h5505-len 16
attr M1 obj-h5505-reading ADC_Error
attr M1 obj-h5505-unpack H*
attr M1 obj-h5521-reading LCD_Display_Line_1
attr M1 obj-h5521-type VT_String
attr M1 obj-h5649-reading LCD_Display_Line_2
attr M1 obj-h5649-type VT_String
attr M1 obj-i1217-reading HeatReturnTempNominal
attr M1 obj-i1537-reading CoolReturnTemp
attr M1 obj-i1681-reading DomesticWaterTempActual
attr M1 obj-i2625-reading OHCompressor1
attr M1 obj-i2657-reading OHCompressor2
attr M1 obj-i2689-reading OHHeatingCompressor
attr M1 obj-i2721-reading OHHeatingAuxilary
attr M1 obj-i2753-reading OHCooling
attr M1 obj-i2785-reading OHDomesticWaterCompressor
attr M1 obj-i433-reading OutdoorTemp
attr M1 obj-i433-showGet 1
attr M1 obj-i4561-reading COP
attr M1 obj-i4561-showGet 1
attr M1 obj-i465-reading OutdoorTemp1h
attr M1 obj-i497-reading OutdoorTemp24h
attr M1 obj-i529-reading HeatSourceIn
attr M1 obj-i561-reading HeatSourceOut
attr M1 obj-i593-reading EvaporationTemp
attr M1 obj-i625-reading SuctionGasTemp
attr M1 obj-i657-reading EvaporationPress
attr M1 obj-i689-reading ReturnTempNominal
attr M1 obj-i721-reading ReturnTemp
attr M1 obj-i753-reading FlowTemp
attr M1 obj-i785-reading CondensationTemp
attr M1 obj-i817-reading CondensationPress
attr M1 obj-i849-reading RoomTemp
attr M1 obj-i881-reading RoomTemp1h
attr M1 obj-i913-reading DomesticWaterTemp
attr M1 obj-i945-reading PoolTemp
attr M1 obj-i977-reading SolarTemp
attr M1 sortUpdate 1

View File

@ -1,9 +1,9 @@
define M1 ModbusAttr 1 1
attr M1 verbose 5
attr M1 obj-h10-reading o1
attr M1 obj-h10-map 0:off, 1:on
attr M1 obj-h11-reading o2
attr M1 obj-h11-hint 1,2,3
attr M1 dev-h-defSet 1
define M1 ModbusAttr 1 1
attr M1 verbose 5
attr M1 obj-h10-reading o1
attr M1 obj-h10-map 0:off, 1:on
attr M1 obj-h11-reading o2
attr M1 obj-h11-hint 1,2,3
attr M1 dev-h-defSet 1

View File

@ -1,7 +1,7 @@
define MS Modbus none
attr Master verbose 5
attr MS clientSwitchDelay 0
attr MS busDelay 0
attr MS verbose 5
attr global mseclog 1
define MS Modbus none
attr Master verbose 5
attr MS clientSwitchDelay 0
attr MS busDelay 0
attr MS verbose 5
attr global mseclog 1

View File

@ -1,250 +1,250 @@
define MS Modbus none
attr MS verbose 5
attr MS clientSwitchDelay 0
attr MS busDelay 0
attr MS skipGarbage 1
define M5 ModbusAttr 5 passive
attr M5 verbose 5
attr M5 dev-timing-sendDelay 0
attr M5 dev-timing-commDelay 0
attr M5 nonPrioritizedGet 1
attr M5 obj-h256-reading TempWasserEin
attr M5 obj-h258-reading TempWasserAus
attr M5 obj-h10-reading o1
attr M5 obj-h10-map 0:off, 1:on
attr M5 obj-h10-set 1
attr M5 obj-h11-reading o2
attr M5 obj-h11-hint 1,2,3
attr M5 dev-h-defSet 1
attr M5 dev-h-defShowGet 1
define M254 ModbusAttr 254 passive
attr M254 verbose 5
attr M254 dev-timing-sendDelay 0
attr M254 dev-timing-commDelay 0
attr M254 nonPrioritizedGet 1
attr M254 obj-h256-reading TempWasserEin
attr M254 obj-h258-reading TempWasserAus
attr M254 obj-h10-reading o1
attr M254 obj-h10-map 0:off, 1:on
attr M254 obj-h10-set 1
attr M254 obj-h11-reading o2
attr M254 obj-h11-hint 1,2,3
attr M254 dev-h-defSet 1
attr M254 dev-h-defShowGet 1
define M1 ModbusAttr 1 passive
attr M1 verbose 5
attr M1 dev-timing-sendDelay 0
attr M1 dev-timing-commDelay 0
attr M1 nonPrioritizedGet 1
attr M1 dev-c-defPoll 1
attr M1 dev-h-combine 5
attr M1 dev-h-defLen 2
attr M1 dev-h-defPoll 1
attr M1 dev-h-defRevRegs 1
attr M1 dev-h-write 16
attr M1 dev-i-defFormat %.1f
attr M1 dev-i-defLen 2
attr M1 dev-i-defPoll 1
attr M1 dev-i-defRevRegs 1
attr M1 dev-i-defUnpack f>
attr M1 dev-type-VT_Date-expr sprintf("%02d.%02d",($val >> 8),($val & 0xff))
attr M1 dev-type-VT_Date-len 1
attr M1 dev-type-VT_Date-unpack n
attr M1 dev-type-VT_R4-format %.1f
attr M1 dev-type-VT_R4-len 2
attr M1 dev-type-VT_R4-revRegs 1
attr M1 dev-type-VT_R4-unpack f>
attr M1 dev-type-VT_String-bswapRegs 1
attr M1 dev-type-VT_String-decode cp850
attr M1 dev-type-VT_String-encode utf8
attr M1 dev-type-VT_String-expr $val =~ s/[\00]+//gr
attr M1 dev-type-VT_String-len 8
attr M1 dev-type-VT_String-revRegs 0
attr M1 dev-type-VT_String-unpack a*
attr M1 dev-type-VT_Time-expr sprintf("%02d:%02d",($val >> 8),($val & 0xff))
attr M1 dev-type-VT_Time-len 1
attr M1 dev-type-VT_Time-unpack n
attr M1 obj-c1009-map 0:false, 1:true
attr M1 obj-c1009-polldelay 3600
attr M1 obj-c1009-reading HeatOff
attr M1 obj-c1329-map 0:false, 1:true
attr M1 obj-c1329-polldelay 300
attr M1 obj-c1329-reading HeatIncreaseOff
attr M1 obj-c1409-map 0:0, 1:1=2, 2:1->2, 3:1->2->3
attr M1 obj-c1409-polldelay 60
attr M1 obj-c1409-reading AuxilaryModeHeating
attr M1 obj-c1457-map 0:false, 1:true
attr M1 obj-c1457-reading CoolOff
attr M1 obj-c1633-map 0:false, 1:true
attr M1 obj-c1633-reading DomesticWaterOff
attr M1 obj-h1-len 13
attr M1 obj-h1-poll 0
attr M1 obj-h1-reading RTCTime
attr M1 obj-h1-unpack H*
attr M1 obj-h1025-polldelay 86400
attr M1 obj-h1025-reading HeatTimeOn
attr M1 obj-h1025-type VT_Time
attr M1 obj-h1041-polldelay 86400
attr M1 obj-h1041-reading HeatTimeOff
attr M1 obj-h1041-type VT_Time
attr M1 obj-h1057-max 30
attr M1 obj-h1057-min 10
attr M1 obj-h1057-reading HeatCharacteristicSetPoint
attr M1 obj-h1057-type VT_R4
attr M1 obj-h1089-max 65
attr M1 obj-h1089-min 15
attr M1 obj-h1089-reading HeatCharacteristicSetPointBaseTemp
attr M1 obj-h1089-set 1
attr M1 obj-h1089-type VT_R4
attr M1 obj-h1121-max 100
attr M1 obj-h1121-min 0
attr M1 obj-h1121-reading HeatCharacteristicGradient
attr M1 obj-h1121-type VT_R4
attr M1 obj-h1153-max 72
attr M1 obj-h1153-min 10
attr M1 obj-h1153-reading HeatCharacteristicLimit
attr M1 obj-h1153-type VT_R4
attr M1 obj-h1185-reading HeatReturnTemp
attr M1 obj-h1185-type VT_R4
attr M1 obj-h1249-max 3
attr M1 obj-h1249-min 1
attr M1 obj-h1249-reading HeatTempHyst
attr M1 obj-h1249-type VT_R4
attr M1 obj-h1281-reading RoomTempNominal
attr M1 obj-h1281-type VT_R4
attr M1 obj-h1313-len 1
attr M1 obj-h1313-max 200
attr M1 obj-h1313-min 0
attr M1 obj-h1313-reading RoomTempFactor
attr M1 obj-h1313-unpack S>
attr M1 obj-h1345-polldelay 86400
attr M1 obj-h1345-reading HeatIncreaseTimeOn
attr M1 obj-h1345-type VT_Time
attr M1 obj-h1361-polldelay 86400
attr M1 obj-h1361-reading HeatIncreaseTimeOff
attr M1 obj-h1361-type VT_Time
attr M1 obj-h1377-max 5
attr M1 obj-h1377-min -5
attr M1 obj-h1377-reading HeatIncreaseSetPtOffset
attr M1 obj-h1377-type VT_R4
attr M1 obj-h1425-max 5
attr M1 obj-h1425-min 0
attr M1 obj-h1425-reading AuxilaryMaxDifference
attr M1 obj-h1425-type VT_R4
attr M1 obj-h1473-polldelay 86400
attr M1 obj-h1473-reading CoolTimeOn
attr M1 obj-h1473-type VT_Time
attr M1 obj-h1489-polldelay 86400
attr M1 obj-h1489-reading CoolTimeOff
attr M1 obj-h1489-type VT_Time
attr M1 obj-h1505-max 30
attr M1 obj-h1505-min 18
attr M1 obj-h1505-reading CoolCharacteristicSetPoint
attr M1 obj-h1505-type VT_R4
attr M1 obj-h1569-reading CoolReturnTempNominal
attr M1 obj-h1569-type VT_R4
attr M1 obj-h1601-max 3
attr M1 obj-h1601-min 1
attr M1 obj-h1601-reading CoolReturnTempHyst
attr M1 obj-h1601-type VT_R4
attr M1 obj-h1649-polldelay 86400
attr M1 obj-h1649-reading DomesticWaterTimeOn
attr M1 obj-h1649-type VT_Time
attr M1 obj-h1665-polldelay 86400
attr M1 obj-h1665-reading DomesticWaterTimeOff
attr M1 obj-h1665-type VT_Time
attr M1 obj-h1713-reading DomesticWaterTempNominal
attr M1 obj-h1713-set 1
attr M1 obj-h1713-type VT_R4
attr M1 obj-h1745-max 10
attr M1 obj-h1745-min 5
attr M1 obj-h1745-reading DomesticWaterTempHyst
attr M1 obj-h1745-type VT_R4
attr M1 obj-h1777-len 16
attr M1 obj-h1777-polldelay 86400
attr M1 obj-h1777-reading LegionellaSchedule
attr M1 obj-h1777-unpack H*
attr M1 obj-h1793-polldelay 86400
attr M1 obj-h1793-type VT_Time
attr M1 obj-h1809-polldelay 86400
attr M1 obj-h1809-reading LegionellaTimeOff
attr M1 obj-h1809-type VT_Time
attr M1 obj-h209-len 13
attr M1 obj-h209-poll 0
attr M1 obj-h209-reading RTCDate
attr M1 obj-h209-unpack H*
attr M1 obj-h417-len 1
attr M1 obj-h417-polldelay 86400
attr M1 obj-h417-reading LngSelect
attr M1 obj-h4497-reading PElectric
attr M1 obj-h4497-type VT_R4
attr M1 obj-h4529-reading PThermal
attr M1 obj-h4529-type VT_R4
attr M1 obj-h4689-polldelay 86400
attr M1 obj-h4689-reading FirmwareVersion
attr M1 obj-h4689-showGet 1
attr M1 obj-h4689-type VT_String
attr M1 obj-h4689-unpack (a*)
attr M1 obj-h4817-polldelay 86400
attr M1 obj-h4817-reading FirmwareDate
attr M1 obj-h4817-type VT_String
attr M1 obj-h4945-polldelay 86400
attr M1 obj-h4945-reading ManufType
attr M1 obj-h4945-type VT_String
attr M1 obj-h5073-polldelay 86400
attr M1 obj-h5073-reading ManufSerialNum
attr M1 obj-h5073-type VT_String
attr M1 obj-h5457-len 1
attr M1 obj-h5457-map 0048:Kühlung, 0040:Idle, 0051:Warmwasser, 0052:Heizung
attr M1 obj-h5457-reading OperatingState
attr M1 obj-h5457-unpack H*
attr M1 obj-h5505-len 16
attr M1 obj-h5505-reading ADC_Error
attr M1 obj-h5505-unpack H*
attr M1 obj-h5521-reading LCD_Display_Line_1
attr M1 obj-h5521-type VT_String
attr M1 obj-h5649-reading LCD_Display_Line_2
attr M1 obj-h5649-type VT_String
attr M1 obj-i1217-reading HeatReturnTempNominal
attr M1 obj-i1537-reading CoolReturnTemp
attr M1 obj-i1681-reading DomesticWaterTempActual
attr M1 obj-i2625-reading OHCompressor1
attr M1 obj-i2657-reading OHCompressor2
attr M1 obj-i2689-reading OHHeatingCompressor
attr M1 obj-i2721-reading OHHeatingAuxilary
attr M1 obj-i2753-reading OHCooling
attr M1 obj-i2785-reading OHDomesticWaterCompressor
attr M1 obj-i433-reading OutdoorTemp
attr M1 obj-i433-showGet 1
attr M1 obj-i4561-reading COP
attr M1 obj-i4561-showGet 1
attr M1 obj-i465-reading OutdoorTemp1h
attr M1 obj-i497-reading OutdoorTemp24h
attr M1 obj-i529-reading HeatSourceIn
attr M1 obj-i561-reading HeatSourceOut
attr M1 obj-i593-reading EvaporationTemp
attr M1 obj-i625-reading SuctionGasTemp
attr M1 obj-i657-reading EvaporationPress
attr M1 obj-i689-reading ReturnTempNominal
attr M1 obj-i721-reading ReturnTemp
attr M1 obj-i753-reading FlowTemp
attr M1 obj-i785-reading CondensationTemp
attr M1 obj-i817-reading CondensationPress
attr M1 obj-i849-reading RoomTemp
attr M1 obj-i881-reading RoomTemp1h
attr M1 obj-i913-reading DomesticWaterTemp
attr M1 obj-i945-reading PoolTemp
attr M1 obj-i977-reading SolarTemp
attr M1 sortUpdate 1
define MS Modbus none
attr MS verbose 5
attr MS clientSwitchDelay 0
attr MS busDelay 0
attr MS skipGarbage 1
define M5 ModbusAttr 5 passive
attr M5 verbose 5
attr M5 dev-timing-sendDelay 0
attr M5 dev-timing-commDelay 0
attr M5 nonPrioritizedGet 1
attr M5 obj-h256-reading TempWasserEin
attr M5 obj-h258-reading TempWasserAus
attr M5 obj-h10-reading o1
attr M5 obj-h10-map 0:off, 1:on
attr M5 obj-h10-set 1
attr M5 obj-h11-reading o2
attr M5 obj-h11-hint 1,2,3
attr M5 dev-h-defSet 1
attr M5 dev-h-defShowGet 1
define M254 ModbusAttr 254 passive
attr M254 verbose 5
attr M254 dev-timing-sendDelay 0
attr M254 dev-timing-commDelay 0
attr M254 nonPrioritizedGet 1
attr M254 obj-h256-reading TempWasserEin
attr M254 obj-h258-reading TempWasserAus
attr M254 obj-h10-reading o1
attr M254 obj-h10-map 0:off, 1:on
attr M254 obj-h10-set 1
attr M254 obj-h11-reading o2
attr M254 obj-h11-hint 1,2,3
attr M254 dev-h-defSet 1
attr M254 dev-h-defShowGet 1
define M1 ModbusAttr 1 passive
attr M1 verbose 5
attr M1 dev-timing-sendDelay 0
attr M1 dev-timing-commDelay 0
attr M1 nonPrioritizedGet 1
attr M1 dev-c-defPoll 1
attr M1 dev-h-combine 5
attr M1 dev-h-defLen 2
attr M1 dev-h-defPoll 1
attr M1 dev-h-defRevRegs 1
attr M1 dev-h-write 16
attr M1 dev-i-defFormat %.1f
attr M1 dev-i-defLen 2
attr M1 dev-i-defPoll 1
attr M1 dev-i-defRevRegs 1
attr M1 dev-i-defUnpack f>
attr M1 dev-type-VT_Date-expr sprintf("%02d.%02d",($val >> 8),($val & 0xff))
attr M1 dev-type-VT_Date-len 1
attr M1 dev-type-VT_Date-unpack n
attr M1 dev-type-VT_R4-format %.1f
attr M1 dev-type-VT_R4-len 2
attr M1 dev-type-VT_R4-revRegs 1
attr M1 dev-type-VT_R4-unpack f>
attr M1 dev-type-VT_String-bswapRegs 1
attr M1 dev-type-VT_String-decode cp850
attr M1 dev-type-VT_String-encode utf8
attr M1 dev-type-VT_String-expr $val =~ s/[\00]+//gr
attr M1 dev-type-VT_String-len 8
attr M1 dev-type-VT_String-revRegs 0
attr M1 dev-type-VT_String-unpack a*
attr M1 dev-type-VT_Time-expr sprintf("%02d:%02d",($val >> 8),($val & 0xff))
attr M1 dev-type-VT_Time-len 1
attr M1 dev-type-VT_Time-unpack n
attr M1 obj-c1009-map 0:false, 1:true
attr M1 obj-c1009-polldelay 3600
attr M1 obj-c1009-reading HeatOff
attr M1 obj-c1329-map 0:false, 1:true
attr M1 obj-c1329-polldelay 300
attr M1 obj-c1329-reading HeatIncreaseOff
attr M1 obj-c1409-map 0:0, 1:1=2, 2:1->2, 3:1->2->3
attr M1 obj-c1409-polldelay 60
attr M1 obj-c1409-reading AuxilaryModeHeating
attr M1 obj-c1457-map 0:false, 1:true
attr M1 obj-c1457-reading CoolOff
attr M1 obj-c1633-map 0:false, 1:true
attr M1 obj-c1633-reading DomesticWaterOff
attr M1 obj-h1-len 13
attr M1 obj-h1-poll 0
attr M1 obj-h1-reading RTCTime
attr M1 obj-h1-unpack H*
attr M1 obj-h1025-polldelay 86400
attr M1 obj-h1025-reading HeatTimeOn
attr M1 obj-h1025-type VT_Time
attr M1 obj-h1041-polldelay 86400
attr M1 obj-h1041-reading HeatTimeOff
attr M1 obj-h1041-type VT_Time
attr M1 obj-h1057-max 30
attr M1 obj-h1057-min 10
attr M1 obj-h1057-reading HeatCharacteristicSetPoint
attr M1 obj-h1057-type VT_R4
attr M1 obj-h1089-max 65
attr M1 obj-h1089-min 15
attr M1 obj-h1089-reading HeatCharacteristicSetPointBaseTemp
attr M1 obj-h1089-set 1
attr M1 obj-h1089-type VT_R4
attr M1 obj-h1121-max 100
attr M1 obj-h1121-min 0
attr M1 obj-h1121-reading HeatCharacteristicGradient
attr M1 obj-h1121-type VT_R4
attr M1 obj-h1153-max 72
attr M1 obj-h1153-min 10
attr M1 obj-h1153-reading HeatCharacteristicLimit
attr M1 obj-h1153-type VT_R4
attr M1 obj-h1185-reading HeatReturnTemp
attr M1 obj-h1185-type VT_R4
attr M1 obj-h1249-max 3
attr M1 obj-h1249-min 1
attr M1 obj-h1249-reading HeatTempHyst
attr M1 obj-h1249-type VT_R4
attr M1 obj-h1281-reading RoomTempNominal
attr M1 obj-h1281-type VT_R4
attr M1 obj-h1313-len 1
attr M1 obj-h1313-max 200
attr M1 obj-h1313-min 0
attr M1 obj-h1313-reading RoomTempFactor
attr M1 obj-h1313-unpack S>
attr M1 obj-h1345-polldelay 86400
attr M1 obj-h1345-reading HeatIncreaseTimeOn
attr M1 obj-h1345-type VT_Time
attr M1 obj-h1361-polldelay 86400
attr M1 obj-h1361-reading HeatIncreaseTimeOff
attr M1 obj-h1361-type VT_Time
attr M1 obj-h1377-max 5
attr M1 obj-h1377-min -5
attr M1 obj-h1377-reading HeatIncreaseSetPtOffset
attr M1 obj-h1377-type VT_R4
attr M1 obj-h1425-max 5
attr M1 obj-h1425-min 0
attr M1 obj-h1425-reading AuxilaryMaxDifference
attr M1 obj-h1425-type VT_R4
attr M1 obj-h1473-polldelay 86400
attr M1 obj-h1473-reading CoolTimeOn
attr M1 obj-h1473-type VT_Time
attr M1 obj-h1489-polldelay 86400
attr M1 obj-h1489-reading CoolTimeOff
attr M1 obj-h1489-type VT_Time
attr M1 obj-h1505-max 30
attr M1 obj-h1505-min 18
attr M1 obj-h1505-reading CoolCharacteristicSetPoint
attr M1 obj-h1505-type VT_R4
attr M1 obj-h1569-reading CoolReturnTempNominal
attr M1 obj-h1569-type VT_R4
attr M1 obj-h1601-max 3
attr M1 obj-h1601-min 1
attr M1 obj-h1601-reading CoolReturnTempHyst
attr M1 obj-h1601-type VT_R4
attr M1 obj-h1649-polldelay 86400
attr M1 obj-h1649-reading DomesticWaterTimeOn
attr M1 obj-h1649-type VT_Time
attr M1 obj-h1665-polldelay 86400
attr M1 obj-h1665-reading DomesticWaterTimeOff
attr M1 obj-h1665-type VT_Time
attr M1 obj-h1713-reading DomesticWaterTempNominal
attr M1 obj-h1713-set 1
attr M1 obj-h1713-type VT_R4
attr M1 obj-h1745-max 10
attr M1 obj-h1745-min 5
attr M1 obj-h1745-reading DomesticWaterTempHyst
attr M1 obj-h1745-type VT_R4
attr M1 obj-h1777-len 16
attr M1 obj-h1777-polldelay 86400
attr M1 obj-h1777-reading LegionellaSchedule
attr M1 obj-h1777-unpack H*
attr M1 obj-h1793-polldelay 86400
attr M1 obj-h1793-type VT_Time
attr M1 obj-h1809-polldelay 86400
attr M1 obj-h1809-reading LegionellaTimeOff
attr M1 obj-h1809-type VT_Time
attr M1 obj-h209-len 13
attr M1 obj-h209-poll 0
attr M1 obj-h209-reading RTCDate
attr M1 obj-h209-unpack H*
attr M1 obj-h417-len 1
attr M1 obj-h417-polldelay 86400
attr M1 obj-h417-reading LngSelect
attr M1 obj-h4497-reading PElectric
attr M1 obj-h4497-type VT_R4
attr M1 obj-h4529-reading PThermal
attr M1 obj-h4529-type VT_R4
attr M1 obj-h4689-polldelay 86400
attr M1 obj-h4689-reading FirmwareVersion
attr M1 obj-h4689-showGet 1
attr M1 obj-h4689-type VT_String
attr M1 obj-h4689-unpack (a*)
attr M1 obj-h4817-polldelay 86400
attr M1 obj-h4817-reading FirmwareDate
attr M1 obj-h4817-type VT_String
attr M1 obj-h4945-polldelay 86400
attr M1 obj-h4945-reading ManufType
attr M1 obj-h4945-type VT_String
attr M1 obj-h5073-polldelay 86400
attr M1 obj-h5073-reading ManufSerialNum
attr M1 obj-h5073-type VT_String
attr M1 obj-h5457-len 1
attr M1 obj-h5457-map 0048:Kühlung, 0040:Idle, 0051:Warmwasser, 0052:Heizung
attr M1 obj-h5457-reading OperatingState
attr M1 obj-h5457-unpack H*
attr M1 obj-h5505-len 16
attr M1 obj-h5505-reading ADC_Error
attr M1 obj-h5505-unpack H*
attr M1 obj-h5521-reading LCD_Display_Line_1
attr M1 obj-h5521-type VT_String
attr M1 obj-h5649-reading LCD_Display_Line_2
attr M1 obj-h5649-type VT_String
attr M1 obj-i1217-reading HeatReturnTempNominal
attr M1 obj-i1537-reading CoolReturnTemp
attr M1 obj-i1681-reading DomesticWaterTempActual
attr M1 obj-i2625-reading OHCompressor1
attr M1 obj-i2657-reading OHCompressor2
attr M1 obj-i2689-reading OHHeatingCompressor
attr M1 obj-i2721-reading OHHeatingAuxilary
attr M1 obj-i2753-reading OHCooling
attr M1 obj-i2785-reading OHDomesticWaterCompressor
attr M1 obj-i433-reading OutdoorTemp
attr M1 obj-i433-showGet 1
attr M1 obj-i4561-reading COP
attr M1 obj-i4561-showGet 1
attr M1 obj-i465-reading OutdoorTemp1h
attr M1 obj-i497-reading OutdoorTemp24h
attr M1 obj-i529-reading HeatSourceIn
attr M1 obj-i561-reading HeatSourceOut
attr M1 obj-i593-reading EvaporationTemp
attr M1 obj-i625-reading SuctionGasTemp
attr M1 obj-i657-reading EvaporationPress
attr M1 obj-i689-reading ReturnTempNominal
attr M1 obj-i721-reading ReturnTemp
attr M1 obj-i753-reading FlowTemp
attr M1 obj-i785-reading CondensationTemp
attr M1 obj-i817-reading CondensationPress
attr M1 obj-i849-reading RoomTemp
attr M1 obj-i881-reading RoomTemp1h
attr M1 obj-i913-reading DomesticWaterTemp
attr M1 obj-i945-reading PoolTemp
attr M1 obj-i977-reading SolarTemp
attr M1 sortUpdate 1

View File

@ -0,0 +1,101 @@
attr global mseclog 1
define MS Modbus none
attr MS verbose 5
attr MS clientSwitchDelay 0
attr MS busDelay 0
define PWP ModbusAttr 5 0
attr PWP verbose 5
attr PWP dev-timing-sendDelay 0
attr PWP dev-timing-commDelay 0
attr PWP dev-timing-timeout 1
attr PWP cacheUpdateHash 1
attr PWP cacheParseInfo 1
attr PWP dev-h-defSet 1
attr PWP dev-h-defShowGet 1
attr PWP dev-h-combine 5
attr PWP dev-defPolldelay 0
attr M5 nonPrioritizedGet 1
attr PWP obj-h256-reading Temp_Wasser_Ein
attr PWP obj-h256-expr $val / 10
attr PWP obj-h256-poll 1
#attr PWP obj-h256-polldelay 0
attr PWP obj-h258-reading Temp_Wasser_Aus
attr PWP obj-h258-expr $val / 10
attr PWP obj-h258-poll 1
#attr PWP obj-h258-polldelay 0
attr PWP obj-h260-reading Temp_Verdampfer
attr PWP obj-h260-expr $val / 10
attr PWP obj-h260-poll 1
#attr PWP obj-h260-polldelay 0
attr PWP obj-h262-reading Temp_Luft
attr PWP obj-h262-expr $val / 10
attr PWP obj-h262-poll 1
#attr PWP obj-h262-polldelay 0
attr PWP obj-h770-reading Temp_Soll
attr PWP obj-h770-expr $val / 10
attr PWP obj-h770-hint 8,10,20,25,28,29,30,30.5,31,31.5,32
attr PWP obj-h770-max 32
attr PWP obj-h770-min 10
attr PWP obj-h770-set 1
attr PWP obj-h770-setexpr $val * 10
attr PWP obj-h770-poll 1
attr PWP obj-h770-polldelay 0
attr PWP obj-h771-reading Hysterese
attr PWP obj-h771-expr $val / 10
attr PWP obj-h771-max 3
attr PWP obj-h771-min 0.5
attr PWP obj-h771-set 1
attr PWP obj-h771-setexpr $val * 10
attr PWP obj-h771-poll 1
attr PWP obj-h771-polldelay 0
attr PWP obj-h777-reading Hyst_Mode
attr PWP obj-h777-map 0:mittig, 1:über, 2:unterhalb
attr PWP obj-h777-set 1
attr PWP obj-h777-poll 1
attr PWP obj-h777-polldelay 0
attr PWP obj-h801-reading Temp_Wasser_Ein_Off
attr PWP obj-h801-expr $val / 10
attr PWP obj-h801-name CF24
attr PWP obj-h801-poll 1
attr PWP obj-h801-set 1
attr PWP obj-h801-setexpr $val * 10
attr PWP obj-h801-polldelay 0
attr PWP obj-h802-reading Temp_Wasser_Aus_Off
attr PWP obj-h802-expr $val / 10
attr PWP obj-h802-name CF25
attr PWP obj-h802-poll 1
attr PWP obj-h802-set 1
attr PWP obj-h802-setexpr $val * 10
attr PWP obj-h802-polldelay 0
attr PWP obj-h803-reading Temp_Verdampfer_Off
attr PWP obj-h803-expr $val / 10
attr PWP obj-h803-name CF26
attr PWP obj-h803-poll 1
attr PWP obj-h803-set 1
attr PWP obj-h803-setexpr $val * 10
attr PWP obj-h803-polldelay 0
attr PWP obj-h804-reading Temp_Luft_Off
attr PWP obj-h804-expr $val / 10
attr PWP obj-h804-name CF27
attr PWP obj-h804-poll 1
attr PWP obj-h804-set 1
attr PWP obj-h804-setexpr $val * 10
attr PWP obj-h804-polldelay 0

View File

@ -0,0 +1,210 @@
##############################################
# test modbus RTU Master
##############################################
package main;
use strict;
use warnings;
use Test::More;
use Time::HiRes qw( gettimeofday tv_interval); # return time as float, not just full seconds
use FHEM::HTTPMOD::Utils qw(:all);
use FHEM::Modbus::TestUtils qw(:all);
my $prepTime = 0;
my $parseTime = 0;
NextStep();
sub CheckTimes {
my $t1 = FhemTestUtils_getLogTime('GetUpdate.*called from ControlSet');
if (!$t1) {
$t1 = FhemTestUtils_getLogTime('ProcessRequestQueue.*sending');
}
my $t2 = FhemTestUtils_getLogTime('Simulate sending to none');
Log3 undef, 1, "Test: Time to prepare request: " . sprintf('%.3f seconds', ($t2 - $t1));
my $t3 = FhemTestUtils_getLogTime('simulate reception of');
my $t4 = FhemTestUtils_getLogTime('HandleResponse done');
Log3 undef, 1, "Test: Time to parse request: " . sprintf('%.3f seconds', ($t4 - $t3));
Log3 undef, 1, "Test: Time inbetween: " . sprintf('%.3f seconds', ($t3 - $t2));
$prepTime += ($t2 - $t1);
$parseTime += ($t4 - $t3);
return;
}
sub testStep1 {
fhem 'attr MS verbose 5';
fhem 'attr PWP verbose 5';
LogStep('start reread');
FhemTestUtils_resetLogs();
fhem('set PWP reread');
return;
}
sub testStep2 {
LogStep('check send timing an simulate first normal reception');
SimRead('MS', '05030a'); # first normal response
SimRead('MS', '012e11');
SimRead('MS', '00012f11');
SimRead('MS', '0000db');
SimRead('MS', 'ffe6');
ok(ReadingsVal('PWP', 'Temp_Wasser_Ein', 0) > 25, "Parse TempEin");
ok(ReadingsVal('PWP', 'Temp_Verdampfer', 0) > 10, "Parse TempVerdampfer");
CheckTimes();
CheckAndReset();
return;
}
sub testStep3 {
LogStep('check send timing an simulate second normal reception');
SimRead('MS', '0503'); # second normal response
SimRead('MS', '0200');
SimRead('MS', 'bac8');
SimRead('MS', '37');
ok(ReadingsVal('PWP', 'Temp_Luft', 0) > 10, "Parse TempLuft");
CheckTimes();
CheckAndReset();
return;
}
sub testStep4 {
LogStep('check send timing an simulate third normal reception');
SimRead('MS', '05'); # third normal response
SimRead('MS', '0304');
SimRead('MS', '0122');
SimRead('MS', '000a');
SimRead('MS', '9e02');
ok(ReadingsVal('PWP', 'Temp_Soll', 0) > 10, "Parse TempSoll");
CheckTimes();
CheckAndReset();
return;
}
sub testStep5 {
LogStep('check send timing an simulate fourth normal reception');
SimRead('MS', '05'); # fourth normal response
SimRead('MS', '03');
SimRead('MS', '0200');
SimRead('MS', '0049');
SimRead('MS', '84');
ok(ReadingsVal('PWP', 'Hyst_Mode', '') eq 'mittig', "Parse Hyst_Mode");
CheckTimes();
CheckAndReset();
return;
}
sub testStep6 {
LogStep('check send timing an simulate fifth normal reception');
SimRead('MS', '0503'); # fifth normal response
SimRead('MS', '08ff');
SimRead('MS', 'fd00');
SimRead('MS', '0000');
SimRead('MS', '0000');
SimRead('MS', '00e3');
SimRead('MS', '2c');
ok(ReadingsVal('PWP', 'Temp_Luft_Off', 99) < 2, "Parse TempLuftOff");
CheckTimes();
CheckAndReset();
Log3 undef, 1, "Test: so far cumulated total time: " . sprintf('%.3f seconds', $prepTime + $parseTime);
return;
}
sub testStep10 {
LogStep('second round reread');
fhem('set PWP reread');
return;
}
sub testStep11 {
LogStep('check send timing an simulate first normal reception');
SimRead('MS', '05030a'); # first normal response
SimRead('MS', '012e11');
SimRead('MS', '00012f11');
SimRead('MS', '0000db');
SimRead('MS', 'ffe6');
ok(ReadingsVal('PWP', 'Temp_Wasser_Ein', 0) > 25, "Parse TempEin");
ok(ReadingsVal('PWP', 'Temp_Verdampfer', 0) > 10, "Parse TempVerdampfer");
CheckTimes();
CheckAndReset();
return;
}
sub testStep12 {
LogStep('check send timing an simulate second normal reception');
SimRead('MS', '0503'); # second normal response
SimRead('MS', '0200');
SimRead('MS', 'bac8');
SimRead('MS', '37');
ok(ReadingsVal('PWP', 'Temp_Luft', 0) > 10, "Parse TempLuft");
CheckTimes();
CheckAndReset();
return;
}
sub testStep13 {
LogStep('check send timing an simulate third normal reception');
SimRead('MS', '05'); # third normal response
SimRead('MS', '0304');
SimRead('MS', '0122');
SimRead('MS', '000a');
SimRead('MS', '9e02');
ok(ReadingsVal('PWP', 'Temp_Soll', 0) > 10, "Parse TempSoll");
CheckTimes();
CheckAndReset();
return;
}
sub testStep14 {
LogStep('check send timing an simulate fourth normal reception');
SimRead('MS', '05'); # fourth normal response
SimRead('MS', '03');
SimRead('MS', '0200');
SimRead('MS', '0049');
SimRead('MS', '84');
ok(ReadingsVal('PWP', 'Hyst_Mode', '') eq 'mittig', "Parse Hyst_Mode");
CheckTimes();
CheckAndReset();
return;
}
sub testStep15 {
LogStep('check send timing an simulate fifth normal reception');
SimRead('MS', '0503'); # fifth normal response
SimRead('MS', '08ff');
SimRead('MS', 'fd00');
SimRead('MS', '0000');
SimRead('MS', '0000');
SimRead('MS', '00e3');
SimRead('MS', '2c');
ok(ReadingsVal('PWP', 'Temp_Luft_Off', 99) < 2, "Parse TempLuftOff");
CheckTimes();
CheckAndReset();
return;
}
sub testStep90 {
LogStep('done');
Log3 undef, 1, "Test: cumulated time to prepare requests: " . sprintf('%.3f seconds', $prepTime);
Log3 undef, 1, "Test: cumulated time to parse requests: " . sprintf('%.3f seconds', $parseTime);
Log3 undef, 1, "Test: cumulated total time: " . sprintf('%.3f seconds', $prepTime + $parseTime);
return;
}
1;

View File

@ -1,85 +1,85 @@
attr global mseclog 1
define MS Modbus none
attr MS verbose 5
attr MS clientSwitchDelay 0
attr MS busDelay 0
define PWP ModbusAttr 5 0
attr PWP verbose 5
attr PWP dev-timing-sendDelay 0
attr PWP dev-timing-commDelay 0
attr PWP dev-timing-timeout 1
attr PWP dev-h-defSet 1
attr PWP dev-h-defShowGet 1
attr PWP dev-h-combine 16
attr M5 nonPrioritizedGet 1
attr PWP obj-h256-reading Temp_Wasser_Ein
attr PWP obj-h256-expr $val / 10
attr PWP obj-h256-poll 1
attr PWP obj-h256-polldelay 0
attr PWP obj-h258-reading Temp_Wasser_Aus
attr PWP obj-h258-expr $val / 10
attr PWP obj-h258-poll 1
attr PWP obj-h258-polldelay 0
attr PWP obj-h260-reading Temp_Verdampfer
attr PWP obj-h260-expr $val / 10
attr PWP obj-h260-poll 1
attr PWP obj-h260-polldelay 0
attr PWP obj-h262-reading Temp_Luft
attr PWP obj-h262-expr $val / 10
attr PWP obj-h262-poll 0
attr PWP obj-h770-reading Temp_Soll
attr PWP obj-h770-expr $val / 10
attr PWP obj-h770-hint 8,10,20,25,28,29,30,30.5,31,31.5,32
attr PWP obj-h770-max 32
attr PWP obj-h770-min 10
attr PWP obj-h770-set 1
attr PWP obj-h770-setexpr $val * 10
attr PWP obj-h771-reading Hysterese
attr PWP obj-h771-expr $val / 10
attr PWP obj-h771-max 3
attr PWP obj-h771-min 0.5
attr PWP obj-h771-set 1
attr PWP obj-h771-setexpr $val * 10
attr PWP obj-h777-reading Hyst_Mode
attr PWP obj-h777-map 0:mittig, 1:über, 2:unterhalb
attr PWP obj-h777-set 1
attr PWP obj-h801-reading Temp_Wasser_Ein_Off
attr PWP obj-h801-expr $val / 10
attr PWP obj-h801-name CF24
attr PWP obj-h801-poll 0
attr PWP obj-h801-set 1
attr PWP obj-h801-setexpr $val * 10
attr PWP obj-h802-reading Temp_Wasser_Aus_Off
attr PWP obj-h802-expr $val / 10
attr PWP obj-h802-name CF25
attr PWP obj-h802-poll 0
attr PWP obj-h802-set 1
attr PWP obj-h802-setexpr $val * 10
attr PWP obj-h803-reading Temp_Verdampfer_Off
attr PWP obj-h803-expr $val / 10
attr PWP obj-h803-name CF26
attr PWP obj-h803-poll 0
attr PWP obj-h803-set 1
attr PWP obj-h803-setexpr $val * 10
attr PWP obj-h804-reading Temp_Luft_Off
attr PWP obj-h804-expr $val / 10
attr PWP obj-h804-name CF27
attr PWP obj-h804-poll 0
attr PWP obj-h804-set 1
attr PWP obj-h804-setexpr $val * 10
attr global mseclog 1
define MS Modbus none
attr MS verbose 5
attr MS clientSwitchDelay 0
attr MS busDelay 0
define PWP ModbusAttr 5 0
attr PWP verbose 5
attr PWP dev-timing-sendDelay 0
attr PWP dev-timing-commDelay 0
attr PWP dev-timing-timeout 1
attr PWP dev-h-defSet 1
attr PWP dev-h-defShowGet 1
attr PWP dev-h-combine 16
attr M5 nonPrioritizedGet 1
attr PWP obj-h256-reading Temp_Wasser_Ein
attr PWP obj-h256-expr $val / 10
attr PWP obj-h256-poll 1
attr PWP obj-h256-polldelay 0
attr PWP obj-h258-reading Temp_Wasser_Aus
attr PWP obj-h258-expr $val / 10
attr PWP obj-h258-poll 1
attr PWP obj-h258-polldelay 0
attr PWP obj-h260-reading Temp_Verdampfer
attr PWP obj-h260-expr $val / 10
attr PWP obj-h260-poll 1
attr PWP obj-h260-polldelay 0
attr PWP obj-h262-reading Temp_Luft
attr PWP obj-h262-expr $val / 10
attr PWP obj-h262-poll 0
attr PWP obj-h770-reading Temp_Soll
attr PWP obj-h770-expr $val / 10
attr PWP obj-h770-hint 8,10,20,25,28,29,30,30.5,31,31.5,32
attr PWP obj-h770-max 32
attr PWP obj-h770-min 10
attr PWP obj-h770-set 1
attr PWP obj-h770-setexpr $val * 10
attr PWP obj-h771-reading Hysterese
attr PWP obj-h771-expr $val / 10
attr PWP obj-h771-max 3
attr PWP obj-h771-min 0.5
attr PWP obj-h771-set 1
attr PWP obj-h771-setexpr $val * 10
attr PWP obj-h777-reading Hyst_Mode
attr PWP obj-h777-map 0:mittig, 1:über, 2:unterhalb
attr PWP obj-h777-set 1
attr PWP obj-h801-reading Temp_Wasser_Ein_Off
attr PWP obj-h801-expr $val / 10
attr PWP obj-h801-name CF24
attr PWP obj-h801-poll 0
attr PWP obj-h801-set 1
attr PWP obj-h801-setexpr $val * 10
attr PWP obj-h802-reading Temp_Wasser_Aus_Off
attr PWP obj-h802-expr $val / 10
attr PWP obj-h802-name CF25
attr PWP obj-h802-poll 0
attr PWP obj-h802-set 1
attr PWP obj-h802-setexpr $val * 10
attr PWP obj-h803-reading Temp_Verdampfer_Off
attr PWP obj-h803-expr $val / 10
attr PWP obj-h803-name CF26
attr PWP obj-h803-poll 0
attr PWP obj-h803-set 1
attr PWP obj-h803-setexpr $val * 10
attr PWP obj-h804-reading Temp_Luft_Off
attr PWP obj-h804-expr $val / 10
attr PWP obj-h804-name CF27
attr PWP obj-h804-poll 0
attr PWP obj-h804-set 1
attr PWP obj-h804-setexpr $val * 10

View File

@ -1,136 +1,136 @@
attr global mseclog 1
define D1 dummy
define ModbusIO1 Modbus none
attr ModbusIO1 verbose 5
define ModbusIO2 Modbus none
attr ModbusIO2 verbose 5
define Slave ModbusAttr 5 slave
attr Slave IODev ModbusIO1
attr Slave obj-h256-reading TempWasserEin
attr Slave obj-h258-reading D1:TempWasserAus
attr Slave obj-h100-reading Test1
attr Slave obj-h100-setexpr $val * 4
attr Slave obj-h101-reading Test2
attr Slave obj-h101-unpack f>
attr Slave obj-h101-len 2
attr Slave obj-h103-reading Test3
attr Slave obj-h103-unpack a8
attr Slave obj-h103-len 4
attr Slave obj-h120-reading Test4
attr Slave obj-h120-unpack f>
attr Slave obj-h120-len 2
attr Slave obj-h130-reading Test5
attr Slave obj-h130-unpack a*
attr Slave obj-h130-len 2
attr Slave obj-c400-reading c0
attr Slave obj-c401-reading c1
attr Slave obj-c402-reading c2
attr Slave obj-c403-reading c3
attr Slave obj-c404-reading c4
attr Slave obj-c405-reading c5
attr Slave obj-c406-reading c6
attr Slave obj-c407-reading c7
attr Slave obj-c408-reading c8
attr Slave obj-c409-reading c9
attr Slave obj-c410-reading c10
attr Slave obj-c411-reading c11
attr Slave obj-c412-reading c12
attr Slave obj-c413-reading c13
attr Slave obj-c414-reading c14
attr Slave obj-c415-reading c15
attr Slave obj-c416-reading c16
attr Slave obj-c417-reading c17
attr Slave obj-c418-reading c18
define Master ModbusAttr 5 0
attr Master IODev ModbusIO2
attr Master disable 1
attr Master verbose 3
attr Master nonPrioritizedGet 1
attr Master nonPrioritizedSet 1
attr Master dev-timing-sendDelay 0
attr Master dev-timing-commDelay 0
attr Master obj-h256-reading TempWasserEin
attr Master obj-h258-reading TempWasserAus
attr Master obj-h100-reading Test1
attr Master obj-h100-expr $val + 2
attr Master obj-h100-poll 1
attr Master obj-h100-polldelay 0
attr Master obj-h101-reading Test2
attr Master obj-h101-unpack f>
attr Master obj-h101-len 2
attr Master obj-h101-format %.2f
attr Master obj-h101-poll 1
attr Master obj-h101-polldelay 0
attr Master obj-h103-reading Test3
attr Master obj-h103-unpack a8
attr Master obj-h103-len 4
attr Master obj-h103-poll 1
attr Master obj-h103-polldelay 0
attr Master obj-h120-reading Test4
attr Master obj-h120-unpack f>
attr Master obj-h120-len 2
attr Master obj-h120-format %.2f
attr Master obj-h120-poll 1
attr Master obj-h120-ignoreExpr $val > 10
attr Master obj-h120-polldelay 0
attr Master obj-h130-reading Test5
attr Master obj-h130-unpack a*
attr Master obj-h130-len 2
attr Master obj-h130-encode utf8
attr Master obj-h10-reading o1
attr Master obj-h10-map 0:off, 1:on
attr Master obj-h11-reading o2
attr Master obj-h11-min 1
attr Master obj-h11-max 3
attr Master dev-h-defSet 1
attr Master dev-c-defSet 1
attr Master dev-h-defShowGet 1
attr Master obj-c400-reading c0
attr Master obj-c401-reading c1
attr Master obj-c402-reading c2
attr Master obj-c403-reading c3
attr Master obj-c404-reading c4
attr Master obj-c405-reading c5
attr Master obj-c406-reading c6
attr Master obj-c407-reading c7
attr Master obj-c408-reading c8
attr Master obj-c409-reading c9
attr Master obj-c410-reading c10
attr Master obj-c411-reading c11
attr Master obj-c412-reading c12
attr Master obj-c413-reading c13
attr Master obj-c414-reading c14
attr Master obj-c415-reading c15
attr Master obj-c416-reading c16
attr Master obj-c417-reading c17
attr Master obj-c418-reading c18
attr Master obj-c400-poll 1
attr Master obj-c405-poll 1
attr Master obj-c406-poll 1
attr Master obj-c417-poll 1
attr Master dev-h-combine 19
attr global mseclog 1
define D1 dummy
define ModbusIO1 Modbus none
attr ModbusIO1 verbose 5
define ModbusIO2 Modbus none
attr ModbusIO2 verbose 5
define Slave ModbusAttr 5 slave
attr Slave IODev ModbusIO1
attr Slave obj-h256-reading TempWasserEin
attr Slave obj-h258-reading D1:TempWasserAus
attr Slave obj-h100-reading Test1
attr Slave obj-h100-setexpr $val * 4
attr Slave obj-h101-reading Test2
attr Slave obj-h101-unpack f>
attr Slave obj-h101-len 2
attr Slave obj-h103-reading Test3
attr Slave obj-h103-unpack a8
attr Slave obj-h103-len 4
attr Slave obj-h120-reading Test4
attr Slave obj-h120-unpack f>
attr Slave obj-h120-len 2
attr Slave obj-h130-reading Test5
attr Slave obj-h130-unpack a*
attr Slave obj-h130-len 2
attr Slave obj-c400-reading c0
attr Slave obj-c401-reading c1
attr Slave obj-c402-reading c2
attr Slave obj-c403-reading c3
attr Slave obj-c404-reading c4
attr Slave obj-c405-reading c5
attr Slave obj-c406-reading c6
attr Slave obj-c407-reading c7
attr Slave obj-c408-reading c8
attr Slave obj-c409-reading c9
attr Slave obj-c410-reading c10
attr Slave obj-c411-reading c11
attr Slave obj-c412-reading c12
attr Slave obj-c413-reading c13
attr Slave obj-c414-reading c14
attr Slave obj-c415-reading c15
attr Slave obj-c416-reading c16
attr Slave obj-c417-reading c17
attr Slave obj-c418-reading c18
define Master ModbusAttr 5 0
attr Master IODev ModbusIO2
attr Master disable 1
attr Master verbose 3
attr Master nonPrioritizedGet 1
attr Master nonPrioritizedSet 1
attr Master dev-timing-sendDelay 0
attr Master dev-timing-commDelay 0
attr Master obj-h256-reading TempWasserEin
attr Master obj-h258-reading TempWasserAus
attr Master obj-h100-reading Test1
attr Master obj-h100-expr $val + 2
attr Master obj-h100-poll 1
attr Master obj-h100-polldelay 0
attr Master obj-h101-reading Test2
attr Master obj-h101-unpack f>
attr Master obj-h101-len 2
attr Master obj-h101-format %.2f
attr Master obj-h101-poll 1
attr Master obj-h101-polldelay 0
attr Master obj-h103-reading Test3
attr Master obj-h103-unpack a8
attr Master obj-h103-len 4
attr Master obj-h103-poll 1
attr Master obj-h103-polldelay 0
attr Master obj-h120-reading Test4
attr Master obj-h120-unpack f>
attr Master obj-h120-len 2
attr Master obj-h120-format %.2f
attr Master obj-h120-poll 1
attr Master obj-h120-ignoreExpr $val > 10
attr Master obj-h120-polldelay 0
attr Master obj-h130-reading Test5
attr Master obj-h130-unpack a*
attr Master obj-h130-len 2
attr Master obj-h130-encode utf8
attr Master obj-h10-reading o1
attr Master obj-h10-map 0:off, 1:on
attr Master obj-h11-reading o2
attr Master obj-h11-min 1
attr Master obj-h11-max 3
attr Master dev-h-defSet 1
attr Master dev-c-defSet 1
attr Master dev-h-defShowGet 1
attr Master obj-c400-reading c0
attr Master obj-c401-reading c1
attr Master obj-c402-reading c2
attr Master obj-c403-reading c3
attr Master obj-c404-reading c4
attr Master obj-c405-reading c5
attr Master obj-c406-reading c6
attr Master obj-c407-reading c7
attr Master obj-c408-reading c8
attr Master obj-c409-reading c9
attr Master obj-c410-reading c10
attr Master obj-c411-reading c11
attr Master obj-c412-reading c12
attr Master obj-c413-reading c13
attr Master obj-c414-reading c14
attr Master obj-c415-reading c15
attr Master obj-c416-reading c16
attr Master obj-c417-reading c17
attr Master obj-c418-reading c18
attr Master obj-c400-poll 1
attr Master obj-c405-poll 1
attr Master obj-c406-poll 1
attr Master obj-c417-poll 1
attr Master dev-h-combine 19
attr Master dev-c-combine 32

View File

@ -1,130 +1,139 @@
attr global mseclog 1
define D1 dummy
define Slave ModbusAttr 5 slave global:5501
attr Slave obj-h256-reading TempWasserEin
attr Slave obj-h258-reading D1:TempWasserAus
attr Slave obj-h100-reading Test1
attr Slave obj-h100-setexpr $val * 4
attr Slave obj-h101-reading Test2
attr Slave obj-h101-unpack f>
attr Slave obj-h101-len 2
attr Slave obj-h103-reading Test3
attr Slave obj-h103-unpack a8
attr Slave obj-h103-len 4
attr Slave obj-h120-reading Test4
attr Slave obj-h120-unpack f>
attr Slave obj-h120-len 2
attr Slave obj-h130-reading Test5
attr Slave obj-h130-unpack a*
attr Slave obj-h130-len 2
attr Slave obj-c400-reading c0
attr Slave obj-c401-reading c1
attr Slave obj-c402-reading c2
attr Slave obj-c403-reading c3
attr Slave obj-c404-reading c4
attr Slave obj-c405-reading c5
attr Slave obj-c406-reading c6
attr Slave obj-c407-reading c7
attr Slave obj-c408-reading c8
attr Slave obj-c409-reading c9
attr Slave obj-c410-reading c10
attr Slave obj-c411-reading c11
attr Slave obj-c412-reading c12
attr Slave obj-c413-reading c13
attr Slave obj-c414-reading c14
attr Slave obj-c415-reading c15
attr Slave obj-c416-reading c16
attr Slave obj-c417-reading c17
attr Slave obj-c418-reading c18
define Master ModbusAttr 5 0 localhost:5501
attr Master disable 1
attr Master verbose 3
attr Master nonPrioritizedGet 1
attr Master nonPrioritizedSet 1
attr Master dev-timing-sendDelay 0
attr Master dev-timing-commDelay 0
attr Master obj-h256-reading TempWasserEin
attr Master obj-h258-reading TempWasserAus
attr Master obj-h100-reading Test1
attr Master obj-h100-expr $val + 2
attr Master obj-h100-poll 1
attr Master obj-h100-polldelay 0
attr Master obj-h101-reading Test2
attr Master obj-h101-unpack f>
attr Master obj-h101-len 2
attr Master obj-h101-format %.2f
attr Master obj-h101-poll 1
attr Master obj-h101-polldelay 0
attr Master obj-h103-reading Test3
attr Master obj-h103-unpack a8
attr Master obj-h103-len 4
attr Master obj-h103-poll 1
attr Master obj-h103-polldelay 0
attr Master obj-h120-reading Test4
attr Master obj-h120-unpack f>
attr Master obj-h120-len 2
attr Master obj-h120-format %.2f
attr Master obj-h120-poll 1
attr Master obj-h120-ignoreExpr $val > 10
attr Master obj-h120-polldelay 0
attr Master obj-h130-reading Test5
attr Master obj-h130-unpack a*
attr Master obj-h130-len 2
attr Master obj-h130-encode utf8
attr Master obj-h10-reading o1
attr Master obj-h10-map 0:off, 1:on
attr Master obj-h11-reading o2
attr Master obj-h11-min 1
attr Master obj-h11-max 3
attr Master obj-h999-reading NoReading
attr Master dev-h-defSet 1
attr Master dev-c-defSet 1
attr Master dev-h-defShowGet 1
attr Master obj-c400-reading c0
attr Master obj-c401-reading c1
attr Master obj-c402-reading c2
attr Master obj-c403-reading c3
attr Master obj-c404-reading c4
attr Master obj-c405-reading c5
attr Master obj-c406-reading c6
attr Master obj-c407-reading c7
attr Master obj-c408-reading c8
attr Master obj-c409-reading c9
attr Master obj-c410-reading c10
attr Master obj-c411-reading c11
attr Master obj-c412-reading c12
attr Master obj-c413-reading c13
attr Master obj-c414-reading c14
attr Master obj-c415-reading c15
attr Master obj-c416-reading c16
attr Master obj-c417-reading c17
attr Master obj-c418-reading c18
attr Master obj-c400-poll 1
attr Master obj-c405-poll 1
attr Master obj-c406-poll 1
attr Master obj-c417-poll 1
attr Master dev-h-combine 19
attr global mseclog 1
define D1 dummy
define Slave ModbusAttr 5 slave global:5501
attr Slave obj-h256-reading TempWasserEin
attr Slave obj-h258-reading D1:TempWasserAus
attr Slave obj-h100-reading Test1
attr Slave obj-h100-setexpr $val * 4
attr Slave obj-h101-reading Test2
attr Slave obj-h101-unpack f>
attr Slave obj-h101-len 2
attr Slave obj-h103-reading Test3
attr Slave obj-h103-unpack a8
attr Slave obj-h103-len 4
attr Slave obj-h120-reading Test4
attr Slave obj-h120-unpack f>
attr Slave obj-h120-len 2
attr Slave obj-h130-reading Test5
attr Slave obj-h130-unpack a*
attr Slave obj-h130-len 2
attr Slave obj-c400-reading c0
attr Slave obj-c401-reading c1
attr Slave obj-c402-reading c2
attr Slave obj-c403-reading c3
attr Slave obj-c404-reading c4
attr Slave obj-c405-reading c5
attr Slave obj-c406-reading c6
attr Slave obj-c407-reading c7
attr Slave obj-c408-reading c8
attr Slave obj-c409-reading c9
attr Slave obj-c410-reading c10
attr Slave obj-c411-reading c11
attr Slave obj-c412-reading c12
attr Slave obj-c413-reading c13
attr Slave obj-c414-reading c14
attr Slave obj-c415-reading c15
attr Slave obj-c416-reading c16
attr Slave obj-c417-reading c17
attr Slave obj-c418-reading c18
define Master ModbusAttr 5 0 localhost:5501
attr Master disable 1
attr Master verbose 3
attr Master nonPrioritizedGet 1
attr Master nonPrioritizedSet 1
attr Master dev-timing-sendDelay 0
attr Master dev-timing-commDelay 0
attr Master obj-h256-reading TempWasserEin
attr Master obj-h258-reading TempWasserAus
attr Master obj-h100-reading Test1
attr Master obj-h100-expr $val + 2
attr Master obj-h100-poll 1
attr Master obj-h100-polldelay 0
attr Master obj-h101-reading Test2
attr Master obj-h101-unpack f>
attr Master obj-h101-len 2
attr Master obj-h101-format %.2f
attr Master obj-h101-poll 1
attr Master obj-h101-polldelay 0
attr Master obj-h103-reading Test3
attr Master obj-h103-unpack a8
attr Master obj-h103-len 4
attr Master obj-h103-poll 1
attr Master obj-h103-polldelay 0
attr Master obj-h120-reading Test4
attr Master obj-h120-unpack f>
attr Master obj-h120-len 2
attr Master obj-h120-format %.2f
attr Master obj-h120-poll 1
attr Master obj-h120-ignoreExpr $val > 10
attr Master obj-h120-polldelay 0
attr Master obj-h130-reading Test5
attr Master obj-h130-unpack a*
attr Master obj-h130-len 2
attr Master obj-h130-encode utf8
attr Master obj-h10-reading o1
attr Master obj-h10-map 0:off, 1:on
attr Master obj-h11-reading o2
attr Master obj-h11-min 1
attr Master obj-h11-max 3
attr Master obj-h12-reading o3
attr Master obj-h10-map 0:off, 1:on
attr Master obj-h13-reading o4
attr Master obj-h13-map 0:off, 1:on
attr Master obj-h13-rmapDefault 5
attr Master obj-h999-reading NoReading
attr Master dev-h-defSet 1
attr Master dev-c-defSet 1
attr Master dev-h-defShowGet 1
attr Master obj-c400-reading c0
attr Master obj-c401-reading c1
attr Master obj-c402-reading c2
attr Master obj-c403-reading c3
attr Master obj-c404-reading c4
attr Master obj-c405-reading c5
attr Master obj-c406-reading c6
attr Master obj-c407-reading c7
attr Master obj-c408-reading c8
attr Master obj-c409-reading c9
attr Master obj-c410-reading c10
attr Master obj-c411-reading c11
attr Master obj-c412-reading c12
attr Master obj-c413-reading c13
attr Master obj-c414-reading c14
attr Master obj-c415-reading c15
attr Master obj-c416-reading c16
attr Master obj-c417-reading c17
attr Master obj-c418-reading c18
attr Master obj-c400-poll 1
attr Master obj-c405-poll 1
attr Master obj-c406-poll 1
attr Master obj-c417-poll 1
attr Master dev-h-combine 19
attr Master dev-c-combine 32

View File

@ -1,5 +1,6 @@
##############################################
# test master slave end to end
# also map, min max, ...
##############################################
package main;
@ -249,7 +250,51 @@ sub testStep36 {
sub testStep32 {
#LogStep "";
#is(FhemTestUtils_gotEvent(qr/D1:TempWasserAus:\s20/xms), 1, "Write value to local slave");
return 0.1;
CheckAndReset();
return;
}
sub testStep40 { # check input map default
fhem ('attr Master verbose 4');
fhem ('attr Master dev-h-write 6'); # back to standard
fhem ('attr Slave verbose 3');
fhem ('setreading Slave Test1 1');
fhem 'deleteattr Master obj-h100-expr';
fhem 'attr Master obj-h100-map 1:low, 2:medium, 3:high';
fhem 'set Master o4 none';
fhem 'get Master Test1';
return 0.2;
}
sub testStep41 { # check write data
LogStep "check log for map with default";
is(FhemTestUtils_gotLog('0506000d0005d98e'), 1, "set o1 5 (default) message in log");
CheckAndReset();
return;
}
sub testStep45 { # check ouput map with default
fhem ('attr Master verbose 5');
fhem ('attr Slave verbose 4');
fhem ('setreading Slave Test1 1'); # Slave expr will answer with 4
fhem 'deleteattr Master obj-h100-expr';
fhem 'attr Master obj-h100-map 1:low, 2:medium, 3:high';
fhem 'attr Master obj-h100-mapDefault invalid';
fhem 'get Master Test1';
return 0.2;
}
sub testStep46 { # check data
LogStep "check log for output map with default";
is(FhemTestUtils_gotEvent(qr/Master:Test1:\sinvalid/xms), 1, "get map default result");
CheckAndReset();
return;
}
1;

View File

@ -1,21 +1,21 @@
attr global mseclog 1
define Slave ModbusAttr 5 slave global:5501
attr Slave obj-h256-reading TempWasserEin
attr Slave obj-h258-reading TempWasserAus
define Master ModbusAttr 5 0 localhost:5501
attr Master disable 1
attr Master verbose 3
attr Master nonPrioritizedGet 1
attr Master nonPrioritizedSet 1
attr Master dev-timing-sendDelay 0
attr Master dev-timing-commDelay 0
attr Master dev-h-defSet 1
attr Master dev-h-defShowGet 1
attr Master dev-h-combine 19
attr Master obj-h256-reading TempWasserEin
attr Master obj-h258-reading TempWasserAus
attr global mseclog 1
define Slave ModbusAttr 5 slave global:5501
attr Slave obj-h256-reading TempWasserEin
attr Slave obj-h258-reading TempWasserAus
define Master ModbusAttr 5 0 localhost:5501
attr Master disable 1
attr Master verbose 3
attr Master nonPrioritizedGet 1
attr Master nonPrioritizedSet 1
attr Master dev-timing-sendDelay 0
attr Master dev-timing-commDelay 0
attr Master dev-h-defSet 1
attr Master dev-h-defShowGet 1
attr Master dev-h-combine 19
attr Master obj-h256-reading TempWasserEin
attr Master obj-h258-reading TempWasserAus

View File

@ -0,0 +1,34 @@
attr global mseclog 1
define Slave ModbusAttr 5 slave global:5501
attr Slave obj-h256-reading TempWasserEin
attr Slave obj-h256-len 2
attr Slave obj-h256-unpack f>
attr Slave obj-h258-reading TempWasserAus
attr Slave obj-h258-len 2
attr Slave obj-h258-unpack f<
define Master ModbusAttr 5 0 localhost:5501
attr Master disable 1
attr Master verbose 3
attr Master nonPrioritizedGet 1
attr Master nonPrioritizedSet 1
attr Master dev-timing-sendDelay 0
attr Master dev-timing-commDelay 0
attr Master dev-h-defSet 1
attr Master dev-h-defShowGet 1
attr Master dev-h-combine 19
attr Master obj-h256-reading TempWasserEin
attr Master obj-h256-len 2
attr Master obj-h256-unpack f>
attr Master obj-h256-poll 1
attr Master obj-h256-polldelay 0
attr Master obj-h258-reading TempWasserAus
attr Master obj-h258-len 2
attr Master obj-h258-unpack f<
attr Master obj-h258-poll 1
attr Master obj-h258-polldelay 0

View File

@ -0,0 +1,75 @@
##############################################
# test master slave with setexpr
##############################################
package main;
use strict;
use warnings;
use Test::More;
use Time::HiRes qw( gettimeofday tv_interval); # return time as float, not just full seconds
use FHEM::HTTPMOD::Utils qw(:all);
use FHEM::Modbus::TestUtils qw(:all);
fhem 'attr global mseclog 1';
NextStep();
sub testStep1 { # preparation of slave content, enable devices
CheckAndReset();
LogStep "enable Master and set value at Slave";
fhem ('attr Master disable 0');
fhem ('setreading Slave TempWasserEin 12.123');
fhem ('setreading Slave TempWasserAus 32.999');
return 0.1;
}
sub testStep2 { # get holding registers
LogStep "retrieve normal values";
fhem ('attr Master verbose 5');
fhem ('attr Slave verbose 5');
fhem ('set Master reread');
return 0.3;
}
sub testStep3 { # check results
LogStep "check result for normal values";
is(FhemTestUtils_gotEvent(qr/Master:TempWasserEin:\s12.123/xms), 1, "Retrieve float 1 from local slave");
is(FhemTestUtils_gotEvent(qr/Master:TempWasserAus:\s32.999/xms), 1, "Retrieve float 2 from local slave");
CheckAndReset();
return;
}
sub testStep10 { # get holding registers with revregs
LogStep "retrieve values with revRegs";
fhem ('attr Master obj-h258-revRegs 1');
fhem ('attr Slave obj-h258-revRegs 1');
fhem ('set Master reread');
return 0.3;
}
sub testStep11 { # check results 2
LogStep "check result with revRegs";
is(FhemTestUtils_gotEvent(qr/Master:TempWasserEin:\s12.123/xms), 1, "Retrieve float 1 from local slave");
is(FhemTestUtils_gotEvent(qr/Master:TempWasserAus:\s32.999/xms), 1, "Retrieve float 2 from local slave");
CheckAndReset();
return;
}
sub testStep20 { # get holding registers with revregs
LogStep "retrieve values with wrong revRegs";
fhem ('attr Master obj-h258-revRegs 0');
fhem ('attr Slave obj-h258-revRegs 1');
fhem ('set Master reread');
return 0.3;
}
sub testStep21 { # check results 2
LogStep "check result with wrong revRegs";
is(FhemTestUtils_gotEvent(qr/Master:TempWasserEin:\s12.123/xms), 1, "Retrieve float 1 from local slave");
is(FhemTestUtils_gotEvent(qr/Master:TempWasserAus:\s32.999/xms), 0, "no valid retrieve float 2 from local slave");
return;
}
1;

View File

@ -0,0 +1,24 @@
attr global mseclog 1
define Slave ModbusAttr 5 slave global:5501
attr Slave obj-d100-reading Lampe
attr Slave dev-d-addressErrCode 0
define Master ModbusAttr 5 0 localhost:5501
attr Master disable 1
attr Master verbose 3
attr Master nonPrioritizedGet 1
attr Master nonPrioritizedSet 1
attr Master dev-timing-sendDelay 0
attr Master dev-timing-commDelay 0
attr Master dev-d-defSet 1
attr Master dev-d-defShowGet 1
attr Master obj-d100-reading Lampe
attr Master obj-d100-poll 1
attr Master obj-d100-polldelay 0
attr Master obj-d108-reading dummy
attr Master obj-d108-poll 1
attr Master obj-d108-polldelay 0
attr Master dev-d-combine 16

View File

@ -0,0 +1,55 @@
##############################################
# test master slave with setexpr
##############################################
package main;
use strict;
use warnings;
use Test::More;
use Time::HiRes qw( gettimeofday tv_interval); # return time as float, not just full seconds
use FHEM::HTTPMOD::Utils qw(:all);
use FHEM::Modbus::TestUtils qw(:all);
fhem 'attr global mseclog 1';
NextStep();
sub testStep1 { # preparation of slave content, enable devices
CheckAndReset();
LogStep "enable Master and set value at Slave";
fhem ('attr Master disable 0');
fhem ('setreading Slave Lampe 1');
return 0.1;
}
sub testStep2 { # get digital input
LogStep "retrieve normal values";
fhem 'attr Master verbose 5';
fhem 'attr Slave verbose 5';
fhem 'get Master Lampe';
return 0.3;
}
sub testStep3 { # check results
LogStep "check result for normal values";
is(FhemTestUtils_gotEvent(qr/Master:Lampe:\s1/xms), 1, "Retrieve value 1 from local slave");
CheckAndReset();
return;
}
sub testStep10 { # check doepke fix
LogStep "use doepke fix";
fhem 'attr Master dev-d-brokenFC2 doepke';
fhem 'set Master reread';
return 0.2;
}
sub testStep11 { # check results
LogStep "check result for combined inputs with doepke fix sumulation";
is(FhemTestUtils_gotEvent(qr/Master:Lampe:\s0/xms), 1, "Retrieve value 0 from local slave");
CheckAndReset();
return;
}
1;

View File

@ -1,136 +1,136 @@
attr global mseclog 1
define Slave ModbusAttr 5 slave global:5501
attr Slave dev-addressErrCode 0
attr Slave obj-h256-reading TempWasserEin
attr Slave obj-h258-reading TempWasserAus
attr Slave obj-h100-reading Test1
attr Slave obj-h100-setexpr $val * 4
attr Slave obj-h101-reading Test2
attr Slave obj-h101-unpack f>
attr Slave obj-h101-len 2
attr Slave obj-h103-reading Test3
attr Slave obj-h103-unpack a8
attr Slave obj-h103-len 4
attr Slave obj-h120-reading Test4
attr Slave obj-h120-unpack f>
attr Slave obj-h120-len 2
attr Slave obj-h130-reading Test5
attr Slave obj-h130-unpack f<
attr Slave obj-h130-len 2
attr Slave obj-h132-reading Test6
attr Slave obj-h132-poll 1
attr Slave obj-h132-unpack n
attr Slave obj-h132-polldelay 0
attr Slave obj-c400-reading c0
attr Slave obj-c401-reading c1
attr Slave obj-c402-reading c2
attr Slave obj-c403-reading c3
attr Slave obj-c404-reading c4
attr Slave obj-c405-reading c5
attr Slave obj-c406-reading c6
attr Slave obj-c407-reading c7
attr Slave obj-c408-reading c8
attr Slave obj-c409-reading c9
attr Slave obj-c410-reading c10
attr Slave obj-c411-reading c11
attr Slave obj-c412-reading c12
attr Slave obj-c413-reading c13
attr Slave obj-c414-reading c14
attr Slave obj-c415-reading c15
attr Slave obj-c416-reading c16
attr Slave obj-c417-reading c17
attr Slave obj-c418-reading c18
define Master ModbusAttr 5 0 localhost:5501
attr Master disable 1
attr Master verbose 3
attr Master nonPrioritizedGet 1
attr Master nonPrioritizedSet 1
attr Master dev-timing-sendDelay 0
attr Master dev-timing-commDelay 0
attr Master dev-timing-timeout 0.5
attr Master obj-h256-reading TempWasserEin
attr Master obj-h258-reading TempWasserAus
attr Master obj-h100-reading Test1
attr Master obj-h100-expr $val + 2
attr Master obj-h100-poll 1
attr Master obj-h100-polldelay 0
attr Master obj-h101-reading Test2
attr Master obj-h101-unpack f>
attr Master obj-h101-len 2
attr Master obj-h101-format %.2f
attr Master obj-h101-poll 1
attr Master obj-h101-polldelay 0
attr Master obj-h103-reading Test3
attr Master obj-h103-unpack a8
attr Master obj-h103-len 4
attr Master obj-h103-poll 1
attr Master obj-h103-polldelay 0
attr Master obj-h120-reading Test4
attr Master obj-h120-unpack f>
attr Master obj-h120-len 2
attr Master obj-h120-format %.2f
attr Master obj-h120-poll 1
attr Master obj-h120-ignoreExpr $val > 10
attr Master obj-h120-polldelay 0
attr Master obj-h130-reading Test5
attr Master obj-h130-unpack f<
attr Master obj-h130-len 2
attr Master obj-h132-reading Test6
attr Master obj-h132-poll 1
attr Master obj-h132-unpack n
attr Master obj-h132-polldelay 0
attr Master obj-h10-reading o1
attr Master obj-h10-map 0:off, 1:on
attr Master obj-h11-reading o2
attr Master obj-h11-min 1
attr Master obj-h11-max 3
attr Master dev-h-defSet 1
attr Master dev-c-defSet 1
attr Master dev-h-defShowGet 1
attr Master obj-c400-reading c0
attr Master obj-c401-reading c1
attr Master obj-c402-reading c2
attr Master obj-c403-reading c3
attr Master obj-c404-reading c4
attr Master obj-c405-reading c5
attr Master obj-c406-reading c6
attr Master obj-c407-reading c7
attr Master obj-c408-reading c8
attr Master obj-c409-reading c9
attr Master obj-c410-reading c10
attr Master obj-c411-reading c11
attr Master obj-c412-reading c12
attr Master obj-c413-reading c13
attr Master obj-c414-reading c14
attr Master obj-c415-reading c15
attr Master obj-c416-reading c16
attr Master obj-c417-reading c17
attr Master obj-c418-reading c18
attr Master obj-c400-poll 1
attr Master obj-c405-poll 1
attr Master obj-c406-poll 1
attr Master obj-c417-poll 1
attr Master dev-h-combine 19
attr Master dev-c-combine 32
attr global mseclog 1
define Slave ModbusAttr 5 slave global:5501
attr Slave dev-addressErrCode 0
attr Slave obj-h256-reading TempWasserEin
attr Slave obj-h258-reading TempWasserAus
attr Slave obj-h100-reading Test1
attr Slave obj-h100-setexpr $val * 4
attr Slave obj-h101-reading Test2
attr Slave obj-h101-unpack f>
attr Slave obj-h101-len 2
attr Slave obj-h103-reading Test3
attr Slave obj-h103-unpack a8
attr Slave obj-h103-len 4
attr Slave obj-h120-reading Test4
attr Slave obj-h120-unpack f>
attr Slave obj-h120-len 2
attr Slave obj-h130-reading Test5
attr Slave obj-h130-unpack f<
attr Slave obj-h130-len 2
attr Slave obj-h132-reading Test6
attr Slave obj-h132-poll 1
attr Slave obj-h132-unpack n
attr Slave obj-h132-polldelay 0
attr Slave obj-c400-reading c0
attr Slave obj-c401-reading c1
attr Slave obj-c402-reading c2
attr Slave obj-c403-reading c3
attr Slave obj-c404-reading c4
attr Slave obj-c405-reading c5
attr Slave obj-c406-reading c6
attr Slave obj-c407-reading c7
attr Slave obj-c408-reading c8
attr Slave obj-c409-reading c9
attr Slave obj-c410-reading c10
attr Slave obj-c411-reading c11
attr Slave obj-c412-reading c12
attr Slave obj-c413-reading c13
attr Slave obj-c414-reading c14
attr Slave obj-c415-reading c15
attr Slave obj-c416-reading c16
attr Slave obj-c417-reading c17
attr Slave obj-c418-reading c18
define Master ModbusAttr 5 0 localhost:5501
attr Master disable 1
attr Master verbose 3
attr Master nonPrioritizedGet 1
attr Master nonPrioritizedSet 1
attr Master dev-timing-sendDelay 0
attr Master dev-timing-commDelay 0
attr Master dev-timing-timeout 0.5
attr Master obj-h256-reading TempWasserEin
attr Master obj-h258-reading TempWasserAus
attr Master obj-h100-reading Test1
attr Master obj-h100-expr $val + 2
attr Master obj-h100-poll 1
attr Master obj-h100-polldelay 0
attr Master obj-h101-reading Test2
attr Master obj-h101-unpack f>
attr Master obj-h101-len 2
attr Master obj-h101-format %.2f
attr Master obj-h101-poll 1
attr Master obj-h101-polldelay 0
attr Master obj-h103-reading Test3
attr Master obj-h103-unpack a8
attr Master obj-h103-len 4
attr Master obj-h103-poll 1
attr Master obj-h103-polldelay 0
attr Master obj-h120-reading Test4
attr Master obj-h120-unpack f>
attr Master obj-h120-len 2
attr Master obj-h120-format %.2f
attr Master obj-h120-poll 1
attr Master obj-h120-ignoreExpr $val > 10
attr Master obj-h120-polldelay 0
attr Master obj-h130-reading Test5
attr Master obj-h130-unpack f<
attr Master obj-h130-len 2
attr Master obj-h132-reading Test6
attr Master obj-h132-poll 1
attr Master obj-h132-unpack n
attr Master obj-h132-polldelay 0
attr Master obj-h10-reading o1
attr Master obj-h10-map 0:off, 1:on
attr Master obj-h11-reading o2
attr Master obj-h11-min 1
attr Master obj-h11-max 3
attr Master dev-h-defSet 1
attr Master dev-c-defSet 1
attr Master dev-h-defShowGet 1
attr Master obj-c400-reading c0
attr Master obj-c401-reading c1
attr Master obj-c402-reading c2
attr Master obj-c403-reading c3
attr Master obj-c404-reading c4
attr Master obj-c405-reading c5
attr Master obj-c406-reading c6
attr Master obj-c407-reading c7
attr Master obj-c408-reading c8
attr Master obj-c409-reading c9
attr Master obj-c410-reading c10
attr Master obj-c411-reading c11
attr Master obj-c412-reading c12
attr Master obj-c413-reading c13
attr Master obj-c414-reading c14
attr Master obj-c415-reading c15
attr Master obj-c416-reading c16
attr Master obj-c417-reading c17
attr Master obj-c418-reading c18
attr Master obj-c400-poll 1
attr Master obj-c405-poll 1
attr Master obj-c406-poll 1
attr Master obj-c417-poll 1
attr Master dev-h-combine 19
attr Master dev-c-combine 32

View File

@ -1,106 +1,106 @@
attr global mseclog 1
define Slave ModbusAttr 5 slave global:5501
attr Slave dev-addressErrCode 0
attr Slave obj-h256-reading TempWasserEin
attr Slave obj-h258-reading TempWasserAus
attr Slave obj-h100-reading Test1
attr Slave obj-h101-reading Test2
attr Slave obj-h101-unpack f>
attr Slave obj-h101-len 2
attr Slave obj-h103-reading Test2m
attr Slave obj-h120-reading Test4a
attr Slave obj-h120-unpack f>
attr Slave obj-h120-len 2
attr Slave obj-h122-reading Test4b
attr Slave obj-h122-unpack f>
attr Slave obj-h122-len 2
attr Slave obj-h130-reading Test5
attr Slave obj-h130-unpack f<
attr Slave obj-h130-len 2
attr Slave obj-h132-reading Test5m
attr Slave obj-h132-unpack n
define Master ModbusAttr 5 0 localhost:5501
attr Master disable 1
attr Master verbose 3
attr Master nonPrioritizedGet 1
attr Master nonPrioritizedSet 1
attr Master dev-timing-sendDelay 0
attr Master dev-timing-commDelay 0
attr Master dev-timing-timeout 0.5
attr Master obj-h256-reading TempWasserEin
attr Master obj-h256-poll 1
attr Master obj-h258-reading TempWasserAus
attr Master obj-h258-poll 1
attr Master obj-h100-reading Test1
attr Master obj-h100-expr $val + 2
attr Master obj-h100-poll 1
attr Master obj-h100-polldelay 0
attr Master obj-h101-reading Test2
attr Master obj-h101-unpack f>
attr Master obj-h101-len 2
attr Master obj-h101-format %.2f
attr Master obj-h101-poll 1
attr Master obj-h101-polldelay 0
attr Master obj-h101-group 2-2
attr Master obj-h101-expr ReadingsVal($name, 'Test2m', 0) * $val
attr Master obj-h103-reading Test2m
attr Master obj-h103-poll 1
attr Master obj-h103-polldelay 0
attr Master obj-h103-group 2-1
attr Master obj-h120-reading Test4a
attr Master obj-h120-unpack f>
attr Master obj-h120-len 2
attr Master obj-h120-format %.2f
attr Master obj-h120-poll 1
attr Master obj-h120-polldelay 0
attr Master obj-h120-group 3-1
attr Master obj-h122-reading Test4b
attr Master obj-h122-unpack f>
attr Master obj-h122-len 2
attr Master obj-h122-format %.2f
attr Master obj-h122-poll 1
attr Master obj-h122-polldelay 0
attr Master obj-h122-group 3-2
attr Master obj-h122-expr ReadingsVal($name, 'Test4a', 0) + $val
attr Master obj-h130-reading Test5
attr Master obj-h130-unpack f<
attr Master obj-h130-len 2
attr Master obj-h130-group 1-1
attr Master obj-h130-poll 1
attr Master obj-h130-expr ReadingsVal($name, 'Test5m', 0) * $val
attr Master obj-h132-reading Test5m
attr Master obj-h132-unpack n
attr Master obj-h132-polldelay 0
attr Master obj-h132-group 1-2
attr Master obj-h10-reading o1
attr Master obj-h10-map 0:off, 1:on
attr Master obj-h11-reading o2
attr Master obj-h11-min 1
attr Master obj-h11-max 3
attr Master dev-h-defSet 1
attr Master dev-c-defSet 1
attr Master dev-h-defShowGet 1
attr Master dev-h-combine 22
attr global mseclog 1
define Slave ModbusAttr 5 slave global:5501
attr Slave dev-addressErrCode 0
attr Slave obj-h256-reading TempWasserEin
attr Slave obj-h258-reading TempWasserAus
attr Slave obj-h100-reading Test1
attr Slave obj-h101-reading Test2
attr Slave obj-h101-unpack f>
attr Slave obj-h101-len 2
attr Slave obj-h103-reading Test2m
attr Slave obj-h120-reading Test4a
attr Slave obj-h120-unpack f>
attr Slave obj-h120-len 2
attr Slave obj-h122-reading Test4b
attr Slave obj-h122-unpack f>
attr Slave obj-h122-len 2
attr Slave obj-h130-reading Test5
attr Slave obj-h130-unpack f<
attr Slave obj-h130-len 2
attr Slave obj-h132-reading Test5m
attr Slave obj-h132-unpack n
define Master ModbusAttr 5 0 localhost:5501
attr Master disable 1
attr Master verbose 3
attr Master nonPrioritizedGet 1
attr Master nonPrioritizedSet 1
attr Master dev-timing-sendDelay 0
attr Master dev-timing-commDelay 0
attr Master dev-timing-timeout 0.5
attr Master obj-h256-reading TempWasserEin
attr Master obj-h256-poll 1
attr Master obj-h258-reading TempWasserAus
attr Master obj-h258-poll 1
attr Master obj-h100-reading Test1
attr Master obj-h100-expr $val + 2
attr Master obj-h100-poll 1
attr Master obj-h100-polldelay 0
attr Master obj-h101-reading Test2
attr Master obj-h101-unpack f>
attr Master obj-h101-len 2
attr Master obj-h101-format %.2f
attr Master obj-h101-poll 1
attr Master obj-h101-polldelay 0
attr Master obj-h101-group 2-2
attr Master obj-h101-expr ReadingsVal($name, 'Test2m', 0) * $val
attr Master obj-h103-reading Test2m
attr Master obj-h103-poll 1
attr Master obj-h103-polldelay 0
attr Master obj-h103-group 2-1
attr Master obj-h120-reading Test4a
attr Master obj-h120-unpack f>
attr Master obj-h120-len 2
attr Master obj-h120-format %.2f
attr Master obj-h120-poll 1
attr Master obj-h120-polldelay 0
attr Master obj-h120-group 3-1
attr Master obj-h122-reading Test4b
attr Master obj-h122-unpack f>
attr Master obj-h122-len 2
attr Master obj-h122-format %.2f
attr Master obj-h122-poll 1
attr Master obj-h122-polldelay 0
attr Master obj-h122-group 3-2
attr Master obj-h122-expr ReadingsVal($name, 'Test4a', 0) + $val
attr Master obj-h130-reading Test5
attr Master obj-h130-unpack f<
attr Master obj-h130-len 2
attr Master obj-h130-group 1-1
attr Master obj-h130-poll 1
attr Master obj-h130-expr ReadingsVal($name, 'Test5m', 0) * $val
attr Master obj-h132-reading Test5m
attr Master obj-h132-unpack n
attr Master obj-h132-polldelay 0
attr Master obj-h132-group 1-2
attr Master obj-h10-reading o1
attr Master obj-h10-map 0:off, 1:on
attr Master obj-h11-reading o2
attr Master obj-h11-min 1
attr Master obj-h11-max 3
attr Master dev-h-defSet 1
attr Master dev-c-defSet 1
attr Master dev-h-defShowGet 1
attr Master dev-h-combine 22

View File

@ -1,135 +1,135 @@
attr global mseclog 1
define D1 dummy
define Slave ModbusAttr 50 slave global:5501
attr Slave obj-h256-reading TempWasserEin
attr Slave obj-h258-reading D1:TempWasserAus
attr Slave obj-h100-reading Test1
attr Slave obj-h100-setexpr $val * 4
attr Slave obj-h101-reading Test2
attr Slave obj-h101-unpack f>
attr Slave obj-h101-len 2
attr Slave obj-h103-reading Test3
attr Slave obj-h103-unpack a8
attr Slave obj-h103-len 4
attr Slave obj-h120-reading Test4
attr Slave obj-h120-unpack f>
attr Slave obj-h120-len 2
attr Slave obj-h130-reading Test5
attr Slave obj-h130-unpack a*
attr Slave obj-h130-len 2
attr Slave obj-c400-reading c0
attr Slave obj-c401-reading c1
attr Slave obj-c402-reading c2
attr Slave obj-c403-reading c3
attr Slave obj-c404-reading c4
attr Slave obj-c405-reading c5
attr Slave obj-c406-reading c6
attr Slave obj-c407-reading c7
attr Slave obj-c408-reading c8
attr Slave obj-c409-reading c9
attr Slave obj-c410-reading c10
attr Slave obj-c411-reading c11
attr Slave obj-c412-reading c12
attr Slave obj-c413-reading c13
attr Slave obj-c414-reading c14
attr Slave obj-c415-reading c15
attr Slave obj-c416-reading c16
attr Slave obj-c417-reading c17
attr Slave obj-c418-reading c18
define RM ModbusAttr 50 0 localhost:5501
attr RM dev-timing-sendDelay 0
attr RM dev-timing-commDelay 0
attr RM disable 1
define Relay ModbusAttr 5 relay localhost:5510 to RM
attr Relay disable 1
define Master ModbusAttr 5 0 localhost:5510
attr Master disable 1
attr Master verbose 3
attr Master nonPrioritizedGet 1
attr Master nonPrioritizedSet 1
attr Master dev-timing-sendDelay 0
attr Master dev-timing-commDelay 0
attr Master obj-h256-reading TempWasserEin
attr Master obj-h258-reading TempWasserAus
attr Master obj-h100-reading Test1
attr Master obj-h100-expr $val + 2
attr Master obj-h100-poll 1
attr Master obj-h100-polldelay 0
attr Master obj-h101-reading Test2
attr Master obj-h101-unpack f>
attr Master obj-h101-len 2
attr Master obj-h101-format %.2f
attr Master obj-h101-poll 1
attr Master obj-h101-polldelay 0
attr Master obj-h103-reading Test3
attr Master obj-h103-unpack a8
attr Master obj-h103-len 4
attr Master obj-h103-poll 1
attr Master obj-h103-polldelay 0
attr Master obj-h120-reading Test4
attr Master obj-h120-unpack f>
attr Master obj-h120-len 2
attr Master obj-h120-format %.2f
attr Master obj-h120-poll 1
attr Master obj-h120-ignoreExpr $val > 10
attr Master obj-h120-polldelay 0
attr Master obj-h130-reading Test5
attr Master obj-h130-unpack a*
attr Master obj-h130-len 2
attr Master obj-h130-encode utf8
attr Master obj-h10-reading o1
attr Master obj-h10-map 0:off, 1:on
attr Master obj-h11-reading o2
attr Master obj-h11-min 1
attr Master obj-h11-max 3
attr Master dev-h-defSet 1
attr Master dev-c-defSet 1
attr Master dev-h-defShowGet 1
attr Master obj-c400-reading c0
attr Master obj-c401-reading c1
attr Master obj-c402-reading c2
attr Master obj-c403-reading c3
attr Master obj-c404-reading c4
attr Master obj-c405-reading c5
attr Master obj-c406-reading c6
attr Master obj-c407-reading c7
attr Master obj-c408-reading c8
attr Master obj-c409-reading c9
attr Master obj-c410-reading c10
attr Master obj-c411-reading c11
attr Master obj-c412-reading c12
attr Master obj-c413-reading c13
attr Master obj-c414-reading c14
attr Master obj-c415-reading c15
attr Master obj-c416-reading c16
attr Master obj-c417-reading c17
attr Master obj-c418-reading c18
attr Master obj-c400-poll 1
attr Master obj-c405-poll 1
attr Master obj-c406-poll 1
attr Master obj-c417-poll 1
attr Master dev-h-combine 19
attr global mseclog 1
define D1 dummy
define Slave ModbusAttr 50 slave global:5501
attr Slave obj-h256-reading TempWasserEin
attr Slave obj-h258-reading D1:TempWasserAus
attr Slave obj-h100-reading Test1
attr Slave obj-h100-setexpr $val * 4
attr Slave obj-h101-reading Test2
attr Slave obj-h101-unpack f>
attr Slave obj-h101-len 2
attr Slave obj-h103-reading Test3
attr Slave obj-h103-unpack a8
attr Slave obj-h103-len 4
attr Slave obj-h120-reading Test4
attr Slave obj-h120-unpack f>
attr Slave obj-h120-len 2
attr Slave obj-h130-reading Test5
attr Slave obj-h130-unpack a*
attr Slave obj-h130-len 2
attr Slave obj-c400-reading c0
attr Slave obj-c401-reading c1
attr Slave obj-c402-reading c2
attr Slave obj-c403-reading c3
attr Slave obj-c404-reading c4
attr Slave obj-c405-reading c5
attr Slave obj-c406-reading c6
attr Slave obj-c407-reading c7
attr Slave obj-c408-reading c8
attr Slave obj-c409-reading c9
attr Slave obj-c410-reading c10
attr Slave obj-c411-reading c11
attr Slave obj-c412-reading c12
attr Slave obj-c413-reading c13
attr Slave obj-c414-reading c14
attr Slave obj-c415-reading c15
attr Slave obj-c416-reading c16
attr Slave obj-c417-reading c17
attr Slave obj-c418-reading c18
define RM ModbusAttr 50 0 localhost:5501
attr RM dev-timing-sendDelay 0
attr RM dev-timing-commDelay 0
attr RM disable 1
define Relay ModbusAttr 5 relay localhost:5510 to RM
attr Relay disable 1
define Master ModbusAttr 5 0 localhost:5510
attr Master disable 1
attr Master verbose 3
attr Master nonPrioritizedGet 1
attr Master nonPrioritizedSet 1
attr Master dev-timing-sendDelay 0
attr Master dev-timing-commDelay 0
attr Master obj-h256-reading TempWasserEin
attr Master obj-h258-reading TempWasserAus
attr Master obj-h100-reading Test1
attr Master obj-h100-expr $val + 2
attr Master obj-h100-poll 1
attr Master obj-h100-polldelay 0
attr Master obj-h101-reading Test2
attr Master obj-h101-unpack f>
attr Master obj-h101-len 2
attr Master obj-h101-format %.2f
attr Master obj-h101-poll 1
attr Master obj-h101-polldelay 0
attr Master obj-h103-reading Test3
attr Master obj-h103-unpack a8
attr Master obj-h103-len 4
attr Master obj-h103-poll 1
attr Master obj-h103-polldelay 0
attr Master obj-h120-reading Test4
attr Master obj-h120-unpack f>
attr Master obj-h120-len 2
attr Master obj-h120-format %.2f
attr Master obj-h120-poll 1
attr Master obj-h120-ignoreExpr $val > 10
attr Master obj-h120-polldelay 0
attr Master obj-h130-reading Test5
attr Master obj-h130-unpack a*
attr Master obj-h130-len 2
attr Master obj-h130-encode utf8
attr Master obj-h10-reading o1
attr Master obj-h10-map 0:off, 1:on
attr Master obj-h11-reading o2
attr Master obj-h11-min 1
attr Master obj-h11-max 3
attr Master dev-h-defSet 1
attr Master dev-c-defSet 1
attr Master dev-h-defShowGet 1
attr Master obj-c400-reading c0
attr Master obj-c401-reading c1
attr Master obj-c402-reading c2
attr Master obj-c403-reading c3
attr Master obj-c404-reading c4
attr Master obj-c405-reading c5
attr Master obj-c406-reading c6
attr Master obj-c407-reading c7
attr Master obj-c408-reading c8
attr Master obj-c409-reading c9
attr Master obj-c410-reading c10
attr Master obj-c411-reading c11
attr Master obj-c412-reading c12
attr Master obj-c413-reading c13
attr Master obj-c414-reading c14
attr Master obj-c415-reading c15
attr Master obj-c416-reading c16
attr Master obj-c417-reading c17
attr Master obj-c418-reading c18
attr Master obj-c400-poll 1
attr Master obj-c405-poll 1
attr Master obj-c406-poll 1
attr Master obj-c417-poll 1
attr Master dev-h-combine 19
attr Master dev-c-combine 32

View File

@ -1,138 +1,138 @@
attr global mseclog 1
define D1 dummy
define Slave ModbusAttr 50 slave global:5501 ASCII
define RM ModbusAttr 50 0 localhost:5501 ASCII
define Relay ModbusAttr 5 relay localhost:5510 RTU to RM
define Master ModbusAttr 5 0 localhost:5510 RTU
attr Slave obj-h256-reading TempWasserEin
attr Slave obj-h258-reading D1:TempWasserAus
attr Slave obj-h100-reading Test1
attr Slave obj-h100-setexpr $val * 4
attr Slave obj-h101-reading Test2
attr Slave obj-h101-unpack f>
attr Slave obj-h101-len 2
attr Slave obj-h103-reading Test3
attr Slave obj-h103-unpack a8
attr Slave obj-h103-len 4
attr Slave obj-h120-reading Test4
attr Slave obj-h120-unpack f>
attr Slave obj-h120-len 2
attr Slave obj-h130-reading Test5
attr Slave obj-h130-unpack a*
attr Slave obj-h130-len 2
attr Slave obj-c400-reading c0
attr Slave obj-c401-reading c1
attr Slave obj-c402-reading c2
attr Slave obj-c403-reading c3
attr Slave obj-c404-reading c4
attr Slave obj-c405-reading c5
attr Slave obj-c406-reading c6
attr Slave obj-c407-reading c7
attr Slave obj-c408-reading c8
attr Slave obj-c409-reading c9
attr Slave obj-c410-reading c10
attr Slave obj-c411-reading c11
attr Slave obj-c412-reading c12
attr Slave obj-c413-reading c13
attr Slave obj-c414-reading c14
attr Slave obj-c415-reading c15
attr Slave obj-c416-reading c16
attr Slave obj-c417-reading c17
attr Slave obj-c418-reading c18
define RM ModbusAttr 50 0 localhost:5501 ASCII
attr RM dev-timing-sendDelay 0
attr RM dev-timing-commDelay 0
attr RM disable 1
define Relay ModbusAttr 5 relay localhost:5510 RTU to RM
attr Relay disable 1
define Master ModbusAttr 5 0 localhost:5510 RTU
attr Master disable 1
attr Master verbose 3
attr Master nonPrioritizedGet 1
attr Master nonPrioritizedSet 1
attr Master dev-timing-sendDelay 0
attr Master dev-timing-commDelay 0
attr Master obj-h256-reading TempWasserEin
attr Master obj-h258-reading TempWasserAus
attr Master obj-h100-reading Test1
attr Master obj-h100-expr $val + 2
attr Master obj-h100-poll 1
attr Master obj-h100-polldelay 0
attr Master obj-h101-reading Test2
attr Master obj-h101-unpack f>
attr Master obj-h101-len 2
attr Master obj-h101-format %.2f
attr Master obj-h101-poll 1
attr Master obj-h101-polldelay 0
attr Master obj-h103-reading Test3
attr Master obj-h103-unpack a8
attr Master obj-h103-len 4
attr Master obj-h103-poll 1
attr Master obj-h103-polldelay 0
attr Master obj-h120-reading Test4
attr Master obj-h120-unpack f>
attr Master obj-h120-len 2
attr Master obj-h120-format %.2f
attr Master obj-h120-poll 1
attr Master obj-h120-ignoreExpr $val > 10
attr Master obj-h120-polldelay 0
attr Master obj-h130-reading Test5
attr Master obj-h130-unpack a*
attr Master obj-h130-len 2
attr Master obj-h130-encode utf8
attr Master obj-h10-reading o1
attr Master obj-h10-map 0:off, 1:on
attr Master obj-h11-reading o2
attr Master obj-h11-min 1
attr Master obj-h11-max 3
attr Master dev-h-defSet 1
attr Master dev-c-defSet 1
attr Master dev-h-defShowGet 1
attr Master obj-c400-reading c0
attr Master obj-c401-reading c1
attr Master obj-c402-reading c2
attr Master obj-c403-reading c3
attr Master obj-c404-reading c4
attr Master obj-c405-reading c5
attr Master obj-c406-reading c6
attr Master obj-c407-reading c7
attr Master obj-c408-reading c8
attr Master obj-c409-reading c9
attr Master obj-c410-reading c10
attr Master obj-c411-reading c11
attr Master obj-c412-reading c12
attr Master obj-c413-reading c13
attr Master obj-c414-reading c14
attr Master obj-c415-reading c15
attr Master obj-c416-reading c16
attr Master obj-c417-reading c17
attr Master obj-c418-reading c18
attr Master obj-c400-poll 1
attr Master obj-c405-poll 1
attr Master obj-c406-poll 1
attr Master obj-c417-poll 1
attr Master dev-h-combine 19
attr global mseclog 1
define D1 dummy
define Slave ModbusAttr 50 slave global:5501 ASCII
define RM ModbusAttr 50 0 localhost:5501 ASCII
define Relay ModbusAttr 5 relay localhost:5510 RTU to RM
define Master ModbusAttr 5 0 localhost:5510 RTU
attr Slave obj-h256-reading TempWasserEin
attr Slave obj-h258-reading D1:TempWasserAus
attr Slave obj-h100-reading Test1
attr Slave obj-h100-setexpr $val * 4
attr Slave obj-h101-reading Test2
attr Slave obj-h101-unpack f>
attr Slave obj-h101-len 2
attr Slave obj-h103-reading Test3
attr Slave obj-h103-unpack a8
attr Slave obj-h103-len 4
attr Slave obj-h120-reading Test4
attr Slave obj-h120-unpack f>
attr Slave obj-h120-len 2
attr Slave obj-h130-reading Test5
attr Slave obj-h130-unpack a*
attr Slave obj-h130-len 2
attr Slave obj-c400-reading c0
attr Slave obj-c401-reading c1
attr Slave obj-c402-reading c2
attr Slave obj-c403-reading c3
attr Slave obj-c404-reading c4
attr Slave obj-c405-reading c5
attr Slave obj-c406-reading c6
attr Slave obj-c407-reading c7
attr Slave obj-c408-reading c8
attr Slave obj-c409-reading c9
attr Slave obj-c410-reading c10
attr Slave obj-c411-reading c11
attr Slave obj-c412-reading c12
attr Slave obj-c413-reading c13
attr Slave obj-c414-reading c14
attr Slave obj-c415-reading c15
attr Slave obj-c416-reading c16
attr Slave obj-c417-reading c17
attr Slave obj-c418-reading c18
define RM ModbusAttr 50 0 localhost:5501 ASCII
attr RM dev-timing-sendDelay 0
attr RM dev-timing-commDelay 0
attr RM disable 1
define Relay ModbusAttr 5 relay localhost:5510 RTU to RM
attr Relay disable 1
define Master ModbusAttr 5 0 localhost:5510 RTU
attr Master disable 1
attr Master verbose 3
attr Master nonPrioritizedGet 1
attr Master nonPrioritizedSet 1
attr Master dev-timing-sendDelay 0
attr Master dev-timing-commDelay 0
attr Master obj-h256-reading TempWasserEin
attr Master obj-h258-reading TempWasserAus
attr Master obj-h100-reading Test1
attr Master obj-h100-expr $val + 2
attr Master obj-h100-poll 1
attr Master obj-h100-polldelay 0
attr Master obj-h101-reading Test2
attr Master obj-h101-unpack f>
attr Master obj-h101-len 2
attr Master obj-h101-format %.2f
attr Master obj-h101-poll 1
attr Master obj-h101-polldelay 0
attr Master obj-h103-reading Test3
attr Master obj-h103-unpack a8
attr Master obj-h103-len 4
attr Master obj-h103-poll 1
attr Master obj-h103-polldelay 0
attr Master obj-h120-reading Test4
attr Master obj-h120-unpack f>
attr Master obj-h120-len 2
attr Master obj-h120-format %.2f
attr Master obj-h120-poll 1
attr Master obj-h120-ignoreExpr $val > 10
attr Master obj-h120-polldelay 0
attr Master obj-h130-reading Test5
attr Master obj-h130-unpack a*
attr Master obj-h130-len 2
attr Master obj-h130-encode utf8
attr Master obj-h10-reading o1
attr Master obj-h10-map 0:off, 1:on
attr Master obj-h11-reading o2
attr Master obj-h11-min 1
attr Master obj-h11-max 3
attr Master dev-h-defSet 1
attr Master dev-c-defSet 1
attr Master dev-h-defShowGet 1
attr Master obj-c400-reading c0
attr Master obj-c401-reading c1
attr Master obj-c402-reading c2
attr Master obj-c403-reading c3
attr Master obj-c404-reading c4
attr Master obj-c405-reading c5
attr Master obj-c406-reading c6
attr Master obj-c407-reading c7
attr Master obj-c408-reading c8
attr Master obj-c409-reading c9
attr Master obj-c410-reading c10
attr Master obj-c411-reading c11
attr Master obj-c412-reading c12
attr Master obj-c413-reading c13
attr Master obj-c414-reading c14
attr Master obj-c415-reading c15
attr Master obj-c416-reading c16
attr Master obj-c417-reading c17
attr Master obj-c418-reading c18
attr Master obj-c400-poll 1
attr Master obj-c405-poll 1
attr Master obj-c406-poll 1
attr Master obj-c417-poll 1
attr Master dev-h-combine 19
attr Master dev-c-combine 32

View File

@ -1,53 +1,53 @@
attr global mseclog 1
define Slave ModbusAttr 5 slave global:5501
attr Slave obj-h256-reading TempWasserEin
attr Slave obj-h258-reading D1:TempWasserAus
attr Slave obj-h100-reading Test1
attr Slave obj-h100-setexpr $val * 4
attr Slave obj-h101-reading Test2
attr Slave obj-h101-unpack f>
attr Slave obj-h101-len 2
attr Slave obj-h103-reading Test3
attr Slave obj-h103-unpack a8
attr Slave obj-h103-len 4
attr Slave obj-h120-reading Test4
attr Slave obj-h120-unpack f>
attr Slave obj-h120-len 2
attr Slave obj-h130-reading Test5
attr Slave obj-h130-unpack a*
attr Slave obj-h130-len 2
attr Slave obj-c400-reading c0
attr Slave obj-c401-reading c1
attr Slave obj-c402-reading c2
attr Slave obj-c403-reading c3
attr Slave obj-c404-reading c4
attr Slave obj-c405-reading c5
attr Slave obj-c406-reading c6
attr Slave obj-c407-reading c7
attr Slave obj-c408-reading c8
attr Slave obj-c409-reading c9
attr Slave obj-c410-reading c10
attr Slave obj-c411-reading c11
attr Slave obj-c412-reading c12
attr Slave obj-c413-reading c13
attr Slave obj-c414-reading c14
attr Slave obj-c415-reading c15
attr Slave obj-c416-reading c16
attr Slave obj-c417-reading c17
attr Slave obj-c418-reading c18
define Master ModbusAttr 5 0 localhost:5501
attr Master disable 1
attr Master verbose 3
attr Master nonPrioritizedGet 1
attr Master nonPrioritizedSet 1
attr Master dev-timing-sendDelay 0
attr Master dev-timing-commDelay 0
attr global mseclog 1
define Slave ModbusAttr 5 slave global:5501
attr Slave obj-h256-reading TempWasserEin
attr Slave obj-h258-reading D1:TempWasserAus
attr Slave obj-h100-reading Test1
attr Slave obj-h100-setexpr $val * 4
attr Slave obj-h101-reading Test2
attr Slave obj-h101-unpack f>
attr Slave obj-h101-len 2
attr Slave obj-h103-reading Test3
attr Slave obj-h103-unpack a8
attr Slave obj-h103-len 4
attr Slave obj-h120-reading Test4
attr Slave obj-h120-unpack f>
attr Slave obj-h120-len 2
attr Slave obj-h130-reading Test5
attr Slave obj-h130-unpack a*
attr Slave obj-h130-len 2
attr Slave obj-c400-reading c0
attr Slave obj-c401-reading c1
attr Slave obj-c402-reading c2
attr Slave obj-c403-reading c3
attr Slave obj-c404-reading c4
attr Slave obj-c405-reading c5
attr Slave obj-c406-reading c6
attr Slave obj-c407-reading c7
attr Slave obj-c408-reading c8
attr Slave obj-c409-reading c9
attr Slave obj-c410-reading c10
attr Slave obj-c411-reading c11
attr Slave obj-c412-reading c12
attr Slave obj-c413-reading c13
attr Slave obj-c414-reading c14
attr Slave obj-c415-reading c15
attr Slave obj-c416-reading c16
attr Slave obj-c417-reading c17
attr Slave obj-c418-reading c18
define Master ModbusAttr 5 0 localhost:5501
attr Master disable 1
attr Master verbose 3
attr Master nonPrioritizedGet 1
attr Master nonPrioritizedSet 1
attr Master dev-timing-sendDelay 0
attr Master dev-timing-commDelay 0

View File

@ -1,128 +1,128 @@
attr global mseclog 1
define D1 dummy
define Slave ModbusAttr 5 slave global:5501
attr Slave obj-h256-reading TempWasserEin
attr Slave obj-h258-reading D1:TempWasserAus
attr Slave obj-h100-reading Test1
attr Slave obj-h100-setexpr $val * 4
attr Slave obj-h101-reading Test2
attr Slave obj-h101-unpack f>
attr Slave obj-h101-len 2
attr Slave obj-h103-reading Test3
attr Slave obj-h103-unpack a8
attr Slave obj-h103-len 4
attr Slave obj-h120-reading Test4
attr Slave obj-h120-unpack f>
attr Slave obj-h120-len 2
attr Slave obj-h130-reading Test5
attr Slave obj-h130-unpack a*
attr Slave obj-h130-len 2
attr Slave obj-c400-reading c0
attr Slave obj-c401-reading c1
attr Slave obj-c402-reading c2
attr Slave obj-c403-reading c3
attr Slave obj-c404-reading c4
attr Slave obj-c405-reading c5
attr Slave obj-c406-reading c6
attr Slave obj-c407-reading c7
attr Slave obj-c408-reading c8
attr Slave obj-c409-reading c9
attr Slave obj-c410-reading c10
attr Slave obj-c411-reading c11
attr Slave obj-c412-reading c12
attr Slave obj-c413-reading c13
attr Slave obj-c414-reading c14
attr Slave obj-c415-reading c15
attr Slave obj-c416-reading c16
attr Slave obj-c417-reading c17
attr Slave obj-c418-reading c18
define Master ModbusAttr 5 0 localhost:5501
attr Master disable 1
attr Master verbose 3
attr Master nonPrioritizedGet 1
attr Master nonPrioritizedSet 1
attr Master profileInterval 1
attr Master dev-timing-sendDelay 0
attr Master dev-timing-commDelay 0
attr Master obj-h256-reading TempWasserEin
attr Master obj-h258-reading TempWasserAus
attr Master obj-h100-reading Test1
attr Master obj-h100-expr $val + 2
attr Master obj-h100-poll 1
attr Master obj-h100-polldelay 0
attr Master obj-h101-reading Test2
attr Master obj-h101-unpack f>
attr Master obj-h101-len 2
attr Master obj-h101-format %.2f
attr Master obj-h101-poll 1
attr Master obj-h101-polldelay 0
attr Master obj-h103-reading Test3
attr Master obj-h103-unpack a8
attr Master obj-h103-len 4
attr Master obj-h103-poll 1
attr Master obj-h103-polldelay 0
attr Master obj-h120-reading Test4
attr Master obj-h120-unpack f>
attr Master obj-h120-len 2
attr Master obj-h120-format %.2f
attr Master obj-h120-poll 1
attr Master obj-h120-ignoreExpr $val > 10
attr Master obj-h120-polldelay 0
attr Master obj-h130-reading Test5
attr Master obj-h130-unpack a*
attr Master obj-h130-len 2
attr Master obj-h130-encode utf8
attr Master obj-h10-reading o1
attr Master obj-h10-map 0:off, 1:on
attr Master obj-h11-reading o2
attr Master obj-h11-min 1
attr Master obj-h11-max 3
attr Master dev-h-defSet 1
attr Master dev-c-defSet 1
attr Master dev-h-defShowGet 1
attr Master obj-c400-reading c0
attr Master obj-c401-reading c1
attr Master obj-c402-reading c2
attr Master obj-c403-reading c3
attr Master obj-c404-reading c4
attr Master obj-c405-reading c5
attr Master obj-c406-reading c6
attr Master obj-c407-reading c7
attr Master obj-c408-reading c8
attr Master obj-c409-reading c9
attr Master obj-c410-reading c10
attr Master obj-c411-reading c11
attr Master obj-c412-reading c12
attr Master obj-c413-reading c13
attr Master obj-c414-reading c14
attr Master obj-c415-reading c15
attr Master obj-c416-reading c16
attr Master obj-c417-reading c17
attr Master obj-c418-reading c18
attr Master obj-c400-poll 1
attr Master obj-c405-poll 1
attr Master obj-c406-poll 1
attr Master obj-c417-poll 1
attr Master dev-h-combine 19
attr global mseclog 1
define D1 dummy
define Slave ModbusAttr 5 slave global:5501
attr Slave obj-h256-reading TempWasserEin
attr Slave obj-h258-reading D1:TempWasserAus
attr Slave obj-h100-reading Test1
attr Slave obj-h100-setexpr $val * 4
attr Slave obj-h101-reading Test2
attr Slave obj-h101-unpack f>
attr Slave obj-h101-len 2
attr Slave obj-h103-reading Test3
attr Slave obj-h103-unpack a8
attr Slave obj-h103-len 4
attr Slave obj-h120-reading Test4
attr Slave obj-h120-unpack f>
attr Slave obj-h120-len 2
attr Slave obj-h130-reading Test5
attr Slave obj-h130-unpack a*
attr Slave obj-h130-len 2
attr Slave obj-c400-reading c0
attr Slave obj-c401-reading c1
attr Slave obj-c402-reading c2
attr Slave obj-c403-reading c3
attr Slave obj-c404-reading c4
attr Slave obj-c405-reading c5
attr Slave obj-c406-reading c6
attr Slave obj-c407-reading c7
attr Slave obj-c408-reading c8
attr Slave obj-c409-reading c9
attr Slave obj-c410-reading c10
attr Slave obj-c411-reading c11
attr Slave obj-c412-reading c12
attr Slave obj-c413-reading c13
attr Slave obj-c414-reading c14
attr Slave obj-c415-reading c15
attr Slave obj-c416-reading c16
attr Slave obj-c417-reading c17
attr Slave obj-c418-reading c18
define Master ModbusAttr 5 0 localhost:5501
attr Master disable 1
attr Master verbose 3
attr Master nonPrioritizedGet 1
attr Master nonPrioritizedSet 1
attr Master profileInterval 1
attr Master dev-timing-sendDelay 0
attr Master dev-timing-commDelay 0
attr Master obj-h256-reading TempWasserEin
attr Master obj-h258-reading TempWasserAus
attr Master obj-h100-reading Test1
attr Master obj-h100-expr $val + 2
attr Master obj-h100-poll 1
attr Master obj-h100-polldelay 0
attr Master obj-h101-reading Test2
attr Master obj-h101-unpack f>
attr Master obj-h101-len 2
attr Master obj-h101-format %.2f
attr Master obj-h101-poll 1
attr Master obj-h101-polldelay 0
attr Master obj-h103-reading Test3
attr Master obj-h103-unpack a8
attr Master obj-h103-len 4
attr Master obj-h103-poll 1
attr Master obj-h103-polldelay 0
attr Master obj-h120-reading Test4
attr Master obj-h120-unpack f>
attr Master obj-h120-len 2
attr Master obj-h120-format %.2f
attr Master obj-h120-poll 1
attr Master obj-h120-ignoreExpr $val > 10
attr Master obj-h120-polldelay 0
attr Master obj-h130-reading Test5
attr Master obj-h130-unpack a*
attr Master obj-h130-len 2
attr Master obj-h130-encode utf8
attr Master obj-h10-reading o1
attr Master obj-h10-map 0:off, 1:on
attr Master obj-h11-reading o2
attr Master obj-h11-min 1
attr Master obj-h11-max 3
attr Master dev-h-defSet 1
attr Master dev-c-defSet 1
attr Master dev-h-defShowGet 1
attr Master obj-c400-reading c0
attr Master obj-c401-reading c1
attr Master obj-c402-reading c2
attr Master obj-c403-reading c3
attr Master obj-c404-reading c4
attr Master obj-c405-reading c5
attr Master obj-c406-reading c6
attr Master obj-c407-reading c7
attr Master obj-c408-reading c8
attr Master obj-c409-reading c9
attr Master obj-c410-reading c10
attr Master obj-c411-reading c11
attr Master obj-c412-reading c12
attr Master obj-c413-reading c13
attr Master obj-c414-reading c14
attr Master obj-c415-reading c15
attr Master obj-c416-reading c16
attr Master obj-c417-reading c17
attr Master obj-c418-reading c18
attr Master obj-c400-poll 1
attr Master obj-c405-poll 1
attr Master obj-c406-poll 1
attr Master obj-c417-poll 1
attr Master dev-h-combine 19
attr Master dev-c-combine 32

View File

@ -0,0 +1,77 @@
attr global mseclog 1
define D1 dummy
define Slave ModbusAttr 5 slave global:5501
attr Slave obj-h100-reading Test1
attr Slave obj-h100-setexpr $val * 4
attr Slave obj-h400-reading DummyRegister
attr Slave obj-c400-reading c0
attr Slave obj-c401-reading c1
attr Slave obj-c402-reading c2
attr Slave obj-c403-reading c3
attr Slave obj-c404-reading c4
attr Slave obj-c405-reading c5
attr Slave obj-c406-reading c6
attr Slave obj-c407-reading c7
attr Slave obj-c408-reading c8
attr Slave obj-c409-reading c9
attr Slave obj-c410-reading c10
attr Slave obj-c411-reading c11
attr Slave obj-c412-reading c12
attr Slave obj-c413-reading c13
attr Slave obj-c414-reading c14
attr Slave obj-c415-reading c15
attr Slave obj-c416-reading c16
attr Slave obj-c417-reading c17
attr Slave obj-c418-reading c18
define Master ModbusAttr 5 0 localhost:5501
attr Master disable 1
attr Master verbose 3
attr Master nonPrioritizedGet 1
attr Master nonPrioritizedSet 1
attr Master queueDelay 0
attr Master dev-timing-sendDelay 0
attr Master dev-timing-commDelay 0
attr Master obj-h100-reading Test1
attr Master obj-h100-expr $val + 2
attr Master obj-h100-poll 1
attr Master obj-h100-polldelay 0
attr Master dev-c-defSet 1
attr Master dev-h-defShowGet 1
attr Master obj-c400-reading c0
attr Master obj-c401-reading c1
attr Master obj-c402-reading c2
attr Master obj-c403-reading c3
attr Master obj-c404-reading c4
attr Master obj-c405-reading c5
attr Master obj-c406-reading c6
attr Master obj-c407-reading c7
attr Master obj-c408-reading c8
attr Master obj-c409-reading c9
attr Master obj-c410-reading c10
attr Master obj-c411-reading c11
attr Master obj-c412-reading c12
attr Master obj-c413-reading c13
attr Master obj-c414-reading c14
attr Master obj-c415-reading c15
attr Master obj-c416-reading c16
attr Master obj-c417-reading c17
attr Master obj-c418-reading c18
attr Master obj-c400-poll 1
attr Master obj-c405-poll 1
attr Master obj-c406-poll 1
attr Master obj-c417-poll 1
attr Master dev-h-combine 19
attr Master dev-c-combine 32

View File

@ -0,0 +1,109 @@
##############################################
# test master slave end to end
# also map, min max, ...
##############################################
package main;
use strict;
use warnings;
use Test::More;
use Time::HiRes qw( gettimeofday tv_interval); # return time as float, not just full seconds
use FHEM::HTTPMOD::Utils qw(:all);
use FHEM::Modbus::TestUtils qw(:all);
fhem 'attr global mseclog 1';
NextStep();
sub testStep1 { # preparation of slave content, enable devices
is(FhemTestUtils_gotLog('attribute'), 0, "no unknown attributes"); # logs during init are not collected.
LogStep "enable Master and set value at Slave";
fhem 'attr Master disable 0';
fhem 'setreading Slave c0 1';
fhem 'setreading Slave c5 1';
fhem 'setreading Slave c17 1';
return 0.1;
}
sub testStep10 { # check combined read of holding registers and coils
LogStep "getUpdate with combine";
fhem 'attr Master verbose 5'; # 3
fhem 'attr Slave verbose 3';
fhem 'set Master reread';
return 0.2;
}
sub testStep11 { # check results coming from slave and write coils to slave
is(FhemTestUtils_gotEvent(qr/Master:c0: 1/), 1, "Combined Retrieve coil bit 0 from local slave");
is(FhemTestUtils_gotEvent(qr/Master:c1: 0/), 1, "Combined Retrieve coil bit 1 from local slave");
is(FhemTestUtils_gotEvent(qr/Master:c5: 1/), 1, "Combined Retrieve coil bit 5 from local slave");
is(FhemTestUtils_gotEvent(qr/Master:c17: 1/), 1, "Combined Retrieve coil bit 17 from local slave");
is(FhemTestUtils_gotLog('GetUpdate will now create requests for c400 len 18'), 1, "log for combined coils");
fhem 'attr Slave obj-c402-allowWrite 1';
fhem 'attr Master verbose 5';
fhem 'set Master c2 1';
return 0.1;
}
sub testStep12 {
LogStep "check coil comm";
is(FhemTestUtils_gotLog('sending 05050192ff002daf'), 1, "set c2 1 sending message in log");
is(FhemTestUtils_gotEvent(qr/Master:c2: 1/), 1, "fc5 response for coil shows 1 from local slave");
return 0.4;
}
sub testStep20 {
LogStep "override FC";
fhem ('attr Master obj-c400-overrideFCread 99');
fhem ('set Master reread');
return 0.1;
}
sub testStep21 {
LogStep "check overridden comm";
is(FhemTestUtils_gotLog('cant combine c400 len 1 c0 with c405 len 1 c5, different function codes'), 1, "prevent combining different FCs");
return 0.5;
}
sub testStep30 {
LogStep "override coil write FC";
fhem 'attr Master obj-c400-overrideFCwrite 6';
fhem 'attr Slave obj-h400-allowWrite 1'; # arrives as h400 on slave side
fhem 'attr Slave verbose 5';
fhem 'set Master c0 1';
return 0.1;
}
sub testStep31 {
LogStep "check overridden write to coil";
is(FhemTestUtils_gotEvent(qr/Slave:DummyRegister: 1/), 1, "DummyRegister set to 1");
CheckAndReset();
return 0.1;
}
sub testStep40 {
LogStep "override holding register write FC";
fhem 'attr Master obj-h400-reading Dummy2';
fhem 'attr Master obj-h400-overrideFCwrite 5';
fhem 'attr Slave obj-c400-allowWrite 1'; # h400 now arrives as c400
fhem 'set Master Dummy2 255';
return 0.1;
}
sub testStep41 {
LogStep "check overridden write to holding register";
#is(FhemTestUtils_gotEvent(qr/Slave:DummyRegister: 1/), 1, "DummyRegister set to 1");
CheckAndReset();
return 0.1;
}
1;