Frage zum homebridge-cmdswitch2 Plugin

  • Hallo Zusammen!


    Ich wollte mit dem cmdswitch2 Plugin einen Schalter anlegen, der ein Python Script ausführt.


    Ich habe das Plugin installiert und in der config.json die folgenden Zeilen eingefügt:


    Code
    {
                "platform": "cmdSwitch2",
                "name": "CMD Switch",
                "switches": [
                    {
                        "name": "SendMail",
                        "on_cmd": "python3 /home/pi/Dokumente/mail.py"
                    }
                ]
            }

    Das nimmt er auch so an. Im Log meldet er nach dem Start den aktuellen Zustand des Schalters. Als ich dann in der Home App dann den Schalter betätigte, führte er das Skript auch einmal aus (sieh 11:46:25). Ich habe also die Email erhalten. Gleichzeitig kamen eine Reihe von Fehlermeldungen, die ich nicht verstehe.

    Seit dem ist der Schalter immer im Status "an" und wenn ich versuche ihn auszuschalten, kommen die Fehlermeldung und die Homebridge startet sich neu.


    Hat jemand eine Idee, was ich tun kann, um das zu Laufen zu bekommen?


    Ich will eigentlich einen Schalter (Taster) simulieren, der -wenn er gedrückt wird- eine Email verschickt. Das Python Skript funktioniert, sofern ich es über die Konsole aufrufe.


    Schon mal vorab vielen Dank für jede Hilfe oder Idee!


    Viele Grüße

    HennD

  • Code
    [2019-8-17 11:49:18 AM] TypeError [ERR_INVALID_ARG_TYPE]: The "file" argument must be of type string. Received type undefined

    Koennte das der Grund sein, ich kenn mich mit python gar nicht aus, koennte mir aber vorstellen, dass er hier ne falsche Info erhaelt und deshalb abstuerzt!

  • Hi vgnsxe!


    Gute Frage! Ich habe den Fehler auf den Aufruf des Plugins bezogen. Das Python Skript läuft in der Konsole soweit sauber durch ?

    Der Vollständigkeit halber anbei auch noch mal das Python Skript.

    Viele Grüße

    HennD

  • Zugriffsrechte fuer homebridge oder sonst was kann es ja auch nicht sein, oder?

  • Eigentlich nicht, da er das Skript ja ausführt. Aber tatsächlich liegt es im Home-Verzeichnis von pi und nicht vom User Homebridge.

  • Funktioniert das Script denn auch, wenn du es vom User Homebridge aus startest?

    Code
    sudo su - homebridge
    python3 /home/pi/Dokumente/mail.py
    exit

    Wenn nicht, versuch doch vielleicht einmal, dem Nutzer Homebridge testweise alle Rechte zu geben.


    Dazu einfach

    Code
    sudo visudo -f /etc/sudoers.d/homebridge

    und dort an Stelle des bisherigen Eintrags


    Code
    homebridge ALL=(ALL) SETENV:NOPASSWD: ALL

    einfügen.


    Versuch macht klug.. ;)

  • Hallo Sebbo187!

    Vielen Dank!

    Ich hab es probiert. Das Script läuft auch, wenn User Homebridge es ausführt.

    Viele Grüße

    HennD

  • Ha! Problem gelöst!!

    Offenbar will das Plugin zwingend auch den Aus- Zustand haben! Mit diesen Zeilen in der Config.JSON läuft es sauber durch.


    Vielen Dank und viele Grüße!
    HennD

  • Das ist leider das Hauptproblem des cmdswitch plugins: Das es nicht automatisch nach dem Ausführen in „stateless“ (oder „off“) zurückfällt.


    Daher benutze ich zur Ausführung solcher Skripte das plugin homebridge-cmdtrigger. Der stellt sich nach Ausführen des Skriptes nach einer einstellbaren Zeit wieder zurück auf „aus“.