Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Troubleshooting
  3. Humidity Sketch causes Vera App to crash

Humidity Sketch causes Vera App to crash

Scheduled Pinned Locked Moved Troubleshooting
15 Posts 4 Posters 5.2k Views 4 Watching
  • 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
    B Offline
    Bradley A
    wrote on last edited by
    #1

    I setup the MySensors gateway up today with my Vera Edge (UI7) and have a major issue. It appears that after adding this humidity sensor, it causes the Vera app to crash on my Galaxy Note 3 (Lollipop). I narrowed it down specifically to the Humidity sensor. Basically in the app, if I click on devices, it instantly crashes. The way I narrowed it down was by adding each device separately as a favorite so that it appears on the main screen when logging into the Vera app. Temperature works fine, as does the node itself, but as soon as I add Humidity, it instantly crashes the app. Is this a Vera issue or an issue with the MySensors library/Humidity sketch? Everything works fantastic on the PC

    1 Reply Last reply
    0
    • hekH Offline
      hekH Offline
      hek
      Admin
      wrote on last edited by
      #2

      We're using the standard Vera Humidity device. No special devices is created by the MySensors plugin.

      Do you have any other (z-wave) humidity sensors to compare with?

      1 Reply Last reply
      0
      • B Offline
        B Offline
        Bradley A
        wrote on last edited by
        #3

        No unfortunately I do not have a zwave humidity sensor to test.
        BUT, I did do some more digging and found out the crash was being caused by a number format exception on Android using the integer class. This caught my attention because I noticed the humidity is being reported with a decimal on the web interface of Vera (eg. Humidity 52.0%) and the Android app is expecting an Integer (not a float). I suspect that the web interface just stores it as a string so it doesn't care about the decimal and Vera is probably attempting to (poorly) parse that string into an Integer in the Android app.
        I did confirm that this is the issue by manually changing the variable for the humidity sensor from 52.0 to 52 and the app works fine (until the sensor reports the humidity again).
        I'm going to do some more playing when I get home tonight, but the fix is probably going to be straight forward. Either send an integer from the sensor sketch instead of a float, change the base station to report as an integer instead of float, or change the luup for the humidity sensor to parse the float into an int (just drop the decimal). I haven't done a lot with luup before and still fairly new to Arduino, so any suggestions on the best route to take would be appreciated!

        1 Reply Last reply
        0
        • hekH Offline
          hekH Offline
          hek
          Admin
          wrote on last edited by
          #4

          Just send an int from the sensor. The sensor does not have the fine grained accuracy anyway.

          B 1 Reply Last reply
          0
          • hekH hek

            Just send an int from the sensor. The sensor does not have the fine grained accuracy anyway.

            B Offline
            B Offline
            Bradley A
            wrote on last edited by
            #5

            @hek Just a quick update. Changed the float to an int on the sensor during my lunch break. No luck. Vera still recieves it with a decimal. Confirmed with the serial console that the sensor is indeed sending it as a int now though. Perhaps the Arduino gateway is coverting it back to a float before sending it? Will do some more digging after work again

            1 Reply Last reply
            0
            • hekH Offline
              hekH Offline
              hek
              Admin
              wrote on last edited by
              #6

              Strange. You could also try converting it to a string before sending.

              1 Reply Last reply
              0
              • hekH Offline
                hekH Offline
                hek
                Admin
                wrote on last edited by
                #7

                You did remove the number-of-decimal argument?

                msgHum.set(humidity, 1) -> msgHum.set(humidity)

                B 1 Reply Last reply
                1
                • hekH hek

                  You did remove the number-of-decimal argument?

                  msgHum.set(humidity, 1) -> msgHum.set(humidity)

                  B Offline
                  B Offline
                  Bradley A
                  wrote on last edited by
                  #8

                  @hek Ah Hah! That did the trick. I had only changed the variable to an int but had not removed the decimal argument. Works perfectly now! Thanks @hek !!

                  1 Reply Last reply
                  0
                  • jeylitesJ Offline
                    jeylitesJ Offline
                    jeylites
                    wrote on last edited by
                    #9

                    I have the same issue. Will work on the fix when I get back.

                    B 1 Reply Last reply
                    0
                    • jeylitesJ jeylites

                      I have the same issue. Will work on the fix when I get back.

                      B Offline
                      B Offline
                      Bradley A
                      wrote on last edited by
                      #10

                      @jeylites said:

                      I have the same issue. Will work on the fix when I get back.

                      The fix is pretty simple, as @hek said the DHT sensors arent extremely accurate anyway (DHT11 is +/- 5% accurate), just change msgHum.set(humidity,1) to msgHum.set(humidity) in the sensor sketch to drop the decimal all together. Worked perfect for me and has been running flawless since yesterday now

                      jeylitesJ 1 Reply Last reply
                      0
                      • B Bradley A

                        @jeylites said:

                        I have the same issue. Will work on the fix when I get back.

                        The fix is pretty simple, as @hek said the DHT sensors arent extremely accurate anyway (DHT11 is +/- 5% accurate), just change msgHum.set(humidity,1) to msgHum.set(humidity) in the sensor sketch to drop the decimal all together. Worked perfect for me and has been running flawless since yesterday now

                        jeylitesJ Offline
                        jeylitesJ Offline
                        jeylites
                        wrote on last edited by jeylites
                        #11

                        @Bradley-A
                        @hek

                        The fix seem pretty easy to follow. But when I exclude the "1" and recompile, I get a bunch of error messages.

                        
                        Build options changed, rebuilding all
                        HumiditySensor.ino: In function 'void loop()':
                        HumiditySensor.ino:56:34: error: call of overloaded 'set(float&)' is ambiguous
                        HumiditySensor.ino:56:34: note: candidates are:
                        In file included from /Users/Jey/Documents/Arduino/libraries/MySensors/MySensor.h:17:0,
                                         from HumiditySensor.ino:2:
                        /Users/Jey/Documents/Arduino/libraries/MySensors/MyMessage.h:161:13: note: MyMessage& MyMessage::set(uint8_t)
                          MyMessage& set(uint8_t value);
                                     ^
                        /Users/Jey/Documents/Arduino/libraries/MySensors/MyMessage.h:163:13: note: MyMessage& MyMessage::set(long unsigned int)
                          MyMessage& set(unsigned long value);
                                     ^
                        /Users/Jey/Documents/Arduino/libraries/MySensors/MyMessage.h:164:13: note: MyMessage& MyMessage::set(long int)
                          MyMessage& set(long value);
                                     ^
                        /Users/Jey/Documents/Arduino/libraries/MySensors/MyMessage.h:165:13: note: MyMessage& MyMessage::set(unsigned int)
                          MyMessage& set(unsigned int value);
                                     ^
                        /Users/Jey/Documents/Arduino/libraries/MySensors/MyMessage.h:166:13: note: MyMessage& MyMessage::set(int)
                          MyMessage& set(int value);
                                     ^
                        Error compiling.```
                        1 Reply Last reply
                        0
                        • hekH Offline
                          hekH Offline
                          hek
                          Admin
                          wrote on last edited by
                          #12

                          You must cast the value to int.

                          gw.send(msg.set((int)xx));

                          1 Reply Last reply
                          0
                          • jeylitesJ Offline
                            jeylitesJ Offline
                            jeylites
                            wrote on last edited by jeylites
                            #13

                            @hek

                            I'm not following that part ... is it like this

                            gw.send(msgHum.set((int)humidity));

                            1 Reply Last reply
                            0
                            • hekH Offline
                              hekH Offline
                              hek
                              Admin
                              wrote on last edited by
                              #14

                              The compile can't find a method matching the argument you're calling the overloaded method "set" with.

                              It looks at the type of the argument (float in your case).

                              So you can either change "humidity" to be a int when you declare it or cast it to an int.

                              1 Reply Last reply
                              0
                              • ThomasDrT Offline
                                ThomasDrT Offline
                                ThomasDr
                                wrote on last edited by
                                #15

                                Hello,

                                i see this is a old posting, but i have the same problem. But i found an error.
                                I use

                                send(summsg.set(sum));
                                

                                but this work:

                                send(summsg.set(sum,5));
                                

                                regards
                                ThomasD

                                1 Reply Last reply
                                0
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                18

                                Online

                                11.7k

                                Users

                                11.2k

                                Topics

                                113.1k

                                Posts


                                Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                • Login

                                • Don't have an account? Register

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • MySensors
                                • OpenHardware.io
                                • Categories
                                • Recent
                                • Tags
                                • Popular