I have a lot of stuff besides OH that I want to monitor so my setup is probably more than most average OH users would need to worry about.
I have two tiers of monitoring:
Tier 1: Status that impacts the home automation
There are some cases where OH cares whether or not a device is online or not and it might take action or take a different action based on that status. For example, I’ve a rule that will send a notification when someone tries to trigger the garage door opener but the opener is offline.
In that case I add a status Item to the Equipment and set it to OFF when the device goes offline.
How do I detect it’s offline? It depends.
- Devices integrated with OH over MQTT use the LWT topics to drive the status Item
- Devices that use a binding but are otherwise on the network use the Network binding.
- In cases where a Thing may go OFFLINE when the device is unavailable I use Thing Status Reporting [4.0.0.0;4.9.9.9] to detect and update the status Item accordingly
- Finally, in cases where detecting if it’s offline means that the device just stops reporting for a time I use Threshold Alert and Open Reminder [4.0.0.0;4.9.9.9].
I use Service Status Standalone Widget to report the online statuses of the home automation Equipment.
I also have a rule that sends me an email when a device goes offline (also based on the Threshold and Alert rule template) and another that sends me an email in the morning with a list of all the devices that are still offline.
Tier 2: General service and machine monitoring
To detect when OH itself goes offline, as well as any of the other many services I run (Plex, Nextcloud, Calibre, etc.) I use Zabbix. This runs an agent on my various machines and reports their status. When ever a docker container or service or machine goes offline (or some other system statistic goes out of range) I get an email.
Of course if the VM where Zabbix itself is running goes offline I’m won’t get the email but so far that’s not happened. But I could set up a watchdog to send me an email if I ever get worried about that. I wonder if Proxmox has something I can set up to do that…