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 @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
                                          • wendy2702
                                            wendy2702 @Sascha Hartmann last edited by

                                            @sascha-hartmann mach mal

                                            iob fix
                                            

                                            Und zeige die Ausgabe als Text

                                            Sascha Hartmann 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            792
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            8
                                            87
                                            3939
                                            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