Den Hardware-WatchDog der CCU2 für die HomeMatic aktivieren

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Benutzeravatar
AndreO
Beiträge: 205
Registriert: 24.09.2013, 22:11
Wohnort: Die Rhön is schön :-)
Hat sich bedankt: 4 Mal

Re: Den Hardware-WatchDog der CCU2 für die HomeMatic aktivie

Beitrag von AndreO » 28.03.2014, 13:23

Probiers mal so. Hab auch Dein emailtext_inhalt eingebaut. Das kannste dann in der Mail ausgeben mit $values(emailtext_inhalt)
Alles andere hab ich in meinem Text davor geändert

Code: Alles auswählen

load tclrega.so

array set values  [rega_script {
var emailtext_inhalt = dom.GetObject('Mailtext').Value();
var v104 = dom.GetObject("AAAtest").Value();

if(v104.ToInteger() < 351) {string v104a = "Warnung";}
if(v104.ToInteger() > 350) {string v104a = "CuxD-Restart";}
if(v104.ToInteger() > 950) {string v104a = "DomSave";}
if(v104.ToInteger() > 1400) {string v104a = "CCU-Restart";}

}]

set extvarno [lindex $argv 1]

if { $extvarno == "0" } {
  set extvar "Dienste laufen"
}

if { $extvarno == "1" } {
  set extvar "Dienste-Problem rfd abgestürzt"
}

if { $extvarno == "3" } {
  set extvar "Dienste-Problem rega abgestürzt"
}

if { $extvarno == "4" } {
  set extvar "Dienste-Problem CUxD abgestürzt"
}

if { $extvarno == "5" } {
  set extvar "Dienste-Problem CCU-Restart"
}
piVCCU auf RaspberryPi3 (mit Funkmodul), CUL-Stick, 95 wireless Sensoren + Aktoren, 2 FS20-Sensoren + Aktoren

drhwpot
Beiträge: 173
Registriert: 04.11.2012, 11:05
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Den Hardware-WatchDog der CCU2 für die HomeMatic aktivie

Beitrag von drhwpot » 28.03.2014, 22:05

Hallo Andre,

ich habe leider noch eine Frage, ich glaube bei mir funktioniert es noch nicht, da ich keinen Eintrag in Dienste.log bekomme und eine Mail wird auch nicht geschickt.
Zudem habe ich noch ein Problem mit der Zeile vom crontab, Du hast geschrieben: 0,5,10,15,20,25,30,35,40,45,50,55 * * * * sh /usr/local/addons/Watchdog/Dienste.sh
Weshalb hast Du sh und nicht tclsh geschrieben?


Beste Grüße

HP


Meine Programme sind dabei:

Watchdog

Code: Alles auswählen

 #!/bin/tclsh

    load tclrega.so
    array set values [rega_script {

    var Systemzeit = system.Date("%Y-%m-%d %H:%M:%S").Value();
    var WatchdogZeit = dom.GetObject("WatchdogZeit").Value();
    var WatchdogZeitdiff = (Systemzeit.ToInteger() - WatchdogZeit.ToInteger());
    dom.GetObject("AAAtest").State(WatchdogZeitdiff);


    } ]
    set WatchdogZeitdiff $values(WatchdogZeitdiff)
    set Uptime    [exec -- /usr/bin/cut -d. -f1 /proc/uptime]

    if {($WatchdogZeitdiff > 100) && ($Uptime > 600)} {
    exec /etc/config/addons/email/email 09 0
    }
    if {($WatchdogZeitdiff > 350) && ($WatchdogZeitdiff < 700) && ($Uptime > 600)} {
    exec /etc/config/rc.d/cuxdaemon restart
    }
    if {($WatchdogZeitdiff > 950) && ($WatchdogZeitdiff < 1300) && ($Uptime > 600)} {
    exec /usr/local/addons/cuxd/extra/dom_save
    }
    if {$WatchdogZeitdiff > 1400 && ($Uptime > 600)} {
    exec /sbin/reboot
    }
Dienste

Code: Alles auswählen

  #!/bin/bash

    rfd=$(ps aux|grep rfd|grep -v grep|wc -l)
    rs485=$(ps aux|grep 'bin/hs485d '|grep -v grep|wc -l)
    rega=$(ps aux|grep '/bin/ReGaHss'|grep -v grep|wc -l)
    cuxd=$(ps aux|grep '/usr/local/addons/cuxd/cuxd'|grep -v grep|wc -l)
    date=`date +%Y-%m-%d-%H-%M`

    log=/usr/local/addons/Watchdog/Dienste.log

    msg="X"
    mail="0"

    if [ $rfd -lt 1 ]; then
      msg="rfd not running.."
      if [ ! -f /tmp/check ]; then
        /etc/init.d/S60rfd start
      fi
      echo $msg
      echo $(date +"%Y.%m.%d %T") "RFD Check failed $msg" >> $log
      mail="1"
    fi

    #if [ $rs485 -lt 1 ]; then
    #  msg="no rs485 process running"
    #  if [ ! -f /tmp/check ]; then
    #    /etc/init.d/S49hs485d start
    #  fi
    #  echo $msg
    #  echo $(date +"%Y.%m.%d %T") "RS485 Check failed $msg" >> $log
    #fi

    if [ $rega -lt 1 ]; then
      msg="no ReGaHss process running"
      if [ ! -f /tmp/check ]; then
        /etc/init.d/S61HMServer start
      fi
      echo $msg
      echo $(date +"%Y.%m.%d %T") "REGAHSS Check failed $msg" >> $log
      mail="3"
    fi

    if [ $cuxd -lt 1 ]; then
      msg="no cuxd process running"
      if [ ! -f /tmp/check ]; then
        /usr/local/etc/config/rc.d/cuxdaemon start
      fi
      echo $msg
      echo $(date +"%Y.%m.%d %T") "CUXD Check failed $msg" >> $log
      mail="4"
    fi

    if [ $msg == "X" ]; then
      echo rfd: $rfd, rs485: $rs485, ReGaHss: $rega, CUxD: $cuxd daemons running, all fine...
      echo $(date +"%Y.%m.%d %T") "rfd: $rfd, rs485: $rs485, ReGaHss: $rega, CUxD: $cuxd daemons running, all fine..." >> $log
      if [ -f /tmp/check ]; then
        rm /tmp/check
      fi
    else
      # Zur Benachrichtigung ist ein externes mail.php script auf einem linux Rechner erforderlich!
      if [ -f /tmp/check ]; then
        echo $(date +"%Y.%m.%d %T") "Reboot CCU $msg" >> $log
        mail="5"
        exec /etc/config/addons/email/email 09 $mail
        reboot
      else
        echo $(date +"%Y.%m.%d %T") "Restart Service $msg" >> $log
        touch /tmp/check
      fi
    fi

    tclsh /usr/local/addons/Watchdog/Watchdog.sh
TCL

Code: Alles auswählen

  load tclrega.so

    array set values  [rega_script {
    var emailtext_inhalt = dom.GetObject('Mailtext').Value();
    var v104 = dom.GetObject("AAAtest").Value();

    if(v104.ToInteger() < 351) {string v104a = "Warnung";}
    if(v104.ToInteger() > 350) {string v104a = "CuxD-Restart";}
    if(v104.ToInteger() > 950) {string v104a = "DomSave";}
    if(v104.ToInteger() > 1400) {string v104a = "CCU-Restart";}

    }]

set emailtext $values(emailtext_inhalt)    
set extvarno [lindex $argv 1]

    if { $extvarno == "0" } {
      set extvar "Dienste laufen"
    }

    if { $extvarno == "1" } {
      set extvar "Dienste-Problem rfd abgestürzt"
    }

    if { $extvarno == "3" } {
      set extvar "Dienste-Problem rega abgestürzt"
    }

    if { $extvarno == "4" } {
      set extvar "Dienste-Problem CUxD abgestürzt"
    }

    if { $extvarno == "5" } {
      set extvar "Dienste-Problem CCU-Restart"
    }



      
Dateianhänge
Watchdog.PNG
Dienste.PNG
Crontab.PNG
Crontab.PNG (12.15 KiB) 2501 mal betrachtet
1 x RaspberryMatic - tinker board S; 2 x Funk LAN Gateway (HM-LGW-O-TW-W-EU); 2 x HMW-Sen-SC-12-DR; 10 x Rollladenaktor (HM-LC-Bl1PBU-FM); 5 x Schalter ( HM-LC-Sw1PBU-FM); 4 x Schaltaktor (HmIP-BSM); 2 x Dimmer (HM-LC-Dim1TPBU-FM); 8 x Jalousienaktor-IP (HmIP-BBL); 8 x Fensterdrehgriff ( HM-Sec-RHS); 1 x Bewegungsmelder (HM-Sen-MDIR-O); 1 x Außensenor (HM-WDS10-TH-O); 1 x Temperaturfüller ( HM-WDS30-TO); 1 x Wettersensor HmIP-SWO-B; 5 x Schalt-Mess-Steckdose (HMIP-PSM) , CUxD - Timer, CUxD SyS EX, WH-3000 SE Pro, Prowl Push, Serviemeldungen via Push; FW: 3.63.9.20220521 ; Historian V3.0.2;

Benutzeravatar
AndreO
Beiträge: 205
Registriert: 24.09.2013, 22:11
Wohnort: Die Rhön is schön :-)
Hat sich bedankt: 4 Mal

Re: Den Hardware-WatchDog der CCU2 für die HomeMatic aktivie

Beitrag von AndreO » 28.03.2014, 23:06

Hi HP,

Ich hab am Wochenende Besuch und kann jetzt schlecht am PC genau schaun. Ich schaus mir schnellstmöglich an. In der Crontab hats sh, weil's quasi ein anderes Programm ist, was das Skript ausführt. Das stimmt schon so. Siehste auch,an der Programmiersprache. Tclsh ist anders als Bash (also sh)

Beste Grüße,

André

Gesendet von unterwegs
piVCCU auf RaspberryPi3 (mit Funkmodul), CUL-Stick, 95 wireless Sensoren + Aktoren, 2 FS20-Sensoren + Aktoren

Benutzeravatar
AndreO
Beiträge: 205
Registriert: 24.09.2013, 22:11
Wohnort: Die Rhön is schön :-)
Hat sich bedankt: 4 Mal

Re: Den Hardware-WatchDog der CCU2 für die HomeMatic aktivie

Beitrag von AndreO » 30.03.2014, 19:37

Hi HP,

hast Du die Crontab mit WINScp gespeichert? Danach hat sie bei mir jedenfalls auch nicht mehr funktioniert. Ich hab sie dann nochmal mit dem vi geöffnet und gespeichert, und dann gings. Daher änder ich die Crontab seither nur mit dem vi.

Außerdem fehlen in Deiner Crontab Leerzeichen vor, zwischen und nach den Sternchen. Weiß nicht, obs das ausmacht?

So sollte die unterste Zeile bei Dir aussehen:

Code: Alles auswählen

0,5,10,15,20,25,30,35,40,45,50,55 * * * * sh /usr/local/addons/Watchdog/Dienste.sh
Wenn Du mit Putty angemeldet bist kannst auch mal diret so ins schwarze Fenster folgende Zeile schreiben und Enter drücken:

sh /usr/local/addons/Watchdog/Dienste.sh

Das führt dann das Skript aus und Du bekämst ne Fehlermeldung, wenn Dein Skript nen Fehler hätte. Wenns keinen Fehler meldet und der Eintrag in die Dienste.log geschrieben wird, liegts an Deiner Crontab.

Wenn Du unter dem letzten fi und über dem letzten Befehlt "tclsh /usr/local/ ...." in der Dienste.sh folgende Zeile einkopierts:

exec /etc/config/addons/email/email 09 $mail

wird alle 5 Minuten ne Mail verschickt. So kannste dann testen, ob das mit der Mail funktioniert.

Viel Spaß beim Testen!

Bin gespannt, obs bei Dir nun auch klappt.

Beste Grüße,

André
piVCCU auf RaspberryPi3 (mit Funkmodul), CUL-Stick, 95 wireless Sensoren + Aktoren, 2 FS20-Sensoren + Aktoren

drhwpot
Beiträge: 173
Registriert: 04.11.2012, 11:05
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Den Hardware-WatchDog der CCU2 für die HomeMatic aktivie

Beitrag von drhwpot » 30.03.2014, 22:54

Hallo André,

Super, Vielen Dank, ich werde es leider erst in den nächsten Tagen / gegen Ende der Woche testen können, da ich unterwegs bin. Ich werde berichten.

Beste Grüße

HP
1 x RaspberryMatic - tinker board S; 2 x Funk LAN Gateway (HM-LGW-O-TW-W-EU); 2 x HMW-Sen-SC-12-DR; 10 x Rollladenaktor (HM-LC-Bl1PBU-FM); 5 x Schalter ( HM-LC-Sw1PBU-FM); 4 x Schaltaktor (HmIP-BSM); 2 x Dimmer (HM-LC-Dim1TPBU-FM); 8 x Jalousienaktor-IP (HmIP-BBL); 8 x Fensterdrehgriff ( HM-Sec-RHS); 1 x Bewegungsmelder (HM-Sen-MDIR-O); 1 x Außensenor (HM-WDS10-TH-O); 1 x Temperaturfüller ( HM-WDS30-TO); 1 x Wettersensor HmIP-SWO-B; 5 x Schalt-Mess-Steckdose (HMIP-PSM) , CUxD - Timer, CUxD SyS EX, WH-3000 SE Pro, Prowl Push, Serviemeldungen via Push; FW: 3.63.9.20220521 ; Historian V3.0.2;

Benutzeravatar
AndreO
Beiträge: 205
Registriert: 24.09.2013, 22:11
Wohnort: Die Rhön is schön :-)
Hat sich bedankt: 4 Mal

Re: Den Hardware-WatchDog der CCU2 für die HomeMatic aktivie

Beitrag von AndreO » 02.04.2014, 12:04

Hi HP,

Nach 7 Tagen fehlerfreier Uptime hat heute mein Skript zugeschlagen und nach nem Hänger von 452 Sekunden den CUxD neugestartet und somit das System am Laufen gehalten.

Bin gespannt auf Deine Erfahrung :-)

Beste Grüße,

André
piVCCU auf RaspberryPi3 (mit Funkmodul), CUL-Stick, 95 wireless Sensoren + Aktoren, 2 FS20-Sensoren + Aktoren

Benutzeravatar
AndreO
Beiträge: 205
Registriert: 24.09.2013, 22:11
Wohnort: Die Rhön is schön :-)
Hat sich bedankt: 4 Mal

Re: Den Hardware-WatchDog der CCU2 für die HomeMatic aktivie

Beitrag von AndreO » 02.04.2014, 16:37

Gemäß Änderung von Paul sieht meine Dienste.sh nun so aus:

Code: Alles auswählen

#!/bin/bash

rfd=$(ps aux|grep rfd|grep -v grep|wc -l)
rs485=$(ps aux|grep 'bin/hs485d '|grep -v grep|wc -l)
rega=$(ps aux|grep '/bin/ReGaHss'|grep -v grep|wc -l)
cuxd=$(ps aux|grep '/usr/local/addons/cuxd/cuxd'|grep -v grep|wc -l)
date=`date +%Y-%m-%d-%H-%M`

log=/usr/local/addons/Watchdog/Dienste.log

msg="X"
mail="0"

# Daemon für die Funkschnittstelle
if [ $rfd -lt 1 ]; then
  msg="rfd not running.."
  if [ ! -f /tmp/check ]; then
    /etc/init.d/S60rfd start
  fi
  echo $msg
  echo $(date +"%Y.%m.%d %T") "RFD Check failed $msg" >> $log
  mail="1"
fi

# Daemon für das LAN-Gateway
# if [ $rs485 -lt 1 ]; then
#  msg="no rs485 process running"
#  if [ ! -f /tmp/check ]; then
#    /etc/init.d/S49hs485d start
#  fi
#  echo $msg
#  echo $(date +"%Y.%m.%d %T") "RS485 Check failed $msg" >> $log
#fi

# Daemon für Rega (übergeordnete Logikschicht) Konfiguration der Hardwarekomponenten, 
# führt WebUI-Programme aus, handhabt die Abarbeitung von HMScript 
if [ $rega -lt 1 ]; then
  msg="no ReGaHss process running"
  if [ ! -f /tmp/check ]; then
    chroot /hm /bin/sh -c '/etc/init.d/S70ReGaHss start'
  fi
  echo $msg
  echo $(date +"%Y.%m.%d %T") "REGAHSS Check failed $msg" >> $log
  mail="3"
fi

# Daemon für CUxD (wenn installiert)
if [ $cuxd -lt 1 ]; then
  msg="no cuxd process running"
  if [ ! -f /tmp/check ]; then
    /usr/local/etc/config/rc.d/cuxdaemon start
  fi
  echo $msg
  echo $(date +"%Y.%m.%d %T") "CUXD Check failed $msg" >> $log
  mail="4"
fi

if [ $msg == "X" ]; then
  echo rfd: $rfd, rs485: $rs485, ReGaHss: $rega, CUxD: $cuxd daemons running, all fine...
# echo $(date +"%Y.%m.%d %T") "rfd: $rfd, rs485: $rs485, ReGaHss: $rega, CUxD: $cuxd daemons running, all fine..." >> $log
  echo $(date +"%Y.%m.%d %T") "rfd: $rfd, ReGaHss: $rega, CUxD: $cuxd" >> $log
  if [ -f /tmp/check ]; then
    rm /tmp/check
  fi
else
  # Zur Benachrichtigung ist ein externes mail.php script auf einem linux Rechner erforderlich!
  if [ -f /tmp/check ]; then
    echo $(date +"%Y.%m.%d %T") "Reboot CCU $msg" >> $log
    mail="5"
    exec /etc/config/addons/email/email 09 $mail
    reboot
  else
    echo $(date +"%Y.%m.%d %T") "Restart Service $msg" >> $log
    touch /tmp/check
  fi
fi

tclsh /usr/local/addons/Watchdog/Watchdog.sh
piVCCU auf RaspberryPi3 (mit Funkmodul), CUL-Stick, 95 wireless Sensoren + Aktoren, 2 FS20-Sensoren + Aktoren

drhwpot
Beiträge: 173
Registriert: 04.11.2012, 11:05
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Den Hardware-WatchDog der CCU2 für die HomeMatic aktivie

Beitrag von drhwpot » 02.04.2014, 22:21

Hallo Andre,

dies ist doch eine sehr schöne Nachricht! Kannst Du feststellen was das Problem war, wo gab es den Fehler? Ich kann erst am Wochenende mit dem Umbau beginnen, da ich noch unterwegs bin.

Beste Grüße

HP
1 x RaspberryMatic - tinker board S; 2 x Funk LAN Gateway (HM-LGW-O-TW-W-EU); 2 x HMW-Sen-SC-12-DR; 10 x Rollladenaktor (HM-LC-Bl1PBU-FM); 5 x Schalter ( HM-LC-Sw1PBU-FM); 4 x Schaltaktor (HmIP-BSM); 2 x Dimmer (HM-LC-Dim1TPBU-FM); 8 x Jalousienaktor-IP (HmIP-BBL); 8 x Fensterdrehgriff ( HM-Sec-RHS); 1 x Bewegungsmelder (HM-Sen-MDIR-O); 1 x Außensenor (HM-WDS10-TH-O); 1 x Temperaturfüller ( HM-WDS30-TO); 1 x Wettersensor HmIP-SWO-B; 5 x Schalt-Mess-Steckdose (HMIP-PSM) , CUxD - Timer, CUxD SyS EX, WH-3000 SE Pro, Prowl Push, Serviemeldungen via Push; FW: 3.63.9.20220521 ; Historian V3.0.2;

Benutzeravatar
AndreO
Beiträge: 205
Registriert: 24.09.2013, 22:11
Wohnort: Die Rhön is schön :-)
Hat sich bedankt: 4 Mal

Re: Den Hardware-WatchDog der CCU2 für die HomeMatic aktivie

Beitrag von AndreO » 02.04.2014, 22:31

Hallo HP,

Paul hat lediglich bei Fehler nen falschen Dienst gestartet. Also kein Fehler, der Dein Problem behebt. Ich denke bei Dir liegt's an der Crontab, aber dazu hatte ich Dir ja geschrieben. Bin auf Dein Ergebnis am Wochenende gespannt. Bei mir läuft's bisher prima.

Beste Grüße,

André

Gesendet von unterwegs
piVCCU auf RaspberryPi3 (mit Funkmodul), CUL-Stick, 95 wireless Sensoren + Aktoren, 2 FS20-Sensoren + Aktoren

drhwpot
Beiträge: 173
Registriert: 04.11.2012, 11:05
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Den Hardware-WatchDog der CCU2 für die HomeMatic aktivie

Beitrag von drhwpot » 02.04.2014, 22:48

Hallo André,

meine Frage zum Fehler bezog sich nicht auf die Änderung in der Datei, sondern auf den Fehler, der den Watchdog auf den Plan gerufen hat.

Beste Grüße

HP
1 x RaspberryMatic - tinker board S; 2 x Funk LAN Gateway (HM-LGW-O-TW-W-EU); 2 x HMW-Sen-SC-12-DR; 10 x Rollladenaktor (HM-LC-Bl1PBU-FM); 5 x Schalter ( HM-LC-Sw1PBU-FM); 4 x Schaltaktor (HmIP-BSM); 2 x Dimmer (HM-LC-Dim1TPBU-FM); 8 x Jalousienaktor-IP (HmIP-BBL); 8 x Fensterdrehgriff ( HM-Sec-RHS); 1 x Bewegungsmelder (HM-Sen-MDIR-O); 1 x Außensenor (HM-WDS10-TH-O); 1 x Temperaturfüller ( HM-WDS30-TO); 1 x Wettersensor HmIP-SWO-B; 5 x Schalt-Mess-Steckdose (HMIP-PSM) , CUxD - Timer, CUxD SyS EX, WH-3000 SE Pro, Prowl Push, Serviemeldungen via Push; FW: 3.63.9.20220521 ; Historian V3.0.2;

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“