Das Modul ermöglicht die Nutzung der GPIO auf dem Raspberry Pi auf dem Euer IPS läuft, aber eben auch jeden anderen der per LAN oder WLAN angebunden ist.
Voraussetzungen:
IPS 4.1
aktuelles Jessie-/Stretch-Image
aktuelle PIGPIO-Installation (in der aktuellen Jessie-/Stretch-Version ist noch eine ältere PIGPIO-Version enthalten, aktuell ist V65 oder größer)
Freigabe der benötigten Bussysteme (I²C) in der raspi-config
Der Zustand der GPIO des Raspberry Pi beim Bootup ist nicht definiert. Das bedeutet, dass direkt an GPIO angeschlossen Devices bis zum vollständigen Start des Raspberry Pi und IPS ebenso undefiniert Dinge machen! Wenn das dabei um die Schrankbeleuchtung geht, mag das egal sein, bei Garagentoren o.ä. empfehle ich jedoch dringend hier die oben unterstützten I²C-Devices zu nutzen, hier ist dann beim Bootup der Zustand definiert.
Wie es in IPS üblich ist, führt die Veränderung der Status-Variablen in der IPS-Konsole nicht zu einer Aktion. Um die Funktionalität zu testen bieten sich mindestens die Möglichkeiten die Statusvariablen im Webfront zu bedienen oder über das Kontextmenü in der Konsole „Befehle testen“ auszuführen.
Bei keinem der Ausgangs-Module (Output, Dimmer, RGB, RGBW usw.) wird der Zustand des Devices regelmäßig überprüft, weil unterstellt wird, das diese nur IPS-konform von einer Stelle gesteuert wird. Eingänge (Input, A/D, Wandler, I/O-Port-Expander usw.) haben in der Regel aber selbstverständlich diese Funktionalität, durch zeitlich gesteuert Abfrage oder durch Interrupt getriggert den aktuellen Zustand zu ermitteln.
Es gibt die eine oder andere „Inkompatibilität“ zwischen IPS und PIGPIO, begründet in den jeweiligen Restriktionen. Soweit diese bekannt sind, sind Maßnahmen getroffen worden dieses bestmöglich zu kompensieren.
Wird der DS2481 und/oder MUX eingesetzt, muss dieser direkt am I²C-Bus 1 angeschlossen werden (GPIO 2/3 bzw. Pin 3/5)
Wird eine MUX verwendet so sind alle anderen Devices (außer dem DS2481) hinter diesem anzuschließen
Bitte vor Fehlerpostings prüfen, ob ihr die aktuelle PIGPIO-Versioninstalliert habt (muss manuell durchgeführt werden!) und ob das Modul selbst auf dem aktuellen Stand ist. In der Regel geben die Debug-Meldungen vom Splitter als auch der jeweiligen Instanz einen Hinweis darauf, wo der Fehler liegen könnte, also auch dieses ggf. mit posten.
Ich weise ausdrücklich darauf hin, dass es sich um ein noch unvollendete Modul handelt, das Fehler haben könnte!
Ich hafte weder für defekte Soft- und/oder Hardware noch für „verbrannte“ Zeit!
Wer Lust hat mal zu testen, sei aber herzlich eingeladen. Fehlermeldungen, Erweiterungswünsche dann gerne hier.
Vielen Dank noch mal an die tatkräftigen Unterstützer!
wenn Zeit kommt und ich mir die neuen AMS mal kaufe, gehe ich da auch dran. Habe bis jetzt nur die „alte“ am IX.
BME280 kannst du auf 2 verschiedene Adressen legen (umlöten), bei 4 Stück habe ich auch noch keine Idee.
Deine Wünsche sind gut und richtig.
Blöd ist halt das die Sensoren Hersteller nicht mehr Adressen zulassen, dann wäre es einfacher.
Die alte „IAQ-Core“ bleibt am IX, da rennt die seit Jahren gut.
Für mein Arbeitszimmer und Bad brauch ich auch noch was.
Wenn ich zeit und Luft finde, werde ich mir mal was besorgen und an den Pi hängen wollen, an den Stellen will ich auch weg von meinem IX am LCN. :D, da ich per IPS die Werte besser verarbeiten kann, wie auch vom 1wire Bus per GPIO.
weitere Sensoren zu implementieren ist selbstverständlich möglich. In der Regel studiert man mal das Datenblatt und kommt dann früher oder später auf ein lauffähiges Skript.
Zu dem iAQ-Sensor könnte ich Dir folgendes anbieten: Sende mir so einen Sensor, damit ich das Ergebnis verifizieren kann, das Ding ist mir einfach zu teuer zum „rumspielen“.
Zu dem TCA9548A müsste ich mir mal genauer anschauen, ob und wie das implementierbar ist.
den Multiplexer habe ich zumindest am Laufen, mit diesem (gefundenen) Script schalte ich um:
import smbus
class multiplex:
def __init__(self, bus):
self.bus = smbus.SMBus(bus)
def channel(self, address=0x70,channel=0): # values 0-3 indictae the channel, anything else (eg -1) turns off all channels
if (channel==0): action = 0x04
elif (channel==1): action = 0x05
elif (channel==2): action = 0x06
elif (channel==3): action = 0x07
else : action = 0x00
self.bus.write_byte_data(address,0x04,action) #0x04 is the register for switching channels
if __name__ == '__main__':
bus=1 # 0 for rev1 boards etc.
address=0x70
plexer = multiplex(bus)
plexer.channel(address,3)
print "Now run i2cdetect"
also wird einfach ein Byte 4,5,6,7 je nach gewünschtem Kanal an die 0x70 gesendet.
danach landet dann der eingeschaltete BME280 in der zugehörigen Instanz. Jetzt kann ich natürlich den Multiplexer per php Script über eine Kanal-var schalten (wie müsste ich denn dazu die GPIO_IO ansprechen ?) und je nach Kanal-var die Daten umkopieren - aber elegant ist das ja auch nicht.
…Du brauchst die 4.1 Testing und dann in den Kerninstanzen bei Module die Link zu meiner Github-Adresse (siehe erstes Posting) einfügen.
Aber Achtung: Tim hatte ja noch den Wunsch den iAQ core hinzuzufügen, da sind wir noch in der (hoffentlich finalen) Umsetzung, führt aber auch dazu, dass ich aktuell im „Kern“ noch Ergänzungen und Änderungen durchführen muss, was ab und zu auch mal zu Fehlern führen kann…
Ich werde mich bemühen, diese Fehler dann so schnell wie möglich zu beheben…
nachdem ich erfolgreich in IPS eine HM CCU2, 1-Wire Sensoren über USB Gateway und 2 Webcam integriert habe, möchte ich eine Relaisplatine am Raspi(3) über GPIO anschliessen.
Die Anleitungen die ich gefunden habe, haben nicht funktioniert oder ich habe sie falsch umgesetzt.
Kann mir jemand eine verständliche Anleitung für die Installation sowohl auf dem Raspberry (falls erforderlich) als auch die Konfiguration in IPS zukommen lassen??
Anleitung für die Integration des php Codes wäre auch nicht schlecht.(…hab erst vor 3 Wochen mit IPS angefangen…)
dieser Thread beschäftigt sich mit einem Modul zum Betrieb verschiedener Sensoren und aktoren am Raspberry Pi. Die Modulfunktionalität ist im ersten Posting beschrieben.
Ganz aktuell dazu gekommen:
das Modul unterstützt jetzt I²C-Devices am I²C Bus 1 und auch an Bus 0 (versteckt sich in P5)
der iAQ-Core der Messungen zur Luftqualität macht (Dank an Tom).
Insbesondere für die erste neue Funktionalität mussten diverse Dinge im „Kern“ angepasst werden, bitte daher mit Fehlern rechnen…
Bei Skriptausführung wird der GPIO24 am Raspi auch ordnungsgemäß geschaltet. Die Status-Variable „Status“ ändert Ihren Wert jedoch nicht.
Ebenfalls wir bei Änderung der Status-Variable „Status“ direkt in der Console über „Variable verändern“ der GPIO24 hardwaremäßig nicht geschaltet.
Im Webfront kann die Status-Variable „Status“ dann geschaltet werden und verändert dann auch hardwaremäßg den GPIO24. Bei Aufruf der Scripte „Ein“, oder „Aus“ erfolgt dann wiederum keine Nachführung der Status-Variable.
zunächst einmal gehe ich davon aus, dass hier ein Fehler in meinem Modul vorliegt.
Der Status wird erst über die (erfolgreiche) Rückmeldung vom Raspi gesetzt, nicht durch Dein Setzen.
Von daher gehe ich im Moment davon aus, dass die Rückmeldung irgendwie nicht ankommt. Ich muss gestehen: Dieses ist die einizige Instanz die ich nie selbst genutzt habe, von daher unterstelle ich den Fehler erst einmal bei mir.
Ich teste das hier mal und melde mich wenn ich den Fehler gefunden habe!
Hm ich bekomme es nicht zum laufen, Client Socket verbunden, aber die Splitter Instanz IPS2GPIO_IO ist eingerichtet aber sie bleibt auf nicht aktiv ???