• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
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 2.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 Aug 3, 2023, 3:10 AM

    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.

    W 1 Reply Last reply Aug 3, 2023, 5:23 AM Reply Quote 0
    • W Offline
      wishmaster270 Module Developer @Brown19
      last edited by Aug 3, 2023, 5:23 AM

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

      W 1 Reply Last reply Aug 3, 2023, 12:08 PM Reply Quote 0
      • W Offline
        wishmaster270 Module Developer @wishmaster270
        last edited by Aug 3, 2023, 12:08 PM

        @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 Aug 3, 2023, 3:41 PM Reply Quote 0
        • B Offline
          Brown19 @wishmaster270
          last edited by Aug 3, 2023, 3:41 PM

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

          W 1 Reply Last reply Aug 3, 2023, 8:10 PM Reply Quote 0
          • W Offline
            wishmaster270 Module Developer @Brown19
            last edited by Aug 3, 2023, 8:10 PM

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

            W 1 Reply Last reply Aug 4, 2023, 3:45 PM Reply Quote 0
            • W Offline
              wishmaster270 Module Developer @wishmaster270
              last edited by Aug 4, 2023, 3:45 PM

              @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 Aug 4, 2023, 8:42 PM Reply Quote 0
              • S Offline
                sdetweil @wishmaster270
                last edited by Aug 4, 2023, 8:42 PM

                @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

                W 1 Reply Last reply Aug 4, 2023, 10:01 PM Reply Quote 0
                • W Offline
                  wishmaster270 Module Developer @sdetweil
                  last edited by Aug 4, 2023, 10:01 PM

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

                  W 1 Reply Last reply Aug 5, 2023, 12:03 PM Reply Quote 0
                  • W Offline
                    wishmaster270 Module Developer @wishmaster270
                    last edited by Aug 5, 2023, 12:03 PM

                    @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 W 2 Replies Last reply Aug 5, 2023, 12:27 PM Reply Quote 1
                    • S Offline
                      sdetweil @wishmaster270
                      last edited by Aug 5, 2023, 12:27 PM

                      @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
                      • 1
                      • 2
                      • 1 / 2
                      1 / 2
                      • First post
                        3/12
                        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