Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Problem mit ioBroker Sma-em Adapter nach node update

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Problem mit ioBroker Sma-em Adapter nach node update

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

      @apollon77 ok, habs hier dazu geschrieben.
      https://github.com/CTJaeger/ioBroker.sma-em/issues/17#issuecomment-503830658

      andiling created this issue in CTJaeger/ioBroker.sma-em

      closed Node.js Version 10 not working #17

      1 Reply Last reply Reply Quote 0
      • Winni
        Winni last edited by

        Der Entwickler hat sich auf GitHub gemeldet, er will sich um die Sache kümmern.👍

        1 Reply Last reply Reply Quote 0
        • apollon77
          apollon77 last edited by

          Super, daher: Solche bestätigten Bugs und Probleme immer auf GitHub als Issue einstellen. Deutsch oder englisch ist egal und Links ins Forum helfen ggf mehr Kontext zu bekommen

          1 Reply Last reply Reply Quote 0
          • C
            C1500 last edited by

            Servus
            Bei mir das gleiche Problem nach dem node Update.
            Hoffentlich findet er bald das Problem.
            Gruß Peer

            1 Reply Last reply Reply Quote 0
            • A
              aftershowman last edited by

              Hatte das selbe Problem.

              Das Problem wurde ja schon "Gefunden/beschrieben".
              Die verwendete Methode "buf.readUIntBE(offset, byteLength)" kann in node10 nur noch 6 Bytes lesen.
              Ich hab auch keine andere Methode gefunden, die 8 Bit direkt in ein "int" einliest.
              Ich hab keine Ahnung von Github.
              Bin auch kein Java-Skript Guro.
              Hab deshalb den Code direkt in der main.js angepasst.
              Bei einer IObroker Linux Installation liegt die main.js hier:
              /opt/iobroker/node_modules/iobroker.sma-em

              Funktioniert bei mir.
              Bekomme jetzt den Momentanverbrauch und den Bezugzähler alle 30s
              Objekte.PNG
              Hier die original und die geänderte Datei:
              main.js main - org.js

              Ich hab den Code jetzt so angepasst; dass wenn 8 Bytes gelesen werden sollen, werden diese als "string" gelesen und anschließend zu "int" konvertiert.
              Weiterhin habe ich einen Timer eingebaut, der "nur" alle 30s das Multicast Paket abgreift.

              Alle Änderungen wurden in der Funktion"read Data" gemacht.
              Eingefügter Code ist "fett" markiert.

              function readData() {
              var client = dgram.createSocket('udp4');
              var timer;

              client.on('listening', function () {
                  client.setBroadcast(true);
              });
              
              client.on('message', function (message, rinfo) {
              	**if (!timer) {
                  timer = setTimeout(function () {
                      timer = null;
                  }, 30000);**
              
              	var ser = message.readUIntBE(points['SMASerial'].offset, points['SMASerial'].length) * points['SMASerial'].factor;
              	 adapter.setObjectNotExists(ser, {
                 		 type: 'channel',
               		 common: {
                   	 name: ser,
                  	 type: 'channel'
                 		 },
                  native: {}
              });
                  
              if (!connected) {
                      connected = true;
                      adapter.setState('info.connection', true, true);
                  }
              
                  for (var point in points) {
                      if (points.hasOwnProperty(point)) {
                          //adapter.log.info('Name: ' + point + 'offset: ' + points[point].offset + 'length: ' + points[point].length + 'factor: ' + points[point].factor);
              			**if (points[point].length == 8) {
              				var val1 = message.toString('hex', points[point].offset, points[point].offset + 8);
              				//adapter.log.info('val1 : ' + val1);
              				var val = parseInt(val1, 16);
              				//adapter.log.info('val nach toInt : ' + val);
              				val = val * points[point].factor;
              				//adapter.log.info('val nach Multi: ' + val);
              			} else {**
              				var val = message.readUIntBE(points[point].offset, points[point].length) * points[point].factor;
              			**}**
                          if (points[point].val === undefined || points[point].val !== val) {
                              points[point].val = val;
                              adapter.setObjectNotExists (adapter.namespace + '.' + ser + '.' + point, {
              				type: 'state',
              				role: 'value',
              				common: {
              					name: point,
              					type: 'state',
              					role: 'value'
              					},
              				native: {}
              		});
              		adapter.setState (ser + '.' + point, val,true);
                          }
                      }
                  }
              	**}**
              });
              apollon77 1 Reply Last reply Reply Quote 0
              • Heimerdinger
                Heimerdinger last edited by

                Wie überschreibe ich eigentlich die main.js?
                Stoppen des Adapters und/oder des iobrokers reicht wohl nicht.

                Danke

                1 Reply Last reply Reply Quote 0
                • apollon77
                  apollon77 @aftershowman last edited by

                  @aftershowman mach doch mal einen pull request auf GitHub beim Adapter.

                  1 Reply Last reply Reply Quote 0
                  • Winni
                    Winni last edited by

                    Hallo in die Runde, der Entwickler hat angekündigt, dass er den Adapter an die Community Adapter Crew übergeben möchte. Ich denke das dies bedeutet, dass es mit dem Adapter weiter geht, was mich natürlich sehr freut. 👍

                    1 Reply Last reply Reply Quote 0
                    • A
                      andiling last edited by

                      Hallo, bin zwar nicht der Entwickler des Adapters aber ich habe eine Lösung für Node 8 - einschliesslich 12 erarbeitet. Ich muss die Daten noch verifizieren aber der Adapter scheint jetzt für Node 10 auch zu laufen. Warten wir mal noch paar Tage ab auf den Transfer zu Community Adapter dann werde ich relativ zeitnah den Adapter updaten!

                      Wer Lust hat kann ja mal für Node 10 testen! Hier die Datei einfach ersetzen und Adapter neu starten!
                      Feedback wäre super!
                      Gruß

                      Andi

                      main.js

                      Winni 2 Replies Last reply Reply Quote 2
                      • Winni
                        Winni @andiling last edited by

                        @andiling Super, vielen Dank dafür 🙂

                        1 Reply Last reply Reply Quote 0
                        • S
                          stephane last edited by

                          Ist e denn schon absehbar wann der Bug im normalen Updateprozess behoben sind?
                          Ich hab das mit dem Manuellen Fix mal versucht, der Adapter startet aber leider immer noch nicht 😞

                          1 Reply Last reply Reply Quote 0
                          • Winni
                            Winni @andiling last edited by

                            @andiling sagte in Problem mit ioBroker Sma-em Adapter nach node update:

                            Hallo, bin zwar nicht der Entwickler des Adapters aber ich habe eine Lösung für Node 8 - einschliesslich 12 erarbeitet. Ich muss die Daten noch verifizieren aber der Adapter scheint jetzt für Node 10 auch zu laufen. Warten wir mal noch paar Tage ab auf den Transfer zu Community Adapter dann werde ich relativ zeitnah den Adapter updaten!

                            Wer Lust hat kann ja mal für Node 10 testen! Hier die Datei einfach ersetzen und Adapter neu starten!
                            Feedback wäre super!
                            Gruß

                            Andi

                            main.js

                            Hallo, ich wollte mal nachfragen, wie hier der Stand der Dinge ist.
                            Wenn ichdie main.js mit der der Version aus deinem post ersetze bleibt der Adapter rot und im Log sind diese Fehler:

                            host.winni-NUC6CAYH	2020-01-05 12:37:58.844	error	instance system.adapter.sma-em.0 terminated with code 1 (JS_CONTROLLER_STOPPED)
                            host.winni-NUC6CAYH	2020-01-05 12:37:58.844	error	Caught by controller[0]: at bootstrap_node.js:625:3
                            host.winni-NUC6CAYH	2020-01-05 12:37:58.844	error	Caught by controller[0]: at startup (bootstrap_node.js:204:16)
                            host.winni-NUC6CAYH	2020-01-05 12:37:58.844	error	Caught by controller[0]: at Function.Module.runMain (module.js:694:10)
                            host.winni-NUC6CAYH	2020-01-05 12:37:58.844	error	Caught by controller[0]: at Function.Module._load (module.js:498:3)
                            host.winni-NUC6CAYH	2020-01-05 12:37:58.843	error	Caught by controller[0]: at tryModuleLoad (module.js:506:12)
                            host.winni-NUC6CAYH	2020-01-05 12:37:58.843	error	Caught by controller[0]: at Module.load (module.js:566:32)
                            host.winni-NUC6CAYH	2020-01-05 12:37:58.843	error	Caught by controller[0]: at Object.Module._extensions..js (module.js:664:10)
                            host.winni-NUC6CAYH	2020-01-05 12:37:58.843	error	Caught by controller[0]: at Module._compile (module.js:617:28)
                            host.winni-NUC6CAYH	2020-01-05 12:37:58.842	error	Caught by controller[0]: at Object.runInThisContext (vm.js:139:10)
                            host.winni-NUC6CAYH	2020-01-05 12:37:58.842	error	Caught by controller[0]: at createScript (vm.js:80:10)
                            host.winni-NUC6CAYH	2020-01-05 12:37:58.842	error	Caught by controller[0]: SyntaxError: Invalid or unexpected token
                            host.winni-NUC6CAYH	2020-01-05 12:37:58.841	error	Caught by controller[0]: ^^
                            host.winni-NUC6CAYH	2020-01-05 12:37:58.841	error	Caught by controller[0]: var val = Number(((highbyte << 32n) + lowbyte));
                            host.winni-NUC6CAYH	2020-01-05 12:37:58.840	error	Caught by controller[0]: /opt/iobroker/node_modules/iobroker.sma-em/main.js:76
                            

                            Zurück auf die orginal main.js läufts wieder, aber klar, nicht auf der 10.x. 😉
                            Bin für jede Hilfestellung dankbar 🙂

                            apollon77 1 Reply Last reply Reply Quote 0
                            • apollon77
                              apollon77 @Winni last edited by

                              @Winni da ist ein „n“ Zuviel nach der 32

                              Winni 1 Reply Last reply Reply Quote 0
                              • Winni
                                Winni @apollon77 last edited by

                                @apollon77 vielen Dank für die schnelle Hilfe, nach der Korrektur läuft es unter 8.17 aber leider nicht unter 10.18 😞
                                da bleibt der Adapter rot und der Log schaut es so aus:

                                host.winni-NUC6CAYH	2020-01-05 13:42:03.970	error	Caught by controller[0]: at UDP.onMessage [as onmessage] (dgram.js:628:8)
                                host.winni-NUC6CAYH	2020-01-05 13:42:03.970	error	Caught by controller[0]: at Socket.emit (events.js:198:13)
                                host.winni-NUC6CAYH	2020-01-05 13:42:03.969	error	Caught by controller[0]: at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.sma-em/main.js:76:53)
                                host.winni-NUC6CAYH	2020-01-05 13:42:03.969	error	Caught by controller[0]: TypeError: Cannot mix BigInt and other types, use explicit conversions
                                sma-em.0	2020-01-05 13:42:03.444	info	(4206) Terminated (NO_ERROR): Without reason
                                sma-em.0	2020-01-05 13:42:03.443	info	(4206) terminating
                                sma-em.0	2020-01-05 13:42:03.395	info	(4206) cleaned everything up...
                                sma-em.0	2020-01-05 13:42:03.394	error	(4206) TypeError: Cannot mix BigInt and other types, use explicit conversions at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.sma-em/main.js:76:53) at Socket.emit (events.js:198:13)
                                sma-em.0	2020-01-05 13:42:03.394	error	(4206) uncaught exception: Cannot mix BigInt and other types, use explicit conversions
                                sma-em.0	2020-01-05 13:42:02.553	info	(4206) Details L1 false Details L2 false Details L3 false
                                sma-em.0	2020-01-05 13:42:02.553	info	(4206) Listen via UDP on Port 9522 for Multicast IP 239.12.255.254
                                sma-em.0	2020-01-05 13:42:02.510	info	(4206) starting. Version 0.5.3 in /opt/iobroker/node_modules/iobroker.sma-em, node: v10.18.0
                                host.winni-NUC6CAYH	2020-01-05 13:42:02.555	info	instance system.adapter.sma-speedwire.1 terminated with code 0 (NO_ERROR)
                                sma-speedwire.1	2020-01-05 13:42:01.474	info	(4193) starting. Version 0.6.6 in /opt/iobroker/node_modules/iobroker.sma-speedwire, node: v10.18.0
                                host.winni-NUC6CAYH	2020-01-05 13:42:00.956	info	instance system.adapter.sma-em.0 started with pid 4206
                                host.winni-NUC6CAYH	2020-01-05 13:42:00.022	info	instance system.adapter.sma-speedwire.1 started with pid 4193
                                host.winni-NUC6CAYH	2020-01-05 13:41:36.554	info	instance system.adapter.sma-speedwire.1 terminated with code 0 (NO_ERROR)
                                sma-speedwire.1	2020-01-05 13:41:35.487	info	(4177) starting. Version 0.6.6 in /opt/iobroker/node_modules/iobroker.sma-speedwire, node: v10.18.0
                                host.winni-NUC6CAYH	2020-01-05 13:41:34.040	info	instance system.adapter.sma-speedwire.1 started with pid 4177
                                host.winni-NUC6CAYH	2020-01-05 13:41:32.557	info	instance system.adapter.sma-speedwire.0 terminated with code 0 (NO_ERROR)
                                sma-speedwire.0	2020-01-05 13:41:31.469	info	(4162) starting. Version 0.6.6 in /opt/iobroker/node_modules/iobroker.sma-speedwire, node: v10.18.0
                                host.winni-NUC6CAYH	2020-01-05 13:41:30.941	info	Restart adapter system.adapter.sma-em.0 because enabled
                                host.winni-NUC6CAYH	2020-01-05 13:41:30.941	info	instance system.adapter.sma-em.0 terminated with code 0 (NO_ERROR)
                                host.winni-NUC6CAYH	2020-01-05 13:41:30.941	error	Caught by controller[0]: at UDP.onMessage [as onmessage] (dgram.js:628:8)
                                host.winni-NUC6CAYH	2020-01-05 13:41:30.941	error	Caught by controller[0]: at Socket.emit (events.js:198:13)
                                host.winni-NUC6CAYH	2020-01-05 13:41:30.941	error	Caught by controller[0]: at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.sma-em/main.js:76:53)
                                host.winni-NUC6CAYH	2020-01-05 13:41:30.940	error	Caught by controller[0]: TypeError: Cannot mix BigInt and other types, use explicit conversions
                                sma-em.0	2020-01-05 13:41:30.411	info	(4147) Terminated (NO_ERROR): Without reason
                                sma-em.0	2020-01-05 13:41:30.410	info	(4147) terminating
                                sma-em.0	2020-01-05 13:41:30.400	info	(4147) cleaned everything up...
                                sma-em.0	2020-01-05 13:41:30.399	error	(4147) TypeError: Cannot mix BigInt and other types, use explicit conversions at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.sma-em/main.js:76:53) at Socket.emit (events.js:198:13)
                                sma-em.0	2020-01-05 13:41:30.398	error	(4147) uncaught exception: Cannot mix BigInt and other types, use explicit conversions
                                

                                zurück auf die 8.17 und es läuft wieder, ohne die main.js nochmal mit der orginalen ersetzt zu haben, also mit der Version von @andiling

                                apollon77 1 Reply Last reply Reply Quote 0
                                • apollon77
                                  apollon77 @Winni last edited by

                                  @Winni Also ist das "n" wohl doch nötig gewesen ...

                                  Winni 1 Reply Last reply Reply Quote 0
                                  • Winni
                                    Winni @apollon77 last edited by

                                    Sorry da hab ich mich falsch ausgedrückt, es ist die Version von @andiling, aber ohne n, die jetzt unter 8.17 läuft.

                                    1 Reply Last reply Reply Quote 0
                                    • Winni
                                      Winni last edited by

                                      Hallo in die Runde, möchte mich hier bei allen bedanken, die an der "Rettung" dieses Adapters mitgewirkt haben. Ich habe mir heute ein neues Ubuntu 19.10 installiert und natürlich iobroker, übernommen hatte ich den iobroker-data Ordner. Zum Schluss dann den Adapter in der Version 0.5.6 installiert und läuft seit ein paar Stunden ohne Probleme. Neben der Steuerung der Heizung ist die Überwachung der PV und Stromverbrauch das wichtigste Feld meines Smathome. Also nochmals vielen Dank an andiling, Dutchman, Apollon77, GermanBluefox und wervsonst noch mitgewirkt hat.

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate
                                      FAQ Cloud / IOT
                                      HowTo: Node.js-Update
                                      HowTo: Backup/Restore
                                      Downloads
                                      BLOG

                                      536
                                      Online

                                      31.6k
                                      Users

                                      79.4k
                                      Topics

                                      1.3m
                                      Posts

                                      problem mit node 10.16
                                      8
                                      23
                                      1728
                                      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