#!/bin/sh
#
# $Id$
#
# Simple watchdog solution to monitor and restart fhem on Linux.
#
# Add this define to the fhem configuration:
#  define at_FhemPulse at +*00:10 {system("/bin/date +%s > /opt/fhem/log/fhem_pulse.log")}
#
# Add a cron job that runs every ten minutes -> crontab -e
#  */10 * * * * /opt/fhem/contrib/fhem_watchdog.sh


LOGFILE="/opt/fhem/log/fhem_pulse.log"

if [ `systemctl status fhem|grep inactive|wc -l` -eq "0" ]; then
  # fhem service was started
  
  if [ ! -e "${LOGFILE}" ]; then
    # There is no pulse log file
    systemctl restart fhem
    exit 0
  fi
  if [ $(expr $(/bin/date +%s) - $(cat ${LOGFILE})) -gt 900 ]; then
    # Last pulse is older than 15min.
    systemctl restart fhem
    exit 0
  fi
fi

exit 0