MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    MMM-Temperature uncaught exception...

    Scheduled Pinned Locked Moved Unsolved Troubleshooting
    12 Posts 3 Posters 3.5k Views 3 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • B Offline
      Brown19
      last edited by

      I wrote a script to use the SHT31-D temperature and humidity sensor from adafruit. The script works in that it correctly displays the temp and humidity. The log file however shows the following:

      [02.08.2023 19:53.15.002] [LOG] MMM-Temperature: Updating sensor values
      [02.08.2023 19:53.15.002] [LOG] MMM-Temperature Calling: /home/mpi-admin/MagicMirror/modules/MMM-Temperature/scripts/sht31
      [02.08.2023 19:53.15.338] [LOG] {“temperature_c”:24.78637369344625,“humidity”:42.03402761882963,“temperature_f”:76.61547264820325,“error”:false}
      [02.08.2023 19:53.15.339] [LOG] MMM-Temperature: New Values of sensor with id 0 (Indoor): {“temperature_c”:“24.8”,“humidity”:“42.0”,“temperature_f”:“76.6”,“error”:false,“temperature”:“76.6”}
      [02.08.2023 19:53.15.339] [LOG] Sending temp update: [{“temperature_c”:“24.8”,“humidity”:“42.0”,“temperature_f”:“76.6”,“error”:false,“temperature”:“76.6”}]
      [02.08.2023 19:53.15.346] [ERROR] Whoops! There was an uncaught exception…
      [02.08.2023 19:53.15.362] [ERROR] Error: write EFAULT
      at afterWriteDispatched (node:internal/stream_base_commons:160:15)
      at writeGeneric (node:internal/stream_base_commons:151:3)
      at Socket._writeGeneric (node:net:930:11)
      at Socket._write (node:net:942:8)
      at writeOrBuffer (node:internal/streams/writable:392:12)
      at _write (node:internal/streams/writable:333:10)
      at Writable.write (node:internal/streams/writable:337:10)
      at execSync (node:child_process:981:20)
      at node:electron/js2c/asar_bundle:2:12711
      at Class.updateSensorValues (/home/mpi-admin/MagicMirror/modules/MMM-Temperature/node_helper.js:65:24)
      at Class.socketNotificationReceived (/home/mpi-admin/MagicMirror/modules/MMM-Temperature/node_helper.js:165:12)
      at Socket. (/home/mpi-admin/MagicMirror/js/node_helper.js:104:11)
      at Socket.emit (node:events:513:28)
      at Socket.emitUntyped (/home/mpi-admin/MagicMirror/node_modules/socket.io/dist/typed-events.js:69:22)
      at /home/mpi-admin/MagicMirror/node_modules/socket.io/dist/socket.js:703:39
      at process.processTicksAndRejections (node:internal/process/task_queues:77:11) {
      errno: -14,
      code: ‘EFAULT’,
      syscall: ‘write’
      }

      This is my script:

      #!/usr/bin/env python3
      #Install Dependencies:
      #  cd ~
      #  sudo pip3 install --upgrade adafruit-python-shell
      #  wget https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/raspi-blinka.py
      #  sudo python3 raspi-blinka.py
      #  sudo pip3 install adafruit-circuitpython-sht31d
      #  
      
      import board
      import adafruit_sht31d
      import json
      
      i2c = board.I2C()
      h = adafruit_sht31d.SHT31D(i2c)
      
      result = {}
      try:    
          result["temperature_c"] = h.temperature
          result["humidity"] = h.relative_humidity
          result["temperature_f"] = (result["temperature_c"]*1.8) + 32
          result["error"] = False
      except:
          result["temperature_c"] = 0.0
          result["humidity"] = 0.0
          result["temperature_f"] = (result["temperature_c"]*1.8) + 32
          result["error"] = True
      
      print(json.dumps(result))
      

      Any help would be appreciate. Python is not my native language.

      wishmaster270W 1 Reply Last reply Reply Quote 0
      • wishmaster270W Offline
        wishmaster270 Module Developer @Brown19
        last edited by

        @Brown19 Hi,

        your python script looks good to me and also the output of node_helper till the moment it tries to send the data to the frontend.
        Can you provide your MagicMirror and nodejs version information to me, please?

        wishmaster270W 1 Reply Last reply Reply Quote 0
        • wishmaster270W Offline
          wishmaster270 Module Developer @wishmaster270
          last edited by

          @Brown19

          I tried your script and the current version of the module in both of my setups (2.24.0 native and 2.25.0-develop container) and do not have any problems.

          As i wrote already the problem looks like there is problem during communication between the node_helper.js and the frontend (either electron or the browser of your choice).

          B 1 Reply Last reply Reply Quote 0
          • B Offline
            Brown19 @wishmaster270
            last edited by

            @wishmaster270 I’m running 2.24.0 and node is v18.17.0

            wishmaster270W 1 Reply Last reply Reply Quote 0
            • wishmaster270W Offline
              wishmaster270 Module Developer @Brown19
              last edited by

              @Brown19 Do you see any errors in the development console of the browser?

              wishmaster270W 1 Reply Last reply Reply Quote 0
              • wishmaster270W Offline
                wishmaster270 Module Developer @wishmaster270
                last edited by

                @Brown19
                Hi,

                today i installed a new instance of MagicMirror 2.24.0 with both your node version 18 any my current used one (16).
                In the installation which uses electron i can reproduce the error now. But i am pretty sure this is a problem related to the combination of the version 2.24.0 and the used electron version.
                I found this thread with the same error but MMM-Tools instead in the forum of bogusnet, too.
                It might be a general MagicMirror issue and not a problem of the module.

                Maybe one of the core developers can have a look into it. I never had been that deep in the MagicMirror code and do not have much time to investigate the problem at the moment.

                S 1 Reply Last reply Reply Quote 0
                • S Do not disturb
                  sdetweil @wishmaster270
                  last edited by

                  @wishmaster270 what module is this? I’ll look at it tonight.

                  Sam

                  How to add modules

                  learning how to use browser developers window for css changes

                  wishmaster270W 1 Reply Last reply Reply Quote 0
                  • wishmaster270W Offline
                    wishmaster270 Module Developer @sdetweil
                    last edited by

                    @sdetweil Hi Sam, it looks like both MMM-Temperature and MMM-Tools cause the error.

                    wishmaster270W 1 Reply Last reply Reply Quote 0
                    • wishmaster270W Offline
                      wishmaster270 Module Developer @wishmaster270
                      last edited by

                      @sdetweil @Brown19
                      Hi,

                      i did some more investigation today and think i found a solution.
                      Although the exception looks different i think the problem is the execSync command.
                      The only way i was able to fix it is to use spawnSync.

                      But i can not say where or why the problem happens.
                      I tried different node versions (latest 16, 18, 20) and different electron versions (25.3.0, 25.3.2 and 25.4.0) with execSync.

                      I will release a new version of MMM-Temperature today which uses spawnSync instead of execSync.

                      S wishmaster270W 2 Replies Last reply Reply Quote 1
                      • S Do not disturb
                        sdetweil @wishmaster270
                        last edited by

                        @wishmaster270 good catch. I think exec is foreground, spawn is background.

                        Sam

                        How to add modules

                        learning how to use browser developers window for css changes

                        1 Reply Last reply Reply Quote 0
                        • wishmaster270W Offline
                          wishmaster270 Module Developer @wishmaster270
                          last edited by

                          @Brown19

                          Just released the new version 0.0.8 which (hopefully) fixes the problem.

                          I integrated your script, too. But i named it sht31d.

                          B 1 Reply Last reply Reply Quote 0
                          • B Offline
                            Brown19 @wishmaster270
                            last edited by

                            @wishmaster270 Thank you so much for the help and troubleshooting! I wasn’t able to work on this the last few days and when I got back it looks fixed.

                            Thanks again.

                            1 Reply Last reply Reply Quote 0

                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                            With your input, this post could be even better 💗

                            Register Login
                            • 1 / 1
                            • First post
                              Last post
                            Enjoying MagicMirror? Please consider a donation!
                            MagicMirror created by Michael Teeuw.
                            Forum managed by Sam, technical setup by Karsten.
                            This forum is using NodeBB as its core | Contributors
                            Contact | Privacy Policy