[APP][Pro][SHS] Device Watchdog - Battery, connectivity & staleness monitoring for all your devices

You’re right that the “unavailable delay” setting doesn’t help here - that one’s only for reachability, not the battery %. What’s actually happening: battery is only sampled once per scan (there’s no realtime push for it like there is for connectivity), so if a scan happens to land right on that transient 1% dip, it gets flagged on the spot.

Just shipped exactly what you’re after in v1.9.22 (live now): a new “Delay before low battery counts” setting - Settings tab (global) plus a per-device override under “Details”, same pattern as the existing unavailable-delay. Default is 0 (instant, nothing changes unless you opt in). Set it to a few minutes and a device only counts as a confirmed problem once it’s been low continuously since first spotted - a one-off 1% blip that recovers before the delay elapses never fires anything.

On your exact wording - I kept the raw battery %/status you see in the Settings UI and the widget fully live/instant either way, exactly like you asked (“in your app/widget one will see the detection time”) - only the alerting side (Flow trigger, timeline entry, log, virtual device counter) waits for the delay.

Let me know how it works out once you’ve got it!

Very nice app!

Two questions:

When a device is paused, it would be good to be able to reset it’s flags (if any). A then card or an option on the pause cards?

Observation: Switchbot bot activates on ’reachable test’ and pushes it’s button. But maybe that a phenomena i their app?

Am happy sofar. Will keep you posted.
Thanks

Hi Jan-Erik,

Thanks, glad you’re finding it useful! Both are sorted now:

  1. Good catch - you’re right that pausing via a Flow didn’t force an immediate re-check, so a device’s counts/alarm could stay stale until the next scan. Shipped exactly what you asked for in v1.9.23: both “Pause device until date” Flow actions now have a “Rescan immediately” checkbox - turn it on and the pause takes full effect right away (counts, virtual device alarm, everything), instead of waiting for the next scheduled scan. Off by default, so nothing changes unless you opt in.

(Side note if you’re curious: pausing by hand in the Settings UI already force-rescans automatically after every save - it was specifically the Flow-card path that skipped it, which is exactly what you flagged.)

  1. The SwitchBot Bot thing - confirmed, that’s the SwitchBot driver, not this app: the Bot’s “onoff” isn’t a persisted state but a one-shot “press” command, so any write to it (even resending the same value) triggers the button again. My reachability test resends a device’s current value, which is a safe no-op for basically everything else with onoff/dim/etc., just not for a “momentary action” device like this one. Best to avoid the Test button (and skip “Auto-test before flagging”) for it specifically. Added both of these to the FAQ in post #2 in case anyone else runs into them.

Cheers

Thanks a lot!

Hi Rick,

I noticed that in the VirtualDevice (App)—even though I’ve pressed the switch button—it’s still showing as “not reporting.” Do you have any idea why? I’ve defined the switch more than 100 times, and now the overview is a bit confusing.

image

Developer-Tools > Device

Hi Chris,

Thanks for the screenshots — they show exactly what’s happening.

Those are virtual buttons from the Virtual Devices app (class button, driver …virtual:virtual_switch). A button-class device has a single button capability with no stored state — you can see it in your Developer Tools screenshot: type boolean, value null, “Last Changed” empty. Pressing it fires a Flow trigger, but Homey never writes any “last updated” timestamp for it.

Device Watchdog’s “not reporting” check works purely off the newest capability-update timestamp Homey reports for a device. For a pure button device there is no such timestamp — ever — so it lands in “not reporting” and stays there no matter how often you press it. The “Updated: no data” in the list is exactly that: no timestamp on any capability. “Count last seen” won’t rescue it either, virtual devices don’t move that field.

(The one exception in your screenshot, “Wohnen 11 FrontLED”, is a real on/off virtual switch — its timestamp is real, just genuinely ~2 months old. Re-sending a virtual switch the value it already holds doesn’t refresh the timestamp; you’d have to actually flip it.)

Two things:

For now: take those virtual devices out of monitoring — the toggle next to each device, or “Ignore zone” on the whole zone, which is the quicker route for 100+ of them.

Next version: I’ll make Watchdog recognise devices that structurally can’t ever report capability data (only a button capability) and stop counting them as “not reporting” at all, so they don’t clutter the overview. I’m also looking at a bulk “ignore all devices from app X” action, since flipping 100 toggles by hand isn’t reasonable.

That would have been my suggestion, too :wink:

plz try out 1.9.25 (tested it with my VDs) :slight_smile:

Great—after restarting a few times and giving it a gentle nudge (using the test button), most of the devices are now working properly.

I’ll take a look at the rest later, because right now I have to focus on my second job (Food & Beverage Manager)—otherwise, things will go wrong at home.:grin:.

Wasn’t happy with the growing options you could do in the details tab so i put a little structure in there → 1.9.26 is live now

Sali @Rick_D

Sorry, it took a little longer than I thought. But I did find some apps that, like the VirtualDevice app, don’t work properly.

Chris





will check it out after my food & beverage duty :wink: thx for the screenshots! that helps

Fixed the Tap Dial in v1.9.27, just published: button+battery-only remotes no longer get flagged “not reporting” just for an old battery reading (they only report on a press).

The virtual switches (Test Fenster, Gang Szenen, Geschirrspühler) are correct as-is — they’re real on/off switches that were simply never toggled, so “no data” is accurate. If you don’t want them monitored, use Details → bulk action to stop monitoring by app/class.

Edit: if you have further issues please add the screenshots from the developer portal with the capabilities too (https://tools.developer.homey.app/)
e.g.

these are the values the app is checking for the “not reporting” → “last changed”

gruess

I don’t want to bother you, but they don’t have one. I’ll just deactivate it myself, though.

But hey, thanks a lot for the adjustments
Chris



yeah no “last changed”. But i don’t know what you are doing with those devices. the values are NULL.. i also have virtual devices and i’m using the same app. but there are always values

other examples

most of my VD are not watched in my setup because in my opinion watching most of them makes no sense. they are special modes (e.g. guest mode that some lights don’t go on outside when there is motion, …).

Edit

My setup - most of the not monitored are VDs or others where there are no values to track or im using them too rarely

Hey, no problem—I only need the device to display (Geschirrspüler) or control my flows (Gang Szenen) anyway.

I still have a problem with the Whatsapp device in Device Watchdog.

From time to time in gives an error ‘Not reporting’. No messages are given anymore.

Can you please advice what to do? See also attached screenshot

Found it — your WhatsApp device only has one capability (send_data), which is write-only and never gets a “last changed” timestamp, so Device Watchdog kept flagging it as stale forever with nothing you could’ve done about it. Same root cause as the Tap Dial fix, just for a capability name that couldn’t be predicted in advance.

Fixed in v1.9.29, just published: any capability the Homey API itself marks as write-only (getable: false) is now excluded from the staleness check, whatever app it comes from. Update and it should stop flagging that device.

Manu thanks, I will check!