Bathroom Humidity Fan

Does this mean that you are pushing directly to the original posters github as soon as new functionality is added / bugs ironed out? So we don't have to check your fork for updates.

Yup.

3 Likes

Yessir, makes it easier to collaborate on changes.

2 Likes

Added a disable override on the pause button that will let you reenable the app until the next time the Enable/Disable switch is turned off. Added trace logging for my own sanity trying to track down bugs. Added temporary logging options for Info and trace as well. IDE logging will override any temporary logging options at the same level or lower than it is set to. The disable switch was actually requested for another app I collaborate on but I was already in the middle of working on this one so went ahead and added it here first.

@napalmcsr / @lewis.heidrick, finally got around to try this app, so installed it via HPM. Added the parent and clicked done, go back in the parent to add a new Bathroom Fan and I get an unexpected error right out of the gate.

Error message SCREENSHOT on app page

Error Message in LOGS

app:4602020-12-28 19:36:40.661 errorjava.lang.NullPointerException: Cannot invoke method currentValue() on null object on line 534 (mainPage)

Looks like it doesn't know the state of the fanSwitch. Try replacing line 534 with the following. It will keep it from erroring out and I'll take a look after dinner.

Can also comment out the line with // at the beginning of the line.

ifTrace("fanStatus: [FanSwitch?.currentValue(switch) = ${FanSwitch?.currentValue("switch")}]")

Ya I looked at it real fast, what I find weird is that this error comes up before I even have time to configure anything. It pops up as soon as I click in the parent app to create a new child. I don't even see the setup page, did not have time to look more than that (wife want's to watch some TV together).

Np, I'll get it sorted.

Update pushed to repository.

https://raw.githubusercontent.com/napalmcsr/Hubitat_Napalmcsr/master/Apps/BathroomHumidityFan/BathroomHumidityChild.src

Repair with HPM or overwrite the code in the Bathroom Humidity Fan Child app on your hub.

Found another null error but it's fixed as well.

1 Like

Seems to work, will set it up tomorrow and do some tests on my side!

Thanks!

1 Like

Recurring error in my logs...

Logs with error

app:4642020-12-29 11:22:41.174 errorjava.lang.NullPointerException: Cannot invoke method minus() on null object on line 233 (HumidityHandler)

app:4642020-12-29 11:22:41.170 traceBathroom Main: CheckThreshold

app:4642020-12-29 11:22:41.167 debugBathroom Main: HumidityHandler: state.targetHumidity = null

app:4642020-12-29 11:22:41.164 debugBathroom Main: HumidityHandler: state.HumidityChangeRate = null

app:4642020-12-29 11:22:41.161 debugBathroom Main: HumidityHandler: state.HighestHumidity = null

app:4642020-12-29 11:22:41.158 debugBathroom Main: HumidityHandler: state.StartingHumidity = null

app:4642020-12-29 11:22:41.155 debugBathroom Main: HumidityHandler: state.currentHumidityDate = null

app:4642020-12-29 11:22:41.151 debugBathroom Main: HumidityHandler: state.currentHumidity = null

app:4642020-12-29 11:22:41.148 debugBathroom Main: HumidityHandler: state.lastHumidityDate = null

app:4642020-12-29 11:22:41.145 debugBathroom Main: HumidityHandler: state.lastHumidity = null

app:4642020-12-29 11:22:41.142 debugBathroom Main: HumidityHandler: Before

app:4642020-12-29 11:22:41.139 debugBathroom Main: HumidityHandler: state.TurnOffLaterStarted = false

app:4642020-12-29 11:22:41.136 debugBathroom Main: HumidityHandler: state.AutomaticallyTurnedOn = false

app:4642020-12-29 11:22:41.133 debugBathroom Main: HumidityHandler: state.OverThreshold = false

app:4642020-12-29 11:22:41.130 traceBathroom Main: HumidityHandler

EDIT: Added more info after changing log level to "Trace" so you can have a better understanding where the error is coming from.

If you go to the child app in Apps and then click the gear at the top right and then scroll down to Application State, could you take a screenshot of the variables in there? Also, confirm that there is a humidity sensor loaded in the child app.

Line 233 is basically just a comparison between the humidity now to the humidity it was before to come up with a change rate. I can initialize the variable as some bogus value but that would just end up masking some issue you have with the humidity sensor not reporting the humidity.

state.HumidityChangeRate = state.currentHumidity - state.lastHumidity

Here is a screen shot of Application State, what I find weird is that in the debug lines up there, all Humidity related values (update time, value) are all Null ?

Might be the device driver I'm using that causes that, Konke ZigBee Temperature Humidity Sensor Driver

Just pushed out version 1.0.7. Able to reproduce the error now, let me dig into it.

Just pushed out 1.0.9 should fix it now.

1 Like

ok testing, will let you know

Also, from HPM run a repair on the app.

How's the testing going?

Everything seems good, no more errors, trace looks good, Everything is populating normally in the Application State.

LOG Trace

Application State

Thanks!

1 Like

ok I think I found a small bug, the fan turned on automatically via humidity rise as expected, but then after the set amount of time (20 minutes that was set via the the manual switch option) it turned off, logs showed that it was turned off exactly 20 minutes as seen here in both cases we used the shower today...

image

I don't even have a switch set for manual yet nor did I install the internal fan switch either, reason why I'm using a virtual switch to test.

Here is the log trace for the turn on...

Turn on LOGS

And where it turned off...

Turn Off LOGS

Unless I'm missing something, this should not have happened and should have stopped based on humidity or I'm not understanding this option.