mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-04 22:19:38 +00:00
10_KNX.pm: added dpt16.001
git-svn-id: https://svn.fhem.de/fhem/trunk@12666 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
8894412813
commit
0580b3c48c
@ -20,11 +20,13 @@
|
|||||||
# ABU 20161122 fixed set-handling
|
# ABU 20161122 fixed set-handling
|
||||||
# ABU 20161126 added summary
|
# ABU 20161126 added summary
|
||||||
# ABU 20161126 fixed doku
|
# ABU 20161126 fixed doku
|
||||||
|
# ABU 20161127 adjusted dpt-16-sending, added dpt16.001
|
||||||
|
|
||||||
package main;
|
package main;
|
||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
|
use Encode;
|
||||||
|
|
||||||
#set to 1 for debug
|
#set to 1 for debug
|
||||||
my $debug = 0;
|
my $debug = 0;
|
||||||
@ -141,6 +143,8 @@ my %dpttypes = (
|
|||||||
|
|
||||||
# 14-Octet String
|
# 14-Octet String
|
||||||
"dpt16" => {CODE=>"dpt16", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/.{1,14}/, MIN=>undef, MAX=>undef},
|
"dpt16" => {CODE=>"dpt16", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/.{1,14}/, MIN=>undef, MAX=>undef},
|
||||||
|
"dpt16.000" => {CODE=>"dpt16", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/.{1,14}/, MIN=>undef, MAX=>undef},
|
||||||
|
"dpt16.001" => {CODE=>"dpt16", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/.{1,14}/, MIN=>undef, MAX=>undef},
|
||||||
|
|
||||||
# Color-Code
|
# Color-Code
|
||||||
"dpt232" => {CODE=>"dpt232", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/[0-9A-Fa-f]{6}/, MIN=>undef, MAX=>undef},
|
"dpt232" => {CODE=>"dpt232", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/[0-9A-Fa-f]{6}/, MIN=>undef, MAX=>undef},
|
||||||
@ -1181,6 +1185,9 @@ KNX_encodeByDpt ($$$) {
|
|||||||
#14-Octet String
|
#14-Octet String
|
||||||
elsif ($code eq "dpt16")
|
elsif ($code eq "dpt16")
|
||||||
{
|
{
|
||||||
|
#convert to latin-1
|
||||||
|
$value = encode("iso-8859-1", decode("utf8", $value));
|
||||||
|
|
||||||
#convert to hex-string
|
#convert to hex-string
|
||||||
my $dat = unpack "H*", $value;
|
my $dat = unpack "H*", $value;
|
||||||
#format for 14-byte-length
|
#format for 14-byte-length
|
||||||
@ -1450,7 +1457,7 @@ KNX_decodeByDpt ($$$) {
|
|||||||
my $c = hex(substr($value, $i * 2, 2));
|
my $c = hex(substr($value, $i * 2, 2));
|
||||||
|
|
||||||
#exit at string terminator, otherwise append current char
|
#exit at string terminator, otherwise append current char
|
||||||
if ($c eq 0)
|
if (($i != 0) and ($c eq 0))
|
||||||
{
|
{
|
||||||
$i = 14;
|
$i = 14;
|
||||||
}
|
}
|
||||||
@ -1459,6 +1466,9 @@ KNX_decodeByDpt ($$$) {
|
|||||||
$state .= sprintf("%c", $c);
|
$state .= sprintf("%c", $c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#convert to latin-1
|
||||||
|
$state = encode ("utf8", $state) if ($model =~ m/16.001/);
|
||||||
}
|
}
|
||||||
#RGB-Code
|
#RGB-Code
|
||||||
elsif ($code eq "dpt232")
|
elsif ($code eq "dpt232")
|
||||||
@ -1776,6 +1786,8 @@ sub KNX_getCmdList ($$$)
|
|||||||
dpt14.068 -Inf.0..+Inf.0 °C;<br>
|
dpt14.068 -Inf.0..+Inf.0 °C;<br>
|
||||||
dpt14.076 -Inf.0..+Inf.0 m³<br>
|
dpt14.076 -Inf.0..+Inf.0 m³<br>
|
||||||
dpt16 String;<br>
|
dpt16 String;<br>
|
||||||
|
dpt16.000 ASCII-String;<br>
|
||||||
|
dpt16.001 ISO-8859-1-String (Latin1);<br>
|
||||||
dpt232 RGB-Value RRGGBB<br>
|
dpt232 RGB-Value RRGGBB<br>
|
||||||
</ul>
|
</ul>
|
||||||
</ul>
|
</ul>
|
||||||
@ -2036,6 +2048,8 @@ sub KNX_getCmdList ($$$)
|
|||||||
dpt14.068 -Inf.0..+Inf.0 °C;<br>
|
dpt14.068 -Inf.0..+Inf.0 °C;<br>
|
||||||
dpt14.076 -Inf.0..+Inf.0 m³<br>
|
dpt14.076 -Inf.0..+Inf.0 m³<br>
|
||||||
dpt16 String;<br>
|
dpt16 String;<br>
|
||||||
|
dpt16.000 ASCII-String;<br>
|
||||||
|
dpt16.001 ISO-8859-1-String (Latin1);<br>
|
||||||
dpt232 RGB-Wert RRGGBB<br>
|
dpt232 RGB-Wert RRGGBB<br>
|
||||||
</ul>
|
</ul>
|
||||||
</ul>
|
</ul>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user