Umwandlung der HEX-Darstellung in Gruppenadressen?

Begonnen von grappa24, 22 Mai 2017, 12:38:42

Vorheriges Thema - Nächstes Thema

grappa24

Bin auf der Suche nach der Umrechnung der HEX-Darstellung in das Gruppenadressen-Format.

Meine defines sehen so aus:

define EIB_1064 KNX 1064:dpt1

und werden nach dem/den letzten updates von 10_KNX.pm nicht mehr akzeptiert. Wenn ich das richtig verstanden haben, muss ich entweder die Gruppenadresse angeben (also hier 1/0/100) oder als fünstelliges HEX, also

define EIB_1064 KNX 01064 dpt1

richtig? Deshalb wollte ich mal wissen, wie man aus der HEX Darstellung die Gruppenadressen-Darstellung ableitet ...  ;)
FHEM 6.1, 2 x RasPi 3B+, Debian Buster; KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200
Rollo-/Lichtsteuerung/-szenarien, T-Sensoren, Fensterkontakte, Heizungssteuerung, HEOS, Sprachsteuerung mit Alexa-FHEM, Netatmo, Nuki, ...

Andi291

So :-)

#Private function to convert GAD from hex to readable version
#############################
sub
KNX_hexToName ($)
{
my $v = shift;

#old syntax
#my $p1 = hex(substr($v,0,1));
#my $p2 = hex(substr($v,1,1));
#my $p3 = hex(substr($v,2,2));

#new syntax for extended adressing
my $p1 = hex(substr($v,0,2));
my $p2 = hex(substr($v,2,1));
my $p3 = hex(substr($v,3,2));
 
my $r = sprintf("%d/%d/%d", $p1,$p2,$p3);

return $r;
}


Anhand Deines Beispiels 01064:

01 = 0x1 = 1
0 = 0x0 = 0
64 = 0x64 = 100

--> 1/0/100