Modul zur Nutzung der Raspberry Pi GPIO

Hi Joachim,

habe mir die Tage mal ein 8-Kanal Relais Board gekauft. Klappt super mit deinem Modul über den pigpiod. Dazu aber noch 2 Fragen;-)

  1. Der Status ist bei mir immer invers zum Relais (also false, falls Relais angezogen)

  2. Ich würde mir einen Relaistimer wünschen, für kritische Schaltungen. Ich kann zwar in IPS das Relais einschalten, 2min warten, dann wieder ausschalten - aber das ist mir zu unsicher. Cool wäre es, wenn der Relaistimer direkt auf dem Zielraspi laufen könnte und das Relais selbst dann ausschaltet, wenn IPS weg sein sollte.

VIele Grüße,
Tom

Hallo Tom,

bin ja schon dabei den Code sukzessive „Up-To-Date“ zu bringen. Es gibt bereits jetzt ein paar kleine Zusatzfunktionen wie den I²C-Bus-Scan und Anpassungen auf Grund der Regeln für Module.

Eine inverse Darstellung von Schaltzustände kann ich mir gut vorstellen, das zweite widerspricht meinem Konzept nichts auf dem entferntem Raspberry Pi installieren zu müssen. Wenn es von dort ausgelöst werden soll, muss es dort ja in einem Skript hinterlegt sein, dass ist technisch nicht unmöglich (mit PIGPIO kann man auch Skripte starten), jedoch ist es denke ich zu individuell…

Joachim

Danke, das mit dem Ausführen von Skripten über pigpiod wäre in der Tat genau der richtige Weg. Sowas mache ich auch, aber einfach über exec(). Unterstützt denn dein Modul auch das Absenden von Skripten ?

Vielleicht hast du auch einen Tip zum pigpiod: Der startt bei mir nur, wenn ich den manuell nach dem Booten in der Konsole mit „pigpiod start“ starte. Beim Versuch, ihn mittels " systemctl enable pigpiod.service" beim Systemstart automatisch zu aktivieren, läuft er laut ps ax wohl, aber ich bekomme in IPS Fehlermeldungen beim Socket (Zugriffsproblem). Ich muss ihn dann killen und über „pigpiod start“ wieder manuell anwerfen, dann verbindet der CLient auch wieder.

…mein Modul unterstützt es derzeit nicht, war zu einem bisher nicht gefordert zum anderen fällt es mir schwer dieses universell umzusetzen - vielleicht als Funktion des Splitters?

Das PIGPIO immer mal wieder Startprobleme hat ist bekannt und sollte mit der neuen Version dann auch deutlich reduziert sein…

Joachim

Nachtrag: Wenn dann müsstest Du evtl. Dein Skript mit dem Setzen des Relais starten und dann zeitverzögert auf dem Raspberry Pi ausführen - ansonsten - wenn es von IPS mit einem Zeitverzug getriggert wird - hast Du ja nichts gewonnen.

Nee - ich meinte das so: Relais x soll für 30min anziehen. Das weiß ich noch nicht, wie ich das umsetze. Ich könnte ein python script basteln und dieses ohne pigpio direkt via exec() starten, aber bei 8 Relais gibt das hässliche Seiteneffekte durch den möglichen Mehrfachaufruf.

Eigentlich bräuchte ich dann wohl 8 Timer auf dem RasPI, damit sich das nihct in die Quere kommt - aber das gehört jetzt ja eigentlich nicht zu deinem Thread (was nicht heißen soll, dass ich nicht jede Idee gebrauchen kann) :wink:

…die Frage die ja bleibt ist, wer steuert diesen Prozess: IPS oder PIOGPIO?
Ich kann mir aber durchaus vorstellen, dass man den Output um Anzug- oder Abfallverzögerung erweitert…

Joachim

Hi Tom,

würde ich auch so lassen.
Warum, siehe Raspberry Pi: GPIO mit Pullup- oder Pulldown-Widerstand beschalten?
Bei dem ganze gebastel an dem IX Modulen lauft es auch bei mir über Pullup, ist störsicherer.
Ich habe einen Pi mit 1wire und 8fach Relaiskarte seit ~1 3/4 Jahren am laufen, als komplette Heizungssteuerung, nicht ein Hardware Ausfall bis heute.
Softwarebugs kann ich aber gut:D, hatte mich letztens auch mit 0 und 1 vertan, beim Neustart Bash Skript.
Ist aber erst im Sommerbetrieb aufgefallen, nach einem Stromausfall, da war dann die Pumpe an, und der Mischer auf.:smiley:
Ich glaube, man muss noch mehr TESTEN.:smiley:

Hallo Zusammen,

kann es sein, das mit dem aktuellen Update der 1-Wire Support entfernt wurde?
„InstanceInterface is not available“ mit dem „Stable-Branch“, der „Master-Branch“ läuft aktuell überhaupt nicht… (Fehler beim Anlegen von neuen Instanzen, bestehende Splitter & Device-Instanzen sind Rot)

Viele Grüße aus Koblenz,
Markus

…nein, das sollte so nicht sein. Bin noch unterwegs, schaue mir das an und melde mich!

Joachim

Hallo Markus,

bitte nur die Master benutzen!

Kannst Du den Fehler näher beschreiben? Fehlermeldung? Wann tritt er auf? Screenshot?

Joachim

Hallo Joachim,

ich habe nun das Modul gelöscht und komplett neu mit der Master-Branch geladen. Nachdem ich die Instanzen neu hinzugefügt hatte, war der Fehler weg. Vermutlich hat er im Hintergrund irgendwie die Verknüpfung zwischen Instanz (IPS2GPIO_1Wire) und dem dazu gehörigen Code verloren.

Egal - jetzt klappt es wieder wie gewohnt :loveips:

Vielen Dank für deine Arbeit & einen schönen Abend,
Markus

Hallo Joachim,

Habe noch 3 Vorschläge für dein Modul :wink:

Einmal den PCA9685 als LED Dimmer mit einstellbarer PWM Frequenz.

Den MCP23017 wo man Wahlweise Bank A oder B als Eingang/Ausgang setzen kann.

Und zu guter Letzt den DS2482-100 um eine „Richtige“ 1-Wire Schnittstelle zu haben am Raspberry um so z.b. problemlos mehrere DS18B20 abfragen zu können, da ich oft schon die Erfahrung gemacht habe dass diese „Simulierte Schnittstellen“ nicht immer Problemlos Funktioniert.

Ich wäre auch bereit dir eine kleine Spende zukommen zu lassen für diese tolle Arbeit die du da leistest :smiley:

LG
Sven

Hallo Sven,

alles schon umgesetzt, jedoch gleich mit der passenden Hardware.

  • PWM 16-fach mit dem PCA9685
  • I/O 16-fach jedoch mit dem PCA9655E
  • 1-Wire mit dem DS2482-100
    Schau es Dir doch mal an.

Zum 1-Wire ist jedoch zu sagen, dass je nach Menge und Typ der Sensoren/Aktoren dieses schon zu einer Belastung des IPS und der Netzwerkverbindung führt…

Joachim

Hallo Joachim,

habe ich da was verpasst. Das Modul unterstützt 1-Wire 2482? Dass es im GeCoS-Modul drin ist, hast du ja bereits geschrieben.

Gruss
Bernd

…„das“ ja, dieses nicht…:wink:

Joachim

Hallo Joachim, „spiele“ gerade weiter mit den IPS2GPIO_Input/Output - geht sehr schön.

Kleines Problem:
Die STATE Var der _Output-Instanz zeigt den aktuellen Status des Relais nur dann richtig an, wenn ich den Schaltvorgang auch genau über diese Instanz durchführe. Schalte ich das Relay über andere Wege (z.B. remote) - dann stimmt der Inhalt der STatus-Var nicht mehr.

Ich habe daher für den gleichen Pin eine IPS2GPIO_Input Instanz angelegt. Die zeigt dann wirklich immer den Zustand auch - allerdings mit einer Warnmeldung, dass der Pin doppelt genutzt wird (stimmt ja auch, in diesem Falle von der _Output und _Input Instanz)

Ist das so beabsichtigt oder mache ich was falsch ? Eigentlich ja unlogisch, den Pin gleichzeitig als in- und output zu nutzen - aber anders komme ich nicht zum Ziel (das Relais zu schalten und den aktuellen Zustand stets richtig anzuzeigen)

Grüße,
Tom

…das klingt nicht richtig - ich schaue mir das mal an…

Was meinst Du mit schalten per Remote?

Joachim

Hallo Tom,

habe den Fehler gefunden, aber nur halb dazu gekommen ihn zu korrigieren…
Melde mich wenn ich es fertig und getestet habe…[emoji6]

Joachim

Cool - Klasse !

per remote meinte ich das Schalten über andere Wege als über den lokalen pigpiod Socket an 127.0.0.1, also z.B. von einem anderen Host oder ohne pigpiod mit Python oder so.

Danke,
Tom

Wahrscheinlich eine ziemlich dumme Frage, aber wie schalte ich denn über ein Script ? Eine Function wie IPS2GPIO_Output gibt es ja nicht.