Problem mit Eingängen

    • Problem mit Eingängen

      Hallo zusammen

      Ich wollte eine LED über ein Script blinken lassen. Das klappt auch wunderbar, mein Problem ist nur dass in der Zeit wo das Script läuft das SHC keine Änderungen an den Eingängen mitbekommt. Ich habe zuerst den Ausgang für die LED über SHC (php index.php app=shc -sw id=167 --off / php index.php app=shc -sw id=167 --on) geschaltet. Danach habe ich versucht den GPIO direkt anzusteuern (gpiowrite 25 1 / gpiowrite 25 0). Ohne Erfolg. Die LED blinkt, am SHC ändert sich der Zustand an den Eingänge aber nicht, es springt nicht von rot auf grün und umgekehrt. Erst nach dem ich das Script beendet habe funktionieren die Eingänge wieder.

      Liegt es am Raspi, liegt es am SHC?? Hat jemand eine Idee
    • Das liegt am SHC, wenn das Script z.B.: 10 Sekunden läuft, wird der Scheduler 10 Sekunden lang blockert.

      Du kannst das Script aber beim Kommandozeilenaufruf mit & in den Hintergrund schocken.

      Der SHC 3 Application Server wird Scripte generell Asynchron ausfürhren, da gibt es das Problem nicht. Es wird aber eine Zeitbegrenzung von 30 Sekunden für Scripte geben um Endlose Prozesse zu vermeiden.
    • Ein ähnliches Problem habe ich auch mit meiner Interrupt- gesteuerten Energieverbrauchserfassung auf dem SHC Master.

      Das eigentliche Programm zum erfassen der Zählpulse mittels Interrupt stört den Sheduler noch nicht. Werden aber S0 Pulse am Eingang erkannt und gezählt (eigentlich lächerlich wenige, rund 25 / Minute) führt der Scheduler nicht mehr zuverlässig Schaltvorgänge aus.

      Wäre da ein in den "Hintergrund schicken" des in C geschriebenen Programms auch eine Lösung, und wie würde das dann machbar sein?

      Wenn nicht, arbeite ich gerade an einer Lösung, wo die Pulse auf einem Arduino gezählt werden und dann nur minütlich einmal gesammelt zum Pi übertragen werden.
      SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
    • Danke für die schnelle Antwort. Als Hintergrundprozess aus der Konsole raus funktioniert es, muss ich mal schauen wie ich das jetzt über SHC hinkriege.
      Die geplante Zeitbegrenzung für Scripte könnte man auch auf 60 Sekunden einstellen? Aktuell läuft mein Script eben eine Minute, und die Zeit ist ok. 30 Sekunden wäre etwas knapp.

      Edit.
      Das Ergebnis als Hintergrundprozess ist sehr „Tagesform“ abhängig. Mal geht`s, mal nicht. Also warte ich auf SHC 3.

      The post was edited 1 time, last by hase ().

    • Die Zeit ist an sich Zweitrangig, die 30 Sekunden habe ich gewählt da in dieser Zeit eigentlich alle Operationen abgeschlossen sein sollten. Für einen PC sind 30 Sekunden eigentlich eine fast unendlich lange Rechenzeit. Sofern man keine gigantischen verarbeitet werden.

      Hintergrund ist das Scripte zwar Asynchron laufen aber eben auch einen Thread im Pool blockieren, passiert das zu oft gleichzeitig kann das auch die Leistung des Servers beeinträchtigen.