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:
parent
d48931a37b
commit
24568def07
@ -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;
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
101
fhem/t/FHEM/98_Modbus/42_MasterRTU-Perf.cfg
Normal file
101
fhem/t/FHEM/98_Modbus/42_MasterRTU-Perf.cfg
Normal 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
|
||||
|
||||
|
210
fhem/t/FHEM/98_Modbus/42_MasterRTU-Perf.t
Normal file
210
fhem/t/FHEM/98_Modbus/42_MasterRTU-Perf.t
Normal 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;
|
@ -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
|
||||
|
||||
|
||||
|
@ -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
|
@ -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
|
@ -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;
|
||||
|
@ -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
|
||||
|
||||
|
34
fhem/t/FHEM/98_Modbus/50_MasterSlave2.cfg
Normal file
34
fhem/t/FHEM/98_Modbus/50_MasterSlave2.cfg
Normal 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
|
75
fhem/t/FHEM/98_Modbus/50_MasterSlave2.t
Normal file
75
fhem/t/FHEM/98_Modbus/50_MasterSlave2.t
Normal 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;
|
24
fhem/t/FHEM/98_Modbus/50_MasterSlaveDI.cfg
Normal file
24
fhem/t/FHEM/98_Modbus/50_MasterSlaveDI.cfg
Normal 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
|
55
fhem/t/FHEM/98_Modbus/50_MasterSlaveDI.t
Normal file
55
fhem/t/FHEM/98_Modbus/50_MasterSlaveDI.t
Normal 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;
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
@ -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
|
@ -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
|
||||
|
@ -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
|
77
fhem/t/FHEM/98_Modbus/60_OverrideFC.cfg
Normal file
77
fhem/t/FHEM/98_Modbus/60_OverrideFC.cfg
Normal 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
|
109
fhem/t/FHEM/98_Modbus/60_OverrideFC.t
Normal file
109
fhem/t/FHEM/98_Modbus/60_OverrideFC.t
Normal 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;
|
Loading…
x
Reference in New Issue
Block a user