Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Modbus Finder 7M.38.8.400.0212 auslesen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Modbus Finder 7M.38.8.400.0212 auslesen

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      Matis @Matis last edited by

      _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
      
      1 Reply Last reply Reply Quote 0
      • M
        Matis @aherby last edited by

        @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();
        });
        
        
        1 Reply Last reply Reply Quote 0
        • M
          Matis @aherby last edited by Matis

          @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
          
          A 1 Reply Last reply Reply Quote 0
          • A
            aherby @Matis last edited by

            @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.

            M Sascha Hartmann 2 Replies Last reply Reply Quote 0
            • M
              Matis @aherby last edited by

              @aherby ja +1 bei den Registern ist richtig, nur 32639 ff. zeigt keine korrekten Wert und aktualisiert sehr langsam. Besser sind 30463 ff.

              1 Reply Last reply Reply Quote 0
              • Sascha Hartmann
                Sascha Hartmann @aherby last edited by

                @aherby

                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
                83d26ee1-ed86-471a-a3f5-8e857937b913-grafik.png

                Egal Was ich an Eingangsregister versucher es kommt nichts

                Der Adapter ist immer kurz Grün dann wieder Orange

                Vieleicht hat jemand eine Idee

                Homoran 1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators @Sascha Hartmann last edited by

                  @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?
                  ....

                  Sascha Hartmann 1 Reply Last reply Reply Quote 0
                  • Sascha Hartmann
                    Sascha Hartmann @Homoran last edited by Homoran

                    @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!

                    wendy2702 1 Reply Last reply Reply Quote 0
                    • wendy2702
                      wendy2702 @Sascha Hartmann last edited by

                      @sascha-hartmann stell das loggen mal auf Debug und zeige das eingetragene Register als screenshot.

                      Sascha Hartmann 2 Replies Last reply Reply Quote 1
                      • Sascha Hartmann
                        Sascha Hartmann @wendy2702 last edited by

                        @wendy2702 21ee0247-46d0-44d3-b0d7-2969cd3f0b48-grafik.png

                        Homoran 1 Reply Last reply Reply Quote 0
                        • Homoran
                          Homoran Global Moderator Administrators @Sascha Hartmann last edited by Homoran

                          @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

                          1 Reply Last reply Reply Quote 0
                          • Sascha Hartmann
                            Sascha Hartmann @wendy2702 last edited by

                            @wendy2702

                            wie ? hab ich noch nie gemacht

                            Mein Screenshot war ja schon falsch 🙂

                            Mach nicht viel mi IObrocker

                            Homoran 1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators @Sascha Hartmann last edited by

                              @sascha-hartmann sagte in Modbus Finder 7M.38.8.400.0212 auslesen:

                              wie ?

                              hab ich dir gerade verlinkt.

                              Sascha Hartmann 1 Reply Last reply Reply Quote 0
                              • Sascha Hartmann
                                Sascha Hartmann @Homoran last edited by

                                @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
                                
                                Homoran 1 Reply Last reply Reply Quote 0
                                • Homoran
                                  Homoran Global Moderator Administrators @Sascha Hartmann last edited by Homoran

                                  @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?

                                  Sascha Hartmann 1 Reply Last reply Reply Quote 0
                                  • Sascha Hartmann
                                    Sascha Hartmann @Homoran last edited by

                                    @homoran

                                    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

                                    Homoran 1 Reply Last reply Reply Quote 0
                                    • Homoran
                                      Homoran Global Moderator Administrators @Sascha Hartmann last edited by

                                      @sascha-hartmann und der USB-Port stimmt?

                                      wenn du dir nicht sicher bist, bitte doch die Langfassung von iob diag

                                      Sascha Hartmann 3 Replies Last reply Reply Quote 0
                                      • Sascha Hartmann
                                        Sascha Hartmann @Homoran last edited by

                                        @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 1 Reply Last reply Reply Quote 0
                                        • Sascha Hartmann
                                          Sascha Hartmann @Homoran last edited by

                                          @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 Rechteprobleme

                                          Wie kann ich ddas Fixen ?

                                          Sascha Hartmann 1 Reply Last reply Reply Quote 0
                                          • Sascha Hartmann
                                            Sascha Hartmann @Sascha Hartmann last edited by

                                            @sascha-hartmann Keiner eine Idee wie ich das hinbekomme das ich den log bekomme ?

                                            Vieleicht hilfts dann weiter 🙂

                                            Grüße Sascha

                                            wendy2702 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            452
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            8
                                            87
                                            3953
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo