while Schleife im script (Abfrage pilight-receive auf bestimmten Wert)

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • mastadook schrieb:

      Ich nutze Chrome. Und leider nein, damit kenne ich mich nicht aus.
      Hangel mich gerade Stückweise mit google und Halbwissen voran ;)

      Ich habe es jetzt so probiert, das geht auch nicht:

      Start aus SHC ein Script so: sudo /home/pi/alarm/alarm_all_on.sh

      Dieses Script (alarm_all_on.sh) startet mit folgenden Befehl das besagte Schleifenscript:

      Shell-Script

      1. sudo /home/pi/alarm/alarmon_00.sh """&""" sleep 3 | pkill -USR1 alarm_all_on.sh
      2. exit
      Das funktioniert auch, also das Startscript (alarm_all_on.sh) wird nach Ausführung beendet.
      Da hab ich mir gedacht, das dann auch der Haken springen müsste, aber nein, tut er nicht.

      Das andere Script wird aber wie erwartet weiter ausgeführt.

      Jetzt hört es bei mir auf, denn das Schleifenscript muss ja immer laufen...

      Drücke ich jetzt den "AUS" Knopf wird das Schleifenscript beendet und der Haken springt... Krise, kein Idee mehr
      Jackpot: Das """&""" was ich nur mal zur Verdeutlichung in meinem Startscript auch so """&""" makiert habe,
      habe ich jetzt mal weggelassen, und siehe da, es funktioniert einwandfrei...
      Script 1 wird gestartet und startet dann Script 2 was die Alarmanlage scharf schaltet und wird danach beendet,
      nun da es nicht mehr versteckt gestartet wird, bekommt SHC mit das es beendet wird und der Haken springt weiter.

      so sieht das Script jetzt richtig aus, welches das eigentliche Startscript staret:


      Shell-Script

      1. sudo /home/pi/alarm/alarmon_00.sh | pkill -USR1 alarm_all_on.sh
      2. exit

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von mastadook ()

    • Kommando zurück und nächstes Problem, ich kapier wirklich nicht mehr was los ist.

      So, starte ich die alarmon_00.sh Schleife über den PI direkt, dann klappt alles wunderbar.
      Ein Kontakt öffnet und zack einen kurzen Moment später wird "Alarm" ausgelöst.
      In den Fall einfach mal ein Licht zum testen.

      Starte ich das alarmon_00.sh Script via SHC über oben genanntes Script, dann passiert einfach nicht.
      Habe aber geprüft, das alarmon_00.sh ist via ps aux zu finden.

      Sehr komisch... Neue Ideen?
    • hase schrieb:

      Hast Du beide Scripte in die sudoers Datei eingetragen?
      Ja, habe ich, das Script läuft auch, aber irgendwie muss es innerhalb ein Problem geben.
      So sieht das Script aus:


      Shell-Script

      1. sudo echo "Alarmanlage scharf geschaltet" > /home/pi/alarm/alarmon.txt
      2. sudo echo "`date`: Alarmanlage schaft geschaltet" >> /home/pi/alarm/status.txt
      3. while true
      4. do
      5. [ ! -f /home/pi/alarm/alarmon.txt ] && break
      6. sudo timeout 10s pilight-receive > /home/pi/alarm/pilight_00.txt
      7. if sudo egrep "(868fd3|341367|338432|365198|194542)" /home/pi/alarm/pilight_00.txt; then
      8. sudo echo "`date`: Alarm ausgelöst" >> /home/pi/alarm/alarm_executed.txt
      9. sudo /home/pi/domoticz/scripts/leinwand_an.sh
      10. sudo rm /home/pi/alarm/alarmon.txt
      11. sudo echo "`date`: Alarmanlage ausgelöst" >> /home/pi/alarm/status.txt
      12. else
      13. sudo rm /home/pi/alarm/pilight_00.txt
      14. fi
      15. done
      Alles anzeigen
      Wie gesagt, unter den PI direkt, gestartet über:
      sudo /home/pi/alarm/alarmon_00.sh
      funktioniert alles, aus SHC heraus gestartet dann nicht....
    • ich push das nochmal, leider habe ich immer noch keine Möglichkeit gefunden es zum rennen zu bekommen.

      Über Putty direkt auf dem PI gestartet läuft das Script einwandfrei
      Aus SHC heraus asl Script Schalter leider nicht.
      Es startet, das sieht man per ps -aux , läuft unter root aber es macht nichts.
      Wenn es vom pi aus über sudo /home/pi/alarm/alarmon_00.sh starte, dann läuft es auch unter root aber funktioniert.
    • Wird denn die Datei pilight_00.txt erzeugt?
      Vielleicht findet er ja pilight-receive nicht.
      Ich würde die Datei vor jedem Aufruf von pilight-receive löschen, und vor dem egrep-if noch ein if exist der Datei einfügen und das ggf. noch in einem Logfile loggen, um das während der Ausführung zu überwachen und dem Fehler auf die Spur zu kommen.
      Gruß Dieter
      --------------
      Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
    • JA, Datei wird erzeugt und durch stoppen der Alarmanlage ja gelöscht.
      Mit Logging kenne ich mich leider null aus, aber es ist doch komisch, wie sich das darstellt.

      Wenn ich das Script über sudo /home/pi/alarm/alarmon_00.sh starte aus SHC heraus, dann klappt es auch,
      aber dann habe ich wieder das Problem, das der Alarmeinschaltknopf nicht auf "AN" springt, sondern erst wieder, wenn das Script gestoppt wird.
      Wenn es dafür eine andere Lösung gibt würde mir das auch voll und ganz reichen.
      Ich will halt nicht einschalten und dann nicht sehen, das AN ist,
      außerdem muss ich dann 2 mal aus schalten, damit wirklich der Schalter auhc wieder auf "AUS" ist.
    • das logging kannst du erreichen, in dem du dir innerhalb den Ablaufs Daten per Echo in eine Datei schreibst.
      So kannst du z.b. Variablenwerte mitschreiben. Aber auch per if exists ob eine Datei existiert, oder ein Echo, ob das Script überhaupt einen Block durchläuft.

      So kannst du danach in der Datei den Ablauf nachvollziehen.
      So kannst du den Fehler mit Sicherheit eingrenzen und ermitteln.
      Gruß Dieter
      --------------
      Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.