FHEM Forum

FHEM => Sonstiges => Thema gestartet von: cwagner am 06 Dezember 2013, 23:30:41

Titel: OWX kann FHEM abschiessen ?!?
Beitrag von: cwagner am 06 Dezember 2013, 23:30:41
Guten Tag,

habe jetzt begonnen, mit 1-Wire zu experimentieren. Dabei fiel mir auf, dass ich mit einem definierten OWX Fhem dann abschießen kann, wenn ich ein get <OWX> alarms über Kommandozeile oder im Web-Interface eingebe.
Auf der Telnet-Konsole sehe ich diese Meldung:
ZitatCan't use an undefined value as an ARRAY reference at ./FHEM/00_OWX.pm line 1266.

Grüße

Christian Wagner
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 07 Dezember 2013, 11:43:26
Yep. Bei mir auch  >:(

Leider ist die FHEM-Architektur so aufgebaut, dass der Server mit nur einem Thread läuft. Damit kann jedes Device (oder auch eigene Befehle, die man z.B. in einem AT-Befehl verwendet) potentiel den ganzen Server abschiessen.

Mit dem OWX hatte ich auch andere Schwierigkeiten: mit der zunehmnden Anzahl der Sensoren (DS18b20), war der Bus immer instabieler geworden, was dazu führte, dass FHEM zwar nicht unbedingt gleich anstürtzte, jedoch öffters mal für einige Minuter 'einfror'. Das Problem ist mittlerweile zwar weitgehend elektrisch gelöst (Filter). Damit die Verfügbarkeit von FHEM immer gewährleistet bleibt, habe ich eine Art Watchdog geschrieben. Wer Interesse hatl, kann das auf meiner Seite nachlesen: http://s6z.de/cms/index.php/homeautomation/fhem/23-fhem-watchdog

LG

Alexander
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: cwagner am 07 Dezember 2013, 16:16:39
Dein Watchdog ist ein spannendes Projekt - bisher habe ich sicherheitshalber an kritischen Stellen mit mechanischen Grenztwertwächtern dafür gesorgt, dass ein Ausfall von Fhem abgefangen wird.

Grüße
Christian
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Petrosilius Zwackelmann am 07 Dezember 2013, 17:50:15
Auch ich finde deinen Watchdog interessant...
Welche Files aud deinem Github werden denn nun letzlich verwendet???

https://github.com/hexenmeister/MyFHEM/blob/master/watchdogloop.sh
https://github.com/hexenmeister/MyFHEM/blob/master/runwatchdog.sh
https://github.com/hexenmeister/MyFHEM/blob/master/killwatchdog.sh
https://github.com/hexenmeister/MyFHEM/blob/master/startfhem
https://github.com/hexenmeister/MyFHEM/blob/master/stopfhem
https://github.com/hexenmeister/MyFHEM/blob/master/FHEM/99_myUtils.pm

https://github.com/hexenmeister/MyFHEM/blob/master/www/gplot/myServerHeartbeat.gplot
https://github.com/hexenmeister/MyFHEM/blob/master/www/gplot/myWatchdog.gplot

https://github.com/hexenmeister/MyFHEM/blob/master/etc_init.d_fhem_script.txt


In deinem etc_init.d_fhem_script.txt wird startfhem aufgerufen darin wieder runfhem.sh dieses ist aber nicht abgelegt.
Vielleicht kannst du da noch eine kleine Hilfestellung geben.

Ich habe hisher keine Erfahrung mit shell skripen...
Der FHEM Teil mit dem Zaehler und LOG Plot etc geht natürlich gleich aber wie starte ich nun das shellskipt?
Mein Startfile auf meinem QNAP sieht derzeit so aus...
[/opt/etc/init.d] # vi S45fhem
#!/bin/sh
#
# Start the FHEM Home Automation server daemon
#

    start() {
        echo -n "Starting FHEM Server: "
         /opt/bin/fhem.pl /opt/etc/fhem.cfg
        echo "started"
        return
    }
    stop() {
        echo "Shutting down FHEM Server: "
         /opt/bin/killall named 2>/dev/null
        return
    }
    restart() {
        stop
        start
    }

    case "$1" in
      start)
            start
            ;;
      stop)
            stop
            ;;
      restart|reload)
            restart
            ;;
      *)
            echo "Usage: $0 {start|stop|restart}"
            exit 1
    esac
    exit $?


Danke Manuel
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 07 Dezember 2013, 20:53:03
Hallo,

ich kann gern versuchen zu helfen, den Watchdog zum Laufen zu bekommen. Ist zwar eher für Raspberry Pi optimiert, sollte aber mit minimalsten Anpassungen auch auf anderen Unix-basierten Systemen funktionieren.

Das Ganze besteht aus zwei Teilen. Einmal eine Log-Datei in FHEM, die per AT-Befehl minütlich beschrieben wird. Demgegenüber steht ein Bash-Script, das in einer Schleife prüft, wann die letzte 'Lebensmeldung' von FHEM vorlag. Unterbleibt diese länger als 5 Minuten, wird die ggf. vorhandene FHEM-Instanz gekillt und eine neie gestartet. Dann gibt es not etwas Visualisierung mit FHEM, ist aber nicht wesentlich.

Zum Installieren müssen zunächt einige Dateien aus dem GitHub geholt werden. Sie gehören ins FHEM-Hauptverzeichnis.
Bis auf die letzten zwei sollten die Scripte nicht manuell gerufen werden.
Auchtung! Fast alle diese Scripte haben ein fest 'verdrahtetes' Home-Verzeichnis: home=/opt/fhem
Bitte ggf. anpassen. Ich werde das vielleicht bei Gelegenheit umbauen und etwas flexibler gestallten.

Die Datei etc_init.d_fhem_script.txt ist kein ausführbares Script! Es hält den Inhalt des FHEM-Verwaltungs-Scriptes /etc/init.d/fhem, damit ich alles an einer Stelle (in GutHub) habe. Es ist nur ein Beispiel, das zeigt, wie man den Startscript umbauen soll, damit beim Start von Betriebssystem auch Watchdog hochgefahren wird. Beim Start/Stop-Vorgang sollen die startfhem / stopfhem Scripte genutzt werden. Das ist alles.

Bei den Scripten ist sicherzustellen, dass diese ausführbar sind: chmod a+x <Dateiname>
Und sie sollten einem passenden Benutzer gehören (z.B. fhem): chown fhen:fhen <Dateiname>
Der Benutzer, unter dessen Account FHEM ausgeführt wird, muss in die sudo-Gruppe. Damit stellen die Scripte sicher, dass sie die Prozesse in jedem Fall benden können: sudo usermod -aG sudo fhem
Und noch muss dieser User diese Scripte ohne Abfrage mit hohen Rechten ausführen dürfen. Dafür muss die Datei /etc/sudoers ergänzt werden:
fhem ALL=(ALL) NOPASSWD: /opt/fhem/runwatchdog.sh, /opt/fhem/killwatchdog.sh, /opt/fhem/watchdogloop.sh, /opt/fhem/runfhem.sh, /opt/fhem/killfhem.sh
Bitte vorsichtig mit dieser Datei! Das sind sicherheitsrelevante Einstellungen! Ist sie kaputt und auch noch der Root-User deaktiviert, hat man sich ausgesperrt.

Bevor man Watchdog aktiviert, sollte man sicherstellen, dass FHEM-Teil richtig läuft, ansonsten wird der FHEM alle 5 Minuten immer und immer wieder restartet.

in fhem.cfg wird folgendes ergäntz:

# Definition eines Dummy-Objektes fuer 'Alive'-Meldungen
define NN_TE_DMST01.Server_Heartbeat dummy

# Protokoliert Zeitpunkt der letzten Änderung (in Objekt-Eigenshaften)
attr NN_TE_DMST01.Server_Heartbeat userReadings lastChange { CurrentTime() }

# Definition der Log-Datei
define FileLog_NN_TE_DMST01.Server_Heartbeat FileLog ./log/NN_TE_DMST01.Server_Heartbeat-%Y-%m.log NN_TE_DMST01.Server_Heartbeat
attr FileLog_NN_TE_DMST01.Server_Heartbeat logtype myServerHeartbeat:Plot,text

# Visualisierung mittels eines Diagramms
define 0.wlHeartbeat SVG FileLog_NN_TE_DMST01.Server_Heartbeat:myServerHeartbeat:CURRENT

# Routine zur regelmaessigen Änderungen des Wertes des Dummy-Objektes
define tickHeartbeat at +*00:01:00 {tickHeartbeat('NN_TE_DMST01.Server_Heartbeat');;}
attr tickHeartbeat alignTime 00:00

# Log-Datei des Watchdogscriptes verfügbar machen
define FileLog_wathdog FileLog ./log/watchdog.log fakelog

# Visualisierung für Watchdog-Log
define 0.wlWatchdog SVG FileLog_wathdog:myWatchdog:CURRENT


Hier wird eine Methode 'tickHeartbeat' genutzt, die irgendwo abgelegt werden muss. Bei mir liegt diese in der Datei <FHEM-Root>/FHEM/99_MyUtils.pm
Dort ist folgendes hinzufügen:

# Liefert aktueller Zeitstempel
sub
CurrentTime()
{
  return strftime("%H:%M:%S", localtime());
}

# --- server heartbeat / watchdog ---
sub tickHeartbeat($)
{
    my ($device) = @_;
    my $v = _getDeviceValueNumeric($device);
    $v = $v+1;
    if($v>=60) {$v=0;}
    fhem("set $device $v");
}

# Liefert den aktuelen numerisschen Wert eines Ger?tezustandes.
# Setzt bei Bedarf die symbolische Werte (up, down) in ihre
# Zahlenwertrepresentationen um.
sub
_getDeviceValueNumeric($)
{
  return _convertSymParams(Value($_[0]));
}

# Setzt Parameter-Werte fuer symbolische Werte in ihre Zahlenwerte um.
# up = 100, down = 0
sub
_convertSymParams($)
{
  my $value = $_[0];
  # Endwerte und andere symbolischen Konstanten beruecksichtigen,
  # Gross-/Kleinschreibung ignorieren
  $value = lc($value);
  if($value eq "down" || $value eq "runter" || $value eq "off") { return 0; }
  elsif($value eq "up" || $value eq "hoch" || $value eq "on") { return 100; }
  elsif($value =~ /schatten.*/) { return 80; }
  elsif($value =~ /halb.*/ ) { return 60; }
  # Numerische Werte erwartet
  my $ivalue = int($value);
  if($ivalue < 0) { return 0; }
  elsif($ivalue > 100) { return 100; }
  elsif($ivalue > 0) { return $ivalue; }
  # Pruefung, ob bei 0 da wirklich eine Nummer war
  if($value eq $ivalue or $value eq "0 %" or $value eq "0%") { return 0; }
  # Default-Fall: Bei unbekannten Werten soll Rollo offen sein
  return 100;
}


Man könnte das auch einfacher realisieren, fand ich aber schöner fürs Plot.

Dann haben wir nur noch
und
Das sind die Plots und gehören natürlich nach <FHEM-Root>/www/gplot


So, da habe ich bestimmt noch etwas vergessen.  ;)
Bitte ausprobieren und ggf. melden, wenns nicht laufen will.

Grüße,

Alexander

Links:
http://s6z.de/cms/index.php/homeautomation/fhem/23-fhem-watchdog
https://github.com/hexenmeister/MyFHEM
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Petrosilius Zwackelmann am 07 Dezember 2013, 22:10:13
Hallo Hexenmeister,

danke für die Bereitschaft zur Unterstützung... ich befürchte ich muss diese noch etwas strapazieren.

- Ich habe alle aufgezählten Files im Haupfvereichnis (sprich gleiche ebene wie der Ordner FHEM ... richtig?)
- gleichen Pfad habe ich in den Files als Homverzeichnis angelegt (sprich mit cd Pfad komme ich genau auf diese Ebende um alle Skripte zu sehen)
- Die Files sind allesamt ausführbar gemacht wie von dir beschrieben ...
- Der FHEM Teil mit Zaehler, Plot, Log funktioniert...
- Mein fhem läuft unter dem Benutzer admin, vielleicht nicht so toll aber zumindest habe ich damit kein Zugriffsrechteproblem beim Ausführen der Skripte

Bei dem Versuch zum Beispiel startfhem auszuführen kommt die Fehlermeldung dass dieses File oder Verzeichnis nicht existiert.
Dies sowohl bei dem Befehl
stopfhem als auch bei
sh stopfhem

Muss ich ggf.
#!/bin/sh
anpassen oder ersteinmal neu starten?

Gruß
Manuel


Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 07 Dezember 2013, 22:45:37
Hallo Manuel,

bis jetzt klingt alles richtig, bis auf den Benutzer "admin", so einen kenne ich nicht. Unter Unix heißt dieser doch root? Aber egal erstmal, nehmen wir an, dieser Account hat genau die richtigen Rehte.

Wie hast Du de Scripte gestartet? Mit "startfhem" wird es nicht klappen. Probiere ". startfhem" oder "./startfhem"

Edit: Habe jetzt aufmerksamer gelesen. Mit "sh startfhem" sollte es eigentlich klappen. Was genau wird den ausgegeben? Ich weiß nicht, wie bei QNAP das System aufgebaut wird und ob eine Anpassung von "#!/bin/sh" nötig sein kann. Was steht in anderen Scripten, die zum System gehören?


Gruß,

Alexander
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Petrosilius Zwackelmann am 07 Dezember 2013, 23:06:27
Hallo Hexenmeister,

es tut sich was...
War wohl ein Schreibfehler ... sh startfhem funktioniert.

Mit dem Rückgabewert gibt es nur ein Problem.
Da dieser im aukommentierten Teil definiert wird... probiere nun mal mit return 1

#return $RETVAL
return 1


[/share/Public/fhem-5.4] # sh startfhem
starting watchdog
starting watchdog
fhem is allready running. skipping
startfhem: line 34: return: can only `return' from a function or sourced script
[/share/Public/fhem-5.4] # FHEM running
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 45 Sekunden
Server alive

[/share/Public/fhem-5.4] # Server dead
restarting FHEM
watchdog already running. skipping
fhem is allready running. skipping

Gruß Manuel
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 07 Dezember 2013, 23:32:11
Hallo Manuel,

wirf die Return-Anweisung ganz raus, ist hier nicht wesentlich (und funktioniert je so nicht).
Script scheint auch die 'Lebenszeichen' des FHEM-Servers zu erkennen.
Bei der letzten Meldung, hast Du den FHEM selbst beendet, oder wieso wurde dieser als 'dead' eingestufft?
Es scheint mit dem Beenden auch nicht funktioniert zu haben. Ein Rechteproblem? Kann der Benutzer, unter dessen Rechten die Scripte laufen, den FHEM stoppen? Ist er in die sudo-Gruppe aufgenommen und sudoers entsprechend ergänzt?

Alternativ kann man versuchen aus den startfhem und stopfhem Schripten die sudos zu entfernen. Wenn die Benutzer richtige Rechte haben, wird es auch so reichen, ohne sudo-Gruppe etc.

LG

Alexander
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Petrosilius Zwackelmann am 08 Dezember 2013, 00:32:50
Hallo Alexander,

zu meinem Status:

die Return Anweisung ist raus ...
die Sudo Geschichte ist raus ...
Das Lebenszeichen wird denke ich noch nicht richtig ausgewertet... das "dead" kam nicht durch ein manuelles Beenden.

starten geht....

[/share/Public/fhem-5.4] # sh runfhem.sh
Starting fhem...
[/share/Public/fhem-5.4] #

beenden geht ... mit fehlermeldung - fhem ist aber "gekillt"
[/share/Public/fhem-5.4] # sh killfhem.sh
Stop fhem aus killfhem skript
Can't use an undefined value as a symbol reference at /share/Public/fhem-5.4/FHEM/Blocking.pm line 126.
Can't use an undefined value as a symbol reference at /share/Public/fhem-5.4/FHEM/Blocking.pm line 126.
[/share/Public/fhem-5.4] #



[/share/Public/fhem-5.4] # sh runwatchdog.sh
starting watchdog
runwatchdog.sh: line 42: return: can only `return' from a function or sourced script
[/share/Public/fhem-5.4] # starting watchdog
FHEM running
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 31 Sekunden
Server alive
substr outside of string at /share/Public/fhem-5.4/FHEM/21_OWCOUNT.pm line 1235.
Use of uninitialized value in split at /share/Public/fhem-5.4/FHEM/21_OWCOUNT.pm line 1235.

[/share/Public/fhem-5.4] # sh killwatchdog.sh
Stop watchdog


[/share/Public/fhem-5.4] # sh runwatchdog.sh
starting watchdog
[/share/Public/fhem-5.4] # starting watchdog
FHEM running
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 15 Sekunden
Server alive

./watchdogloop.sh: line 68: test: in: binary operator expected
Server dead
./watchdogloop.sh: line 160: test: in: binary operator expected
restarting FHEM
watchdog already running. skipping
fhem is allready running. skipping


Zeile 68:    if test $pid
Zeile 160:  if test $pid


Übrigens das watchdog.log ist leer.

Gruß Manuel


Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 08 Dezember 2013, 01:09:59
Hi!

Das ist schon etwas sonderbar, wo stehen denn diese Meldungen wie die mit 'Blocking.pm'?
Die return-Anweisungen können auch alle restlichen raus.

Die watchdog.log sollte es gar nicht geben, stattdessen sollte sie watchdog-2013-12.log heißen.
Gehen die Anweisungen wie date +"%Y" auf der Konsole? Wenn nicht, würde es erklären, warum der Script auch NN_TE_DMST01.Server_Heartbeat-2013-12.log nicht finden kann. Dann müsste man klären, mit welchen Befehl man auf Deinem System zu den Angaben für Zeit/Datum kommt. Allerdings wäre mir dann nicht klar, warum manchmal Alive-Meldungen doch kommen...

Und dann noch das offensichtliche Problem mit dem test. Oder mit dem 'pid=$(ps -ef | grep -v grep | grep fhem.pl | cut -c10-14);' davor.
Bei mir liefert ps -ef | grep -v grep | grep fhem.pl | cut -c10-14 die PID von FHEM (oder eben nichts, wenns nicht läuft). Was kommt bei dir? Vermuttlich steht in Deiner Ausgabe (ps -ef | grep -v grep | grep fhem.pl) die PID nicht an den Stellen 10-14. Ist leider Systemspezifisch, war bei meiner FritzBox auch anders (Dort musste es ' ps | grep -v grep | grep fhem.pl | cut -c2-6' heißen). Müsstest Du anpassen.

Ich hoffe, wir kommen der Lösung etwas näher ;)

Grüße,

Alexander
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Petrosilius Zwackelmann am 08 Dezember 2013, 10:09:18
Hallo Alexander,

so sonderbar ist es gar nicht...
Ich hatte einige Zeilen in gelöscht unter anderem die von Blocking pm, da ich dachte diese hätten nichts mit dem Thema zu tun.
Die Grep Zeile muss ich tatsächlich anpassen, da wird sonstwas zurückgelesen.

Ich denke dann wird es werden....
Ich kann mich erst in einer Woche wieder melden.
Bis dahin, danke für die Hilfe.

Gruß Manuel

Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 08 Dezember 2013, 13:24:33
Hi Manuel,

wir werden das schon zum Fliegen bekommen ;)

Bis dann,

Alexander
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: ntruchsess am 08 Dezember 2013, 23:08:33
Zitat von: cwagner am 06 Dezember 2013, 23:30:41
wenn ich ein get <OWX> alarms über Kommandozeile oder im Web-Interface eingebe.
Auf der Telnet-Konsole sehe ich diese Meldung:

Can't use an undefined value as an ARRAY reference at ./FHEM/00_OWX.pm line 1266.

Danke für's reporten. Habs gerade gefixed uns ins SVN eingecheckt.

- Norbert
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Petrosilius Zwackelmann am 15 Dezember 2013, 15:27:52
Hallo Alexander,

nun bin ich einen Schritt weiter...
- Die grep Abweisung ist angepasst und liefert die gewünschte PID zurück...
- die Skripte sind in dem Autostartprozess von meinem QNAP eingebaut...

Die eigentliche Funktion ist nun auch gegeben ein manuelles "shutdown" führt zu einem "Server dead" Erkennung und zu einem Neustart der fhem-Instanz.
Soweit so gut, aber die auch im laufenden Betrieb kommt immer wieder eine "Server dead" Meldung warum das so ist ist mir nicht klar....
Hast du hier noch einen Tipp für mich?


Server dead
restarting FHEM
watchdog already running. skipping
fhem is allready running. skipping
Server dead
restarting FHEM
watchdog already running. skipping
fhem is allready running. skipping
Server dead
restarting FHEM
watchdog already running. skipping
fhem is allready running. skipping
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 50 Sekunden
Server alive
Server dead
restarting FHEM
watchdog already running. skipping
fhem is allready running. skipping
Server dead
restarting FHEM
watchdog already running. skipping
fhem is allready running. skipping
Server dead
restarting FHEM
watchdog already running. skipping
fhem is allready running. skipping
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 53 Sekunden
Server alive
Server dead
restarting FHEM
watchdog already running. skipping
fhem is allready running. skipping
Server dead
restarting FHEM
watchdog already running. skipping
fhem is allready running. skipping
Server dead
restarting FHEM
watchdog already running. skipping
fhem is allready running. skipping
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 53 Sekunden
Server alive
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 53 Sekunden
Server alive
Server dead
restarting FHEM
watchdog already running. skipping
fhem is allready running. skipping
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 53 Sekunden
Server alive
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 53 Sekunden
Server alive
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 53 Sekunden
Server alive
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 53 Sekunden
Server alive
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 51 Sekunden
Server alive
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 52 Sekunden
Server alive
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 52 Sekunden
Server alive
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 52 Sekunden
Server alive
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 52 Sekunden
Server alive
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 52 Sekunden
Server alive
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 52 Sekunden
Server alive
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 52 Sekunden
Server alive
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 52 Sekunden
Server alive
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 52 Sekunden
Server alive
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 52 Sekunden
Server alive
Server dead
restarting FHEM
watchdog already running. skipping
fhem is allready running. skipping
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 52 Sekunden
Server alive
Server dead
restarting FHEM
watchdog already running. skipping
fhem is allready running. skipping
Server dead
restarting FHEM
watchdog already running. skipping
fhem is allready running. skipping
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 55 Sekunden
Server alive
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 55 Sekunden
Server alive
Server dead
restarting FHEM
watchdog already running. skipping
fhem is allready running. skipping
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 55 Sekunden
Server alive
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 55 Sekunden
Server alive
Server dead
restarting FHEM
watchdog already running. skipping
fhem is allready running. skipping
Server dead
restarting FHEM
watchdog already running. skipping
fhem is allready running. skipping
Server dead
restarting FHEM
watchdog already running. skipping
fhem is allready running. skipping
Server dead
restarting FHEM
watchdog already running. skipping
fhem is allready running. skipping
Server dead
restarting FHEM
watchdog already running. skipping
fhem is allready running. skipping
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 56 Sekunden
Server alive
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 56 Sekunden
Server alive
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 56 Sekunden
Server alive
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 56 Sekunden
Server alive
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 56 Sekunden
Server alive
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 56 Sekunden
Server alive
FHEM-Watchdog: Letzte 'Alive'-Meldung vor 56 Sekunden
Server alive
Server dead


Zweites Problemchen ist die graphische Darstellung der Watchdogfunktion. Hier bekomme ich keine Anzeige.
Mein watchdog.log ist leer. Hier sollten die Alive Meldungen gespeichert werden, oder?
Wie dies allerdings bewerkstelligt wird ist mir noch nicht ganz klar.

Gruß Manuel



Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 15 Dezember 2013, 16:16:35
Hallo Manuel,

warum immer mal wieder eine 'server ddead' Meldung kommt, sieht man aus dem Plot ('grüne Säge'). Da, wo die Zacken Stufen haben, hatte Dein FHEM eine 'Gedenkpause' eingelegt. Scheint so, dass Du relativ heftige 'freezes' hast. Schau Dir den Log an, da müssten relativ lange Pausen zu finden sein, diese interpretiert Watchdog als Server-Ausfall. Das wäre kein Problem des Watchdogs, sondern in Deiner Installation zu suchen.
Installiere mal 99_perfmon.pm von hier http://forum.fhem.de/index.php/topic,16347.0.html und schaue Dir Logs an. Vielleicht kommst Du dann der Ursache näher.
Bis dahin kannst Du in watchdogloop.sh die Variable maxTime erhöhen, damit Watchdog Dein FHEM nicht zu früh killt.

Zu der leeren watchdog.log:
Die Meldungen generiert watchdogloop.sh in der Methode log() (Zeile 48). Dort wird der Dateiname zusamengesetzt (z.B: ./log/watchdog-2013-12.log) und die Meldungen geschrieben (echo "$currentTimeStr fhem_server $1" >> $log;):

2013-12-15_16:04:10 fhem_server V: 10 S: alive MSG: FHEM Server alive
2013-12-15_16:05:10 fhem_server V: 10 S: alive MSG: FHEM Server alive
2013-12-15_16:06:11 fhem_server V: 11 S: alive MSG: FHEM Server alive
2013-12-15_16:07:11 fhem_server V: 11 S: alive MSG: FHEM Server alive
2013-12-15_16:08:12 fhem_server V: 12 S: alive MSG: FHEM Server alive
2013-12-15_16:09:12 fhem_server V: 12 S: alive MSG: FHEM Server alive
2013-12-15_16:10:12 fhem_server V: 72 S: alive MSG: FHEM Server alive
2013-12-15_16:11:13 fhem_server V: 13 S: alive MSG: FHEM Server alive
2013-12-15_16:12:13 fhem_server V: 13 S: alive MSG: FHEM Server alive


Script versucht diese Datei bei Bedarf anzulegen und die nötigen Rechte zu setzen. Dafür muss es aber Rechte auf das Log-Verzeichnis haben. Unter welchem User läft Watchdog, darf es ins FHEM-Log-Verzeichnis schreiben?

hth

Grüße,

Alexander

Edit: ach ja, Du musst dein FakeLog auch so definieren, dass es mit Jahr und Monat arbeitet:
define FileLog_wathdog FileLog ./log/watchdog-%Y-%m.log fakelog
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Petrosilius Zwackelmann am 15 Dezember 2013, 16:49:31
Hallo Alexander,

Zitatwarum immer mal wieder eine 'server dead' Meldung kommt, sieht man aus dem Plot ('grüne Säge'). Da, wo die Zacken Stufen haben, hatte Dein FHEM eine 'Gedenkpause' eingelegt. Scheint so, dass Du relativ heftige 'freezes' hast. Schau Dir den Log an, da müssten relativ lange Pausen zu finden sein, diese interpretiert Watchdog als Server-Ausfall. Das wäre kein Problem des Watchdogs, sondern in Deiner Installation zu suchen.

Die grüne Säge läuft ohne jede Stufe wenn ich nicht gerade am testen bin...
Es muss noch irgendwo der Wurm drin sein... Der Watchdog erkennt aber dass der fhem Prozess noch am Laufen ist und überspring den Neustart.

ja hier lag noch ein Fehler... Jahr und Monat fehlte...
Zitatdefine FileLog_wathdog FileLog ./log/watchdog-%Y-%m.log fakelog

Nun scheint es wirklich nur noch am Gplot-File zu liegen...


Ich nehme mal an es sollen die rot markierten Werte ausgewertet werden...
2013-12-15_16:42:18 fhem_server V: 16 S: alive MSG: FHEM Server alive

# Created by FHEM/98_SVG.pm, 2013-12-15 16:47:41
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'Watchdog'
set ytics ("alive" 0, "dead" 1)
set y2tics
set grid
set ylabel "Status"
set y2label "Zeit (s)"
set yrange [-0.1:1.1]
set y2range [0:300]

#FileLog 4:fhem_server.V\x3a:0:
#FileLog 6:fhem_server.V\x3a:0:$fld[5]=~"alive"?0:1

plot "<IN>" using 1:2 axes x1y2 title 'Zeit (s)' ls l5 lw 0.5 with points,\
     "<IN>" using 1:2 axes x1y2 title 'Status' ls l0 lw 1 with points



Kannst du evtl mal dein Gplot nochmal zeigen?

Gruß Manuel
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 15 Dezember 2013, 17:02:06
Ja, es werden Antwortzeiten Visualisiert (grau), die Ausfälle werden mit Roten Säulen dargestellt.

Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Petrosilius Zwackelmann am 15 Dezember 2013, 17:11:58
Hallo Alexander,

hier habe ich im Sekundenabstand den Befehl zum Anzeigen der fhem.pl Prozesse eingegeben... (ps -ef | grep -v grep | grep fhem.pl)
Erstaunlicherweise werden hier teilweise bis zu 4 Prozesse angezeigt... In der nächste Sekunde ist es dann wieder nur einer.

Ist das Multithreading??


6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12861 admin     32340 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12866 admin     32340 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12886 admin     32376 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12961 admin     32376 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12962 admin     32328 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12963 admin     32336 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12961 admin     32376 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12962 admin     32328 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12963 admin     32336 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12961 admin     32376 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12962 admin     32328 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12963 admin     32336 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12961 admin     32376 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12962 admin     32328 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12963 admin     32336 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12961 admin     32376 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12962 admin     32328 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12963 admin     32336 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12961 admin     32376 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12962 admin     32328 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12963 admin     32336 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12961 admin     32376 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12962 admin     32328 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12963 admin     32336 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12992 admin     32332 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12992 admin     32332 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
12997 admin     32328 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
13008 admin     32336 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg
[/share/external/sds1] # ps -ef | grep -v grep | grep fhem.pl
6722 admin     34868 S   perl /opt/bin/fhem.pl /opt/etc/fhem.cfg


Bitte poste dein gplot File, dann sollte zumindest das Anzeigeproblem gelöst sein.
Danke
Manuel
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 15 Dezember 2013, 18:16:27
Hi,

ich weiß leider nicht, woher die zusätzlichen Prozesse kommen. Bei mir existiert immer nur ein fhem.pl
Soweit ich weiß, arbeitet FHEM grundsätzlich single threaded. Das bedeutet nicht, dass einzelne Module keine eigene Thread starten können. Aber danach sieht es hier nicht aus. Hier wird wohl wirklich versucht, FHEM zu starten. Dies wird wohl an fehlenden Schreibrechten an Logs scheitern.
Nur um auszuschlissen: Kannst Du dieses Verhalten auch bei abgeschalteten Watchdog beobachten?
sudo ./killwatchdog.sh

Meine Plotdatei findest Du hier: https://github.com/hexenmeister/MyFHEM/blob/master/www/gplot/myWatchdog.gplot

Grüße,

Alexander
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Petrosilius Zwackelmann am 15 Dezember 2013, 20:47:39
Hallo Alexander,

unabhängig von watchdog werden bei mir mehrere Instanzen von fhem.pl angezeigt.
Ich habe nun noch einen Fehler gefunden... Hatte nicht alle cut Zeilen angepasst um die PID Nummer zu ermitteln....

Nun sammelt sich in einem bestimmten Rhythmus die alive Meldungen im Logfile...
Ich nehme an dieser Teil
checkAlive(){
pid=$(ps -ef | grep -v grep | grep fhem.pl | cut -c1-5);
if test $pid


Kommt nicht mir einer Rückmeldung wie ..
26694
31841
zurecht.

2013-12-15_20:27:52 fhem_server MSG: no FHEM Server process found
2013-12-15_20:26:52 fhem_server V: 52 S: alive MSG: FHEM Server alive
2013-12-15_20:25:52 fhem_server V: 52 S: alive MSG: FHEM Server alive
2013-12-15_20:24:52 fhem_server V: 52 S: alive MSG: FHEM Server alive
2013-12-15_20:21:52 fhem_server MSG: no FHEM Server process found
2013-12-15_20:20:52 fhem_server V: 52 S: alive MSG: FHEM Server alive
2013-12-15_20:19:52 fhem_server V: 52 S: alive MSG: FHEM Server alive
2013-12-15_20:18:52 fhem_server V: 52 S: alive MSG: FHEM Server alive
2013-12-15_20:15:52 fhem_server MSG: no FHEM Server process found
2013-12-15_20:12:52 fhem_server MSG: no FHEM Server process found
2013-12-15_20:11:52 fhem_server V: 49 S: alive MSG: FHEM Server alive
2013-12-15_20:10:52 fhem_server V: 50 S: alive MSG: FHEM Server alive
2013-12-15_20:09:51 fhem_server V: 50 S: alive MSG: FHEM Server alive
2013-12-15_20:08:51 fhem_server V: 51 S: alive MSG: FHEM Server alive
2013-12-15_20:07:51 fhem_server V: 51 S: alive MSG: FHEM Server alive
2013-12-15_20:04:51 fhem_server MSG: no FHEM Server process found
2013-12-15_20:01:51 fhem_server MSG: no FHEM Server process found
2013-12-15_20:00:51 fhem_server V: 50 S: alive MSG: FHEM Server alive
2013-12-15_19:59:51 fhem_server V: 50 S: alive MSG: FHEM Server alive
2013-12-15_19:58:51 fhem_server V: 50 S: alive MSG: FHEM Server alive
2013-12-15_19:57:51 fhem_server V: 50 S: alive MSG: FHEM Server alive



Gruß Manuel
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 15 Dezember 2013, 22:20:50
Hallo Manuel,

das mit mehreren Instanzen ist merkwürdig, wie gesagt, bei mir immer nur eine da.
Die Prüfung müsste eigentlich (dachte ich zumindest) damit klarkommen, aber das würde dieses Verhalten erklären.
Da an dieser Stelle die Pid als solches je nicht verwendet wird (nur prüfen, ob vorhanden), kannst mal versuchen, das Befehl etwa so abzuändern:

checkAlive(){
cnt=$(ps -ef | grep -v grep | grep fhem.pl | wc -l);
        if test $cnt -gt 0


Damit kommt immer nur eine Zeile raus.
Mal sehen, ob dann Ruhe ist ;)

Grüße,

Alexander


Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Petrosilius Zwackelmann am 15 Dezember 2013, 22:57:24
Hallo Alexander,

seit der Änderung (30 Minuten) keine Probleme mehr.
Vielen Dank für deine Hilfe.

Gruß Manuel
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 15 Dezember 2013, 23:05:09
gerne doch! ;)
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 08 Januar 2014, 15:41:40
Hallo Hexenmeister,

Danke für die Verlinkung auf deiner Website. ;) Habe nun soweit alle angegebenen Schritte durchgeführt und nun wird mein FHEM alle paar Minuten beendet, aber nicht wieder gestartet. Ich glaube ich habe diesen Abschnitt einen Fehler gemacht:

ZitatBei den Scripten ist sicherzustellen, dass diese ausführbar sind: chmod a+x <Dateiname>
Und sie sollten einem passenden Benutzer gehören (z.B. fhem): chown fhen:fhen <Dateiname>
Der Benutzer, unter dessen Account FHEM ausgeführt wird, muss in die sudo-Gruppe. Damit stellen die Scripte sicher, dass sie die Prozesse in jedem Fall benden können: sudo usermod -aG sudo fhem
Und noch muss dieser User diese Scripte ohne Abfrage mit hohen Rechten ausführen dürfen. Dafür muss die Datei /etc/sudoers ergänzt werden:
Code: [Auswählen]
fhem ALL=(ALL) NOPASSWD: /opt/fhem/runwatchdog.sh, /opt/fhem/killwatchdog.sh, /opt/fhem/watchdogloop.sh, /opt/fhem/runfhem.sh, /opt/fhem/killfhem.sh
Bitte vorsichtig mit dieser Datei! Das sind sicherheitsrelevante Einstellungen! Ist sie kaputt und auch noch der Root-User deaktiviert, hat man sich ausgesperrt.

Bevor man Watchdog aktiviert, sollte man sicherstellen, dass FHEM-Teil richtig läuft, ansonsten wird der FHEM alle 5 Minuten immer und immer wieder restartet.

Ich habe versucht über "ps -ef" herauszufinden überwelchen Benutzer mein FHEM läuft und es müsste ROOT sein, oder?

     root      1987     1  0 15:00 ?        00:00:00 startpar -f -- fhem

Der watchdog läuft unter dem Benutzer fhem:

     fhem      1832     1  0 15:00 ?        00:00:00 /bin/sh ./watchdogloop.sh

Eigentlich müsste doch alles unter ROOT laufen oder nicht? Leider schaffe ich es nicht den Watchdog zu beenden, damit ich weitere Änderungen eingeben kann.

Könntest du mir die genauen Befehle nennen?
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 09 Januar 2014, 00:19:17
Hallo!

Die Ferndiagnose ist mit diesen Informationen leider etwas schwierig...
Zitatwird mein FHEM alle paar Minuten beendet, aber nicht wieder gestartet.
Das erste bedeutet, dass Watchdog FHEM nicht als lauffähig erkennt. Dafür wird die Datei /opt/fhem/NN_TE_DMST01.Server_Heartbeat-2014-01.log überwacht. Stelle sicher, dass diese Datei existiert (oder passe ggf. die Pfade in watchdogloop.sh entsprechend Deiner Installation an) und auch von FHEM regelmäßig 'befüllt' wird. Das mit dem (nicht) Starten kann schon an falschen Rechten liegen. Was steht in watchdog_err.log und watchdog-2014-01.log? Läuft FHEM an, wenn dieser mit ./startfhem & gestartet wird?


Zitatmein FHEM läuft und es müsste ROOT sein, oder?
Eigentlich keine gute Idee, daher habe ich für den FHEM extra Benutzer angelegt (fhem).

Ich habe keine Ahnung, was 'startpar -f -- fhem' ist, fhem ist das nicht. Was hast Du für ein System, Raspberry Pi?


ZitatLeider schaffe ich es nicht den Watchdog zu beenden, damit ich weitere Änderungen eingeben kann.
sudo killwatchdog.sh
oder
sudo killall watchdogloop.sh
sollte helfen.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Prof. Dr. Peter Henning am 09 Januar 2014, 06:01:36
Ich bin gerne bereit zu helfen, aber der thread ist ehrlich gesagt etwas verworren im Moment. Hat das noch etwas mit OWX zu tun ?

LG

pah
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 09 Januar 2014, 13:04:54
Zitataber der thread ist ehrlich gesagt etwas verworren im Moment. Hat das noch etwas mit OWX zu tun ?

Hmmm... Irgendwie nicht wirklich.  :o
War sicher nicht ganz korrekt, hier diese Diskussion auszubreiten...
Umbenennen/Verscheieben lassen?
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 09 Januar 2014, 19:56:55
Sorry wegen der knappen Informationen. Ich wusste nicht so recht was ich alles angeben sollte. Fhem läuft auf meinem Pi Version B.

Habe nun die Pfade in watchdogloop.sh entsprechend meiner Installation angepasst. Ich hatte NN_TE_DMST01.Server_Heartbeat-2014-01.log in Server_Heartbeat-2014-01.log umbenannt. Nun wird die watchdog-2014-01.log auch entsprechend befüllt:

2014-01-09_19:27:50 fhem_server MSG: starting watchdog
2014-01-09_19:27:50 fhem_server MSG: FHEM not runing. starting FHEM...
2014-01-09_19:29:22 fhem_server V: 22 S: alive MSG: FHEM Server alive
2014-01-09_19:30:22 fhem_server V: 22 S: alive MSG: FHEM Server alive
2014-01-09_19:31:23 fhem_server V: 23 S: alive MSG: FHEM Server alive
2014-01-09_19:32:23 fhem_server V: 23 S: alive MSG: FHEM Server alive
2014-01-09_19:33:23 fhem_server V: 23 S: alive MSG: FHEM Server alive
2014-01-09_19:34:23 fhem_server V: 23 S: alive MSG: FHEM Server alive
2014-01-09_19:35:24 fhem_server V: 24 S: alive MSG: FHEM Server alive
2014-01-09_19:36:24 fhem_server V: 24 S: alive MSG: FHEM Server alive
2014-01-09_19:37:24 fhem_server V: 24 S: alive MSG: FHEM Server alive


Das ist die Ausgabe von Server_Heartbeat-2014-01.log:

2014-01-09_19:26:00 Server_Heartbeat 0
2014-01-09_19:26:00 Server_Heartbeat lastChange: 19:26:00
2014-01-09_19:27:00 Server_Heartbeat 1
2014-01-09_19:27:00 Server_Heartbeat lastChange: 19:27:00
2014-01-09_19:29:00 Server_Heartbeat 2
2014-01-09_19:29:00 Server_Heartbeat lastChange: 19:29:00
2014-01-09_19:30:00 Server_Heartbeat 3
2014-01-09_19:30:00 Server_Heartbeat lastChange: 19:30:00
2014-01-09_19:31:00 Server_Heartbeat 4
2014-01-09_19:31:00 Server_Heartbeat lastChange: 19:31:00
2014-01-09_19:32:00 Server_Heartbeat 5
2014-01-09_19:32:00 Server_Heartbeat lastChange: 19:32:00
2014-01-09_19:33:00 Server_Heartbeat 6
2014-01-09_19:33:00 Server_Heartbeat lastChange: 19:33:00
2014-01-09_19:34:00 Server_Heartbeat 7
2014-01-09_19:34:00 Server_Heartbeat lastChange: 19:34:00
2014-01-09_19:35:00 Server_Heartbeat 8
2014-01-09_19:35:00 Server_Heartbeat lastChange: 19:35:00
2014-01-09_19:36:00 Server_Heartbeat 9
2014-01-09_19:36:00 Server_Heartbeat lastChange: 19:36:00
2014-01-09_19:37:00 Server_Heartbeat 10
2014-01-09_19:37:00 Server_Heartbeat lastChange: 19:37:00
2014-01-09_19:38:00 Server_Heartbeat 11
2014-01-09_19:38:00 Server_Heartbeat lastChange: 19:38:00


Nachfolgend die Ausgabe von watchdog_err.log:

./startfhem: 31: ./startfhem: cannot create log/watchdog_err.log: Permission denied
Subroutine trim redefined at ./FHEM/42_SYSMON.pm line 966, <$fh> line 49.
Use of uninitialized value $a[1] in substitution (s///) at ./FHEM/98_SVG.pm line 938.
Use of uninitialized value in join or string at ./FHEM/98_SVG.pm line 938.
Use of uninitialized value $a[1] in substitution (s///) at ./FHEM/98_SVG.pm line 938.
Use of uninitialized value in join or string at ./FHEM/98_SVG.pm line 938.
Use of uninitialized value $a[1] in substitution (s///) at ./FHEM/98_SVG.pm line 938.
Use of uninitialized value in join or string at ./FHEM/98_SVG.pm line 938.
Use of uninitialized value $a[1] in substitution (s///) at ./FHEM/98_SVG.pm line 938.
Use of uninitialized value in join or string at ./FHEM/98_SVG.pm line 938.
Use of uninitialized value $a[1] in substitution (s///) at ./FHEM/98_SVG.pm line 938.
Use of uninitialized value in join or string at ./FHEM/98_SVG.pm line 938.
Use of uninitialized value $a[1] in substitution (s///) at ./FHEM/98_SVG.pm line 938.
Use of uninitialized value in join or string at ./FHEM/98_SVG.pm line 938.
Use of uninitialized value $a[1] in substitution (s///) at ./FHEM/98_SVG.pm line 938.
Use of uninitialized value in join or string at ./FHEM/98_SVG.pm line 938.
Use of uninitialized value $a[1] in substitution (s///) at ./FHEM/98_SVG.pm line 938.
Use of uninitialized value in join or string at ./FHEM/98_SVG.pm line 938.


Fhem läuft nun mit "./startfhem" problemlos an und wird auch nicht mehr nach paar Minuten beendet. Das einzige Problem, das weiterhin besteht ist der untere Plot nicht funktioniert. Das Diagramm wird korrekt angezeigt, aber leider ohne Graph bzw. Balken.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 10 Januar 2014, 00:41:39
Plots erlauben zwar den Überblick über die Ausfälle, sind jedoch eher 'Zierde' ;)
Wichtig wäre zu prüfen, ob Watchdog den FHEM-Server bei Bedarf auch starten kann. Zum Testen reicht den FHEM zu beenden. Solle nach ca. 1 Minute wieder anlaufen und bald darauf wieder ansprechbar sein.

Wie sehen die Definitionen für Plots in fhem.cfg? Da Du die Logs umbenannt hat, müssen auch diese Einstellungen entsprechend angepasst werden.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Petrosilius Zwackelmann am 10 Januar 2014, 09:53:09
ZitatZum Testen reicht den FHEM zu beenden. Solle nach ca. 1 Minute wieder anlaufen und bald darauf wieder ansprechbar sein.

Landet man da nicht in diesem Programmteil, in welchem kein Neustart erfolgt, oder habe ich da was falsch verstanden...?

else
    # Server abgestürzt, Prozess nicht (mehr) vorhanden.
    log "MSG: no FHEM Server process found";
    #log "S: dead";
    return 1;



Gruß Manuel
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 10 Januar 2014, 10:04:56
Ja, aber das ist ein 'Unterprogram' (checkAlive), dieses wird weiter unten aufgerufen und ggf. (bei return 1) wird dort auch der Server restartet.

if ( checkAlive )
then
print "Server alive";
else
# TODO: Pruefen, ob FHEM gerade Update durchführt (dauert ca. 15 min. auf einer FB)
print "Server dead";
# FHEM PID suchen
pid=$(ps -ef | grep -v grep | grep fhem.pl | cut -c10-14);
if test $pid
then
print "killing FHEM. PID: $pid";
   log "MSG: killing FHEM PID: $pid";
   # Prozess beenden
   kill $pid;
   # Etwas warten
   sleep 3;
   # Wenn nicht beendet - hart terminieren
   kill -9 $pid;
fi
# FHEM neu starten
print "restarting FHEM";
./startfhem &
# Etwas Zeit zum Starten lassen.
sleep 120;
fi
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 10 Januar 2014, 10:10:51
@Moderator:
Das Thema hier 'driftet' immer weiter weg und hat gar nichts mehr mit 1wire zu tun.
Da es jedoch nicht ganz uninteressant zu sein scheint, würde ich vorschlagen, den Thread umzubenennen und (nach 'Sonstiges'?) zu verschieben.

Grüße,

Alexander
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 10 Januar 2014, 10:24:45

ZitatPlots erlauben zwar den Überblick über die Ausfälle, sind jedoch eher 'Zierde' ;)

Sieht aber gut aus. :P

ZitatWichtig wäre zu prüfen, ob Watchdog den FHEM-Server bei Bedarf auch starten kann. Zum Testen reicht den FHEM zu beenden. Solle nach ca. 1 Minute wieder anlaufen und bald darauf wieder ansprechbar sein.

Ich habe FHEM beendet und es wird leider nicht neugestartet. :( Hier ist die Ausgabe von watchdog-2014-01.log:

2014-01-10_09:40:05 fhem_server V: 4 S: alive MSG: FHEM Server alive
2014-01-10_09:41:05 fhem_server MSG: no FHEM Server process found
2014-01-10_09:44:05 fhem_server MSG: no FHEM Server process found
2014-01-10_09:47:05 fhem_server MSG: no FHEM Server process found
2014-01-10_09:50:06 fhem_server MSG: no FHEM Server process found
2014-01-10_09:53:06 fhem_server MSG: no FHEM Server process found
2014-01-10_09:56:06 fhem_server MSG: no FHEM Server process found
2014-01-10_09:59:06 fhem_server MSG: no FHEM Server process found
2014-01-10_10:02:07 fhem_server MSG: no FHEM Server process found
2014-01-10_10:05:07 fhem_server MSG: no FHEM Server process found
2014-01-10_10:08:07 fhem_server MSG: no FHEM Server process found
2014-01-10_10:11:08 fhem_server MSG: no FHEM Server process found
2014-01-10_10:14:08 fhem_server V: 1988 S: dead MSG: no response from FHEM Server for 1988 sekonds
2014-01-10_10:14:09 fhem_server MSG: killing FHEM PID: 21201
2014-01-10_10:17:25 fhem_server MSG: starting watchdog
2014-01-10_10:17:26 fhem_server MSG: FHEM not runing. starting FHEM...


ZitatWie sehen die Definitionen für Plots in fhem.cfg? Da Du die Logs umbenannt hat, müssen auch diese Einstellungen entsprechend angepasst werden.

Habe Sie von dir kopiert und nur die Log Namen geändert. So sehen sie aus:

# Definition eines Dummy-Objektes fuer 'Alive'-Meldungen
define Server_Heartbeat dummy
attr Server_Heartbeat group Watchdog
attr Server_Heartbeat room Fhem
attr Server_Heartbeat userReadings lastChange { CurrentTime() }
# Protokoliert Zeitpunkt der letzten Änderung (in Objekt-Eigenshaften)
# Definition der Log-Datei
define FileLog_Server_Heartbeat FileLog ./log/Server_Heartbeat-%Y-%m.log Server_Heartbeat
attr FileLog_Server_Heartbeat group Watchdog
attr FileLog_Server_Heartbeat logtype myServerHeartbeat:Plot,text
attr FileLog_Server_Heartbeat room Fhem
# Visualisierung mittels eines Diagramms
define 0.wlHeartbeat SVG FileLog_Server_Heartbeat:myServerHeartbeat:CURRENT
attr 0.wlHeartbeat group Watchdog
attr 0.wlHeartbeat room Fhem

# Routine zur regelmaessigen Änderungen des Wertes des Dummy-Objektes
define tickHeartbeat at +*00:01:00 {tickHeartbeat('Server_Heartbeat');;}
attr tickHeartbeat alignTime 00:00
attr tickHeartbeat group Watchdog
attr tickHeartbeat room Fhem
# Log-Datei des Watchdogscriptes verfügbar machen
define FileLog_wathdog FileLog ./log/watchdog.log fakelog
attr FileLog_wathdog group Watchdog
attr FileLog_wathdog room Fhem

# Visualisierung für Watchdog-Log
define 0.wlWatchdog SVG FileLog_wathdog:myWatchdog:CURRENT
attr 0.wlWatchdog group Watchdog
attr 0.wlWatchdog room Fhem


Danke schonmal für deine Hilfe! :)


Zitat@Moderator:
Das Thema hier 'driftet' immer weiter weg und hat gar nichts mehr mit 1wire zu tun.
Da es jedoch nicht ganz uninteressant zu sein scheint, würde ich vorschlagen, den Thread umzubenennen und (nach 'Sonstiges'?) zu verschieben.

Grüße,

Alexander

Das Thema ist super interessant und sollte meines Erachtens "serienmäßig" in FHEM implementiert sein! :)
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Petrosilius Zwackelmann am 10 Januar 2014, 10:41:37
Zitat von: hexenmeister am 07 Dezember 2013, 23:32:11
Hallo Manuel,

wirf die Return-Anweisung ganz raus, ist hier nicht wesentlich (und funktioniert je so nicht).
Script scheint auch die 'Lebenszeichen' des FHEM-Servers zu erkennen.
Bei der letzten Meldung, hast Du den FHEM selbst beendet, oder wieso wurde dieser als 'dead' eingestufft?
Es scheint mit dem Beenden auch nicht funktioniert zu haben. Ein Rechteproblem? Kann der Benutzer, unter dessen Rechten die Scripte laufen, den FHEM stoppen? Ist er in die sudo-Gruppe aufgenommen und sudoers entsprechend ergänzt?

Alternativ kann man versuchen aus den startfhem und stopfhem Schripten die sudos zu entfernen. Wenn die Benutzer richtige Rechte haben, wird es auch so reichen, ohne sudo-Gruppe etc.

LG

Alexander

Ich hatte die Return Anweisungen wegen Fehlermeldungen rausgeworfen...
Hast du einen Ansatz wie man das Skript für andere Systeme kompatibel machen kann?

Ein Restart dann aber nicht wenn der Prozess komplett beendet ist. Ein restart sollte aber theoretisch finktonieren wenn FEHEM dauerhaft einfriert... Bisher war mir aber nicht klar wie ich das hervorrufen kann. Vielleicht ein sleep 600 irgendwo einbauen.

Gruß Manuel
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Petrosilius Zwackelmann am 10 Januar 2014, 10:54:26

Ein billiges {sleep xxx} in der Kommandozeile reicht...
manchmal sieht man den Wald vor lauter Hexenhäuschen nicht  :D

Gruß Manuel
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 10 Januar 2014, 11:21:13
ZitatIch habe FHEM beendet und es wird leider nicht neugestartet.
Das sieht mit nach Rechteproblem aus. Denn im Log sieht man, dass es versucht wird, FHEM neu zu starten.
2014-01-10_10:17:26 fhem_server MSG: FHEM not runing. starting FHEM...
Unter welchem User laufen Watchdog und FHEM? Hat dieser benötigte Rechte? Wird denn FHEM gestartet, wenn man  ./startfhem & eingibt (mit Rechten diesen Users)?

ZitatHabe Sie von dir kopiert und nur die Log Namen geändert. So sehen sie aus:
Schon komisch, sieht aus den ersten Blick richtig aus. Die Daten waren doch auch ok im Log, oder? Dumme Frage: die Methode CurrentTime() hast Du in Deinem 99_myUtils (oder so) schon drin?

Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 10 Januar 2014, 11:28:42
ZitatIch hatte die Return Anweisungen wegen Fehlermeldungen rausgeworfen...
Hast du einen Ansatz wie man das Skript für andere Systeme kompatibel machen kann?

Ja, der Script ist etwas 'dirty', bin leider kein großer Bash-Kenner. Vor allem die Erkennung von PID ist nicht allgemeingültig. Um das zu machen, bräuchte ich Hilfe (oder viel Zeit zum einlesen, die ich leider nicht habe).

Manuel, wir haben ja an Deiner Version viel rungeschraubt, kanns Du mir sie bitte geben, ich könnte zumindest versuchen, eine gemeinsame Version für Rasp/QNAP/FritzBox zu erstellen.


Zitatmanchmal sieht man den Wald vor lauter Hexenhäuschen nicht  :D
;D*lol*
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Petrosilius Zwackelmann am 10 Januar 2014, 12:09:49
here we go...
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 10 Januar 2014, 19:54:05
Zitat
Das sieht mit nach Rechteproblem aus. Denn im Log sieht man, dass es versucht wird, FHEM neu zu starten.
2014-01-10_10:17:26 fhem_server MSG: FHEM not runing. starting FHEM...

Wie kann ich die Rechte denn genau festlegen?


ZitatUnter welchem User laufen Watchdog und FHEM? Hat dieser benötigte Rechte? Wird denn FHEM gestartet, wenn man  ./startfhem & eingibt (mit Rechten diesen Users)?

Es sieht so aus als würde FHEM auch unter dem Benutzer FHEM laufen, oder?

root@raspberrypi:~# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 19:19 ?        00:00:01 init [2] 
root         2     0  0 19:19 ?        00:00:00 [kthreadd]
root         3     2  0 19:19 ?        00:00:00 [ksoftirqd/0]
root         5     2  0 19:19 ?        00:00:00 [kworker/0:0H]
root         6     2  0 19:19 ?        00:00:00 [kworker/u2:0]
root         7     2  0 19:19 ?        00:00:00 [rcu_preempt]
root         8     2  0 19:19 ?        00:00:00 [rcu_bh]
root         9     2  0 19:19 ?        00:00:00 [rcu_sched]
root        10     2  0 19:19 ?        00:00:00 [khelper]
root        11     2  0 19:19 ?        00:00:00 [kdevtmpfs]
root        12     2  0 19:19 ?        00:00:00 [netns]
root        13     2  0 19:19 ?        00:00:00 [kworker/0:1]
root        14     2  0 19:19 ?        00:00:00 [writeback]
root        15     2  0 19:19 ?        00:00:00 [bioset]
root        16     2  0 19:19 ?        00:00:00 [kblockd]
root        17     2  0 19:19 ?        00:00:00 [khubd]
root        18     2  0 19:19 ?        00:00:00 [rpciod]
root        19     2  0 19:19 ?        00:00:00 [khungtaskd]
root        20     2  0 19:19 ?        00:00:00 [kswapd0]
root        21     2  0 19:19 ?        00:00:00 [fsnotify_mark]
root        22     2  0 19:19 ?        00:00:00 [nfsiod]
root        23     2  0 19:19 ?        00:00:00 [crypto]
root        29     2  0 19:19 ?        00:00:00 [kthrotld]
root        30     2  0 19:19 ?        00:00:00 [VCHIQ-0]
root        31     2  0 19:19 ?        00:00:00 [VCHIQr-0]
root        32     2  0 19:19 ?        00:00:00 [VCHIQs-0]
root        33     2  0 19:19 ?        00:00:00 [iscsi_eh]
root        34     2  0 19:19 ?        00:00:00 [dwc_otg]
root        35     2  0 19:19 ?        00:00:00 [DWC Notificatio]
root        37     2  0 19:19 ?        00:00:00 [deferwq]
root        38     2  0 19:19 ?        00:00:00 [kworker/u2:2]
root        39     2  0 19:19 ?        00:00:02 [mmcqd/0]
root        40     2  0 19:19 ?        00:00:00 [jbd2/mmcblk0p2-]
root        41     2  0 19:19 ?        00:00:00 [ext4-dio-unwrit]
root       156     1  0 19:19 ?        00:00:00 udevd --daemon
root       663   156  0 19:20 ?        00:00:00 udevd --daemon
root       664   156  0 19:20 ?        00:00:00 udevd --daemon
root      1586     1  0 19:20 ?        00:00:00 /usr/sbin/ifplugd -i eth0 -q -f
root      1624     1  0 19:20 ?        00:00:00 /usr/sbin/ifplugd -i lo -q -f -u
root      1726     2  0 19:20 ?        00:00:00 [kworker/0:2]
fhem      1832     1  0 19:20 ?        00:00:00 /bin/sh ./watchdogloop.sh
root      1934     1  0 19:20 ?        00:00:00 dhclient -v -pf /run/dhclient.et
fhem      1958     1  1 19:20 ?        00:00:11 perl fhem.pl fhem.cfg
root      1962     1  0 19:20 ?        00:00:00 startpar -f -- fhem
root      1982     1  0 19:20 ?        00:00:00 /usr/sbin/rsyslogd -c5
root      2041     1  0 19:20 ?        00:00:00 /usr/sbin/cron
104       2071     1  0 19:20 ?        00:00:00 /usr/bin/dbus-daemon --system
avahi     2098     1  0 19:20 ?        00:00:00 avahi-daemon: running [raspberry
avahi     2099  2098  0 19:20 ?        00:00:00 avahi-daemon: chroot helper
ntp       2147     1  0 19:20 ?        00:00:00 /usr/sbin/ntpd -p /var/run/ntpd.
root      2179     1  0 19:20 ?        00:00:08 /usr/local/sbin/pilight-daemon
root      2215     1  0 19:20 ?        00:00:00 startpar -f -- pilight
root      2224     1  0 19:20 ?        00:00:03 perl /usr/local/bin/shairport.pl
root      2255     1  0 19:20 ?        00:00:00 /usr/sbin/sshd
nobody    2284     1  0 19:20 ?        00:00:00 /usr/sbin/thd --daemon --trigger
root      2291  2255  0 19:20 ?        00:00:00 sshd: root@notty
root      2298     1  0 19:20 tty1     00:00:00 /sbin/getty --noclear 38400 tty1
root      2299     1  0 19:20 tty2     00:00:00 /sbin/getty 38400 tty2
root      2300     1  0 19:20 tty3     00:00:00 /sbin/getty 38400 tty3
root      2301     1  0 19:20 tty4     00:00:00 /sbin/getty 38400 tty4
root      2302     1  0 19:20 tty5     00:00:00 /sbin/getty 38400 tty5
root      2303     1  0 19:20 tty6     00:00:00 /sbin/getty 38400 tty6
root      2304     1  0 19:20 ttyAMA0  00:00:00 /sbin/getty -L ttyAMA0 115200 vt
root      2307     1  0 19:20 ?        00:00:00 /usr/sbin/console-kit-daemon --n
root      2374     1  0 19:20 ?        00:00:00 /usr/lib/policykit-1/polkitd --n
root      2380  2291  0 19:20 ?        00:00:00 /usr/lib/openssh/sftp-server
root      2383  2224  0 19:20 ?        00:00:00 avahi-publish-service C279C1EF3F
fhem      2741  1832  0 19:35 ?        00:00:00 sleep 60
root      2742  2255  8 19:35 ?        00:00:00 sshd: root@pts/2
root      2749  2742 19 19:35 pts/2    00:00:00 -bash
root      2757  2749  0 19:35 pts/2    00:00:00 ps -ef


Mit "./startfhem" kann ich FHEM starten. Allerdings nur, wenn mit dem ROOT eingeloggt bin. Zuerst wird mir ausgegeben, dass der Watchdog schon läuft und dann, dass FHEM gestartet wird, soweit es nicht sowieso schon läuft. Das Passwort des Nutzer FHEM kenne ich nicht und habe ich auch nie vergeben.

ZitatSchon komisch, sieht aus den ersten Blick richtig aus. Die Daten waren doch auch ok im Log, oder? Dumme Frage: die Methode CurrentTime() hast Du in Deinem 99_myUtils (oder so) schon drin?

Ja das habe ich. Habe es ebenfalls von Dir an das Ende der 99_myUtils kopiert. Schaut so aus:

# Liefert aktueller Zeitstempel
sub
CurrentTime()
{
  return strftime("%H:%M:%S", localtime());
}

# --- server heartbeat / watchdog ---
sub tickHeartbeat($)
{
    my ($device) = @_;
    my $v = int(Value($device));
    $v = $v+1;
    if($v>=60) {$v=0;}
    fhem("set $device $v");
}


Eigentlich scheint ja alles richtig zu sein bis auf die Rechte Vergabe. :(
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 10 Januar 2014, 20:27:52
ZitatEs sieht so aus als würde FHEM auch unter dem Benutzer FHEM laufen, oder?
jep. ist auch gut so. Ich denke, das Problem werden sudo-Befehle in den start-Scripten sein. Diese habe ich reingeschrieben, um mit Sicherheit FHEM beenden zu können. Dafür müssen aber die Rechte für den FHEM-User vergeben werden (in /etc/sudoers). Entweder Du nimmst die sudos raus (in startfhem und stopfhem) oder Du machst das, was ich auf meiner Seite beschrieben habe:
ZitatIch habe den Benutzer fhem in die Gruppe sudo aufgenommen. Damit will ich sicherstellen, dass der Script in der Lage ist, volle Kontrolle über den FHEM-Server auszuüben, auch dann, wenn dieser unter einem anderen Benutzeraccount gestartet sein sollte.

sudo usermod -aG sudo fhem

Um keine Sicherheitslücke aufzumachen, bekommt dieser Benutzer Rechte zur Ausführung mit sudo nur für ganz bestimmte Scripte. Dies geschieht durch Einfügen einer Zeile in die Datei sudoers (sudo nano /etc/sudoers).

fhem ALL=(ALL) NOPASSWD: /opt/fhem/runwatchdog.sh, /opt/fhem/killwatchdog.sh, /opt/fhem/watchdogloop.sh, /opt/fhem/runfhem.sh, /opt/fhem/killfhem.sh

Möglicherweise kommen die Diagramme nicht, weil die Logdateien dem falschen Benutzer gehören (mit ls -l log/*.log anzigen).
Rechte vergeben (aus dem fhem-root verzeichnis):
sudo chown fhem:fhem log/*.log
sudo chmod a+rw log/*.log

Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 10 Januar 2014, 20:48:52
ZitatZitat
Es sieht so aus als würde FHEM auch unter dem Benutzer FHEM laufen, oder?
jep. ist auch gut so. Ich denke, das Problem werden sudo-Befehle in den start-Scripten sein. Diese habe ich reingeschrieben, um mit Sicherheit FHEM beenden zu können. Dafür müssen aber die Rechte für den FHEM-User vergeben werden (in /etc/sudoers). Entweder Du nimmst die sudos raus (in startfhem und stopfhem) oder Du machst das, was ich auf meiner Seite beschrieben habe:
Zitat
Ich habe den Benutzer fhem in die Gruppe sudo aufgenommen. Damit will ich sicherstellen, dass der Script in der Lage ist, volle Kontrolle über den FHEM-Server auszuüben, auch dann, wenn dieser unter einem anderen Benutzeraccount gestartet sein sollte.

sudo usermod -aG sudo fhem

Um keine Sicherheitslücke aufzumachen, bekommt dieser Benutzer Rechte zur Ausführung mit sudo nur für ganz bestimmte Scripte. Dies geschieht durch Einfügen einer Zeile in die Datei sudoers (sudo nano /etc/sudoers).

fhem ALL=(ALL) NOPASSWD: /opt/fhem/runwatchdog.sh, /opt/fhem/killwatchdog.sh, /opt/fhem/watchdogloop.sh, /opt/fhem/runfhem.sh, /opt/fhem/killfhem.sh

Das hatte ich auch direkt am Anfang genauso ausgeführt. Hat auch ohne Fehlermeldung funktioniert. Das ist die Ausgabe von "ls -l log/*.log":

root@raspberrypi:/opt/fhem# ls -l log/*.log
-rw-rw-rw- 1 fhem dialout  276839 Dec 31 20:32 log/fhem-2013-12.log
-rw-rw-rw- 1 fhem dialout  325224 Jan 10 20:28 log/fhem-2014-01.log
-rw-r--r-- 1 fhem dialout  259065 Jan 10 20:41 log/Server_Heartbeat-2014-01.log
-rw-rw-rw- 1 fhem dialout 3087271 Jan 10 20:40 log/sysmon-2014-01.log
-rw-rw-rw- 1 fhem dialout    7154 Dec 31 18:35 log/Tageslicht-2013.log
-rw-rw-rw- 1 fhem dialout    4655 Jan 10 08:43 log/Tageslicht-2014.log
-rw-rw-rw- 1 fhem dialout  129817 Jan 10 20:40 log/watchdog-2014-01.log
-rw-r--r-- 1 root root     130055 Jan 10 20:27 log/watchdog_err.log
-rw-r--r-- 1 fhem dialout       0 Jan  9 19:28 log/watchdog.log


Dieser Befehl "sudo chown fhem:fhem log/*.log" erzeugt eine Fehlermeldungen:

root@raspberrypi:/opt/fhem# sudo chown fhem:fhem log/*.log
chown: invalid group: `fhem:fhem'
root@raspberrypi:/opt/fhem# sudo chmod a+rw log/*.log
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 10 Januar 2014, 20:54:43
Ich eben zusätzlich per Cyberduck die Rechte der Log Dateien an die anderen vorhanden Log Dateien angeglichen, sodass alle Logs diese Rechte haben: -rw-rw-rw-  und siehe da FHEM startet plötzlich nach circa einer Minute, wenn man es beendet. :)

Nun fehlt nur noch der untere Plot. :)

Ich habe nun auch hinbekommen, dass zumindest der schwarze Graph angezeigt wird, in dem ich die DEF des Plot von "./log/watchdog.log fakelog" zu "./log/watchdog-%Y-%m.log fakelog" geändert habe. Der Orangene Status Balken fehlt aber leider immer noch.  :-\
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 10 Januar 2014, 23:35:29
Die Pfade in der Zeile (fhem ALL=(ALL) NOPASSWD: /opt/fhem/runwatchdog.sh, /opt/fhem/killwatchdog.sh, /opt/fhem/watchdogloop.sh, /opt/fhem/runfhem.sh, /opt/fhem/killfhem.sh) sind alle korrekt?
Hm.. aber gut, es scheint ja jetzt zu funktionieren.

Der chown-Befehl, mein Fehler, es soll fhem:root (statt fhem:fhem) heißen, in Deinem Fall noch besser fhem:dialout

Die Rechte in dem Listing waren falsch, die Zuordnung zu root:root auch nicht gut. Hast Du aber ja behoben. Jetzt müsste aber gehen...

Edit: Ich glaube, ich weiß es! Ich habe mir die orangene Farbe in CSS _zusätzlich_ definiert. Ändere bitte in der Daten myWatchdog.gplot l8fill auf l1fill

#
# Anzeige der Watchdog-Log-Informationen
#

set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "

set title 'Watchdog'
set yrange [-10:300]
set y2label "Zeit (s)"

set ytics ("alive" 0, "dead" 1)
set yrange [-0.1:1.1]
set ylabel "Status"

#FileLog 4:\x20V\x3a:0:
#FileLog 6:\x20S\x3a:0:$fld[5]=~"dead"?1:0


plot "<IN>" x1y2 notitle ls l5 lw 0.5 with steps, \
            x1y1 notitle ls l1fill lw 0 with steps
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 10 Januar 2014, 23:40:32
@Manuel:
Danke, habe meine Version etwas optimiert und die Teile, wo Anpasung notwendig ist, nach vorne als Variablen verlagert.
Leider ist das keine grundsätzliche Lösung. K.A. wie ich das in Bash-Script machen kann. Man könnte natürlich auch Perl dazu bemühen...
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 11 Januar 2014, 09:48:54
Zitat von: hexenmeister am 10 Januar 2014, 23:35:29
Die Pfade in der Zeile (fhem ALL=(ALL) NOPASSWD: /opt/fhem/runwatchdog.sh, /opt/fhem/killwatchdog.sh, /opt/fhem/watchdogloop.sh, /opt/fhem/runfhem.sh, /opt/fhem/killfhem.sh) sind alle korrekt?
Hm.. aber gut, es scheint ja jetzt zu funktionieren.

Der chown-Befehl, mein Fehler, es soll fhem:root (statt fhem:fhem) heißen, in Deinem Fall noch besser fhem:dialout

Die Rechte in dem Listing waren falsch, die Zuordnung zu root:root auch nicht gut. Hast Du aber ja behoben. Jetzt müsste aber gehen...

Edit: Ich glaube, ich weiß es! Ich habe mir die orangene Farbe in CSS _zusätzlich_ definiert. Ändere bitte in der Daten myWatchdog.gplot l8fill auf l1fill

#
# Anzeige der Watchdog-Log-Informationen
#

set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "

set title 'Watchdog'
set yrange [-10:300]
set y2label "Zeit (s)"

set ytics ("alive" 0, "dead" 1)
set yrange [-0.1:1.1]
set ylabel "Status"

#FileLog 4:\x20V\x3a:0:
#FileLog 6:\x20S\x3a:0:$fld[5]=~"dead"?1:0


plot "<IN>" x1y2 notitle ls l5 lw 0.5 with steps, \
            x1y1 notitle ls l1fill lw 0 with steps


Habe Es nochmals alles kontrolliert und es stimmt. Habe den Befehl auch mit dailout ausgeführt und die GPLOT Datei entsprechend geändert. Nun bekomme ich im Plot einen grünen Balken angezeigt. Gefällt mir optisch sogar besser. :)

Aber leider ist die Beschriftung der rechten Zeit-Achse falsch, weil sie bis -20 absteigt und dadurch alles verfälscht. Wie ändere ich diese auf die Werte 0-1500 wie bei dir?
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 11 Januar 2014, 10:32:17
Für die Achsen ist set yrange zuständig.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 13 Januar 2014, 10:36:57
Zitat von: hexenmeister am 11 Januar 2014, 10:32:17
Für die Achsen ist set yrange zuständig.


Also die Achse zu ändern habe ich hinbekommen. Nun sieht der Graph auf vernünftig aus. Aber den grünen Balken bekomme ich nicht hin... :(

So sieht meine GPLOT Dateien nun aus:

#
# Anzeige der Watchdog-Log-Informationen
#

set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "

set title 'Watchdog'
set yrange [-10:300]
set y2label "Zeit (s)"
set y2range [0:1500]

set ytics ("alive" 0, "dead" 1)
set yrange [-0.1:1.1]
set ylabel "Status"

#FileLog 4:\x20V\x3a:0:
#FileLog 6:\x20S\x3a:0:$fld[5]=~"dead"?1:0


plot "<IN>" x1y2 notitle ls l5 lw 0.5 with steps, \
            x1y1 notitle ls l1fill lw 1 with steps

Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 13 Januar 2014, 11:12:41
Hi!

Ich verstehe nicht ganz. In Deinem vorherigen Post war doch die grüne Fläche schon drauf? Da Du in dieser Zeit keinen Absturt hattest (sieht man auch an der Höhe der schwarzen Dreiecken), gab es beim Grün auch keine Ausschlag.
Was genau geht noch nicht?

Grüße,

Alexander

Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 13 Januar 2014, 11:21:38
Zitat von: hexenmeister am 13 Januar 2014, 11:12:41
Hi!

Ich verstehe nicht ganz. In Deinem vorherigen Post war doch die grüne Fläche schon drauf? Da Du in dieser Zeit keinen Absturt hattest (sieht man auch an der Höhe der schwarzen Dreiecken), gab es beim Grün auch keine Ausschlag.
Was genau geht noch nicht?


Das ist absolut korrekt die grüne Fläche war vor Anpassung der rechten Achse vorhanden. Seit dem ich die Achse entsprechend deinen Werten angepasst habe, ist die grüne Fläche nur minimal sichtbar. Es kommt mir so vor als wäre die Oberkante der Fläche auf die Höhe der Nulllinie definiert und auf die Höhe des Alive Punktes auf der linken Seite.

Bei Dir ist es ja auch so, dass der Graph innerhalb der grünen Fläche ist. Bei mir ist die grüne Fläche bisher immer unter dem Graphen gewesen.

Hoffe Du verstehst was ich meine...  ???
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 13 Januar 2014, 22:10:38
Ich verstehe. Und sehe gleich ein Fehler in meiner Datei: die yrange ist zwei mal definiert, y2range gar nicht. Somit war y2 auf autorange. Finde ich sogar besser so, da wird die Grafik dynamisch skaliert. Warum sich bei Deiner Einstellung die grüne Fläche nicht an die Definition hält, verstehe ich allerdings leider auch nicht :(

Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 05 Februar 2014, 20:11:49
Guten Abend.

Ich musste heute Abend feststellen, dass der Watchdog seit dem 1. Februar nicht das tut was er sollte. Nach der Eingabe von ls -l log/*.log konnte ich erkennen, dass die Rechte der Dateien nicht korrekt sind.

-rw-rw-rw- 1 fhem root     351965 Jan 31 21:25 log/fhem-2014-01.log
-rw-r--r-- 1 fhem dialout   76588 Feb  5 19:56 log/fhem-2014-02.log
-rw-rw-rw- 1 fhem root     309739 Jan 31 23:59 log/Server_Heartbeat-2014-01.log
-rw-r--r-- 1 fhem dialout  669866 Feb  5 19:56 log/Server_Heartbeat-2014-02.log
-rw-rw-rw- 1 fhem root    1649790 Jan 31 23:59 log/sysmon-2014-01.log
-rw-r--r-- 1 fhem dialout 2571448 Feb  5 19:54 log/sysmon-2014-02.log
-rw-rw-rw- 1 fhem root      16611 Feb  5 19:22 log/Tageslicht-2014.log
-rw-rw-rw- 1 fhem root     175684 Jan 31 13:27 log/watchdog-2014-01.log
-rw-rw-rw- 1 root root        450 Feb  5 19:55 log/watchdog-2014-02.log
-rw-rw-rw- 1 root root    1499350 Feb  5 19:55 log/watchdog_err.log


Mit sudo chown fhem:root log/*.log
sudo chmod a+rw log/*.log
konnte ich die Rechte korrigieren:

-rw-rw-rw- 1 fhem root  351965 Jan 31 21:25 log/fhem-2014-01.log
-rw-rw-rw- 1 fhem root   78254 Feb  5 19:58 log/fhem-2014-02.log
-rw-rw-rw- 1 fhem root  309739 Jan 31 23:59 log/Server_Heartbeat-2014-01.log
-rw-rw-rw- 1 fhem root  670062 Feb  5 19:59 log/Server_Heartbeat-2014-02.log
-rw-rw-rw- 1 fhem root 1649790 Jan 31 23:59 log/sysmon-2014-01.log
-rw-rw-rw- 1 fhem root 2572460 Feb  5 19:57 log/sysmon-2014-02.log
-rw-rw-rw- 1 fhem root   16611 Feb  5 19:22 log/Tageslicht-2014.log
-rw-rw-rw- 1 fhem root  175684 Jan 31 13:27 log/watchdog-2014-01.log
-rw-rw-rw- 1 fhem root     521 Feb  5 19:58 log/watchdog-2014-02.log
-rw-rw-rw- 1 fhem root 1501796 Feb  5 19:58 log/watchdog_err.log


Ich stelle mir nun die Frage, ob dieses Problem jeden Monat erneut auftrifft?
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 05 Februar 2014, 20:41:44
Die Dateirechte haben mit dem Watchdog eher nichts zu tun. FHEM legt neue Dateien so. Da kann ich leider wenig dazu sagen. Sollte an sich kein Problem sein. Oder was hat nicht wie beabsichtigt funktioniert?
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 05 Februar 2014, 20:44:00
Insbesondre die Logdatei "watchdog-2014-02.log" blieb leer. Dadurch wurde FHEM auch nicht mehr neugestartet, wenn man es testweise beendete.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 05 Februar 2014, 21:19:40
hm... stimmt, FHEM und Watchdog laufen mit verschiedenen Benuzern. Dadurch kann Watchdog wohl nicht auf die Dateien zugreifen. Am einfachsten ist hier das Problem mit einem cron-Job zu lösen.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 07 Februar 2014, 12:28:28
Tritt das Problem bei dir auch auf? Oder hast du bereits entsprechenden Cronjob?
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 07 Februar 2014, 22:26:10
Das Prob  habe ich bei mir noch nicht gemerkt. Ich denke, das hat was mit den Rechten zu tun, mit den Watchdog läuft.
Ein Cron-Job habe ich nicht. Unter welchen Benutzerkonto läuft bei Dir Watchdog? Am besten wahrscheinlich das gleiche zu verwenden, wie für FHEN, dann müssten die Rechte ja passen...
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Lling am 10 Februar 2014, 04:32:21
Ich wollte heute auch den watchdog zum laufen bringen. Aber auch bei mir bleibt irgendwie das logfile leer. :(
Die Dateien hab ich direkt von Github geholt.

mal mein auszug aus der fhem.cfg
# Log-Datei des Watchdogscriptes verfügbar machen
define FileLog_wathdog FileLog ./log/watchdog-%Y-%m.log fakelog
attr FileLog_wathdog room FHEM

# Visualisierung für Watchdog-Log
define 0.wlWatchdog SVG FileLog_wathdog:myWatchdog:CURRENT
attr 0.wlWatchdog room FHEM


Rechte sollten eigentlich auch passen
-rw-rw-rw- 1 fhem root  32528 Jan 31 17:17 log/fhem-2014-01.log
-rw-rw-rw- 1 fhem root 867589 Feb 10 04:27 log/fhem-2014-02.log
-rw-rw-rw- 1 fhem root    581 Feb  9 03:19 log/iPhone-2014-02.log
-rw-rw-rw- 1 fhem root      0 Feb 10 00:08 log/meinwetter-2014-02.log
-rw-rw-rw- 1 fhem root  11884 Feb 10 04:30 log/NN_TE_DMST01.Server_Heartbeat-2014-02.log
-rw-rw-rw- 1 fhem root  68203 Feb 10 04:30 log/sysmon-2014-02.log
-rw-rw-rw- 1 fhem root      0 Feb 10 03:57 log/watchdog-2014-02.log
-rw-rw-rw- 1 fhem root      0 Feb 10 02:54 log/watchdog.log
-rw-rw-rw- 1 fhem root   3550 Feb 10 04:20 log/Wetter-2014.log
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 10 Februar 2014, 19:42:21
@Lling

Läuft watchdog-Script? Kannst Du ihn in ps-Ausgabe sehen? Unter welchem User-Account?
Sind die Rechte auch auf die Verzeichnisse (/opt/fhem/log) dafür gegeben?

Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Lling am 10 Februar 2014, 20:17:42
Öhm..dachte das sind die Rechte die ich gepostet hatte? Bin noch ein wenig frisch auf dem ganzen Gebiet hier und eigentlich bin ich nach der Anleitung hier bzw. der von deiner Seite gegangen.
Wie bekomme ich denn die ps-Ausgabe?
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 10 Februar 2014, 23:31:55
ich meine, on das Rech, in die Verzeichnisse zu wechseln auch besteht.
ls -l /opt/fhem
kommt unter anderem auch etwas wie:
drwxrwxrwx  3 fhem root 12288 Feb 10 22:53 log


ps -ef | grep -v grep | grep watchdog

wie startest du den watchdog?
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Lling am 10 Februar 2014, 23:54:16
Da könnte ein Fehler sein
drwxrwxrwx 26 fhem root 12288 Feb  8 20:08 contrib
drwxrwxrwx  2 fhem root  4096 Feb  8 20:08 demolog
drwxrwxrwx  4 fhem root  4096 Feb  8 20:08 docs
drwxrwxrwx  4 fhem root 24576 Feb 10 02:53 FHEM
-rw-rw-rw-  1 fhem root  9274 Feb 10 18:44 fhem.cfg
-rw-rw-rw-  1 fhem root  5123 Oct  6 13:59 fhem.cfg.demo
-rwxrwxrwx  1 fhem root 93295 Oct  6 13:59 fhem.pl
-rw-rw-rw-  1 pi   pi     891 Feb 10 02:48 killfhem.sh
-rw-rw-rw-  1 pi   pi      54 Feb 10 02:48 killwatchdog.sh
drwxrwxrwx  2 fhem root  4096 Feb 10 03:57 log
-rw-rw-rw-  1 fhem root   761 Oct  6 13:59 README_DEMO.txt
-rw-rw-rw-  1 pi   pi     405 Feb 10 02:48 runfhem.sh
-rw-rw-rw-  1 pi   pi    1904 Feb 10 02:48 runwatchdog.sh
-rw-rw-rw-  1 pi   pi     673 Feb 10 02:48 startfhem
-rw-rw-rw-  1 pi   pi     301 Feb 10 02:48 stopfhem
-rw-rw-rw-  1 pi   pi    4336 Feb 10 02:48 watchdogloop.sh
drwxrwxrwx  7 fhem root  4096 Jan 11 15:28 www


Ehrlich gesagt dachte ich, dass der Watchdog sich automatisch startet^^
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 11 Februar 2014, 00:02:36
ne, hier ist Reche von log in Ordnung. Was liefert ps-Befehl?
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Lling am 11 Februar 2014, 00:07:22
Da passiert einfach mal...nix.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 11 Februar 2014, 00:29:27
ZitatDa passiert einfach mal...nix.
Aha. Probere ps ohne grep also so:
pf -ef
Müsste sehr gesprächig werden ;)

Oder
ps -ef | grep -v grep | grep fhem.pl
Muss eine Zeile kommen.

Ich würde sagen, watchdog läuft gar nicht erst. Probiere mal per hand zu starten:
. /opt/fhem/runwatchdog.sh
Sorge aber unbedingt vorher für den Watchdog-Part in FHEM, denn wenn die entsprechende Logs nicht aktualisiert werden, geht watchdog davon aus, dass fhem nicht (mehr) läuft und startet ihn neu... immer wieder ;)

Zur Not kannst Du ihn mit . /opt/fhem/killwatchdog.sh wieder beenden.

Wenn alles zufriedenstellen läuft, muss Du noch dafür sorgen, dass Watchdog automatisch mitstartet (also per startfhem). Dafür muss dann /etc/init.d/fhem anpegasst werden.

Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Lling am 11 Februar 2014, 00:39:23
Also bei pf -ef kommt:
-bash: pf: command not found

Bei ps -ef | grep -v grep | grep fhem.pl kommt:
fhem      1046     1  1 Feb10 ?        00:19:28 /usr/bin/perl fhem.pl fhem.cfg

Wenn ich es starten will sagt er mir:
-bash: ./watchdogloop.sh: Permission denied
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 11 Februar 2014, 01:06:56
Mein Fehler, es sollte natürlich ps, nicht pf heißen.

Wie es aussieht, hast Du die Dateien nicht ausführbar gemacht. Habe vorher in der Ausgabe von Deinem ls übersehen.
Du must Dir schon einige Linux-Grundlagen aneignen. Ansonsten wird es schwierig mit dem Scripten. Vor allem bei Änderungen in System-Dateien und -Einstellungen kann man leicht viel zerstören.

Mache erstmal alle scripte ausführbar:
sudo chmod a+x  /opt/fhem/*.sh
sudo chmod a+x  /opt/fhem/startfhem
sudo chmod a+x  /opt/fhem/stopfhem


und probiere watchdog zu starten.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Lling am 11 Februar 2014, 01:34:37
Top danke. Läuft jetzt und der Plot wird auch angezeigt. Ich danke dir für deine Geduld. Wie gesagt steh ich gerade noch komplett am Anfang mit der ganzen Geschicht. Wenn da von vielen Seiten andere Methoden kommt ist es da schwer durchzusehen.

ZitatDu must Dir schon einige Linux-Grundlagen aneignen. Ansonsten wird es schwierig mit dem Scripten. Vor allem bei Änderungen in System-Dateien und -Einstellungen kann man leicht viel zerstören.

Deswegen fummel ich da gar nicht erst rum. :D
Die /etc/init.d/fhem hab ich jetzt so angepasst, wie es auf deiner Seite beschrieben ist.
Danke nochmal.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 11 Februar 2014, 06:33:16
Na dann viel Erfolg!
;)
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 24 Februar 2014, 10:08:36
@Hexenmeister:

Sag mal kann man den Watchdog auch irgendwie in den Autostart des Raspberry's packen? Ich habe zwar eine allgemeine Anleitung bei Google gefunden, aber ich traue mich nicht so ganz daran. Will mir nicht das gesamte System zerschießen.  ;D
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 24 Februar 2014, 20:27:23
Zitatkann man den Watchdog auch irgendwie in den Autostart des Raspberry's packen?
Klar, genau so mache ich das auch. Zum Starten von FHEM dient die Datei /etc/init.d/fhem. Meine Modifikation haben ich auf GitHub hinterlegt:
https://github.com/hexenmeister/MyFHEM/blob/master/etc_init.d_fhem_script.txt

Nimm z.B. nano zu Editieren: sudo nano /etc/init.d/fhem

Mit den Init-Scripten muss man natürlich sehr vorsichtig umgehen, das System zerschiessen durch Anpassen von FHEM-Startscript ist jedoch nicht sehr wahrscheinlich. Wenn der Watchdog mit allen Dateien installiert ist und richtig läuft, kannst Du den Inhalt Deiner Datei durch meine Version ersetzen. Nach dem Reboot laufen FHEM und Watchdog beide automatisch an ;)
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 24 Februar 2014, 21:15:09
Vielen Dank! Deine Anleitung funktioniert natürlich.  ;D

Einfach Spitze, was für einen perfekten Support Du hier leistest. :)
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 05 Mai 2014, 22:43:07
@Hexenmeister:

Ich habe leider wieder massive Probleme mit meinem FHEM Server. Ich vermute, dass es am Watchdog liegt, weil FHEM circa alle 3-5min beendet und neugestartet wird. Für mich sieht es so aus, als würde der Watchdog die laufende FHEM Instanz nicht erkennen un darauf folgend funktionsgemäß entsprechende neustarten. Hast du eine Idee wie ich das wieder beheben kann?

Ein Auszug aus meinem Log:

2014.05.05 22:04:57 0: Server shutdown
2014.05.05 22:05:04 1: Including fhem.cfg
2014.05.05 22:05:05 3: WEB: port 8083 opened
2014.05.05 22:05:05 3: WEBphone: port 8084 opened
2014.05.05 22:05:05 3: WEBtablet: port 8085 opened
2014.05.05 22:05:05 3: telnetPort: port 7072 opened
2014.05.05 22:05:06 2: eventTypes: loaded 764 events from ./log/eventTypes.txt
2014.05.05 22:05:06 3: Opening FHEMduino device /dev/ttyUSB0
2014.05.05 22:05:07 3: Setting FHEMduino baudrate to 9600
2014.05.05 22:05:07 3: FHEMduino device opened
2014.05.05 22:05:10 3: FHEMduino: Possible commands: VisRq
2014.05.05 22:05:10 3: Opening CUL_0 device /dev/ttyAMA0
2014.05.05 22:05:10 3: Setting CUL_0 baudrate to 38400
2014.05.05 22:05:10 3: CUL_0 device opened
2014.05.05 22:05:11 3: CUL_0: Possible commands: mBCFAIZOGMRTVWXefltux
2014.05.05 22:05:11 2: Switched CUL_0 rfmode to MAX
2014.05.05 22:05:11 2: Switched IR_Dev irReceive to ON_NR
2014.05.05 22:05:12 1: OWX: COC/CUNO device CUL_0 defined
2014.05.05 22:05:18 3: OWTHERM: Device OWX_28_13C458050000 defined.
2014.05.05 22:05:18 3: OWTHERM: Device OWX_28_589C58050000 defined.
2014.05.05 22:05:19 1: Including ./log/fhem.save
2014.05.05 22:05:20 3: No I/O device found for FHEMduino_KW9010_35
2014.05.05 22:05:20 3: No I/O device found for LCD_Backlight
2014.05.05 22:05:20 3: No I/O device found for FHEMduino_KW9010_B5
2014.05.05 22:05:20 3: No I/O device found for FHEMduino_KW9010_77
2014.05.05 22:05:20 3: Airquality: filed to find CO20 device
2014.05.05 22:05:22 1: OWX: 1-Wire bus OWio: interface DS2482 / COC detected in CUL_0 with response R:F6000005589C5828
R:D000000558C41328
D: 2
OK
V 1.58 CSM868

2014.05.05 22:05:22 3: initialUsbCheck return value: Unknown command usb, try help.
2014.05.05 22:05:22 0: Server started with 110 defined entities (version $Id: fhem.pl 5728 2014-05-03 09:41:12Z rudolfkoenig $, os linux, user fhem, pid 2488)
2014.05.05 22:05:22 3: telnetForBlockingFn: port 36574 opened
2014.05.05 22:05:23 1: FHEMduino_KW9010 35 Skipping override due to too large timedifference
2014.05.05 22:05:32 3: OWX: Answer to CUL_0 device search is 1:F6000005589C5828
2:D000000558C41328

2014.05.05 22:05:32 1: OWX: 1-Wire devices found on bus OWio (OWX_28_589C58050000,OWX_28_13C458050000)
2014.05.05 22:06:00 3: tickHeartbeat: Undefined subroutine &main::tickHeartbeat called at (eval 75) line 1.

2014.05.05 22:06:37 1: FHEMduino_KW9010 77 Skipping override due to too large timedifference
2014.05.05 22:06:51 3: Watchdog watchdogiPhoneAngieBluetoothAbwesend triggered
2014.05.05 22:06:51 2: ROOMMATE set rr_Angie absent
2014.05.05 22:07:05 3: tickHeartbeat: Undefined subroutine &main::tickHeartbeat called at (eval 1512) line 1.

2014.05.05 22:07:06 1: telnet SSL/HTTPS error: No such file or directory
2014.05.05 22:07:12 0: Server shutdown
2014.05.05 22:07:20 1: Including fhem.cfg
2014.05.05 22:07:22 3: WEB: port 8083 opened
2014.05.05 22:07:22 3: WEBphone: port 8084 opened
2014.05.05 22:07:22 3: WEBtablet: port 8085 opened
2014.05.05 22:07:22 3: telnetPort: port 7072 opened
2014.05.05 22:07:25 2: eventTypes: loaded 764 events from ./log/eventTypes.txt
2014.05.05 22:07:26 3: Opening FHEMduino device /dev/ttyUSB0
2014.05.05 22:07:28 3: Setting FHEMduino baudrate to 9600
2014.05.05 22:07:28 3: FHEMduino device opened
2014.05.05 22:07:31 3: FHEMduino: Possible commands: VisRq
2014.05.05 22:07:31 3: Opening CUL_0 device /dev/ttyAMA0
2014.05.05 22:07:31 3: Setting CUL_0 baudrate to 38400
2014.05.05 22:07:31 3: CUL_0 device opened
2014.05.05 22:08:00 3: CUL_0: Possible commands: mBCFAIZOGMRTVWXefltux
2014.05.05 22:08:00 2: Switched CUL_0 rfmode to MAX
2014.05.05 22:08:00 2: Switched IR_Dev irReceive to ON_NR
2014.05.05 22:08:01 1: OWX: COC/CUNO device CUL_0 defined
2014.05.05 22:08:06 3: OWTHERM: Device OWX_28_13C458050000 defined.
2014.05.05 22:08:06 3: OWTHERM: Device OWX_28_589C58050000 defined.
2014.05.05 22:08:08 1: Including ./log/fhem.save
2014.05.05 22:08:08 3: No I/O device found for FHEMduino_KW9010_35
2014.05.05 22:08:08 3: No I/O device found for LCD_Backlight
2014.05.05 22:08:08 3: No I/O device found for FHEMduino_KW9010_B5
2014.05.05 22:08:08 3: No I/O device found for FHEMduino_KW9010_77
2014.05.05 22:08:08 3: Airquality: filed to find CO20 device
2014.05.05 22:08:10 1: OWX: 1-Wire bus OWio: interface DS2482 / COC detected in CUL_0 with response R:F6000005589C5828
R:D000000558C41328
D: 2
OK
V 1.58 CSM868

2014.05.05 22:08:10 3: initialUsbCheck return value: Unknown command usb, try help.
2014.05.05 22:08:10 0: Server started with 110 defined entities (version $Id: fhem.pl 5728 2014-05-03 09:41:12Z rudolfkoenig $, os linux, user fhem, pid 2145)
2014.05.05 22:08:11 3: telnetForBlockingFn: port 36239 opened
2014.05.05 22:08:11 1: FHEMduino_KW9010 35 Skipping override due to too large timedifference
2014.05.05 22:08:29 3: OWX: Answer to CUL_0 device search is 1:F6000005589C5828
2:D000000558C41328

2014.05.05 22:08:29 1: OWX: 1-Wire devices found on bus OWio (OWX_28_589C58050000,OWX_28_13C458050000)
2014.05.05 22:08:54 1: FHEMduino_KW9010 77 Skipping override due to too large timedifference
2014.05.05 22:09:00 3: tickHeartbeat: Undefined subroutine &main::tickHeartbeat called at (eval 1508) line 1.

2014.05.05 22:09:19 3: Watchdog watchdogiPhoneAngieBluetoothAbwesend triggered
2014.05.05 22:09:19 2: ROOMMATE set rr_Angie absent
2014.05.05 22:10:00 3: tickHeartbeat: Undefined subroutine &main::tickHeartbeat called at (eval 1526) line 1.

2014.05.05 22:11:00 3: tickHeartbeat: Undefined subroutine &main::tickHeartbeat called at (eval 1544) line 1.

2014.05.05 22:12:00 3: tickHeartbeat: Undefined subroutine &main::tickHeartbeat called at (eval 1561) line 1.

2014.05.05 22:13:00 3: tickHeartbeat: Undefined subroutine &main::tickHeartbeat called at (eval 1579) line 1.

2014.05.05 22:14:00 3: tickHeartbeat: Undefined subroutine &main::tickHeartbeat called at (eval 1597) line 1.

2014.05.05 22:15:00 3: tickHeartbeat: Undefined subroutine &main::tickHeartbeat called at (eval 1615) line 1.

2014.05.05 22:15:48 0: Server shutdown
2014.05.05 22:15:54 1: CallBlockingFn: Can't connect to localhost:36239

2014.05.05 22:16:53 1: Including fhem.cfg
2014.05.05 22:16:54 3: WEB: port 8083 opened
2014.05.05 22:16:54 3: WEBphone: port 8084 opened
2014.05.05 22:16:54 3: WEBtablet: port 8085 opened
2014.05.05 22:16:54 3: telnetPort: port 7072 opened
2014.05.05 22:16:55 2: eventTypes: loaded 764 events from ./log/eventTypes.txt
2014.05.05 22:16:56 3: Opening FHEMduino device /dev/ttyUSB0
2014.05.05 22:16:56 3: Setting FHEMduino baudrate to 9600
2014.05.05 22:16:56 3: FHEMduino device opened
2014.05.05 22:16:59 3: FHEMduino: Possible commands: VisRq
2014.05.05 22:16:59 3: Opening CUL_0 device /dev/ttyAMA0
2014.05.05 22:16:59 3: Setting CUL_0 baudrate to 38400
2014.05.05 22:16:59 3: CUL_0 device opened
2014.05.05 22:17:00 3: CUL_0: Possible commands: mBCFAIZOGMRTVWXefltux
2014.05.05 22:17:00 2: Switched CUL_0 rfmode to MAX
2014.05.05 22:17:00 2: Switched IR_Dev irReceive to ON_NR
2014.05.05 22:17:01 1: OWX: COC/CUNO device CUL_0 defined
2014.05.05 22:17:07 3: OWTHERM: Device OWX_28_13C458050000 defined.
2014.05.05 22:17:07 3: OWTHERM: Device OWX_28_589C58050000 defined.
2014.05.05 22:17:08 1: Including ./log/fhem.save
2014.05.05 22:17:08 3: No I/O device found for FHEMduino_KW9010_35
2014.05.05 22:17:08 3: No I/O device found for LCD_Backlight
2014.05.05 22:17:08 3: No I/O device found for FHEMduino_KW9010_B5
2014.05.05 22:17:08 3: No I/O device found for FHEMduino_KW9010_77
2014.05.05 22:17:08 3: Airquality: filed to find CO20 device
2014.05.05 22:17:10 1: OWX: 1-Wire bus OWio: interface DS2482 / COC detected in CUL_0 with response R:F6000005589C5828
R:D000000558C41328
D: 2
OK
V 1.58 CSM868

2014.05.05 22:17:10 3: initialUsbCheck return value: Unknown command usb, try help.
2014.05.05 22:17:10 0: Server started with 110 defined entities (version $Id: fhem.pl 5728 2014-05-03 09:41:12Z rudolfkoenig $, os linux, user root, pid 3072)
2014.05.05 22:17:11 3: telnetForBlockingFn: port 57195 opened
2014.05.05 22:17:12 1: FHEMduino_KW9010 35 Skipping override due to too large timedifference
2014.05.05 22:17:21 3: OWX: Answer to CUL_0 device search is 1:F6000005589C5828
2:D000000558C41328

2014.05.05 22:17:21 1: OWX: 1-Wire devices found on bus OWio (OWX_28_589C58050000,OWX_28_13C458050000)
2014.05.05 22:18:00 3: tickHeartbeat: Undefined subroutine &main::tickHeartbeat called at (eval 1520) line 1.

2014.05.05 22:18:19 3: Watchdog watchdogiPhoneAngieBluetoothAbwesend triggered
2014.05.05 22:18:19 2: ROOMMATE set rr_Angie absent
2014.05.05 22:18:50 0: Server shutdown
2014.05.05 22:18:56 1: Including fhem.cfg
2014.05.05 22:18:57 3: WEB: port 8083 opened
2014.05.05 22:18:57 3: WEBphone: port 8084 opened
2014.05.05 22:18:57 3: WEBtablet: port 8085 opened
2014.05.05 22:18:57 3: telnetPort: port 7072 opened
2014.05.05 22:18:58 2: eventTypes: loaded 764 events from ./log/eventTypes.txt
2014.05.05 22:18:59 3: Opening FHEMduino device /dev/ttyUSB0
2014.05.05 22:18:59 3: Setting FHEMduino baudrate to 9600
2014.05.05 22:18:59 3: FHEMduino device opened
2014.05.05 22:19:02 3: FHEMduino: Possible commands: VisRq
2014.05.05 22:19:03 3: Opening CUL_0 device /dev/ttyAMA0
2014.05.05 22:19:03 3: Setting CUL_0 baudrate to 38400
2014.05.05 22:19:03 3: CUL_0 device opened
2014.05.05 22:19:03 3: CUL_0: Possible commands: mBCFAIZOGMRTVWXefltux
2014.05.05 22:19:03 2: Switched CUL_0 rfmode to MAX
2014.05.05 22:19:03 2: Switched IR_Dev irReceive to ON_NR
2014.05.05 22:19:04 1: OWX: COC/CUNO device CUL_0 defined
2014.05.05 22:19:09 3: OWTHERM: Device OWX_28_13C458050000 defined.
2014.05.05 22:19:09 3: OWTHERM: Device OWX_28_589C58050000 defined.
2014.05.05 22:19:10 1: Including ./log/fhem.save
2014.05.05 22:19:11 3: No I/O device found for FHEMduino_KW9010_35
2014.05.05 22:19:11 3: No I/O device found for LCD_Backlight
2014.05.05 22:19:11 3: No I/O device found for FHEMduino_KW9010_B5
2014.05.05 22:19:11 3: No I/O device found for FHEMduino_KW9010_77
2014.05.05 22:19:11 3: Airquality: filed to find CO20 device
2014.05.05 22:19:13 1: OWX: 1-Wire bus OWio: interface DS2482 / COC detected in CUL_0 with response R:F6000005589C5828
R:D000000558C41328
D: 2
OK
V 1.58 CSM868

2014.05.05 22:19:13 3: initialUsbCheck return value: Unknown command usb, try help.
2014.05.05 22:19:13 0: Server started with 110 defined entities (version $Id: fhem.pl 5728 2014-05-03 09:41:12Z rudolfkoenig $, os linux, user fhem, pid 3241)
2014.05.05 22:19:13 3: telnetForBlockingFn: port 55212 opened
2014.05.05 22:19:14 1: FHEMduino_KW9010 35 Skipping override due to too large timedifference
2014.05.05 22:19:24 3: OWX: Answer to CUL_0 device search is 1:F6000005589C5828
2:D000000558C41328

2014.05.05 22:19:24 1: OWX: 1-Wire devices found on bus OWio (OWX_28_589C58050000,OWX_28_13C458050000)
2014.05.05 22:20:00 3: tickHeartbeat: Undefined subroutine &main::tickHeartbeat called at (eval 92) line 1.

2014.05.05 22:20:21 3: Watchdog watchdogiPhoneAngieBluetoothAbwesend triggered
2014.05.05 22:20:21 2: ROOMMATE set rr_Angie absent
2014.05.05 22:21:00 3: tickHeartbeat: Undefined subroutine &main::tickHeartbeat called at (eval 118) line 1.

2014.05.05 22:22:00 3: tickHeartbeat: Undefined subroutine &main::tickHeartbeat called at (eval 139) line 1.

2014.05.05 22:23:00 3: tickHeartbeat: Undefined subroutine &main::tickHeartbeat called at (eval 157) line 1.

2014.05.05 22:24:00 3: tickHeartbeat: Undefined subroutine &main::tickHeartbeat called at (eval 178) line 1.

2014.05.05 22:24:55 0: Server shutdown
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 06 Mai 2014, 00:10:57
Hi!

Scheint so, dass die Methode tickHeartbeat aus der 99_myUtils rausgeflogen ist (oder die ganze Datei kaputt ist).
Einfach wieder gerade biegen ;)

# --- server heartbeat / watchdog ---->
sub tickHeartbeat($)
{
my ($device) = @_;
my $v = int(Value($device));
$v = $v+1;
if($v>=60) {$v=0;}
fhem("set $device $v");
}

Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 06 Mai 2014, 11:10:31
Du hattest auf jeden Fall schon mal recht mit deiner Vermutung. Das einfügen des fehlenden Teil hat schon mal das ständige Neustarten behoben. Danke. :)
Im Log erscheint aber weiterhin minütlich diese Meldung:

2014.05.06 10:33:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 106) line 1.

2014.05.06 10:34:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 123) line 1.

2014.05.06 10:35:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 140) line 1.

2014.05.06 10:36:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 157) line 1.

2014.05.06 10:37:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 174) line 1.

2014.05.06 10:38:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 191) line 1.

2014.05.06 10:39:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 208) line 1.

2014.05.06 10:40:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 225) line 1.

2014.05.06 10:41:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 242) line 1.

2014.05.06 10:42:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 259) line 1.

2014.05.06 10:43:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 276) line 1.

2014.05.06 10:44:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 293) line 1.

2014.05.06 10:44:15 1: FHEMduino_KW9010 35 Skipping override due to too large timedifference
2014.05.06 10:45:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 310) line 1.

2014.05.06 10:46:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 329) line 1.

2014.05.06 10:47:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 346) line 1.

2014.05.06 10:48:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 363) line 1.

2014.05.06 10:49:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 380) line 1.

2014.05.06 10:50:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 397) line 1.

2014.05.06 10:51:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 412) line 1.

2014.05.06 10:52:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 429) line 1.

2014.05.06 10:53:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 446) line 1.

2014.05.06 10:54:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 463) line 1.

2014.05.06 10:55:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 480) line 1.

2014.05.06 10:56:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 499) line 1.

2014.05.06 10:57:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 516) line 1.

2014.05.06 10:58:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 533) line 1.

2014.05.06 10:59:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 550) line 1.

2014.05.06 11:00:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 567) line 1.

2014.05.06 11:01:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 583) line 1.

2014.05.06 11:02:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 602) line 1.

2014.05.06 11:03:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 619) line 1.

2014.05.06 11:04:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 636) line 1.

2014.05.06 11:05:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 660) line 1.

2014.05.06 11:06:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 828) line 1.

2014.05.06 11:07:00 1: Error evaluating Server_Heartbeat userReading lastChange: Undefined subroutine &main::CurrentTime called at (eval 845) line 1.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 06 Mai 2014, 16:47:36

Irgendwie wurde Deine 99_myUtils ganz zerschossen...

hier:


# Liefert aktueller Zeitstempel
sub
CurrentTime()
{
return strftime("%H:%M:%S", localtime());
}
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 06 Mai 2014, 21:20:01
Ich habe meine zerschossene 99_myUtils durch eine andere aus einem meiner Backups ausgetauscht. Die Meldungen im Log sind tatsächlich verschwunden. :)

Aber der Watchdog schafft es immer noch ab und an FHEM zu beenden. Hier ein Auszug aus der watchdog.log:

2014-05-06_19:00:36 fhem_server MSG: no FHEM Server process found
2014-05-06_19:03:37 fhem_server V: 37 S: alive MSG: FHEM Server alive
2014-05-06_19:04:37 fhem_server V: 37 S: alive MSG: FHEM Server alive
2014-05-06_19:05:37 fhem_server MSG: no FHEM Server process found
2014-05-06_19:08:38 fhem_server V: 38 S: alive MSG: FHEM Server alive
2014-05-06_19:09:38 fhem_server MSG: no FHEM Server process found
2014-05-06_19:12:39 fhem_server V: 39 S: alive MSG: FHEM Server alive
2014-05-06_19:13:39 fhem_server V: 39 S: alive MSG: FHEM Server alive
2014-05-06_19:14:39 fhem_server MSG: no FHEM Server process found
2014-05-06_19:17:40 fhem_server MSG: no FHEM Server process found
2014-05-06_19:20:41 fhem_server V: 41 S: alive MSG: FHEM Server alive
2014-05-06_19:21:41 fhem_server V: 41 S: alive MSG: FHEM Server alive
2014-05-06_19:22:41 fhem_server MSG: no FHEM Server process found
2014-05-06_19:25:42 fhem_server MSG: no FHEM Server process found
2014-05-06_19:28:43 fhem_server V: 43 S: alive MSG: FHEM Server alive
2014-05-06_19:29:43 fhem_server V: 43 S: alive MSG: FHEM Server alive
2014-05-06_19:30:43 fhem_server MSG: no FHEM Server process found
2014-05-06_19:33:44 fhem_server MSG: no FHEM Server process found
2014-05-06_19:36:44 fhem_server MSG: no FHEM Server process found
2014-05-06_19:39:45 fhem_server V: 45 S: alive MSG: FHEM Server alive
2014-05-06_19:40:45 fhem_server V: 45 S: alive MSG: FHEM Server alive
2014-05-06_19:41:46 fhem_server MSG: no FHEM Server process found
2014-05-06_19:44:46 fhem_server MSG: no FHEM Server process found
2014-05-06_19:47:47 fhem_server V: 47 S: alive MSG: FHEM Server alive
2014-05-06_19:48:47 fhem_server V: 47 S: alive MSG: FHEM Server alive
2014-05-06_19:49:47 fhem_server MSG: no FHEM Server process found
2014-05-06_19:52:48 fhem_server MSG: no FHEM Server process found
2014-05-06_19:55:49 fhem_server V: 48 S: alive MSG: FHEM Server alive
2014-05-06_19:56:49 fhem_server V: 49 S: alive MSG: FHEM Server alive
2014-05-06_19:57:49 fhem_server MSG: no FHEM Server process found
2014-05-06_20:00:50 fhem_server MSG: no FHEM Server process found
2014-05-06_20:03:50 fhem_server V: 50 S: alive MSG: FHEM Server alive
2014-05-06_20:04:51 fhem_server MSG: no FHEM Server process found
2014-05-06_20:07:51 fhem_server MSG: no FHEM Server process found
2014-05-06_20:10:51 fhem_server MSG: no FHEM Server process found
2014-05-06_20:13:52 fhem_server V: 52 S: alive MSG: FHEM Server alive
2014-05-06_20:14:52 fhem_server MSG: no FHEM Server process found
2014-05-06_20:17:53 fhem_server V: 53 S: alive MSG: FHEM Server alive
2014-05-06_20:18:53 fhem_server MSG: no FHEM Server process found
2014-05-06_20:21:54 fhem_server MSG: no FHEM Server process found
2014-05-06_20:24:54 fhem_server MSG: no FHEM Server process found
2014-05-06_20:27:55 fhem_server V: 55 S: alive MSG: FHEM Server alive
2014-05-06_20:28:55 fhem_server V: 55 S: alive MSG: FHEM Server alive
2014-05-06_20:29:55 fhem_server MSG: no FHEM Server process found
2014-05-06_20:32:56 fhem_server V: 56 S: alive MSG: FHEM Server alive
2014-05-06_20:33:56 fhem_server V: 56 S: alive MSG: FHEM Server alive
2014-05-06_20:34:56 fhem_server V: 56 S: alive MSG: FHEM Server alive
2014-05-06_20:35:57 fhem_server V: 57 S: alive MSG: FHEM Server alive
2014-05-06_20:36:57 fhem_server V: 57 S: alive MSG: FHEM Server alive
2014-05-06_20:37:57 fhem_server MSG: no FHEM Server process found
2014-05-06_20:40:58 fhem_server V: 58 S: alive MSG: FHEM Server alive
2014-05-06_20:41:58 fhem_server V: 58 S: alive MSG: FHEM Server alive
2014-05-06_20:42:59 fhem_server V: 59 S: alive MSG: FHEM Server alive
2014-05-06_20:43:59 fhem_server MSG: no FHEM Server process found
2014-05-06_20:43:59 fhem_server MSG: killing FHEM PID:  2100
2014-05-06_20:47:03 fhem_server MSG: no FHEM Server process found
2014-05-06_20:50:03 fhem_server V: 3 S: alive MSG: FHEM Server alive
2014-05-06_20:51:04 fhem_server V: 4 S: alive MSG: FHEM Server alive
2014-05-06_20:52:04 fhem_server V: 4 S: alive MSG: FHEM Server alive
2014-05-06_20:53:04 fhem_server V: 4 S: alive MSG: FHEM Server alive
2014-05-06_20:54:05 fhem_server MSG: no FHEM Server process found
2014-05-06_20:57:05 fhem_server V: 5 S: alive MSG: FHEM Server alive
2014-05-06_20:58:06 fhem_server V: 6 S: alive MSG: FHEM Server alive
2014-05-06_20:59:06 fhem_server V: 6 S: alive MSG: FHEM Server alive
2014-05-06_21:00:06 fhem_server MSG: no FHEM Server process found
2014-05-06_21:03:07 fhem_server MSG: no FHEM Server process found
2014-05-06_21:06:07 fhem_server V: 7 S: alive MSG: FHEM Server alive
2014-05-06_21:07:08 fhem_server V: 8 S: alive MSG: FHEM Server alive
2014-05-06_21:08:08 fhem_server V: 8 S: alive MSG: FHEM Server alive


Und einer aus dem Log:

2014.05.06 19:00:50 3: Watchdog watchdogiPhoneMiroBluetoothAbwesend triggered
2014.05.06 19:00:50 2: ROOMMATE set rr_Miro absent
2014.05.06 19:11:38 1: FHEMduino_KW9010 77 Skipping override due to too large timedifference
2014.05.06 19:31:22 1: FHEMduino_KW9010 77 Skipping override due to too large timedifference
2014.05.06 19:36:42 1: FHEMduino_KW9010 77 Skipping override due to too large timedifference
2014.05.06 20:17:14 1: FHEMduino_KW9010 77 Skipping override due to too large timedifference
2014.05.06 20:32:10 1: FHEMduino_KW9010 77 Skipping override due to too large timedifference
2014.05.06 20:32:11 3: Unautorisierter_Zutritt_Haustuer_Pushover return value: OK
2014.05.06 20:32:36 2: ROOMMATE set rr_Miro home
2014.05.06 20:44:00 0: Server shutdown
2014.05.06 20:44:05 1: Including fhem.cfg
2014.05.06 20:44:06 3: WEB: port 8083 opened
2014.05.06 20:44:06 3: WEBphone: port 8084 opened
2014.05.06 20:44:06 3: WEBtablet: port 8085 opened
2014.05.06 20:44:06 3: telnetPort: port 7072 opened
2014.05.06 20:44:08 2: eventTypes: loaded 766 events from ./log/eventTypes.txt
2014.05.06 20:44:08 3: Opening FHEMduino device /dev/ttyUSB0
2014.05.06 20:44:08 3: Setting FHEMduino baudrate to 9600
2014.05.06 20:44:08 3: FHEMduino device opened
2014.05.06 20:44:11 3: FHEMduino: Possible commands: VisRq
2014.05.06 20:44:12 3: Opening CUL_0 device /dev/ttyAMA0
2014.05.06 20:44:12 3: Setting CUL_0 baudrate to 38400
2014.05.06 20:44:12 3: CUL_0 device opened
2014.05.06 20:44:12 3: CUL_0: Possible commands: mBCFAIZOGMRTVWXefltux
2014.05.06 20:44:12 2: Switched CUL_0 rfmode to MAX
2014.05.06 20:44:12 2: Switched IR_Dev irReceive to ON_NR
2014.05.06 20:44:13 1: OWX: COC/CUNO device CUL_0 defined
2014.05.06 20:44:18 3: OWTHERM: Device OWX_28_13C458050000 defined.
2014.05.06 20:44:18 3: OWTHERM: Device OWX_28_589C58050000 defined.
2014.05.06 20:44:20 1: Including ./log/fhem.save
2014.05.06 20:44:20 1: statefile: Undefined value undef
2014.05.06 20:44:20 3: No I/O device found for FHEMduino_KW9010_35
2014.05.06 20:44:20 3: No I/O device found for LCD_Backlight
2014.05.06 20:44:20 3: No I/O device found for FHEMduino_KW9010_B5
2014.05.06 20:44:20 3: No I/O device found for FHEMduino_KW9010_77
2014.05.06 20:44:20 3: Airquality: filed to find CO20 device
2014.05.06 20:44:22 1: OWX: 1-Wire bus OWio: interface DS2482 / COC detected in CUL_0 with response R:F6000005589C5828
R:D000000558C41328
D: 2
OK
V 1.58 CSM868

2014.05.06 20:44:22 3: initialUsbCheck return value: Unknown command usb, try help.
2014.05.06 20:44:22 2: Error messages while initializing FHEM: statefile: Undefined value undef
2014.05.06 20:44:22 0: Server started with 110 defined entities (version $Id: fhem.pl 5728 2014-05-03 09:41:12Z rudolfkoenig $, os linux, user fhem, pid 16882)
2014.05.06 20:44:23 3: telnetForBlockingFn: port 57524 opened
2014.05.06 20:44:24 1: FHEMduino_KW9010 35 Skipping override due to too large timedifference
2014.05.06 20:44:26 1: FHEMduino_KW9010 B5 Skipping override due to too large timedifference
2014.05.06 20:44:33 3: OWX: Answer to CUL_0 device search is 1:F6000005589C5828
2:D000000558C41328

2014.05.06 20:44:33 1: OWX: 1-Wire devices found on bus OWio (OWX_28_589C58050000,OWX_28_13C458050000)
2014.05.06 20:45:31 3: Watchdog watchdogiPhoneAngieBluetoothAbwesend triggered
2014.05.06 20:45:31 2: ROOMMATE set rr_Angie absent
2014.05.06 21:11:06 1: FHEMduino_KW9010 77 Skipping override due to too large timedifference


Liegt das am Watchdog oder habe ich möglicherweise ein anderes Problem?  :-\
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 06 Mai 2014, 21:57:56
sieht sehr komisch aus...

Die Zeiten werden nicht überschritten, also 'hängt' FHEM nicht. Es sieht eher so aus, dass der Serverprozess einfach weg ist. Probiere mal watchdog abzuschalten. Läuft dann FHEM längere Zeit, oder geht auch kaputt?

Oder irgendwas funktioniert mit dem Befehl zun Suchen von PID nicht:

ps -ef | grep -v grep | grep fhem.pl | wc -l

und

ps -ef | grep -v grep | grep fhem.pl | cut -c10-14

Ich habe aber keine Idee, was hier passieren soll.

Landet was spannendes in watchdog_err.log?

War FHEM auch gekillt mit der 'kaputten' 99_myUtils nach den Eintragen von den zwei fehlenen Methoden? Evtl. hat diese Datei aus der Sicherung auch ein Problem?

Ich sehe auch ein Shutdown im Log. Hast Du FHEM da selbst neugestartet ?
  2014.05.06 20:44:00 0: Server shutdown
Davor war eine 12 minutige Pause, was auch komisch ist.

Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 07 Mai 2014, 11:22:36
Danke schon mal für deine ausführliche Hilfe!

Ich habe FHEM kein einziges Mal neugestartet. Das macht es ganz von alleine. Bin gerade mal das Log von heute Nacht durch gegangen und musst feststellen, dass FHEM seit 0 Uhr bis jetzt 11 Mal ein "Server shutdown" durchgeführt hat. Die "watchdog_err.log" ist prall gefüllt. Hier mal ein Auszug:

Use of uninitialized value in numeric gt (>) at fhem.pl line 374.
./killfhem.sh: 37: kill: No such process

./startfhem: 17: ./startfhem: cannot create log/watchdog_err.log: Permission denied
./startfhem: 31: ./startfhem: cannot create log/watchdog_err.log: Permission denied
Useless use of numeric eq (==) in void context at ./FHEM/74_StreamRadio.pm line 112, <$fh> line 225.
Use of uninitialized value in pattern match (m//) at ./FHEM/38_CO20.pm line 84.
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./startfhem: 17: ./startfhem: cannot create log/watchdog_err.log: Permission denied
./startfhem: 31: ./startfhem: cannot create log/watchdog_err.log: Permission denied
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
./watchdogloop.sh: 159: test: 2100: unexpected operator
./watchdogloop.sh: 66: test: 2100: unexpected operator
Use of uninitialized value in concatenation (.) or string at ./FHEM/74_StreamRadio.pm line 163.
./watchdogloop.sh: 168: kill: No such process

Useless use of numeric eq (==) in void context at ./FHEM/74_StreamRadio.pm line 112, <$fh> line 224.
Use of uninitialized value in pattern match (m//) at ./FHEM/38_CO20.pm line 84.
./watchdogloop.sh: 66: test: 16882: unexpected operator
./watchdogloop.sh: 159: test: 16882: unexpected operator
./watchdogloop.sh: 66: test: 16882: unexpected operator
./watchdogloop.sh: 159: test: 16882: unexpected operator
./watchdogloop.sh: 66: test: 16882: unexpected operator
./watchdogloop.sh: 159: test: 16882: unexpected operator
./watchdogloop.sh: 66: test: 16882: unexpected operator
./watchdogloop.sh: 159: test: 16882: unexpected operator
./watchdogloop.sh: 66: test: 16882: unexpected operator
./watchdogloop.sh: 159: test: 16882: unexpected operator
./watchdogloop.sh: 66: test: 16882: unexpected operator
./watchdogloop.sh: 159: test: 16882: unexpected operator
./watchdogloop.sh: 66: test: 16882: unexpected operator
Use of uninitialized value in concatenation (.) or string at ./FHEM/74_StreamRadio.pm line 163.
./watchdogloop.sh: 168: kill: No such process

Useless use of numeric eq (==) in void context at ./FHEM/74_StreamRadio.pm line 112, <$fh> line 224.
Use of uninitialized value in pattern match (m//) at ./FHEM/38_CO20.pm line 84.
./watchdogloop.sh: 66: test: 20092: unexpected operator
./watchdogloop.sh: 159: test: 20092: unexpected operator
./watchdogloop.sh: 66: test: 20092: unexpected operator
./watchdogloop.sh: 159: test: 20092: unexpected operator
./watchdogloop.sh: 66: test: 20092: unexpected operator
Use of uninitialized value in concatenation (.) or string at ./FHEM/74_StreamRadio.pm line 163.
./watchdogloop.sh: 168: kill: No such process

Useless use of numeric eq (==) in void context at ./FHEM/74_StreamRadio.pm line 112, <$fh> line 224.
Use of uninitialized value in pattern match (m//) at ./FHEM/38_CO20.pm line 84.
./watchdogloop.sh: 66: test: 21512: unexpected operator
./watchdogloop.sh: 159: test: 21512: unexpected operator
./watchdogloop.sh: 66: test: 21512: unexpected operator
./watchdogloop.sh: 159: test: 21512: unexpected operator
./watchdogloop.sh: 66: test: 21512: unexpected operator
./watchdogloop.sh: 159: test: 21512: unexpected operator
./watchdogloop.sh: 66: test: 21512: unexpected operator
Use of uninitialized value in concatenation (.) or string at ./FHEM/74_StreamRadio.pm line 163.
./watchdogloop.sh: 168: kill: No such process

Useless use of numeric eq (==) in void context at ./FHEM/74_StreamRadio.pm line 112, <$fh> line 224.
Use of uninitialized value in pattern match (m//) at ./FHEM/38_CO20.pm line 84.
./watchdogloop.sh: 66: test: 23480: unexpected operator
./watchdogloop.sh: 159: test: 23480: unexpected operator
./watchdogloop.sh: 66: test: 23480: unexpected operator
./watchdogloop.sh: 159: test: 23480: unexpected operator
./watchdogloop.sh: 66: test: 23480: unexpected operator
./watchdogloop.sh: 159: test: 23480: unexpected operator
./watchdogloop.sh: 66: test: 23480: unexpected operator
./watchdogloop.sh: 159: test: 23480: unexpected operator
./watchdogloop.sh: 66: test: 23480: unexpected operator
./watchdogloop.sh: 159: test: 23480: unexpected operator
./watchdogloop.sh: 66: test: 23480: unexpected operator
./watchdogloop.sh: 159: test: 23480: unexpected operator
./watchdogloop.sh: 66: test: 23480: unexpected operator
./watchdogloop.sh: 159: test: 23480: unexpected operator
./watchdogloop.sh: 66: test: 23480: unexpected operator
./watchdogloop.sh: 159: test: 23480: unexpected operator
./watchdogloop.sh: 66: test: 23480: unexpected operator
./watchdogloop.sh: 159: test: 23480: unexpected operator
./watchdogloop.sh: 66: test: 23480: unexpected operator
./watchdogloop.sh: 159: test: 23480: unexpected operator
./watchdogloop.sh: 66: test: 23480: unexpected operator
Use of uninitialized value in concatenation (.) or string at ./FHEM/74_StreamRadio.pm line 163.
./watchdogloop.sh: 168: kill: No such process

Useless use of numeric eq (==) in void context at ./FHEM/74_StreamRadio.pm line 112, <$fh> line 224.
Use of uninitialized value in pattern match (m//) at ./FHEM/38_CO20.pm line 84.
./watchdogloop.sh: 66: test: 30149: unexpected operator
./watchdogloop.sh: 159: test: 30149: unexpected operator
./watchdogloop.sh: 66: test: 30149: unexpected operator
./watchdogloop.sh: 159: test: 30149: unexpected operator
./watchdogloop.sh: 66: test: 30149: unexpected operator
./watchdogloop.sh: 159: test: 30149: unexpected operator
./watchdogloop.sh: 66: test: 30149: unexpected operator
./watchdogloop.sh: 159: test: 30149: unexpected operator
./watchdogloop.sh: 66: test: 30149: unexpected operator
./watchdogloop.sh: 159: test: 30149: unexpected operator
./watchdogloop.sh: 66: test: 357: unexpected operator
./watchdogloop.sh: 159: test: 357: unexpected operator
./watchdogloop.sh: 66: test: 988: unexpected operator
./watchdogloop.sh: 159: test: 988: unexpected operator
./watchdogloop.sh: 66: test: 1735: unexpected operator
./watchdogloop.sh: 159: test: 1735: unexpected operator
./watchdogloop.sh: 66: test: 2030: unexpected operator
./watchdogloop.sh: 159: test: 2030: unexpected operator
./watchdogloop.sh: 66: test: 2561: unexpected operator
./watchdogloop.sh: 159: test: 2561: unexpected operator
./watchdogloop.sh: 66: test: 2850: unexpected operator
./watchdogloop.sh: 159: test: 2850: unexpected operator
./watchdogloop.sh: 66: test: 3367: unexpected operator
./watchdogloop.sh: 159: test: 3367: unexpected operator
./watchdogloop.sh: 66: test: 3998: unexpected operator
./watchdogloop.sh: 159: test: 3998: unexpected operator
./watchdogloop.sh: 66: test: 4626: unexpected operator
./watchdogloop.sh: 159: test: 4626: unexpected operator
./watchdogloop.sh: 66: test: 5020: unexpected operator
./watchdogloop.sh: 159: test: 5020: unexpected operator
./watchdogloop.sh: 66: test: 5237: unexpected operator
./watchdogloop.sh: 159: test: 5237: unexpected operator
./watchdogloop.sh: 66: test: 5866: unexpected operator
./watchdogloop.sh: 159: test: 5866: unexpected operator
./watchdogloop.sh: 66: test: 6501: unexpected operator
Use of uninitialized value in concatenation (.) or string at ./FHEM/74_StreamRadio.pm line 163.
./watchdogloop.sh: 168: kill: No such process

Useless use of numeric eq (==) in void context at ./FHEM/74_StreamRadio.pm line 112, <$fh> line 224.
Use of uninitialized value in pattern match (m//) at ./FHEM/38_CO20.pm line 84.
./watchdogloop.sh: 66: test: 6548: unexpected operator
./watchdogloop.sh: 159: test: 6548: unexpected operator
./watchdogloop.sh: 66: test: 6548: unexpected operator
./watchdogloop.sh: 159: test: 6548: unexpected operator
./watchdogloop.sh: 66: test: 6548: unexpected operator
./watchdogloop.sh: 159: test: 6548: unexpected operator
./watchdogloop.sh: 66: test: 6548: unexpected operator
./watchdogloop.sh: 159: test: 6548: unexpected operator
./watchdogloop.sh: 66: test: 6548: unexpected operator
./watchdogloop.sh: 159: test: 6548: unexpected operator
./watchdogloop.sh: 66: test: 6548: unexpected operator
./watchdogloop.sh: 159: test: 6548: unexpected operator
./watchdogloop.sh: 66: test: 6548: unexpected operator
./watchdogloop.sh: 159: test: 6548: unexpected operator
./watchdogloop.sh: 66: test: 6548: unexpected operator
Use of uninitialized value in concatenation (.) or string at ./FHEM/74_StreamRadio.pm line 163.
./watchdogloop.sh: 168: kill: No such process

Use of uninitialized value $temperature in concatenation (.) or string at ./FHEM/59_Weather.pm line 359, <$fh> line 117.
Use of uninitialized value $humidity in concatenation (.) or string at ./FHEM/59_Weather.pm line 359, <$fh> line 117.
Use of uninitialized value $wind in concatenation (.) or string at ./FHEM/59_Weather.pm line 359, <$fh> line 117.
Useless use of numeric eq (==) in void context at ./FHEM/74_StreamRadio.pm line 112, <$fh> line 224.
Use of uninitialized value in pattern match (m//) at ./FHEM/38_CO20.pm line 84.
./watchdogloop.sh: 66: test: 10278: unexpected operator
./watchdogloop.sh: 159: test: 10278: unexpected operator
./watchdogloop.sh: 66: test: 10278: unexpected operator
Use of uninitialized value in concatenation (.) or string at ./FHEM/74_StreamRadio.pm line 163.
./watchdogloop.sh: 168: kill: No such process

Useless use of numeric eq (==) in void context at ./FHEM/74_StreamRadio.pm line 112, <$fh> line 224.
Use of uninitialized value in pattern match (m//) at ./FHEM/38_CO20.pm line 84.
./watchdogloop.sh: 66: test: 11610: unexpected operator
./watchdogloop.sh: 159: test: 11610: unexpected operator
./watchdogloop.sh: 66: test: 11610: unexpected operator
./watchdogloop.sh: 159: test: 11610: unexpected operator
./watchdogloop.sh: 66: test: 11610: unexpected operator
./watchdogloop.sh: 159: test: 11610: unexpected operator
./watchdogloop.sh: 66: test: 11610: unexpected operator
./watchdogloop.sh: 159: test: 11610: unexpected operator
./watchdogloop.sh: 66: test: 11610: unexpected operator
./watchdogloop.sh: 159: test: 11610: unexpected operator
./watchdogloop.sh: 66: test: 11610: unexpected operator
./watchdogloop.sh: 159: test: 11610: unexpected operator
./watchdogloop.sh: 66: test: 11610: unexpected operator
./watchdogloop.sh: 159: test: 11610: unexpected operator
./watchdogloop.sh: 66: test: 11610: unexpected operator
./watchdogloop.sh: 159: test: 11610: unexpected operator
./watchdogloop.sh: 66: test: 11610: unexpected operator
./watchdogloop.sh: 159: test: 11610: unexpected operator
./watchdogloop.sh: 66: test: 11610: unexpected operator
./watchdogloop.sh: 159: test: 11610: unexpected operator
./watchdogloop.sh: 66: test: 11610: unexpected operator
./watchdogloop.sh: 159: test: 11610: unexpected operator
./watchdogloop.sh: 66: test: 11610: unexpected operator
./watchdogloop.sh: 159: test: 11610: unexpected operator
./watchdogloop.sh: 66: test: 11610: unexpected operator
./watchdogloop.sh: 159: test: 11610: unexpected operator
./watchdogloop.sh: 66: test: 11610: unexpected operator
./watchdogloop.sh: 159: test: 11610: unexpected operator
./watchdogloop.sh: 66: test: 11610: unexpected operator
./watchdogloop.sh: 159: test: 11610: unexpected operator
./watchdogloop.sh: 66: test: 11610: unexpected operator
./watchdogloop.sh: 159: test: 11610: unexpected operator
./watchdogloop.sh: 66: test: 11610: unexpected operator
./watchdogloop.sh: 159: test: 11610: unexpected operator
./watchdogloop.sh: 66: test: 11610: unexpected operator
./watchdogloop.sh: 159: test: 11610: unexpected operator
./watchdogloop.sh: 66: test: 11610: unexpected operator
Use of uninitialized value in concatenation (.) or string at ./FHEM/74_StreamRadio.pm line 163.
./watchdogloop.sh: 168: kill: No such process

Useless use of numeric eq (==) in void context at ./FHEM/74_StreamRadio.pm line 112, <$fh> line 224.
Use of uninitialized value in pattern match (m//) at ./FHEM/38_CO20.pm line 84.
./watchdogloop.sh: 66: test: 22514: unexpected operator
./watchdogloop.sh: 159: test: 22514: unexpected operator
./watchdogloop.sh: 66: test: 22514: unexpected operator
./watchdogloop.sh: 159: test: 22514: unexpected operator
./watchdogloop.sh: 66: test: 22514: unexpected operator
./watchdogloop.sh: 159: test: 22514: unexpected operator
./watchdogloop.sh: 66: test: 22514: unexpected operator
./watchdogloop.sh: 159: test: 22514: unexpected operator
./watchdogloop.sh: 66: test: 22514: unexpected operator
./watchdogloop.sh: 159: test: 22514: unexpected operator
./watchdogloop.sh: 66: test: 22514: unexpected operator
./watchdogloop.sh: 159: test: 22514: unexpected operator
./watchdogloop.sh: 66: test: 22514: unexpected operator
./watchdogloop.sh: 159: test: 22514: unexpected operator
./watchdogloop.sh: 66: test: 22514: unexpected operator
./watchdogloop.sh: 159: test: 22514: unexpected operator
./watchdogloop.sh: 66: test: 22514: unexpected operator
./watchdogloop.sh: 159: test: 22514: unexpected operator
./watchdogloop.sh: 66: test: 22514: unexpected operator
./watchdogloop.sh: 159: test: 22514: unexpected operator
./watchdogloop.sh: 66: test: 22514: unexpected operator
./watchdogloop.sh: 159: test: 22514: unexpected operator
./watchdogloop.sh: 66: test: 22514: unexpected operator
./watchdogloop.sh: 159: test: 22514: unexpected operator
./watchdogloop.sh: 66: test: 22514: unexpected operator
./watchdogloop.sh: 159: test: 22514: unexpected operator
./watchdogloop.sh: 66: test: 22514: unexpected operator
./watchdogloop.sh: 159: test: 22514: unexpected operator
./watchdogloop.sh: 66: test: 22514: unexpected operator
./watchdogloop.sh: 159: test: 22514: unexpected operator
./watchdogloop.sh: 66: test: 22514: unexpected operator
./watchdogloop.sh: 159: test: 22514: unexpected operator
./watchdogloop.sh: 66: test: 22514: unexpected operator
./watchdogloop.sh: 159: test: 22514: unexpected operator
./watchdogloop.sh: 66: test: 22514: unexpected operator
./watchdogloop.sh: 159: test: 22514: unexpected operator
./watchdogloop.sh: 66: test: 690: unexpected operator
./watchdogloop.sh: 159: test: 690: unexpected operator
./watchdogloop.sh: 66: test: 1322: unexpected operator
./watchdogloop.sh: 159: test: 1322: unexpected operator
./watchdogloop.sh: 66: test: 2054: unexpected operator
./watchdogloop.sh: 159: test: 2054: unexpected operator
./watchdogloop.sh: 66: test: 2626: unexpected operator
./watchdogloop.sh: 159: test: 2626: unexpected operator
./watchdogloop.sh: 66: test: 2847: unexpected operator
./watchdogloop.sh: 159: test: 2847: unexpected operator
./watchdogloop.sh: 66: test: 3320: unexpected operator
./watchdogloop.sh: 159: test: 3320: unexpected operator
./watchdogloop.sh: 66: test: 3953: unexpected operator
./watchdogloop.sh: 159: test: 3953: unexpected operator
./watchdogloop.sh: 66: test: 4583: unexpected operator
./watchdogloop.sh: 159: test: 4583: unexpected operator
./watchdogloop.sh: 66: test: 5051: unexpected operator
./watchdogloop.sh: 159: test: 5051: unexpected operator
./watchdogloop.sh: 66: test: 5272: unexpected operator
./watchdogloop.sh: 159: test: 5272: unexpected operator
./watchdogloop.sh: 66: test: 5827: unexpected operator
./watchdogloop.sh: 159: test: 5827: unexpected operator
./watchdogloop.sh: 66: test: 6455: unexpected operator
Use of uninitialized value in concatenation (.) or string at ./FHEM/74_StreamRadio.pm line 163.
./watchdogloop.sh: 168: kill: No such process

Useless use of numeric eq (==) in void context at ./FHEM/74_StreamRadio.pm line 112, <$fh> line 224.
Use of uninitialized value in pattern match (m//) at ./FHEM/38_CO20.pm line 84.
./watchdogloop.sh: 66: test: 6502: unexpected operator
./watchdogloop.sh: 159: test: 6502: unexpected operator
./watchdogloop.sh: 66: test: 6502: unexpected operator
./watchdogloop.sh: 159: test: 6502: unexpected operator
./watchdogloop.sh: 66: test: 6502: unexpected operator
./watchdogloop.sh: 159: test: 6502: unexpected operator
./watchdogloop.sh: 66: test: 6502: unexpected operator
./watchdogloop.sh: 159: test: 6502: unexpected operator
./watchdogloop.sh: 66: test: 6502: unexpected operator
./watchdogloop.sh: 159: test: 6502: unexpected operator
./watchdogloop.sh: 66: test: 6502: unexpected operator
./watchdogloop.sh: 159: test: 6502: unexpected operator
./watchdogloop.sh: 66: test: 6502: unexpected operator
./watchdogloop.sh: 159: test: 6502: unexpected operator
./watchdogloop.sh: 66: test: 6502: unexpected operator
./watchdogloop.sh: 159: test: 6502: unexpected operator
./watchdogloop.sh: 66: test: 6502: unexpected operator
./watchdogloop.sh: 159: test: 6502: unexpected operator
./watchdogloop.sh: 66: test: 6502: unexpected operator
Use of uninitialized value in concatenation (.) or string at ./FHEM/74_StreamRadio.pm line 163.
./watchdogloop.sh: 168: kill: No such process

Useless use of numeric eq (==) in void context at ./FHEM/74_StreamRadio.pm line 112, <$fh> line 224.
Use of uninitialized value in pattern match (m//) at ./FHEM/38_CO20.pm line 84.
./watchdogloop.sh: 66: test: 12515: unexpected operator
./watchdogloop.sh: 159: test: 12515: unexpected operator
./watchdogloop.sh: 66: test: 12515: unexpected operator
./watchdogloop.sh: 159: test: 12515: unexpected operator
./watchdogloop.sh: 66: test: 12515: unexpected operator
Use of uninitialized value in concatenation (.) or string at ./FHEM/74_StreamRadio.pm line 163.
./watchdogloop.sh: 168: kill: No such process

Useless use of numeric eq (==) in void context at ./FHEM/74_StreamRadio.pm line 112, <$fh> line 224.
Use of uninitialized value in pattern match (m//) at ./FHEM/38_CO20.pm line 84.
./watchdogloop.sh: 66: test: 13913: unexpected operator
./watchdogloop.sh: 159: test: 13913: unexpected operator
./watchdogloop.sh: 66: test: 13913: unexpected operator
./watchdogloop.sh: 159: test: 13913: unexpected operator
./watchdogloop.sh: 66: test: 13913: unexpected operator
./watchdogloop.sh: 159: test: 13913: unexpected operator
./watchdogloop.sh: 66: test: 13913: unexpected operator
./watchdogloop.sh: 159: test: 13913: unexpected operator
./watchdogloop.sh: 66: test: 13913: unexpected operator
./watchdogloop.sh: 159: test: 13913: unexpected operator
./watchdogloop.sh: 66: test: 13913: unexpected operator
./watchdogloop.sh: 159: test: 13913: unexpected operator
./watchdogloop.sh: 66: test: 13913: unexpected operator
Use of uninitialized value in concatenation (.) or string at ./FHEM/74_StreamRadio.pm line 163.
./watchdogloop.sh: 168: kill: No such process

Useless use of numeric eq (==) in void context at ./FHEM/74_StreamRadio.pm line 112, <$fh> line 224.
Use of uninitialized value in pattern match (m//) at ./FHEM/38_CO20.pm line 84.
./watchdogloop.sh: 66: test: 17363: unexpected operator
./watchdogloop.sh: 159: test: 17363: unexpected operator
./watchdogloop.sh: 66: test: 17363: unexpected operator
./watchdogloop.sh: 159: test: 17363: unexpected operator
./watchdogloop.sh: 66: test: 17363: unexpected operator
./watchdogloop.sh: 159: test: 17363: unexpected operator
./watchdogloop.sh: 66: test: 17363: unexpected operator
./watchdogloop.sh: 159: test: 17363: unexpected operator
./watchdogloop.sh: 66: test: 17363: unexpected operator
Use of uninitialized value in concatenation (.) or string at ./FHEM/74_StreamRadio.pm line 163.
./watchdogloop.sh: 168: kill: No such process

Useless use of numeric eq (==) in void context at ./FHEM/74_StreamRadio.pm line 112, <$fh> line 224.
Use of uninitialized value in pattern match (m//) at ./FHEM/38_CO20.pm line 84.
./watchdogloop.sh: 66: test: 19967: unexpected operator
./watchdogloop.sh: 159: test: 19967: unexpected operator


Vllt. findest du ja da was interessantes. Habe den Watchdog nun mal beendet und werde schauen wie es sich bis heute Abend verhält.

Edit: Zudem steht nun diese Meldung auf der FHEM Hauptseite:  :-\

Error messages while initializing FHEM:
statefile: Undefined value undef
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 07 Mai 2014, 17:44:30
Es scheint mir so, dass mit deinem System etwas ziemlich nicht in Ordnung ist. Die Suche/Test nach dem PID von FHEM-Prozess scheint schon mal nicht korrekt zu funktionieren. Mal klapt es, mal liefert es nichts (und dabei wird dann FHEM doch beendet). Mal geht auch das Beenden nicht (kill: No such process).
Probiere die Test-Befehle in der SHH-Console mit und ohne laufenden FHEM. Ist vielleicht auch die watchdogloop.sh irgendwie verändert worden? (Kartenfehler?) Was steht in den Zeilen 66 und 159?

Aus diesen Symptomen werde ich nicht schlau...
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 07 Mai 2014, 21:00:43
Mit beendeten Watchdogs lief Fhem den ganzen Nachmittag problemlos. Grad eben habe ich den Watchdog wieder gestartet und prompt wurde Fhem erstmal neugestartet.

Der Befehl "ps -ef | grep -v grep | grep fhem.pl | wc -l" ergibt bei nicht laufendem Fhem eine 0. Das sollte ja soweit richtig sein. Bei laufendem Fhem ergibt es eine 1 manchmal aber auch eine 2.

Der Befehl "ps -ef | grep -v grep | grep fhem.pl | cut -c10-14" ergibt bei nicht laufendem Fhem gar keine Ausgabe und bei laufendem Fhem in der Regel eine PID, wie "24431", manchmal aber auch drei PIDs, wie "24431, 24450, 24451" Ist das möglicherweise das Problem?

Die "watchdogloop.sh" habe ich sicherhaltshalber durch eine aktuelle von der HP ausgetauscht.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 07 Mai 2014, 22:44:36
Mehrere PIDs müsste ja bedeuten, dass mehrere FHEM-Instanzen gleichzeitig laufen. Das erscheint mir komisch.
Laufen die VErsionen von GitHub besser?
Meine habe ich seit sehr langen Zeit nicht mehr angefasst, es läuft problemlos.

Fällt mir gerade ein, ich habe in Deinen Logs die 'permission denied'-Meldungen gesehen. Das kann auch ein Problem sein. Prüfe bitte, ob die Zugriffsrechte auf die Log-Dateien korrekt sind.

Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 08 Mai 2014, 21:41:56
Mit den Github Versionen habe ich die gleichen Probleme wie vorher. Ich habe einfach deine Anleitung nochmals abgearbeitet. Am Ende stehe ich faktisch wieder am Anfang. Kann es sein, dass FHEM keinen Zugriff auf den LOG Ordner hat? Aktuell steht folgende in der "watchdog_err.log":

./startfhem: 17: ./startfhem: cannot create log/watchdog_err.log: Permission denied
./startfhem: 31: ./startfhem: cannot create log/watchdog_err.log: Permission denied
chmod: changing permissions of `./log/watchdog-2014-05.log': Operation not permitted
./startfhem: 17: ./startfhem: cannot create log/watchdog_err.log: Permission denied
./startfhem: 31: ./startfhem: cannot create log/watchdog_err.log: Permission denied
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 08 Mai 2014, 21:52:35
Hm... Sieht so aus. Das ist vermutlich genau das Problem. Watchdog kann nicht die log lesen und erkennt nicht, ob fhem noch lebenszeichen von sich gibt. Verpasse dem log ordner passende Rechte. 
ungefähr so, je nach dem wo fhem installiert ist.
sudo chmod a+rw /opt/fhem/log
Auch für die log Dateien...
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 09 Mai 2014, 13:39:44
Hallo. Ich habe "sudo chmod a+rw /opt/fhem/log" ausgeführt, aber leider wieder das Problem nicht behoben. Fhem läuft ein paar Minuten. Dann wird es beendet und startet nun aber auch nicht mehr selbstständig. Ich glaube das Beste wäre, wenn ich den Pi einmal komplett neu aufsetze. Würde dann die Anleitung von deiner HP benutzen. Oder was meinst du?
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 09 Mai 2014, 20:32:08
Hi!

Dieses Befehl alleine reicht noch nicht, auch die Log-Dateien müssen angepasst werden. Probiere mal noch folgendes:


sudo chmod a+rwx /opt/fhem/log
sudo chmod a+rw -R /opt/fhem/log/


Grundsätzlich kann man schon auch alles neu aufsetzen. Ich würde in jedem Fall eine neue SD-Card nehmen, dann hast Du jetziges System als Fallback-Lösung noch am Laufen. Ansonsten müsste die Anleitng auf der HP funktionieren, wenn nicht, schauen wir das uns dann gemeinesam an.

Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 11 Mai 2014, 22:17:12
So ich habe mein System heute komplett aufgesetzt. Alles bis auf den Watchdog. Erstaunlicherweise ist der Pi/Fhem nun richtig schnell. Scheinbar hat vorher tatsächlich irgendwas nicht richtig funktioniert. Ich habe mir ein Backup Image erstellt und werde morgen früh mit Hilfe deiner Anleitung den Watchdog installieren. Diesmal hoffentlich erfolgreich. ^^
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Ma_Bo am 12 Mai 2014, 10:12:38
Hallo,
ich habe huete mal deinen Watchdog eingebaut und es funktioniert alles soweit super.

Jetzt habe ich in meiner watchdog_err.log Datei ein Problem:


Use of uninitialized value $a[1] in substitution (s///) at ./FHEM/98_SVG.pm line 994.
Use of uninitialized value in join or string at ./FHEM/98_SVG.pm line 994.


diese beiden Zeilen fügt er jedesmal hinzu, sobald ich über das WEB Interface zugreife oder im Browser aktualisiere.

Woran kann das liegen ?

Gruß Marcel
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 12 Mai 2014, 13:34:24
Hat mit Watchdog vermutlich nichts zu tun. In dieser Datei landet jetzt alles, was in FHEM auf error geloggt wird. Das ist irgendein Problem mit einer Diagramm oder gar mit dem SVG-Modul selbst.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Ma_Bo am 12 Mai 2014, 14:01:58
Hey hexenmeister,
stimmt, habe durch probieren jetzt rausgefunden, dass wenn ich

define 0.wlHeartbeat SVG FileLog_NN_TE_DMST01.Server_Heartbeat:myServerHeartbeat:CURRENT


auskommentiere, kein Fehler mehr entsteht, aber warum ist das so ?

SVG hab ich schon neu geupdatet.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 12 Mai 2014, 20:30:31
So der Watchdog ist eingerichtet. Anfangs hatte ich wieder massive Probleme. FHEM wurde nicht erkannt und demnach ständig beendet. Ich habe mir dann mal die Definitionen in der Fhem.cfg und die bereitgestellten Skripte näher angeschaut und bin in der "watchdogloop.sh" fündig geworden. Da ich die zu überwachende Log Datei von "NN_TE_DMST01.Server_Heartbeat-%Y-%m.log" in "Server_Heartbeat-%Y-%m.log" umbenannt habe, passte meine Konfiguration einfach nicht mehr zum Skript, weil der Watchdog laut Skript die "NN_TE_DMST01.Server_Heartbeat-%Y-%m.log" kontrollieren soll:

# Zu ueberwachende Log-Datei (Grundname)
activeLogName=NN_TE_DMST01.Server_Heartbeat


Ich habe das Skript nun so geändert:

# Zu ueberwachende Log-Datei (Grundname)
activeLogName=Server_Heartbeat


Und sieht da, mein FHEM und der Watchdog laufen seit 3 Stunden ohne Aussetzer. Hoffentlich bleibt es dabei.   ::)
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 13 Mai 2014, 00:19:42
Zitat von: Ma_Bo am 12 Mai 2014, 10:12:38
...
Jetzt habe ich in meiner watchdog_err.log Datei ein Problem:


Use of uninitialized value $a[1] in substitution (s///) at ./FHEM/98_SVG.pm line 994.
Use of uninitialized value in join or string at ./FHEM/98_SVG.pm line 994.


diese beiden Zeilen fügt er jedesmal hinzu, sobald ich über das WEB Interface zugreife oder im Browser aktualisiere.

Woran kann das liegen ?

Habe doch das Problem bei mir gefunden. Bitte die Datei https://github.com/hexenmeister/MyFHEM/blob/master/www/gplot/myServerHeartbeat.gplot neu holen.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 13 Mai 2014, 00:21:49
Zitat von: Spezialtrick am 12 Mai 2014, 20:30:31
Und sieht da, mein FHEM und der Watchdog laufen seit 3 Stunden ohne Aussetzer. Hoffentlich bleibt es dabei.   ::)

Sehr schön ;)
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Ma_Bo am 13 Mai 2014, 12:38:34
Danke Hexenmeister,
ABER jetzt ist in meinem Diagramm für die NN_TE_DMST01.Server_Heartbeat-2014-05.log nix mehr zu sehen. ;)
Habe unten im Diagramm nur eine ganz dünne grüne Linie und sonst nichts mehr.

Danke erstmal für den guten Support hier, bin ziemlich neu hier und lese schon eine Weile bei verschiedenen Themen mit, einfach Wahnsinn, wie einem hier geholfen wird !
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 13 Mai 2014, 21:45:06
achso, es sollte auch funktionieren, konnte ich ja nicht ahnen ;)

Naja, ich habe gestern etwas durcheinander gebracht.
Bitte aus GitHub neu holen, die grüne 'Säge' sollte jetzt wieder da sein.

Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Ma_Bo am 14 Mai 2014, 15:33:25
Vielen Dank, jetzt läuft alles ohne irgendeinen Fehler !
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 20 Mai 2014, 15:19:00
So nun läuft der Watchdog wie er soll. Ich habe aber etwas interessantes beobachtet, womit ich nicht anfangen kann. Nach einem Neustart von FHEM z.b. nach einem Update, heute habe ich um gegen 12:15 ein Update durchgeführt, wird folgendes in der watchdog.log ausgegeben:

2014-05-20_12:15:45 fhem_server V: 105 S: alive MSG: FHEM Server alive
2014-05-20_12:16:45 fhem_server V: 45 S: alive MSG: FHEM Server alive
2014-05-20_12:17:45 fhem_server V: 45 S: alive MSG: FHEM Server alive
2014-05-20_12:18:46 fhem_server MSG: no FHEM Server process found
2014-05-20_12:21:46 fhem_server V: 46 S: alive MSG: FHEM Server alive
2014-05-20_12:22:46 fhem_server V: 46 S: alive MSG: FHEM Server alive
2014-05-20_12:23:47 fhem_server V: 47 S: alive MSG: FHEM Server alive
2014-05-20_12:24:47 fhem_server V: 47 S: alive MSG: FHEM Server alive
2014-05-20_12:25:47 fhem_server MSG: no FHEM Server process found
2014-05-20_12:28:48 fhem_server V: 48 S: alive MSG: FHEM Server alive
2014-05-20_12:29:48 fhem_server V: 48 S: alive MSG: FHEM Server alive
2014-05-20_12:30:49 fhem_server V: 49 S: alive MSG: FHEM Server alive
2014-05-20_12:31:49 fhem_server MSG: no FHEM Server process found
2014-05-20_12:34:50 fhem_server MSG: no FHEM Server process found
2014-05-20_12:37:50 fhem_server V: 50 S: alive MSG: FHEM Server alive
2014-05-20_12:38:51 fhem_server V: 51 S: alive MSG: FHEM Server alive
2014-05-20_12:39:51 fhem_server V: 51 S: alive MSG: FHEM Server alive
2014-05-20_12:40:51 fhem_server MSG: no FHEM Server process found
2014-05-20_12:43:52 fhem_server V: 52 S: alive MSG: FHEM Server alive
2014-05-20_12:44:52 fhem_server V: 52 S: alive MSG: FHEM Server alive
2014-05-20_12:45:53 fhem_server V: 53 S: alive MSG: FHEM Server alive
2014-05-20_12:46:53 fhem_server V: 53 S: alive MSG: FHEM Server alive
2014-05-20_12:47:53 fhem_server MSG: no FHEM Server process found


Gegen 12:47 habe ich bewusst einmal das Attribut "attr global mseclog 1" gesetzt und unmittelbar danach wieder auskommentiert. Darauf hin wieder der FHEM Prozess wieder problemlos gefunden und folgendes wird geloggt:

2014-05-20_12:50:54 fhem_server V: 54 S: alive MSG: FHEM Server alive
2014-05-20_12:51:55 fhem_server V: 55 S: alive MSG: FHEM Server alive
2014-05-20_12:52:55 fhem_server V: 55 S: alive MSG: FHEM Server alive
2014-05-20_12:53:56 fhem_server V: 55 S: alive MSG: FHEM Server alive
2014-05-20_12:54:56 fhem_server V: 56 S: alive MSG: FHEM Server alive
2014-05-20_12:55:56 fhem_server V: 56 S: alive MSG: FHEM Server alive
2014-05-20_12:56:57 fhem_server V: 57 S: alive MSG: FHEM Server alive
2014-05-20_12:57:57 fhem_server V: 57 S: alive MSG: FHEM Server alive
2014-05-20_12:58:58 fhem_server V: 57 S: alive MSG: FHEM Server alive
2014-05-20_12:59:58 fhem_server V: 58 S: alive MSG: FHEM Server alive
2014-05-20_13:00:58 fhem_server V: 58 S: alive MSG: FHEM Server alive
2014-05-20_13:01:59 fhem_server V: 58 S: alive MSG: FHEM Server alive
2014-05-20_13:02:59 fhem_server V: 59 S: alive MSG: FHEM Server alive
2014-05-20_13:03:59 fhem_server V: 59 S: alive MSG: FHEM Server alive
2014-05-20_13:05:00 fhem_server V: 0 S: alive MSG: FHEM Server alive
2014-05-20_13:06:00 fhem_server V: 0 S: alive MSG: FHEM Server alive
2014-05-20_13:07:00 fhem_server V: 0 S: alive MSG: FHEM Server alive
2014-05-20_13:08:01 fhem_server V: 1 S: alive MSG: FHEM Server alive


Und so weiter... Auf das Attribut "attr global mseclog 1" bin ich zufällig durch das Modul Perfmon gestoßen. Lässt sich das erklären und vllt. sogar beheben? Bisher setzt ich das Attribut einfach kurzzeitig nach einem Neustart.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 21 Mai 2014, 22:58:20
Hallo,

ich verstehe nicht ganz, was das Problem ist.
Aus meiner Sicht wird in der Log der fehlende FHEM-Prozess festgehalten, was bei einem Update zeitweilig normal ist (wegen Restart).
Gibt es negative Auswirkungen?
Oder habe ich etwas falsch verstanden?

Grüße,

Alexander

Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 22 Mai 2014, 21:09:47
ZitatAus meiner Sicht wird in der Log der fehlende FHEM-Prozess festgehalten, was bei einem Update zeitweilig normal ist (wegen Restart).

Gerade das ist der Punkt. Das Verhalten tritt auf sobald FHEM gestartet oder im Rahmen eines Updates neugestartet werden muss. Es kommt darauffolgend dazu, dass der Fhem Prozess immer wiederkehrend, fast regelmäßig alle 5 min, nicht gefunden wird und das nicht nur für die Zeit des Updates oder Neustarts, sondern solange bis ich einmal kurzzeitig das Attribut "attr global mseclog 1" setzte. Danach wird der Fhem Prozess immer gefunden, bis ich wieder einmal neustarren muss.

Hoffe ich habe es nun verständlicher erklärt.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 22 Mai 2014, 22:51:16
OK, ich glaube, ich verstehe das Problem, aber ich tappe völlig im Dunklem, wieso das so ist und wie die Einstellung in mseclog darauf Einfluss nehmen kann...  :o
Ich habe bei mir bis jetzt nichts ähnliches beobachtet.
Es müsste ja heißen, dass trotz dem vorhandenen FHEM-Prozess, die Zeile
ps -ef | grep -v grep | grep fhem.pl | wc -l
eine 0 liefert.
Eine wirkliche Lösung kann ich derzeit leider nicht anbieten, aber versuche doch diese Prüfung zu entfernen. Ein Absturz wird dabei weiterhin erkannt (durch die ausbleibende Zeitstempel), nur nicht mehr sofort, sondern erst in ein paar Minuten.
Kommentiere doch folgende Zeilen aus der Methode checkAlive
cnt=$(ps -ef | grep -v grep | grep fhem.pl | wc -l);
  if test $cnt -gt 0 ; then


und
else
    # Server abgestürzt, Prozess nicht (mehr) vorhanden.
    log "MSG: no FHEM Server process found";
    #log "S: dead";
    return 1
  fi


Mal sehen, wie gut das dann läuft.

Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: P.A.Trick am 22 Mai 2014, 22:54:07
Hm der grep scheint aber falsch zu sein!

ps -ef|grep fhem.pl|grep -v grep

Falsche Reihenfolge!
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 22 Mai 2014, 23:19:49
Hm... kann sein bin nicht wirklich der Linux-Spezi...
Ich verstehe aber nicht, warum die Reihenfolge (Suche nach FHEM; Filtere Grep raus) hier von Bedeutung ist (und warum bei mnir ohne Probleme funktioniert).
Ich wäre dankbar für eine Erklärung ;)
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: P.A.Trick am 22 Mai 2014, 23:25:40
Nun der grep -v grep soll den Befehl grep aus der Prozessliste entfernen und bei deinem Aufruf startet der fhem grep, bedingt durch das Pipe, erst danach! Auf gut Deutsch: da kann du den grep -v auch weglassen, denn er wird den folgenden grep Befehl nie finden und ersetzen!
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 22 Mai 2014, 23:40:29
Hmm... nee, es geht ja um den ersten Aufruf, der ist bereits 'da'.

Mal ausprobieren:

xxxx@RPI /opt/fhem/log $ ps -ef|grep fhem.pl
fhem     20173     1 10 02:01 ?        02:09:28 /usr/bin/perl fhem.pl fhem.cfg
xxxx     27640 15751  0 23:36 pts/0    00:00:00 grep --color=auto fhem.pl


und
xxxx@RPI /opt/fhem/log $ ps -ef|grep fhem.pl|grep -v grep
fhem     20173     1  9 02:01 ?        02:09:36 /usr/bin/perl fhem.pl fhem.cfg


Ich sehe den Unterschied. Also habe ich Deine Erklärung noch nicht verstanden...

Edit:
andersherum tut es natürlich auch.
xxxx@RPI /opt/fhem/log $ ps -ef|grep -v grep|grep fhem.pl
fhem     20173     1  9 02:01 ?        02:09:56 /usr/bin/perl fhem.pl fhem.cfg

Scheint egal zu sein ;)
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: P.A.Trick am 22 Mai 2014, 23:43:59
Hm ok aber ist dann wohl Zufall :-)
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 22 Mai 2014, 23:59:10
Ich denke nicht, denn der erste grep findet sich selbst, denn auch in seiner Befehlszeile ein 'fhem' vorkommt.
Für das Ergebnis ist es egal, ob ich die Liste aller Prozesse zuerst von allen 'greps' befreie und dann nur die 'fhem' drin lasse, oder umgekehrt. Im Sinne der Performance ist meine Variante jedoch günstiger, denn es wird im ersten Schritt mehr aus der Liste entfernt, so dass der zweite Durchlauf auf eine kürzere Liste angewendet wird.

Es ist wohl doch kein Zufall, es ist nachvollziehbar und wiederholbar. ;)
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: P.A.Trick am 23 Mai 2014, 00:28:29
Du hast gewonnen obwohl die Performance wohl vernachlaessigbar sein sollte ;-)
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 23 Mai 2014, 01:03:02
Da hast Du recht, bei der Menge von laufenden Prozessen wird man das kaum messen können ;)
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 27 Mai 2014, 17:32:56
So ich habe an meiner Konfiguration nichts verändert und habe herausgefunden, dass nicht nötig ist das Attribut "attr global mseclog 1" in der fhem.cfg zu setzen, damit der Watchdog korrekt arbeitet. Es reicht schon aus, wenn ich die fhem.cfg einmal abspeicher. Unmittelbar danach wirf FHEM immer vom Watchdog gefunden.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 28 Mai 2014, 00:08:09
ZitatEs reicht schon aus, wenn ich die fhem.cfg einmal abspeicher.
verstehen tue ich das nicht...
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Spezialtrick am 28 Mai 2014, 12:01:56
Verstehst du meine Ausführungen nicht oder warum sich der Watchdog gerade so verhält? Für mich ist das Verhalten des Watchdogs nicht so tragisch, da es mir ja nun bekannt ist und ziemlich einfach zu beheben ist.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 28 Mai 2014, 13:40:28
ZitatVerstehst du meine Ausführungen nicht oder warum sich der Watchdog gerade so verhält?
Dich verstehe ich schon ;)
Ich verstehe nicht, wie zu diesem Verhalten kommen kann  :o und was das Speichern von fhem.cfg mit dem Finden von Prozessen zu tun hat...
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Michi240281 am 21 Januar 2015, 10:32:44
Zitat von: hexenmeister am 07 Dezember 2013, 20:53:03
Hallo,

ich kann gern versuchen zu helfen, den Watchdog zum Laufen zu bekommen. Ist zwar eher für Raspberry Pi optimiert, sollte aber mit minimalsten Anpassungen auch auf anderen Unix-basierten Systemen funktionieren.

Das Ganze besteht aus zwei Teilen. Einmal eine Log-Datei in FHEM, die per AT-Befehl minütlich beschrieben wird. Demgegenüber steht ein Bash-Script, das in einer Schleife prüft, wann die letzte 'Lebensmeldung' von FHEM vorlag. Unterbleibt diese länger als 5 Minuten, wird die ggf. vorhandene FHEM-Instanz gekillt und eine neie gestartet. Dann gibt es not etwas Visualisierung mit FHEM, ist aber nicht wesentlich.

Zum Installieren müssen zunächt einige Dateien aus dem GitHub geholt werden. Sie gehören ins FHEM-Hauptverzeichnis.

  • killfhem.sh
    Dieses Script beendet FHEM. Wird in anderen Scripten genutzt.
    Ich sehe gerade einen kleinen Fehler drin, auch wenn dieser normalerweise nicht zum Vorschein kommen dürfte, werde ich ihn gleich fixen...
  • killwatchdog.sh
    Beendet Watchdog. Wird in Scripten benutzt.
  • runfhem.sh
    Startscript für FHEM. Prüft, ob der Server ggf. bereits ausgeführt wird.
  • runwatchdog.sh
    Startet Watchdog. Sorgt dafür, dass nur eine Instanz aktiv ist.
  • watchdogloop.sh
    Der eigentliche Watchdog.
  • startfhem
    Dieses Script startet Watchdog und FHEM-Server. Darf auch 'per Hand' aufgerufen werden.
  • stopfhem
    Dieses Script beendet Watchdog und FHEM-Server. Allei FHEM zu beenden führt ja nicht zum Erfolg ;-) Darf auch 'per Hand' aufgerufen werden.
Bis auf die letzten zwei sollten die Scripte nicht manuell gerufen werden.
Auchtung! Fast alle diese Scripte haben ein fest 'verdrahtetes' Home-Verzeichnis: home=/opt/fhem
Bitte ggf. anpassen. Ich werde das vielleicht bei Gelegenheit umbauen und etwas flexibler gestallten.

Die Datei etc_init.d_fhem_script.txt ist kein ausführbares Script! Es hält den Inhalt des FHEM-Verwaltungs-Scriptes /etc/init.d/fhem, damit ich alles an einer Stelle (in GutHub) habe. Es ist nur ein Beispiel, das zeigt, wie man den Startscript umbauen soll, damit beim Start von Betriebssystem auch Watchdog hochgefahren wird. Beim Start/Stop-Vorgang sollen die startfhem / stopfhem Scripte genutzt werden. Das ist alles.

Bei den Scripten ist sicherzustellen, dass diese ausführbar sind: chmod a+x <Dateiname>
Und sie sollten einem passenden Benutzer gehören (z.B. fhem): chown fhen:fhen <Dateiname>
Der Benutzer, unter dessen Account FHEM ausgeführt wird, muss in die sudo-Gruppe. Damit stellen die Scripte sicher, dass sie die Prozesse in jedem Fall benden können: sudo usermod -aG sudo fhem
Und noch muss dieser User diese Scripte ohne Abfrage mit hohen Rechten ausführen dürfen. Dafür muss die Datei /etc/sudoers ergänzt werden:
fhem ALL=(ALL) NOPASSWD: /opt/fhem/runwatchdog.sh, /opt/fhem/killwatchdog.sh, /opt/fhem/watchdogloop.sh, /opt/fhem/runfhem.sh, /opt/fhem/killfhem.sh
Bitte vorsichtig mit dieser Datei! Das sind sicherheitsrelevante Einstellungen! Ist sie kaputt und auch noch der Root-User deaktiviert, hat man sich ausgesperrt.

Bevor man Watchdog aktiviert, sollte man sicherstellen, dass FHEM-Teil richtig läuft, ansonsten wird der FHEM alle 5 Minuten immer und immer wieder restartet.

in fhem.cfg wird folgendes ergäntz:

# Definition eines Dummy-Objektes fuer 'Alive'-Meldungen
define NN_TE_DMST01.Server_Heartbeat dummy

# Protokoliert Zeitpunkt der letzten Änderung (in Objekt-Eigenshaften)
attr NN_TE_DMST01.Server_Heartbeat userReadings lastChange { CurrentTime() }

# Definition der Log-Datei
define FileLog_NN_TE_DMST01.Server_Heartbeat FileLog ./log/NN_TE_DMST01.Server_Heartbeat-%Y-%m.log NN_TE_DMST01.Server_Heartbeat
attr FileLog_NN_TE_DMST01.Server_Heartbeat logtype myServerHeartbeat:Plot,text

# Visualisierung mittels eines Diagramms
define 0.wlHeartbeat SVG FileLog_NN_TE_DMST01.Server_Heartbeat:myServerHeartbeat:CURRENT

# Routine zur regelmaessigen Änderungen des Wertes des Dummy-Objektes
define tickHeartbeat at +*00:01:00 {tickHeartbeat('NN_TE_DMST01.Server_Heartbeat');;}
attr tickHeartbeat alignTime 00:00

# Log-Datei des Watchdogscriptes verfügbar machen
define FileLog_wathdog FileLog ./log/watchdog.log fakelog

# Visualisierung für Watchdog-Log
define 0.wlWatchdog SVG FileLog_wathdog:myWatchdog:CURRENT


Hier wird eine Methode 'tickHeartbeat' genutzt, die irgendwo abgelegt werden muss. Bei mir liegt diese in der Datei <FHEM-Root>/FHEM/99_MyUtils.pm
Dort ist folgendes hinzufügen:

# Liefert aktueller Zeitstempel
sub
CurrentTime()
{
  return strftime("%H:%M:%S", localtime());
}

# --- server heartbeat / watchdog ---
sub tickHeartbeat($)
{
    my ($device) = @_;
    my $v = _getDeviceValueNumeric($device);
    $v = $v+1;
    if($v>=60) {$v=0;}
    fhem("set $device $v");
}

# Liefert den aktuelen numerisschen Wert eines Ger?tezustandes.
# Setzt bei Bedarf die symbolische Werte (up, down) in ihre
# Zahlenwertrepresentationen um.
sub
_getDeviceValueNumeric($)
{
  return _convertSymParams(Value($_[0]));
}

# Setzt Parameter-Werte fuer symbolische Werte in ihre Zahlenwerte um.
# up = 100, down = 0
sub
_convertSymParams($)
{
  my $value = $_[0];
  # Endwerte und andere symbolischen Konstanten beruecksichtigen,
  # Gross-/Kleinschreibung ignorieren
  $value = lc($value);
  if($value eq "down" || $value eq "runter" || $value eq "off") { return 0; }
  elsif($value eq "up" || $value eq "hoch" || $value eq "on") { return 100; }
  elsif($value =~ /schatten.*/) { return 80; }
  elsif($value =~ /halb.*/ ) { return 60; }
  # Numerische Werte erwartet
  my $ivalue = int($value);
  if($ivalue < 0) { return 0; }
  elsif($ivalue > 100) { return 100; }
  elsif($ivalue > 0) { return $ivalue; }
  # Pruefung, ob bei 0 da wirklich eine Nummer war
  if($value eq $ivalue or $value eq "0 %" or $value eq "0%") { return 0; }
  # Default-Fall: Bei unbekannten Werten soll Rollo offen sein
  return 100;
}


Man könnte das auch einfacher realisieren, fand ich aber schöner fürs Plot.

Dann haben wir nur noch

  • myServerHeartbeat.gplot
und
  • myWatchdog.gplot
Das sind die Plots und gehören natürlich nach <FHEM-Root>/www/gplot


So, da habe ich bestimmt noch etwas vergessen.  ;)
Bitte ausprobieren und ggf. melden, wenns nicht laufen will.

Grüße,

Alexander

Links:
http://s6z.de/cms/index.php/homeautomation/fhem/23-fhem-watchdog
https://github.com/hexenmeister/MyFHEM

Hallo Alexander,

ich würde gerne diesen Fhem Watchdog bei mir implementieren. Fhem läuft auf dem RPi.

Nun habe ich jedoch 2 Fragen dazu:

1. Bei den Dateien, die ins Fhem Hauptverzeichnis sollen, schreibst du was von runfhem.sh und killfhem.sh. Diese sind aber nicht im GitHub runterzuladen?!?

2. In meinem Hauptverzeichnis liegen bereits die Skripte "startfhem" und "stopfhem". Muss ich diese durch die von GitHub ersetzen?

Besten Dank und viele Grüße
Michael
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 21 Januar 2015, 15:22:13
Moin!

1. Doch, alle da  ???
https://github.com/hexenmeister/MyFHEM/blob/master/killfhem.sh
https://github.com/hexenmeister/MyFHEM/blob/master/runfhem.sh

2. Ja, schau aber hinein, wenn da spezielle Anpassungen existieren, musst Du diese ggf. übernehmen.

Grüße,

Alexander
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Aladin222 am 19 März 2015, 11:19:22
Hi ,

so da habe ich mich nun auch mal dran gewagt :-)

Leider ist der Thread nun wirklich etwas unübersichtlich geworden  :-\

Aaaaalso , bei mir läuft Fhem auf einem Cubietruck .
Von GitHub habe ich mir :

https://github.com/hexenmeister/MyFHEM/blob/master/watchdogloop.sh
https://github.com/hexenmeister/MyFHEM/blob/master/runwatchdog.sh
https://github.com/hexenmeister/MyFHEM/blob/master/killwatchdog.sh
https://github.com/hexenmeister/MyFHEM/blob/master/startfhem
https://github.com/hexenmeister/MyFHEM/blob/master/stopfhem
https://github.com/hexenmeister/MyFHEM/blob/master/FHEM/99_myUtils.pm
https://github.com/hexenmeister/MyFHEM/blob/master/www/gplot/myServerHeartbeat.gplot
https://github.com/hexenmeister/MyFHEM/blob/master/www/gplot/myWatchdog.gplot
https://github.com/hexenmeister/MyFHEM/blob/master/etc_init.d_fhem_script.txt

lt. Anleitung vom Blog ( http://s6z.de/cms/index.php/homeautomation/fhem/23-fhem-watchdog ) geladen und eingebaut !

Hier im Forum bin ich nun noch zusätzlich auf :
https://github.com/hexenmeister/MyFHEM/blob/master/killfhem.sh
https://github.com/hexenmeister/MyFHEM/blob/master/runfhem.sh

gestoßen !? und habe diese auch ins Hauptverzeichnis von Fhem geschoben .

Die reine Fhemseite scheint nun fehlerfrei zu laufen !!!
Der Sägezahnplot funktioniert ...

Zum Verständnis hätte ich hier die erste Frage :
In der Fhem.config
# Log-Datei des Watchdogscriptes verfügbar machen
define FileLog_wathdog FileLog ./log/watchdog.log fakelog
attr FileLog_wathdog group Watchdog
attr FileLog_wathdog room 9.03_Tech


ist das FileLog_wathdog ein Tippfehler ?

Wenn ich den Watchdog ( watchdogloop.sh ) anschmeiße ,so läuft er & Fhem unter dem User fhem - soweit ja richtig , oder ?

Wenn ich mit ./killwatchdog.sh den Watchdog stoppen möchte kommt :
Stop watchdog
./killwatchdog.sh: 4: ./killwatchdog.sh: killall: not found

[Edit] ok, ein apt-get install killall brachte leider auch keinen Erfolg aber
         mit aptitude install psmisc kennt mein Linux nun auch den Befehl killall und das beenden funktioniert nun !!!

Stoppe ich Fhem aus dem Terminal - so sehe ich das der Watchdog erkennt das fhem dead ist ,aber es hakt am Neustart :-( , im watchdog_err.log kommt :
sudo: effective uid is not 0, is sudo installed setuid root?
sudo: effective uid is not 0, is sudo installed setuid root?


So , als N00b habe ich also 2 Probleme :
Mein Linux kann mit Killall nix anfangen und irgendwas stimmt mit den rechten nicht , oder ?
[Edit]
hmmm, ok Killall läuft nun - somit funktioniert jetzt auch der Neustart automatisch ....Warum ? Kein Plan , hatte gestern ewig verbracht das ans laufen zu bekommen und nun lüppt es .

Irgendwas scheint nun noch strubbelig zu sein ... der Sägezahnplot ist da und sieht gut aus !
Der Watchdogplot ist komplett leer - auch das watchdog.log ist komplett ohne Eintrag .
Das watchdog_err.log ist nun auch komplett ohne Eintrag !
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Prof. Dr. Peter Henning am 19 März 2015, 12:41:45
Ich halte ehrlich gesagt mehr davon, den eingebauten Hardware-WD zu nutzen (auch beim Cubie).

LG

pah
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Aladin222 am 19 März 2015, 13:03:49
erstmal Danke für die Antwort  ;D

hmmmm, ich weiß leider nicht wie ich dies mit dem eingebauten Watchdog realisiert bekomme ?
Versuche ja noch immer den o.g. Lösungsansatz zu verstehen *schäm
Zur Zeit steuere ich eine Chlordosierpumpe mit Fhem und es wäre wirklich blöd wenn die Dosierung ausfällt !
Mit der angebotenen Lösung würde der Server neu gestartet und es gibt die Möglichkeit auf Ursachenforschung zu gehen darum gefällt mir diese Lösung sehr.
Dazu werde ich mir gerne den internen WD genauer ansehen und versuchen diesen zu begreifen :-)

Glaube nun die Funktionsweise etwas besser zu verstehen ( Betonung liegt auf etwas )

Den Hinweiß : define FileLog_wathdog FileLog ./log/watchdog-%Y-%m.log fakelog hab ich überlesen - bin da mehr nach dem Blog gegangen ...
Damit zeigt auch der Watchdogplot etwas an  ;D

Nochmal fix zum Verständnis - Das Logfile watchdog.log ist ein temporäres Logfile ,welches nicht weiter benötigt wird , oder ?
Was passiert bei einem update von Fhem ? Muss dabei noch etwas beachtet werden ?
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 19 März 2015, 13:37:05
Zitat von: Prof. Dr. Peter Henning am 19 März 2015, 12:41:45
Ich halte ehrlich gesagt mehr davon, den eingebauten Hardware-WD zu nutzen (auch beim Cubie).

Je nach Verwendungszweck. Mit dem Hardware-WD kann man (finde ich) ganz gut die Probleme mit dem Betriebsystem oder gar Hardware abfangen. Mein Script überwacht nur die FHEM-Instanz. Ich habe gerne beides getrennt.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 19 März 2015, 13:49:22
watchdog.log ist nicht temporär, da sind die Ausgaben des WD-Scriptes drin.
In dem watchdog_err sind die Meldungen, die auf std_err ausgegeben werden (auch von FHEM).
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Aladin222 am 19 März 2015, 14:11:18
Zitat von: hexenmeister am 19 März 2015, 13:49:22
watchdog.log ist nicht temporär, da sind die Ausgaben des WD-Scriptes drin.
die Ausgaben vom WD-Scriptes landen bei mir im watchdog-2015-03.log .... oder wo hab ich nun wieder einen Knoten im Kopf ?

Das watchdog.log ist bei mir leer !?
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 19 März 2015, 14:34:25
Ahh, ist schon zu lange her... Ja, Du hast recht, aber die andere Datei ist dann die zu überwachende Datei. FHEM schreibt periodisch da rein, und wenn nicht, dann startet Watchdog FHEM neu.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Aladin222 am 19 März 2015, 14:47:02
Puhhhh Danke dir !!!

War hier nun kurz vorm Suizid *lach

Ok , denke ich habe einiges dazugelernt - scheint nun zu laufen *freu

Eine Kleinigkeit hätte ich aber noch , mit {sleep 400} wollte ich die Funktionalität testen :
Fhem startete auch brav neu - alles gut !
Allerdings hatte ich in Fhem ,dort wo ich Schaltzustände mit einem Icon anzeigen lasse ,anstelle von dem Icon nur ??? bis ich die Fragezeichen einmal angeklickt hatte , danach wieder alles ok ?
Kannst du das nachvollziehen , oder ist das eine andere Baustelle ?
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 19 März 2015, 15:02:35
Ich bin mir nicht ganz sicher, ob ich es richtig verstanden habe.
Kann es sein, dass FHEM noch einfach kein Zustand hatte, da Watchdog ihn hard gekillt hat und FHEM ihn nicht speichern konnte. Kannst ja auch den Zustand automatisch jede X Minuten speichern lassen.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Aladin222 am 19 März 2015, 16:50:40
Stehe mal wieder auf dem Schlauch  :-[
Was oder wie meinst Du das mit dem Zustand speichern ?
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 19 März 2015, 20:14:00
So kann man alle 10 Minuten die States speichern:
define TE_NN_SAVE_STATE at +*00:10:00 {WriteStatefile()}
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Von-XS1-Nach-FHEM am 23 März 2015, 21:31:09
Bei mir lauft es jetzt auch, nach einige versuche, Danke!

Habe aber noch einige Fragen:

Zitat
ZitatAntw:OWX kann FHEM abschiessen ?!?

« Antwort #53 am: 05 Februar 2014, 20:44:00 »

Von Spezialtrick

Insbesondre die Logdatei "watchdog-2014-02.log" blieb leer. Dadurch wurde FHEM auch nicht mehr neugestartet, wenn man es test weise beendete.

1) Tritt das Problem am neuen Monat noch auf? Oder wie habt Ihr das gemacht?

Ich frage das weil ich jetzt auch die Datei rechte umstellen musste.

Zitat
ZitatZitat hexenmeister: Das Prob  habe ich bei mir noch nicht gemerkt. Ich denke, das hat was mit den Rechten zu tun, mit den Watchdog läuft.
Ein Cron-Job habe ich nicht. Unter welchen Benutzerkonto läuft bei Dir Watchdog? Am besten wahrscheinlich das gleiche zu verwenden, wie für FHEN, dann müssten die Rechte ja passen...

2)Wie kann ich das (vorher schon) vermeiden?

Und wie uberprufe ich das hier?
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 23 März 2015, 21:38:29
Diese Datei wird ja gar nicht überwacht.
Die zu überwachende Datei erkennt Script auch mit Monat/Jahr im Namen.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Von-XS1-Nach-FHEM am 23 März 2015, 21:40:59
Du bist ja Schnell, :) Super,  8) :) ;) Wow aber das meine Ich nicht es geht mir darum das die Dateien die gleiche rechte bekommen, oder ist das nicht das problem das deswegen zu Monatsanfang die Dateien leer sind?
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 23 März 2015, 22:02:18
Dann habe ich das Problem noch nicht verstanden. Und ehrlich gesagt, weiß auch nicht mehr, worum es da ging, wo die Zitat her stammt.
Wenn die Rechte der Datei nicht passen (kann FHEM die Datei nicht lesen?), mdann kann man ja diese in der Datei watchdogloop.sh wie gewünscht anpassen:
# Methode schreibt Meldungen in die Logdatei
log(){
  currentTimeStr=$(date +"%Y-%m-%d_%H:%M:%S");
  currentYear=$(date +"%Y");
  currentMonth=$(date +"%m");
  log=$logDir/$logName-$currentYear-$currentMonth.log
  touch $log;
  chmod 666 $log;
  echo "$currentTimeStr fhem_server $1" >> $log;
}


z.B. durch Änderung von 'chmod 666 $log' in 'chmod 777 $log'. Dann dard jeder alles. Oder eben, wie man es braucht.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Von-XS1-Nach-FHEM am 23 März 2015, 22:14:30
OK dann ist das erste teil schon klar damit komme ich weiter danke, vielleicht sollte ich meine andere Frage anders formulieren.

Ist es ein problem wenn mann User FHEM dialout hat und pi und/oder root.

Wie zum beispiel hier:

Zitat-rw-rw-rw- 1 fhem root    1649790 Jan 31 23:59 log/sysmon-2014-01.log
-rw-r--r-- 1 fhem dialout 2571448 Feb  5 19:54 log/sysmon-2014-02.log
-rw-rw-rw- 1 fhem root

Ich habe das geändert mit diesem Code:

Zitatsudo chown fhem:root log/*.log
sudo chmod a+rw log/*.log

Meine konkrete Frage ist also ob ich das jeder Monat anderen muss, oder wie ich das überhaupt überprüfe welche rechte meinem Watchdog nutzt in meinem raspberry :

ZitatZitat hexenmeister: Das Prob  habe ich bei mir noch nicht gemerkt. Ich denke, das hat was mit den Rechten zu tun, mit den Watchdog läuft.
Ein Cron-Job habe ich nicht. Unter welchen Benutzerkonto läuft bei Dir Watchdog? Am besten wahrscheinlich das gleiche zu verwenden, wie für FHEN, dann müssten die Rechte ja passen...
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 23 März 2015, 22:22:57
Ich weiß leider nicht mehr, worum es damals ging. Und Dein Zitat ist leider ohne Link.
Insgesammt ist es wohl nicht zielführend, die Rechte immer wieder zu ändern, wenn die Dateien jedesmal anders angegt werden. Besser dafür zu sorgen, dass die andere Seite auch so lesen kann.

Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Von-XS1-Nach-FHEM am 23 März 2015, 22:38:41
Ja genau das ist was ich meine, Und wie mache ich das konkret, das beide seiten (FHEM und Linux Raspberry) die gleiche usernamen verwenden un die gleiche rechten bekommen?
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 24 März 2015, 08:16:01
Was meinst Du mit "Linux Raspberry"? Das Betriebssystem kann es ja nicht sein? Meinst Du die Rechte des Benutzers "Pi", mit dem Du Dich anmeldest?
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: Von-XS1-Nach-FHEM am 24 März 2015, 10:49:22
Ja genau unter Linux melde ich mit an mit PI und FHEM lauft unter FHEM user oder? Wie bekomme ich diese rechte user, gleich / identisch ?
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hexenmeister am 24 März 2015, 12:57:02
na, du könntest deinem user (pi) auch die Gruppe dialout zuweisen.
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hartenthaler am 09 Oktober 2016, 23:03:13
Im script killfhem.sh gibt es die Anweisung
perl fhem.pl $port "shutdown" &

wohl mit dem Ziel, dass ein noch laufendes fhem die Chance bekommt geordnet runter zu fahren. Funktioniert dieser Befehl wirklich? Wenn ich ihn von der Konsole mit sudo ausführe (und statt $port natürlich 7072 eingebe), dann passiert gar nichts. fhem läuft unberührt weiter. Kann es daran liegen, dass ich mein fhem mit userid/passwort abgesichert habe?
Titel: Antw:OWX kann FHEM abschiessen ?!?
Beitrag von: hartenthaler am 09 Oktober 2016, 23:41:52
btw:
statt # Log-Datei des Watchdogscriptes verfügbar machen
define FileLog_wathdog FileLog ./log/watchdog.log fakelog

muss in fhem.cfg stehen:
# Log-Datei des Watchdogscriptes verfügbar machen
define FileLog_watchdog FileLog ./log/watchdog-%Y-%m.log fakelog

(Tippfehler "wathdog" und Verwendung von Jahr/Monat im Logfile-Namen)

Den Verweis im Plot muss man natürlich dann auch anpassen.