Willkommen im Loxone Community Forum. Um alle Funktionen nutzen und sehen zu können, registriere dich bitte zuerst. Dies gilt auch für das herunterladen von Dateien.
ich mache bereits viel mit Modbus und hatte bis jetzt das Glück, immer Registertabels zu bekommen, wo vernünftige Adressen drin stehen.
Jetzt habe ich etwas wo die Register per Hex angegeben sind. Absolutes Neuland und ich bringe es nicht hin.
Vermutlich bin ich gerade zu verwirrt, oder es ist nur eine Kleinigkeit.
Grün habe ich markiert was ich gerne hätte.
Was trage ich denn jetzt bitte am Analogsensor ein?
Wie kommst Du darauf, dass der hexadezimal sind? Um genau zu sein ist hexadezimal nur eine Darstellungsform, die Werte kommen immer als Binärdaten und werden auch immer so gelesen.
Die einzige Ausnahme wäre, wenn ein TEXT geliefert werden würde und der Text dann eine hexadezimal dargestellte Zahl wäre. Aber das ist hier sicher nicht der Fall (Register 107a, "Combined Code" ist hier das einzige derart kodierte Register).
Das einzige, was Du für das von Dir markierte Register beachten musst, ist "4-Byte Float" und "BigEndian". D.h. Du musst im Config "32bit Floating Point" (das sind die 4 Bytes Float) wählen und "Wortreihenfolge" aktivieren (das ist der "Big-Endian).
Sorry da habe ich mich vermutlich falsch ausgedrückt.
Ich kann bei Loxone ja keine Hex Zahl bei der IO Adresse eingeben. Das ist mein Problem. Und eine IO Adresse mit 8196 oder so klappt nicht, wenn ich Hex in Dezimal umwandle.
Probier mal 1 abzuziehen vom angegebenen Wert. Und außerdem sieht man nicht, ob jetzt 2080 oder 5012 die IO-Adresse sein soll.
Also probier mal:
8320 und 8319
und auch
20498 und 20497
ob bei einem dieser IO-Adressen der Zugriff klappt (den ModBus Monitor anmachen, damit Du siehst, ob der Zugriff mit einer Ok oder Fehlermeldung quittiert wird)
Wenn es nur um die Umrechnung geht, dann kannste z.B. den Windows Taschenrechner verwenden (rechner)
Diesen in den Modus "Programmierer" stellen (über das Menü), dann "HEX" anklicken und die jeweilige HEX Zahl eingeben z.B. 200C ("L2 Voltage"), bei DEC kannst du dann den Dezimalwert lesen (0x200C => 8204).
Der HEX Wert 0x2080 ist in Dezimal somit 8320, der Wert hex 0x5012 ist 20498. ( 0x am Anfang markiert bei einzelnen Zahlen üblicherweise das es sich um einen HEX Wert handelt)
Man kann in dem Windows Rechner auch HEX ind Dezimal in wandel lassen, dazu einfach DEC anklicken die Zahl eingeben und bei HEX ablesen.
Man kann auch einfach Google fragen, mit z.B. "0x2080 to decimal"
Alternativ auch einfach eine KI die komplette Tabelle aus dem Bild incl. der umgerechneten Hex Werte erstellen lasse, siehe nachfolgend.
CSV Daten kann man auch sehr gut in z.B. Excel importieren.
Achtung ungeprüft !
Ob die KI also alle Zahlen (wichtig sind ja nur die HEX Spalten) aus dem Bild richtig erkannt hat musst du selbst schauen.
Spalten mit Komma getrennt
RegisterAddr1_HEX,RegisterAddr1_DEC,RegisterAddr2_ HEX,RegisterAddr2_DEC,Contents,ReadWrite,Datablock s,DataFormat,LCD_Page,Modbus,Remarks
1000,4096,4000,16384,Serial number,Read,4,signed,P62,R,By default last 8 digits of serial number
1010,4112,4002,16386,Meter code,Read,2,signed,/,R,0102 DC version; 0103 CT version
1018,4120,4003,16387,Meter ID (Mbus/Modbus),Read/Write,2,HEX response,P61,R/W,001~247 (001 default; 000 broadcast)
1020,4128,4004,16388,Baud Rate,Read/Write,2,HEX response,P64,R/W,"9600 (default), 4800, 2400, 1200, 600, 300"
1050,4176,4005,16389,Protocol Version,Read,4,Float Big Endian (ABCD),/,R,3.2 = Imreno Modbus protocol version
1054,4180,4007,16391,Software Version,Read,4,Float Big Endian (ABCD),/,R,Shows present software version
1058,4184,4009,16393,Hardware Version,Read,4,Float Big Endian (ABCD),/,R,"1.03, updated if hardware modifications are made"
1060,4192,400B,16395,Meter Amps,Read,2,HEX response,/,R,100 for DC version; 5 for CT version
1062,4194,400C,16396,CT rate,Read/Write,2,signed,P58,R/W,"5; 40; 50; 60; 75; 100; 125; 150; 200; 250; 300; 400; 500; 600; 800; 1000; 1250; 1500; 2000; 2500; 3000; 4000; 5000; 6000; 7500"
1066,4198,400D,16397,S0 output rate,Read/Write,4,Float Big Endian (ABCD),P59/P60,R/W,"10000; 2000; 1000; 100; 10; 1; 0.1; 0.01"
107A,4218,400F,16399,Combined Code,Read/Write,2,HEX response,P60,R/W,"01, 04, 05, 06, 09, 10"
1510,5392,4010,16400,LCD cycle time,Read/Write,2,signed,P63,R/W,"0~30 seconds (10 default)"
1520,5408,4011,16401,Parity setting,Read/Write,2,signed,/,R/W,"01 (even); 02 (none)"
2000,8192,5000,20480,Voltage,Read,4,Float Big Endian (ABCD),,,"Only for 1 phase meter (PRO1 series)"
2008,8200,5002,20482,L1 Voltage,Read,4,Float Big Endian (ABCD),P38,R,
200C,8204,5004,20484,L2 Voltage,Read,4,Float Big Endian (ABCD),P39,R,
2010,8208,5006,20486,L3 Voltage,Read,4,Float Big Endian (ABCD),P40,R,
2020,8224,5008,20488,Grid Frequency,Read,4,Float Big Endian (ABCD),P56,R,
2060,8288,500A,20490,Current,Read,4,Float Big Endian (ABCD),,,"Only for 1 phase meter (PRO1 series)"
2068,8296,500C,20492,L1 Current,Read,4,Float Big Endian (ABCD),P41,R,
206C,8300,500E,20494,L2 Current,Read,4,Float Big Endian (ABCD),P42,R,
2070,8304,5010,20496,L3 Current,Read,4,Float Big Endian (ABCD),P43,R,
2080,8320,5012,20498,Total Active Power,Read,4,Float Big Endian (ABCD),P44,R,
2088,8328,5014,20500,L1 Active Power,Read,4,Float Big Endian (ABCD),P45,R,
208C,8332,5016,20502,L2 Active Power,Read,4,Float Big Endian (ABCD),P46,R,
2090,8336,5018,20504,L3 Active Power,Read,4,Float Big Endian (ABCD),P47,R,
20A0,8352,501A,20506,Total reactive power,Read,4,Float Big Endian (ABCD),/,R,
20A8,8360,501C,20508,L1 reactive power,Read,4,Float Big Endian (ABCD),/,R,
20AC,8364,501E,20510,L2 reactive power,Read,4,Float Big Endian (ABCD),/,R,
20B0,8368,5020,20512,L3 reactive power,Read,4,Float Big Endian (ABCD),/,R,
20C0,8384,5022,20514,Total Apparent Power,Read,4,Float Big Endian (ABCD),P48,R,
20C8,8392,5024,20516,L1 Apparent Power,Read,4,Float Big Endian (ABCD),P49,R,
Zuletzt geändert von Labmaster; 10.02.2026, 06:19.
Mit dem Stückchen Code hinter dem Link kannst Du eine Adresse in Hex angeben und dann die Werte und den Rest inkl. Adresse in Dezimal direkt in Loxone anzeigen lassen.
Da ist das Register eindeutig (die 2. Spalte aus Deiner Tabelle), also hex 5012 = dec 20498, evtl. 20497, die Registerlänge passt mit 2x 16-Bit Register für 1 Float, es gibt eine Einheit (kW) und der (Modbus) Function Code wird erwähnt (siehe https://en.wikipedia.org/wiki/Modbus...function_codes), hier 3=Read Holding Register (nicht 4=Read Input Register).
Der Code passt allerdings ebenso wie das Register nicht zum letzten Screenshot im verlinkten Beitrag. Die Herausforderung sehe ich eher in der Deutung der schlechten Beschreibung, als in der Konvertierung Hex zu Dezimal.
Wir verarbeiten personenbezogene Daten über Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen, Werbung zu personalisieren und Websiteaktivitäten zu analysieren. Wir können bestimmte Informationen über unsere Nutzer mit unseren Werbe- und Analysepartnern teilen. Weitere Einzelheiten finden Sie in unserer Datenschutzrichtlinie.
Wenn Sie unten auf "Einverstanden" klicken, stimmen Sie unserer Datenschutzrichtlinie und unseren Datenverarbeitungs- und Cookie-Praktiken wie dort beschrieben zu. Sie erkennen außerdem an, dass dieses Forum möglicherweise außerhalb Ihres Landes gehostet wird und Sie der Erhebung, Speicherung und Verarbeitung Ihrer Daten in dem Land, in dem dieses Forum gehostet wird, zustimmen.
Kommentar