RevPi + RevPiDIO + Homekit (mit homebridge)

Hier kannst du dein Revolution Pi Projekt der Community vorstellen
Post Reply
Christian1313
Posts: 10
Joined: 16 Aug 2018, 12:25

RevPi + RevPiDIO + Homekit (mit homebridge)

Post by Christian1313 »

Hallo Community,

Ich habe ein Homebridge plugin geschrieben welches die Nutzung der digitalen Ausgänge des RevPiDIO ermöglicht.

homebridge (https://github.com/nfarina/homebridge]) is HomeKit support for the impatient.

Mein plugin ist homebridge-revpidio (https://www.npmjs.com/package/homebridge-revpidio)

Das ist der erste Schritt.
Der nächste ist die Implementierung der digitalen Eingänge als Programmierbare Schalter.
Christian1313
Posts: 10
Joined: 16 Aug 2018, 12:25

Re: RevPi + RevPiDIO + Homekit (mit homebridge)

Post by Christian1313 »

Jetzt ist v0.2.0 veröffentlicht mit Unterstützung der digitalen Eingänge als HomeKit Sensoren.

Zusätzlich kann die RevPi core Temperatur in HomeKit sichtbar gemacht werden.
User avatar
RevPiModIO
KUNBUS
Posts: 328
Joined: 20 Jan 2017, 08:44
Contact:

Re: RevPi + RevPiDIO + Homekit (mit homebridge)

Post by RevPiModIO »

Hi Christian!

Das ist ja ein cooles Projekt :D - Für mich natürlich auch, weil du RevPiModIO verwendest!

Und bei "liveinputs.py" ist mir aufgefallen, dass du eine Funktion gut gebrauchen kannst, die RevPiModIO2 noch nicht hat. Ich denke du willst nicht nur die Wertänderung von Eingang "I_1" in das System bringen sondern von "allen" Eingängen.

Man könnte mit der aktuellen Version (2.2.2) jetzt schon alle Eingänge mit deiner Eventfunktion versehen:

Code: Select all

        # Register events to all Inputs
        for device in self.revpi.device:
            # Use only DIO, DI, DO, AIO Devices
            if device.type == "LEFT_RIGHT":
                for io in device.get_inputs():
                    io.reg_event(self.event_input_changed)

ABER: Ich denke es wäre noch komfortabler, wenn der Benutzer über piCtory auswählen kann, welche Eingänge überwacht werden sollen!!!

In piCtory kann man im Value-Editor ja ein Haken bei "Export" setzen. Diesen Haken verwendet RevPiModIO noch nicht. Ich habe dir hier mal eine Testversion (2.2.3) hochgeladen, bei der die IO-Objekte um .export erweitert sind und mit True oder False den Wert aus piCtory zurückgeben. Außerdem kann man den Funktionen .get_inputs / .get_outputs / usw. gleich den Parameter "export" mitgeben und man erhält nur Inputs, bei denen in piCtory "Export" den übergebenen Wert hat.
Screenshot_20180818_182239.png
Screenshot_20180818_182239.png (8.74 KiB) Viewed 13448 times

Mit der Version 2.2.3 (die du per Hand mit "dpkg -i python3-revpimodio2_2.2.3-1_all.deb" auf dem Pi installieren musst) kann dein Quellcode dann so aussehen und reagiert auf alle Inputs, bei denen "Export" in piCtory gesetzt ist :D

Code: Select all

    def __init__(self):
        self.revpi = revpimodio2.RevPiModIO(autorefresh=True)
        self.revpi.core.A1 = revpimodio2.GREEN
        # Handle SIGINT / SIGTERM to exit program cleanly
        self.revpi.handlesignalend(self.cleanup_revpi)

        # Register events to all Inputs marked with 'Export' in piCtory
        for device in self.revpi.device:
            # Use only IO Devices
            if device.type == "LEFT_RIGHT":
                for io in device.get_inputs(export=True):
                    # Only Inputs with set 'export' flag in piCtory
                    io.reg_event(
                        self.event_input_changed,
                        edge=revpimodio2.BOTH
                    )

Kleiner Tipp am Rande: Da du .handlesignalend(...) verwendest kannst du statt "while True:" das neue .exitsignal verwenden, dann steigt das Programm sauber aus dem Loop aus, wenn SIGINT / SIGTERM gesendet wurde:

Code: Select all

# Ohne "Wartefunktion"
while not self.revpi.exitsignal.is_set():
    pass

# Mit "Wartefunktion" 0.1 Sekunde
while not self.revpi.exitsignal.wait(0.1):
    pass

# Beide Varianten geben ein True zurück, wenn SIGINT / SIGTERM empfangen wurde

Bin gespannt was da noch so kommt :D

Gruß, Sven
python3-RevPiModIO - https://revpimodio.org/ || Der RevPi ist das Beste, was passieren konnte!
Christian1313
Posts: 10
Joined: 16 Aug 2018, 12:25

Re: RevPi + RevPiDIO + Homekit (mit homebridge)

Post by Christian1313 »

Danke. Ich hab doch glatt vergessen die Eingänge variable zu machen.

Ist mir irgendwie komplett durch gerutscht.

Ich schaue mir gleich mal die Änderungen an.
Christian1313
Posts: 10
Joined: 16 Aug 2018, 12:25

Re: RevPi + RevPiDIO + Homekit (mit homebridge)

Post by Christian1313 »

So hab den Fehler erstmal beseitigt nun sollten alle digitalen Eingänge funktionieren.

Ob ich das export flag dann später zusätzlich auswerte weis ich noch nicht, da man so
die hombridge config und die PiCtory config immer zusammen ändern muss.

Jetzt versuche ich noch die programmierbaren Switches und später vielleicht noch die analogen Eingänge.

Vielleicht kommt ja noch Rückmeldung von Nutzern dann kann man es noch besser anpassen.

Bin auch gespannt wann der RevPi Compact kommt und wie der preislich so ist.
Dieser klingt für mich ideal für den HomeKit Einsatz
Post Reply