Autor Thema: Umwandlung der HEX-Darstellung in Gruppenadressen?  (Gelesen 295 mal)

Offline grappa24

  • Sr. Member
  • ****
  • Beiträge: 664
Umwandlung der HEX-Darstellung in Gruppenadressen?
« am: 22 Mai 2017, 12:38:42 »
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 ...  ;)
« Letzte Änderung: 22 Mai 2017, 15:43:10 von grappa24 »
FHEM 5.8 auf RasPi B+, KNX, FS20, HM, HUE, Rollo-/Lichtsteuerung/-szenarien, Velux via HM, T-Sensoren, Wassermelder, Fensterkontakte, Signalgeber, Heizungssteuerung, HEOS, ...

Offline Andi291

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 853
Antw:Umwandlung der HEX-Darstellung in Gruppenadressen?
« Antwort #1 am: 22 Mai 2017, 19:30:35 »
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
Hilfreich Hilfreich x 1 Liste anzeigen

 

decade-submarginal