Pilight SSDP-Fehler -> nur ohne Netzwerk

  • Ja, wenn ich das mal früher gesehen/gelesen hätte... Das hätte mir einiges an Zeit und Nerven gespart.

    Das Netz ist voll mit Beiträgen über diesen SSDP-Fehler – und ich habe etliche davon gelesen und in keinem davon kam dieser Hinweis. Alle haben versucht, wie ich/wir ja auch, Ip-Regeln oder die Schnittstelle anzupassen.

    ----

    Um was ich zurzeit nicht herumkomme, ist ein sudo service pilight restart auszuführen, bevor die pilight-send-Befehle gesendet werden. Zudem scheinen die Send-Befehle nicht wirklich sauber zu funktionieren – teilweise muss ich die Befehle zwei-/dreimal senden, bevor die Dosen schalten... Das ist natürlich nicht optimal.

    ----

    Frage: Spielt es eine Rolle ob man im Cronjob-File mit absoluten Pfadangaben arbeitet oder nicht? Oder konkret: Gibt es hierbei einen Unterschied:

    /usr/local/bin/pilight send -S 127.0.0.1 -P 5000 -p mumbi -s 7 -u 2 -t

    und

    pilight send -S 127.0.0.1 -P 5000 -p mumbi -s 7 -u 2 -t

  • Frage: Spielt es eine Rolle ob man im Cronjob-File mit absoluten Pfadangaben arbeitet oder nicht? Oder konkret: Gibt es hierbei einen Unterschied:

    Ja, es gibt einen Unterschied und man sollte für einen cronjob immer absolute Pfade verwenden.

    Aber evtl. hast Du mit cron ein ganz anderes Problem. Zu welchem Zeitpunkt soll cron diesen cronjob ausführen?

    Wenn es mit "@reboot" ist, dann ist das ungeeignet. Auf allen meinen Linux-Systemen hat das mit "@reboot" noch nicht funktioniert, wenn es sich um Netzwerkverbindungen gehandelt hat.

    EDIT:

    Wenn nicht vorhanden, dann schreibe dir eine service-unit zum starten von pilight, die evtl. etwas zeitverzögert mit Hilfe einer timer-unit gestartet wird.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (22. Dezember 2019 um 13:00)

  • Ja, es gibt einen Unterschied und man sollte für einen cronjob immer absolute Pfade verwenden.

    ok – Danke für den Input.

    Zurzeit funktionieren mal wieder gar keine send-Befehle - ärgerlich. Es erscheinen aber auch keine Fehlermeldungen mehr. So etwas kann ich nicht unbeaufsichtig laufen lassen.

    Mein crontab-job sollte später eigentlich so aussehen:

    Code
    00 17 * * * /usr/local/bin/pilight send -S 127.0.0.1 -P 5000 -p mumbi -s 7 -u 2 -t
    00 17 * * * /mpc play 1
    00 22 * * * /mpc stop
    00 22 * * * /usr/local/bin/pilight send -S 127.0.0.1 -P 5000 -p mumbi -s 7 -u 2 -f

    Zusätzlich habe ich aber aber auch noch eine pilight_restart.timer welche den Pilight-Dienst 45 Sek. nach dem Neustart nochmals neu startet (das hat mit angeschlossenem Router dann funktioniert, jetzt scheint es aber ohne diesen auch keine Auswirkungen mehr zu haben).

  • Mein crontab-job sollte später eigentlich so aussehen:

    Code
    00 17 * * * /usr/local/bin/pilight send -S 127.0.0.1 -P 5000 -p mumbi -s 7 -u 2 -t
    00 17 * * * /mpc play 1
    00 22 * * * /mpc stop
    00 22 * * * /usr/local/bin/pilight send -S 127.0.0.1 -P 5000 -p mumbi -s 7 -u 2 -f

    Versuch mal mit:

    Code
    00 17 * * * /usr/local/bin/pilight send -S 127.0.0.1 -P 5000 -p mumbi -s 7 -u 2 -t
    01 17 * * * /mpc play 1
    00 22 * * * /mpc stop
    01 22 * * * /usr/local/bin/pilight send -S 127.0.0.1 -P 5000 -p mumbi -s 7 -u 2 -f

    Ist der absolute Pfad für mpc richtig (mit /mpc)?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Ups – die beiden Slashes vor mpc sind mir reingerutscht (die sind auf dem Pi nicht enthalten). Aber du hast natürlich recht, dass dies keine absoluten Pfade sind (suche ich noch heraus, weiss diese gerade nicht).

    Mit der Musik hatte ich im Übrigen nie Probleme, das lief immer sehr zuverlässig und war auch letztes Jahr bereits im Einsatz.

    Betreffend deinem Vorschlag: Das habe ich auch schon probiert- aufgrund der Möglichkeit, dass nicht exakt zur gleichen Zeit zwei Befehle aufgegeben werden können. Es ist etwas Schade, dass man mit Crontab keine Sekunden festlegen kann.

  • Ist der absolute Pfad für mpc richtig (mit /mpc)?

    Hier nun der (Test-)Inhalt meines Cronjobs:

    Code
    29 13 * * * sudo service pilight restart
    30 13 * * * /usr/local/bin/pilight send -S 127.0.0.1 -P 5000 -p mumbi -s 7 -u 2 -t
    31 13 * * * /usr/bin/mpc play 1
    38 13 * * * /usr/bin/mpc stop
    39 13 * * * sudo service pilight restart
    40 13 * * * /usr/local/bin/pilight send -S 127.0.0.1 -P 5000 -p mumbi -s 7 -u 2 -f

    Die Musik spielt - die Lichter bleiben dunkeln. Letzters ist aber klar, da auch die normalen Eingaben im terminal nicht mehr funktionieren und ich hab mal wieder keine Ahnung was jetzt nicht mehr läuft (erhalte auch keine Fehlermeldung mehr).

  • Code
    29 13 * * * sudo service pilight restart
    30 13 * * * /usr/local/bin/pilight send -S 127.0.0.1 -P 5000 -p mumbi -s 7 -u 2 -t
    31 13 * * * /usr/bin/mpc play 1
    38 13 * * * /usr/bin/mpc stop
    39 13 * * * sudo service pilight restart
    40 13 * * * /usr/local/bin/pilight send -S 127.0.0.1 -P 5000 -p mumbi -s 7 -u 2 -f

    Wie ist noch vor 13:38 Uhr, die Ausgabe von:

    Code
    sudo netstat -tulpena

    ?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Wie ist noch vor 13:38 Uhr, die Ausgabe von: Code
    sudo netstat -tulpena

    Musste ich nochmals kurz durchspielen: Zum erwähnten Zeitpunkt (kurz nachdem die Musik gestartet is) sieht die Ausgabe davon wie folgt aus:

  • ... sieht die Ausgabe davon wie folgt aus:

    Code
    tcp        0      0 0.0.0.0:5000            0.0.0.0:*               LISTEN      0          16072      657/pilight-daemon  
    tcp        0      0 127.0.0.1:5000          127.0.0.1:48958         VERBUNDEN   0          14175      657/pilight-daemon  
    tcp        0      0 127.0.0.1:5000          127.0.0.1:48960         VERBUNDEN   0          18678      657/pilight-daemon  
    tcp        0      0 127.0.0.1:48958         127.0.0.1:5000          VERBUNDEN   0          16073      657/pilight-daemon  
    tcp        0      0 127.0.0.1:48960         127.0.0.1:5000          VERBUNDEN   0          16075      657/pilight-daemon  

    Sind in diesem Fall, die Lichter auch dunkel geblieben?

    BTW: Brauchst Du den avahi-daemon auf deinem PI?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Mein crontab-job sollte später eigentlich so aussehen:

    Und was ist, wenn Du das in ein extra Script nach /usr/local/bin/ auslagerst?

    Z.B.: /etc/cron.d/Funksteckdose

    Code
    00 17 * * * root /bin/bash /usr/local/bin/Funksteckdose.sh on
    01 22 * * * root /bin/bash /usr/local/bin/Funksteckdose.sh off

    Und das als eigenes File in der /usr/local/bin/Funksteckdose.sh

    Das wäre ein Scriptvorschlag:

    Bash
    #!/bin/bash
    if [ $1 = "on" ]
    then
      /usr/local/bin/pilight send -S 127.0.0.1 -P 5000 -p mumbi -s 7 -u 2 -t
    elif [ $1 = "off" ]
    then
      /usr/local/bin/pilight send -S 127.0.0.1 -P 5000 -p mumbi -s 7 -u 2 -f
    else
      echo "Error"
    fi

    Damit versaust Dir Deine Crontab nicht mit diversen Einträgen.

    Eleganter ist die Variante mit /etc/cron.d/, die /etc/crontab packe ich nur ungern an,

    weil dort die systemrelevanten Teile liegen.

    Und läßt sich auch einfacher warten.

    MfG

    Jürgen

    Edit: War ein bißchen missverständlich und Fehler im Script korrigiert.

  • Sind in diesem Fall, die Lichter auch dunkel geblieben?

    Ja, die Befehle funktionieren nicht mehr (auch nicht wenn ich sie normal im Terminal eingebe). Da auch keine Fehlermeldung mehr auftritt, weiss ich auch nicht wo ich nun nach Problem suchen soll?

    BTW: Brauchst Du den avahi-daemon auf deinem PI?

    Da ich nicht weiss, für was dieser zuständig ist – kann ich dir die Frage leider nicht beantworten.


    EDIT:

    Jürgen Böhm Danke für deinen nützlichen Beitrag. Ich bin eigentlich auch eher ein Fan von "sauber" Arbeiten – wenn die von dir vorgeschlagene Variante dem entspricht (was es sicherlich tut) werde ich das dann auch einmal versuchen so umzusetzen. Momentan sind aber die pilight-send-Befehle wirkungslos und das muss ich zuerst wieder irgendwie korrigieren können. Alles was ich da zwischenzeitlich anpasse/ändere ist nur eine weitere mögliche Fehlerquelle.

    EDIT2:

    pilight status ist übrigens in Ordnung (loaded und active/running).

    2 Mal editiert, zuletzt von swissflyer (22. Dezember 2019 um 14:28)

  • Ja, die Befehle funktionieren nicht mehr (auch nicht wenn ich sie normal im Terminal eingebe). Da auch keine Fehlermeldung mehr auftritt, weiss ich auch nicht wo ich nun nach Problem suchen soll?

    Da ich nicht weiss, für was dieser zuständig ist – kann ich dir die Frage leider nicht beantworten.

    Schau mal in der manpage (oder gleichwertig) nach, ob Du die pilight daemons mit einer Option (-D oder gleichwertig) für den debug-Modus starten kannst. Wenn ja, dann mal so starten.

    Evtl. mal auch mit tcpdump nach schauen, was bei Lichter an und was bei Lichter bleiben aus, über den Port 5000 geht:

    Code
    sudo tcpdump -c 100 -vvveni lo port 5000

    Wenn Du es nicht weißt, dann kannst Du den avahi-daemon deinstallieren. Denn bei einem PI der nicht mit einem Netzwerk verbunden ist brauchst Du den avahi-daemon keines Falls.

    EDIT:

    BTW: Du hast ja nicht die systemweite /etc/crontab benutzt, denn Du verwendest dort keinen <user> (root oder pi?) und hast dort auch einen eintrag mit "sudo":

    Code
    29 13 * * * sudo service pilight restart
    30 13 * * * /usr/local/bin/pilight send -S 127.0.0.1 -P 5000 -p mumbi -s 7 -u 2 -t

    D. h. es wird eine crontab des users pi sein, oder? Wenn Du sudo brauchst dann solltest Du besser eine root-crontab für die Befehle mit root-Rechten benutzen und eine pi-user-crontab für die Befehle ohne root-Rechte. Oder Du benutzt die systemweite crontab, in der Du den user eintragen musst. BTW: systemweit ist nicht systemeigen.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (22. Dezember 2019 um 14:47)

  • .... ob Du die pilight daemons mit einer Option (-D oder gleichwertig) für den debug-Modus starten kannst.

    Ja, das gibt es:

    https://manual.pilight.org/programs/debug.html

    https://manual.pilight.org/programs/daemon.html

    sudo pilight-daemon -D gibt allerdings keinen einzigen Fehler aus.

    Einen Hardware-Defekt kann ich auch ausschliessen. Der Empfänger (Steckdose) reagiert auf die Eingaben mit der Funk-Fernbedienung und den Sender am Pi habe ich ebenfalls bereits testweise durch einen anderen (identischen) ausgewechselt.

    Wenn Du es nicht weißt, dann kannst Du den avahi-daemon deinstallieren. Denn bei einem PI der nicht mit einem Netzwerk verbunden ist brauchst Du den avahi-daemon keines Falls.

    Der Pi soll nach der Aktion über Weihnachten/Neujahr wieder in meinem Heimnetzwerk sein, daher muss ich den avahi-daemon wohl behalten.


    D. h. es wird eine crontab des users pi sein, oder? Wenn Du sudo brauchst dann solltest Du besser eine root-crontab für die Befehle mit root-Rechten benutzen und eine pi-user-crontab für die Befehle ohne root-Rechte. Oder Du benutzt die systemweite crontab, in der Du den user eintragen musst. BTW: systemweit ist nicht systemeigen.

    Da bin ich jetzt ehrlich gesagt etwas überfragt... Ich editiere die crontab (mit dem normalen Pi-User) mittels "crontab -e", daher gehe ich davon aus, dass es die Pi-user-crontab ist. Diese funktioniert ja auch, sonst würde die Musik nicht beginnen zu spielen. Das sudo vor dem pilight-restart-Befehl habe ich nur eingefügt, weil ich das im normalen Terminal ebenfalls benötige.

  • Evtl. mal auch mit tcpdump nach schauen, was bei Lichter an und was bei Lichter bleiben aus, über den Port 5000 geht: Code
    sudo tcpdump -c 100 -vvveni lo port 5000

    Habe ich gemacht:

    Send-Befehl "EIN":


    Send-Befehl "AUS":

  • Das sudo vor dem pilight-restart-Befehl habe ich nur eingefügt, weil ich das im normalen Terminal ebenfalls benötige.

    OK, aber dann wäre dieser pilight-restart-Befehl (ohne sudo), besser aus einer root-crontab oder aus der systemweiten crontab.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Habe ich gemacht:

    Aus den Ausgaben von tcpdump kann ich jetzt keine Unregelmäßigkeiten erkennen. Beide zeigen "syn, syn+ack, ack" und nach 4 "push+ack" und einem "ack", "2x "fin+ack" an.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Das kann es doch nicht sein (!) – jetzt habe ich den Pi mal heruntergefahren und vom Strom getrennt, wieder eingesteckt, neu gestartet und jetzt funktionieren die send-Befehle wieder.

    Jetzt funktioniert auch der komplette crontab-Job auf einmal wieder... Aber wie soll ich ein solches System 2,5 Wochen unbeobachtet laufen lassen?! Da kann ich nicht einmal garantieren, dass das einen Tag normal läuft.

  • ... Aber wie soll ich ein solches System 2,5 Wochen unbeobachtet laufen lassen?! Da kann ich nicht einmal garantieren, dass das einen Tag normal läuft.

    Der Fehler muss gefunden werden.

    pilight hat doch auch eine Konfigurationsmöglichkeit bzgl. der Überwachung durch den hardware-watchdog, oder? Ist das standardmäßig aktiviert? Wenn ja, dann mal deaktivieren.

    Wie sind die Ausgaben von:

    Code
    ls -la /dev/watchdog*
    free -m
    top -n 2 -d 4 | grep -i pilight

    ?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • pilight hat doch auch eine Konfigurationsmöglichkeit bzgl. der Überwachung durch den hardware-watchdog, oder? Ist das standardmäßig aktiviert? Wenn ja, dann mal deaktivieren.

    Man kann offensichtlich einen watchdog mittels folgender Eingabe in der config.json starten:

    Code
    { "watchdog-enable": 1 }
    
    pilight monitors its own CPU and RAM resource usage. This information is used to shutdown or terminate pilight when it uses too much CPU or RAM. If want to disable this watchdog feature and therefor the automatic termination of pilight when needed, you can set this setting to 0. This setting can be either 0 or 1.

    Ich habe diesen Eintrag nicht in meiner json-Datei. Daher gehe ich davon aus, dass der Watchdog auch nicht läuft.


    Ausgabe von ls -la /dev/watchdog*:

    Code
    crw------- 1 root root  10, 130 Dez 22 16:07 /dev/watchdog
    crw------- 1 root root 251,   0 Dez 22 16:07 /dev/watchdog0

    Ausgabe von free -m:

    Code
            total    used    free    shared    buff/cache    available
    Mem:      926     144     537         6           243          720   
    Swap:      99       0      99

    Ausgabe von top -n 2 -d 4 | grep -i pilight:

    Code
      656 root     -81   0  121380  11904   7828 S   0.2   1.3   0:02.92 pilight-daemon
  • Ausgabe von ls -la /dev/watchdog*:

    Code
    crw------- 1 root root  10, 130 Dez 22 16:07 /dev/watchdog
    crw------- 1 root root 251,   0 Dez 22 16:07 /dev/watchdog0

    Der hardware-watchdog wird dann von pilight nicht benutzt, aber aktiv ist er schon, was so auch gut ist.

    EDIT:

    BTW: Wenn man die Wahl hat zwischen "0" und "1" für den hardware-watchdog für pilight, dann wird es auch eine default Konfiguration geben. Aus der Formulierung:

    Zitat

    If want to disable this watchdog feature and therefor the automatic termination of pilight when needed, you can set this setting to 0.

    entnehme/verstehe ich, dass der hardware-watchdog für pilight standardmäßig (default) _aktiviert_ ist.

    Quelle: https://manual.pilight.org/configuration/…watchdog-enable

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (22. Dezember 2019 um 23:48)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!