NEWS
Modbus Finder 7M.38.8.400.0212 auslesen
-
_address deviceId name description unit type len factor offset formula role room cw isScale 30464 3 Energie_Bezug Netz: Energie Bezug 1.8.0 kWh uint16be 1 0.0001 0 value false false 30466 3 Energie_Einspeisung Netz: Energie Einspeisung 2.8.0 kWh uint16be 1 0.0001 0 value false false 32500 3 Spannung_U1 Finder: U1 V floatsw 2 1 0 value false false 32502 3 Spannung_U2 Finder: U2 V floatsw 2 1 0 value false false 32504 3 Spannung_U3 Finder: U3 V floatsw 2 1 0 value false false 32516 3 Strom_I1 Finder: I1 A floatsw 2 1 0 value false false 32518 3 Strom_I2 Finder: I2 A floatsw 2 1 0 value false false 32520 3 Strom_I3 Finder: I3 A floatsw 2 1 0 value false false 32530 3 Wirkleistung_P1 Finder: Wirkleistung P1 W floatsw 2 1 0 value false false 32532 3 Wirkleistung_P2 Finder: Wirkleistung P2 W floatsw 2 1 0 value false false 32534 3 Wirkleistung_P3 Finder: Wirkleistung P3 W floatsw 2 1 0 value false false 32536 3 Gesamtwirkleistung Finder: Gesamtwirkleistung W floatsw 2 1 0 value false false 32538 3 Blindleistung_Q1 Finder: Blindleistung Q1 var floatsw 2 1 0 value false false 32540 3 Blindleistung_Q2 Finder: Blindleistung Q2 var floatsw 2 1 0 value false false 32542 3 Blindleistung_Q3 Finder: Blindleistung Q3 var floatsw 2 1 0 value false false 32544 3 Gesamtblindleistung Finder: Gesamtblindleistung var floatsw 2 1 0 value false false 32546 3 Scheinleistung_S1 Finder: Scheinleistung S1 VA floatsw 2 1 0 value false false 32548 3 Scheinleistung_S2 Finder: Scheinleistung S2 VA floatsw 2 1 0 value false false 32550 3 Scheinleistung_S3 Finder: Scheinleistung S3 VA floatsw 2 1 0 value false false 32552 3 Gesamtscheinleistung Finder: Gesamtscheinleistung VA floatsw 2 1 0 value false false 32554 3 Leistungsfaktor_PF1 Finder: Leistungsfaktor PF 1 cφ floatsw 2 1 0 value false false 32556 3 Leistungsfaktor_PF2 Finder: Leistungsfaktor PF 2 cφ floatsw 2 1 0 value false false 32558 3 Leistungsfaktor_PF3 Finder: Leistungsfaktor PF 3 cφ floatsw 2 1 0 value false false 32560 3 Gesamtleistungsfaktor Finder: Gesamtleistungsfaktor cφ floatsw 2 1 0 value false false 32584 3 Frequenz Finder: Frequenz Hz floatsw 2 1 0 value false false 32638 3 Energie_Bezug Finder: Netz Energie Bezug 1.8.0 kWh floatsw 2 0.001 0 value false false 32640 3 Energie_Einspeisung Finder: Netz Energie Einspeisung 2.8.0 kWh floatsw 2 0.001 0 value false false 32642 3 Blindenergie_Bezug Finder: Netz Blindenergie Bezug 3.8.0 kvarh floatsw 2 0.001 0 value false false 32644 3 Blindenergie_Einspeisung Finder: Netz Blindenergie Einspeisung 4.8.0 kvarh floatsw 2 0.001 0 value false false 32658 3 Temperatur Finder: Temperatur °C floatsw 2 1 0 value false false 32570 3 Phasenwinkel_U1_L1 Finder: Phasenwinkel zw. U1 und L1 ° floatsw 2 1 0 value false false 32572 3 Phasenwinkel_U2_L2 Finder: Phasenwinkel zw. U2 und L2 ° floatsw 2 1 0 value false false 32574 3 Phasenwinkel_U3_L3 Finder: Phasenwinkel zw. U3 und L3 ° floatsw 2 1 0 value false false
-
_address deviceId name description unit type len factor offset formula role room poll wp cw isScale 40054 3 Connection and Total Energy Calculation 0=Not set 1=Vector 2=Arithmetic 3=Vector-Aronschaltung uint16be 1 1 level true false false false 40151 3 Frequency nominal value Frequenz Hz uint16be 1 1 level true false false false 40157 3 Language / Sprache 0=English 1=Francais 2=Deutsch uint16be 1 1 level true false false false 40162 3 Zeit Zeit uint32le 2 1 0 value true false false false 40164 3 Datum Datum uint32le 2 1 0 value true false false false 40165 3 Jahr Jahr uint16be 1 1 0 value true false false false 40167 3 Automatische S/W-Zeit-Umschaltung 0=Nein, 1=Ja uint16be 1 1 level true false false false 40171 3 LCD-Konfiguration LCD: 0=OBIS 1=Buchstaben uint16be 1 1 0 value true false false false 40203 3 Modbus-Adresse Modbus-Adresse uint16be 1 1 level true false false false 40204 3 Baud Rate Baud rate: 4=19200 5=38400 uint16be 1 1 level true false false false 40205 3 Stop Bit 0 = 1 Stopp bit; 1 = 2 Stopp bits uint16be 1 1 level true false false false 40206 3 Parity 0 = No parity, 1 = Odd parity, 2 = Even parity uint16be 1 1 level true false false false 40207 3 Data Bits 0 = 8 Bit uint16be 1 1 level true false false false
-
@aherby Zeit und Datum konnte ich irgendwie umrechnen, war aber eher ein Versuch als sinnvoll, denn Datum und Zeit spielen überhaupt keine Rolle. Für die Energiewerte hab ich das bis jetzt noch nicht geschafft.
// Berechnen von Datum und Zeit des Finderzählers const outputTimeState = 'javascript.0.Finder.Zeit'; const outputDateState = 'javascript.0.Finder.Datum'; const modbusTimeState = 'modbus.4.holdingRegisters.3.40162_Zeit'; // Zeit (2 Register) const modbusDateState = 'modbus.4.holdingRegisters.3.40164_Datum'; // Datum (2 Register) const modbusJahrState = 'modbus.4.holdingRegisters.3.40165_Jahr'; // Jahr (2 Register) // States anlegen, falls sie noch nicht existieren createState(outputTimeState, "", { name: "Uhrzeit", type: "string", read: true, write: false }); createState(outputDateState, "", { name: "Datum", type: "string", read: true, write: false }); // Funktion zur Umwandlung von BCD in Dezimal function decodeBCD(value) { return ((value >> 4) * 10) + (value & 0x0F); } // Funktion zur Umwandlung der Modbus-Zeit function parseTime(registers) { if (!registers || registers.length !== 2) return 'Fehler'; let raw = (registers[1] << 16) | registers[0]; let hundredths = decodeBCD(raw & 0xFF); let seconds = decodeBCD((raw >> 8) & 0xFF); let minutes = decodeBCD((raw >> 16) & 0xFF); let hours = decodeBCD((raw >> 24) & 0xFF); return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}.${hundredths}`; } // Funktion zur Umwandlung des Modbus-Datums function parseDate(registers) { if (!registers || registers.length !== 2) return 'Fehler'; // 32-Bit-Wert zusammensetzen (unsigned 32-Bit) let raw = (registers[1] << 16) | registers[0]; // BCD-Dekodierung für Tag und Monat let day = decodeBCD(raw & 0xFF); let month = decodeBCD((raw >> 8) & 0xFF); // Jahr aus dem Modbus-Register 'Jahr' holen let year = getState(modbusJahrState).val; return `${day.toString().padStart(2, '0')}.${month.toString().padStart(2, '0')}.${year}`; } // Funktion zum Lesen und Umwandeln der Werte function readModbusTimeAndDate() { let timeRegisters = [ getState(modbusTimeState).val & 0xFFFF, (getState(modbusTimeState).val >> 16) & 0xFFFF ]; let dateRegisters = [ getState(modbusDateState).val & 0xFFFF, (getState(modbusDateState).val >> 16) & 0xFFFF ]; let timeString = parseTime(timeRegisters); let dateString = parseDate(dateRegisters); setState(outputTimeState, timeString, true); setState(outputDateState, dateString, true); } // Zeitgesteuertes Auslesen alle 5 Sekunden schedule("*/5 * * * * *", function () { readModbusTimeAndDate(); });
-
@aherby Ich weiß nicht, warum ich das vorher übersehen hatte, aber es gibt doch Register für Energie, mit Nachkommastellen ohne Umrechnen und sogar schnellem update:
30463 3 Energie_Bezug Finder: Netz Energie Bezug 1.8.0 kWh int32be 2 0.0001 0 value false false 30465 3 Energie_Einspeisung Finder: Netz Energie Einspeisung 2.8.0 kWh int32be 2 0.0001 0 value false false 30467 3 Blindenergie_Bezug Finder: Netz Blindenergie Bezug 3.8.0 kvarh int32be 2 0.0001 0 value false false 30469 3 Blindenergie_Einspeisung Finder: Netz Blindenergie Einspeisung 4.8.0 kvarh int32be 2 0.0001 0 value false false
-
@matis hey das mit dem Umrechnen verstehe ich gerade nicht.
Die Holdingregister sind zum einstellen. z. B. Datum, Sprache und Modbusadresse._address deviceId name description unit type len factor offset formula role room cw isScale 30407 33 Energy Counter n1 Wirkenergie +Q1 -Q4 (A.I.0 = 1.8.0) kWh uint32be 2 0.1 0 false false 30407 33 Bezugsenergie uint32be 2 0.1 0 false false 30409 33 Energy Counter n2 Wirkenergie +Q2 -Q3 (A.E.0 =2.8.0) kWh uint32be 2 0.1 0 false false 30409 33 Einspeiseenergie uint32be 2 0.1 0 false false 30411 33 Energy Counter n3 Blindenergie -Q1 +Q2 (r.I.0 = 3.8.0) kvarh uint32be 2 0.1 0 false false 30413 33 Energy Counter n4 Blindenergie-Q3 +Q4 (r.E.0 = 4.8.0) kvarh uint32be 2 0.1 0 false false 30416 33 Energy Counter 1 Wirkenergie +Q1 -Q4 (A.I.0 = 1.8.0) kWh uint16be 1 0.1 0 false false 30418 33 Energy Counter 2 Blindenergie -Q1 +Q2 (r.I.0 = 3.8.0) kvarh uint16be 1 0.1 0 false false 30420 33 Energy Counter 3 Scheinenergie (S.A.0 = 9.8.0) kVAh uint16be 1 0.1 0 false false 30422 33 Energy Counter 4 Wirkenergie +Q1 -Q4 (A.I.0 = 1.8.0) kWh uint16be 1 0.1 0 false false 30424 33 Energy Counter 5 Wirkenergie +Q2 -Q3 (A.E.0 =2.8.0) kWh uint16be 1 0.1 0 false false 30426 33 Energy Counter 6 Blindenergie-Q3 +Q4 (r.E.0 = 4.8.0) kvarh uint16be 1 0.1 0 false false 30428 33 Energy Counter 7 Scheinenergie (S.A.0 = 9.8.0) kVAh uint16be 1 0.1 0 false false 30430 33 Energy Counter 8 kWh uint16be 1 0.1 0 false false 30432 33 Energy Counter 9 uint16be 1 0.1 0 false false 30434 33 Energy Counter 10 uint16be 1 0.1 0 false false 30463 33 1000 x Energy Counter n1 Wirkenergie +Q1 -Q4 (A.I.0 = 1.8.0) Wh int32be 2 0.1 0 false false 30465 33 1000 x Energy Counter n2 Wirkenergie +Q2 -Q3 (A.E.0 =2.8.0)? Wh int32be 2 0.1 0 false false 30467 33 1000 x Energy Counter n3 Blindenergie -Q1 +Q2 (r.I.0 = 3.8.0) varh int32be 2 0.1 0 false false 30469 33 1000 x Energy Counter n4 Blindenergie-Q3 +Q4 (r.E.0 = 4.8.0) varh int32be 2 0.1 0 false false 30471 33 1000 x Energy Counter 1 Wirkenergie +Q1 -Q4 (A.I.0 = 1.8.0) Wh int32be 2 0.1 0 false false 32639 33 Float Energy Counter n1 Wirkenergie +Q1 -Q4 (A.I.0 = 1.8.0) [Float] Wh floatbe 2 1 0 false false 32641 33 Float Energy Counter n2 Wirkenergie +Q2 -Q3 (A.E.0 =2.8.0) [Float] Wh floatbe 2 1 0 false false 32643 33 Float Energy Counter n3 [Float] varh floatbe 2 1 0 false false 32645 33 Float Energy Counter n4 [Float] varh floatbe 2 1 0 false false 32659 33 Float Internal Temperature Gerätetemperatur [Float] °C floatbe 2 1 0 false false 32751 33 Float Aktiv Tariff floatbe 2 1 0 false false
ist es möglich, dass du im Register verrutscht bist?
Beispiele:
32638 bei dir und ich habe den Displaywert auf 32639.
32640 bei dir und ich habe den Displaywert auf 32641
...vielleicht habe ich irgendwas komiches bei der Einrichtung eingestellt oder verstellt.
Aber die Modbuswerte stimmen stimmen bei mir mit dem Display.
Die Bezeugleistung muss bei mir passen, da der Finderzähler später eingebaut ist gebenüber dem EVU-Zähler.
Bei der 2.8.0 oder Einspeisung zählt meiner zuviel. -
@aherby ja +1 bei den Registern ist richtig, nur 32639 ff. zeigt keine korrekten Wert und aktualisiert sehr langsam. Besser sind 30463 ff.
-
Was hast du hier nun wiklich gemacht ?
Ich scheiter schon seit tagen drann un bekomme gar keine Daten!Zum test hab ich en Finder 7M.24.8.230.0210 der ebenfalls über einen USB Adapter RS485 mit A+B Angeschlossen ist.
Im IObrocker Folgendes Eingestellt
Egal Was ich an Eingangsregister versucher es kommt nichts
Der Adapter ist immer kurz Grün dann wieder Orange
Vieleicht hat jemand eine Idee
-
@sascha-hartmann sagte in Modbus Finder 7M.38.8.400.0212 auslesen:
Egal Was ich an Eingangsregister versucher es kommt nichts
was wäte das denn?
ohne einen Eintrag und ohne zugehöriges debug-log wird es Kaffeedatzleserei!Aliase nutzt du weswegen?
Geräte ID ist 33?
A/B sind nicht gekreuzt?
.... -
@homoran Hi
Auch wenn ich alias raus nehme ändert sich nichts
Ich versuche nur gerade das register 30025 auszulesen da müsste ja dann ne 2 kommen
modbus.0 2025-07-08 15:26:07.782 info Disconnected from slave modbus.0 2025-07-08 15:26:06.782 warn [DevID_33] Poll error count: 2 code: {"err":"timeout","timeout":5000} modbus.0 2025-07-08 15:26:06.782 error Request timed out. modbus.0 2025-07-08 15:26:06.782 warn Error: undefined modbus.0 2025-07-08 15:26:01.781 info Connected to slave admin.0 2025-07-08 15:25:56.431 info <== Disconnect system.user.admin from ::ffff:192.168.178.234 javascript admin.0 2025-07-08 15:25:56.345 info ==> Connected system.user.admin from ::ffff:192.168.178.234 admin.0 2025-07-08 15:25:33.195 info <== Disconnect system.user.admin from ::ffff:192.168.178.234 modbus
MOD-EDIT: Code in code-tags gesetzt!
-
@sascha-hartmann stell das loggen mal auf Debug und zeige das eingetragene Register als screenshot.
-
-
@sascha-hartmann was möchtest du uns damit zeigen?
lies mal hier
https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge/1 -
wie ? hab ich noch nie gemacht
Mein Screenshot war ja schon falsch
Mach nicht viel mi IObrocker
-
@sascha-hartmann sagte in Modbus Finder 7M.38.8.400.0212 auslesen:
wie ?
hab ich dir gerade verlinkt.
-
@homoran
Wo Kann ich iob Diag machen nur direkt auf dem Pi oder auch im IObrocker ?2025-07-08 15:50:04.607 - debug: modbus.0 (314083) connect to serial /dev/ttyUSB0 with 19200 2025-07-08 15:50:04.616 - info: modbus.0 (314083) Connected to slave 2025-07-08 15:50:04.617 - debug: modbus.0 (314083) [DevID_33] Poll start --------------------- 2025-07-08 15:50:04.685 - info: admin.0 (57796) ==> Connected system.user.admin from ::ffff:192.168.178.234 2025-07-08 15:50:04.893 - info: modbus.0 (314083) Verify [{"path":"/dev/ttyUSB0","manufacturer":"FTDI","serialNumber":"FTB6SPL3","pnpId":"usb-FTDI_USB_Serial_Converter_FTB6SPL3-if00-port0","vendorId":"0403","productId":"6001"},{"path":"/dev/ttyAMA10"}] 2025-07-08 15:50:04.895 - info: modbus.0 (314083) Check /dev/ttyAMA10 : true 2025-07-08 15:50:04.895 - info: modbus.0 (314083) Check /dev/ttyUSB0 : true 2025-07-08 15:50:04.895 - info: modbus.0 (314083) List of port: [{"path":"/dev/ttyAMA10"},{"path":"/dev/ttyUSB0"}] 2025-07-08 15:50:07.558 - info: admin.0 (57796) <== Disconnect system.user.admin from ::ffff:192.168.178.234 modbus 2025-07-08 15:50:08.761 - info: host.schopf "system.adapter.modbus.0" disabled 2025-07-08 15:50:08.762 - info: host.schopf stopInstance system.adapter.modbus.0 (force=false, process=true) 2025-07-08 15:50:08.765 - info: modbus.0 (314083) Got terminate signal TERMINATE_YOURSELF 2025-07-08 15:50:08.769 - debug: modbus.0 (314083) Clearing timeout of the current request. 2025-07-08 15:50:08.769 - debug: modbus.0 (314083) Cleaning up request fifo. 2025-07-08 15:50:08.773 - info: modbus.0 (314083) terminating 2025-07-08 15:50:08.774 - debug: modbus.0 (314083) Plugin sentry destroyed 2025-07-08 15:50:08.774 - info: modbus.0 (314083) Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason 2025-07-08 15:50:08.805 - info: host.schopf stopInstance system.adapter.modbus.0 send kill signal 2025-07-08 15:50:09.266 - info: modbus.0 (314083) terminating 2025-07-08 15:50:09.293 - info: host.schopf instance system.adapter.modbus.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION) 2025-07-08 15:50:09.919 - info: host.schopf "system.adapter.modbus.0" enabled 2025-07-08 15:50:10.109 - info: host.schopf instance system.adapter.modbus.0 in version "6.3.2" started with pid 338286 2025-07-08 15:50:10.850 - info: modbus.0 (338286) starting. Version 6.3.2 in /opt/iobroker/node_modules/iobroker.modbus, node: v20.19.3, js-controller: 7.0.6 2025-07-08 15:50:10.999 - info: modbus.0 (338286) Connected to slave 2025-07-08 15:50:16.002 - warn: modbus.0 (338286) Error: undefined 2025-07-08 15:50:16.002 - error: modbus.0 (338286) Request timed out. 2025-07-08 15:50:16.003 - warn: modbus.0 (338286) [DevID_33] Poll error count: 1 code: {"err":"timeout","timeout":5000} 2025-07-08 15:50:17.003 - info: modbus.0 (338286) Disconnected from slave
-
@sascha-hartmann iob diag wird auf dem pi gemacht, ist aber hier nicht von Interesse.
Die Umstellung der logstufe auf debug war entscheidend
da scheint nicht einmal Verbindung zu dem Gerät aufgebaut werden zu können.
Stimmen die Kommunikationsparameter? -
ok kann es sein das ich auf dem pi den stick auch noch separat installieren muss obwohl er ihn als solches erkennt ?
A+B Ist nicht vertauscht !
Einstellungen sind Standart am Zähler
Bautrate 19200
Adresse 33 -
@sascha-hartmann und der USB-Port stimmt?
wenn du dir nicht sicher bist, bitte doch die Langfassung von
iob diag
-
@homoran Bin Glaub heute irgendwie zu doof
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Tue Jul 8 16:11:09 2025 hartmann@schopf:~ $ iobroker diag /usr/bin/iobroker: line 21: /home/iobroker/iob_diag.log: Permission denied hartmann@schopf:~ $ cd /opt/iobroker hartmann@schopf:/opt/iobroker $ iobroker diag /usr/bin/iobroker: line 21: /home/iobroker/iob_diag.log: Permission denied hartmann@schopf:/opt/iobroker $ sudo iobroker diag ***For security reasons ioBroker should not be run or administrated as root.*** By default only a user that is member of iobroker group can execute ioBroker commands. Please read the Documentation on how to set up such a user, if not done yet. Only in very special cases you can run iobroker commands by adding the --allow-root option at the end of the command line. Please note that this option may be disabled in the future, so please change your setup accordingly now. hartmann@schopf:/opt/iobroker $
-
@homoran Irgendwas muss ich bei der Installation von Iobrocker ergessen ahben
auf meinen Anderen Pis geht der Befehl und es Kommt ein Log.
Nur bei dem Nicht das hat er RechteproblemeWie kann ich ddas Fixen ?