onboardipns_OutputPins über Shellskript ansprechen

  • Hallo,


    kann ich einen Ausgang meines PiFace-Moduls über ein Shellskript z.B. unter Aufruf von "out:Briefkasten-Status-LED,1,0,3" ansteuern?


    Hintergrund meiner Frage ist der, dass ich nur dann dieses Kommando ausführen möchte, wenn eine bestimmte Systemvariable meiner HomeMatic-CCU einen definierten Schwellwert überschritten hat. In der doorpi.ini habe ich mir dazu das folgende Event angelegt, das beim Kurzschließen des Eingangs 3 des PiFace-Moduls getriggert wird:

    Code
    1. [EVENT_OnKeyPressed_onboardpins.3]
    2. 10 = os_execute:/usr/local/etc/DoorPi/scripts/BriefkastenStatus.sh
    3. ...
    4. [onboardpins_OutputPins]
    5. 0 = Verstaerker
    6. 1 = Tueroeffner
    7. 2 = Briefkasten-Status-LED



    Das Shellskript "BriefkastenStatus.sh" sieht im Moment noch so aus:





    Um es konkret zu machen. Ich möchte, dass ich beim Nachhausekommen auf einen im Briefkasten eingebauten Taster drücke, um mir dann über eine im Briefkasten eingebaute LED das Vorhandensein von Post per dreisekündigem Aufleuchten anzeigen lassen zu können. Wenn keine Post im Briefkasten ist, soll die LED aus bleiben.


    Gruß,


    Thorsten

  • Hallo nochmal,


    einen Ansatz habe ich ja mit

    Code
    1. wget -q -O /dev/null --user=door --password=pi http://${LBoxPi_IP}:8080/control/trigger_event?...


    gefunden, aber wie kann ich darüber das Event "out:Briefkasten-Status-LED,1,0,3" auslösen?

  • im Script mittels: echo true > /tmp/inputs/briefkasten


    könnte passen, ist aber ungetestet


    Alternativ kannst Du ohne die Datei zu bearbeiten auch:
    wget -q -O /dev/null --user=door --password=pi http://${LBoxPi_IP}:8080/control/trigger_event?event_name=OnKeyPressed_virtuell.briefkasten&event_source=doorpi.keyboard.from_filesystem

  • In der Regel verwende ich auch curl. In diesem Fall war das aber nicht notwendig, da ich den Befehl ja auf dem Raspi ausführe, auf dem sich DoorPi befindet. Daher genügte der einfache Aufruf per "echo true > .../inputs/briefkastenstatus". Hier mal mein Shellskript:


    Und die entsprechenden Passagen der doorpi.ini:


    Funktioniert, wie gewünscht. Wenn ich nun nach Hause komme, und es befindet sich Post im Briefkasten, wird mir dies durch ein zehnsekündiges Aufleuchten einer LED nach dem Drücken eines Tasters im Briefkasten angezeigt. Selbstverständlich lasse ich mich auch per Push-Nachrichten über die Einwürfe und die Leerung informieren, aber man hat ja unter Umständen nicht immer sein Smartphone dabei.


    Zusätzlich triggere ich die Status-LED auch noch über die HomeMatic beim Aufschließen der Haustür, so dass es in diesen Fall dann nicht mehr nötig ist, den Taster am Briefkasten zu drücken. Das geht recht einfach über die folgenden Skriptzeilen, die in einem HM-Programm ausgeführt werden:



    Code
    1. ! +++++ DoorPi Briefkasten-Status abfragen +++++
    2. string url="'http://192.168.0.21:8080/control/trigger_event?event_name=OnKeyPressed_onboardpins.3&event_source=doorpi.keyboard.from_piface'";
    3. dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null --user=door --password=pi "#url);


    Danke für die Unterstützung.


    Gruß,


    Thorsten