I wanted to share some home testing I’m doing with the help of Tulip! The winters are quite dry here in the Boston area, and I wanted to see how effective a cheap $20 humidifier was at raising the relative humidity in my bedroom. I also wanted to make sure that the outdoor relative humidity did not have any effect on the results.
To test, I set up a Phidgets humidity sensor connected to an Edge MC, and created an app to monitor the outdoor weather and the bedroom.
The app just has two simple triggers.
First, store the sensor output of the room conditions into variables.
Second, run a timer trigger every 5 minutes to get the current Weather using the Open Weather API, and create a table record with all of the data.
For the first test, I had the humidifier set at 50% power and located on the other side of the room. You can see there was no effect on raising the relative humidity. Of course, it was ~28 degrees F overnight, so the heat was running a fair amount. Hoping to see better results on future tests!
Here’s some feedback. I’m working as hard as I can to get to an event based architecture. The closest I can get in some places in Tulip is to use a timer trigger and then check for some condition to be true to prevent triggers from running unnecessarily. Probably not a problem in your case, but if you have the same app running in 100+ places it could cause unnecessary resource usage.
So a forewarning, I’m being extra picky so please take this as constructive feedback.
- In the first screenshot you’re continually writing to the same record on device output, not saving to a variable as you said. Since Tulip tracks all changes to record fields you’re actually chewing up space for no value. It would be better to do as you said and save them to a variable, because…
- If you save the device outputs to a variable, you can then run your trigger every 60 seconds and compare it to the last record value, then only write a new record if it’s changed.
Bonus points for doing the evaluation in the Expression Editor and check for the absolute difference between the values and only execute if it exceeds a
deadband variable (1 degree or % change in RH?).