Page 1 of 1

RevPi + RevPiDIO + Homekit (mit homebridge)

Posted: 16 Aug 2018, 12:35
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.

Re: RevPi + RevPiDIO + Homekit (mit homebridge)

Posted: 17 Aug 2018, 15:10
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.

Re: RevPi + RevPiDIO + Homekit (mit homebridge)

Posted: 18 Aug 2018, 18:59
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 9841 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

Re: RevPi + RevPiDIO + Homekit (mit homebridge)

Posted: 20 Aug 2018, 08:05
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.

Re: RevPi + RevPiDIO + Homekit (mit homebridge)

Posted: 20 Aug 2018, 09:42
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