Modul zur Nutzung der Raspberry Pi GPIO

…Du glaubst gar nicht wie gerne ich Dir helfen würde - bin aber leider bei Schwiegermutters Umzug gebunden…
Wer gerne tauschen möchte - bitte melde Dich!

Joachim

Oh je, würde gerne helfen, wenn ich mir nicht gerade mein Sprunggelenk gebrochen hätte … ;):banghead:

Ist aber auf jeden fall nicht dringend. Habe ja jetzt Zeit :smiley:

Oliver

Hallo Joachim,

bisher habe ich deine Module hauptsächlich für Sensorik genutzt. Dabei braucht man ja keine Befehle in Skripts absetzen, weil die Variablen der entsprechenden Instanz ja zyklisch aktualisiert werden.

Wenn ich nun aber eine Aktion auslösen will, brauche ich einen Befehl dazu, wie z.B. für [GPIO_Output] setzen, PWM-Output [GPIO_Dimmer/RGB] setzen, Display ansteuern [GPIO_Display/Nextion] oder DA-Wert setzen [GPIO_PCF8591].

Ich weiss jetzt leider nicht, welche Befehle zu nutzen sind. In deinen Souren sind zwar public functions definiert, aber ich bringe diese nicht mit den im Thread genannten Beispielen zusammen. Ich suche irgend wie eine Befehlsreferenz.

# samples for I2G PHP commands in IP Symcon 
I2GOUT_Set_Status(57858 /*[Zk-Heiz\Zk-GPIO\IPS2GPIO_Output_GPIO24]*/, false);  
I2G_GetOneWireData(ID der IO-Instanz);  
I2GIO1_SetPinOutput($_IPS['INSTANCE'], $_IPS['PIN_HOCH'], true);
I2GDSP_Update(15863,  "/tmp/Test.tft");  
I2GDSP_Send(55416 /*[IPS2GPIO_Display]*/, "temp.val = 90"); 

# github source for IPS2GPIO_Output
....
     // Schaltet den gewaehlten Pin
	public function Set_Status(Bool $Value) 
....

Ist bestimmt nur eine einfache Sache und ich stehe nur auf dem Schlauch, bzw. ich habe etwas grundsätzlich übersehen :banghead:

Gruss
Bernd

…die grundsätzliche Struktur ist Präfix des Moduls_(Unterstrich)Funktionsname(InstanzID, Werte (oder Werte);
Kleiner Tipp: was für Funktionen das Modul zur Verfügung stellt, kannst Du sehen, wenn Du in der Konsole die Instanz markierst und mal „Befehle testen“ auswählst…

Hallo Oliver,

  • bitte prüfe, ob im raspi-confi der serielle Port korrekt eingerichtet ist (aus der Erinnerung: erst false und dann true);
  • kontrolliere bitte ob der GPIO-Server in der raspi-config aktiviert ist
  • versuche ein „Restart Pigpio“ im Splitter
  • kontrolliere, ob im Splitter bei den Variablen für HandleSeriel ein Wert > -1 steht

Wir bekommen das schon hin!

Joachim

Hallo Joachim,

danke für den Tipp, kannte ich noch nicht. Ich habe es gleich mal getestet und beim PCF8591 scheint bei mir etwas nicht zu passen. Wenn ich nachfolgenden Befehl absetze (egal ob über Script oder in der Konsole/Befehl testen), ändert sich nichts. Wenn ich dagegen im Webfront den Slider verschiebe, klappen die Änderungen.

I2GAD1_Set_Output(15069 /*[GPIO\Dummy\IPS2GPIO_PCF8591]*/, 99);

Gruss
Bernd

PCF8591_webfront.jpg

…Du hast recht, das wird so auch nicht funktionieren.

Man kann den Output nicht abfragen. Wenn Du die Funktion über das Webfront nutzt, dann wird der Wert - ohne echte Rückmeldung - auf den Wert gesetzt den Du eingestellt hast.
Ich werde das mal ergänzen, für den Fall, dass Du den Wert per Skript setzt. (in beiden Fällen wird die gleiche Funktion aufgerufen).

Melde mich!

Joachim

Hallo Bernd,

mache mal bitte ein Update und probiere es noch mal…

Joachim

Nach dem Update scheint es jetzt zu passen. Der nachfolgende Befehl zeigt nun im Webfront 100%

I2GAD1_Set_Output(15069 /*[GPIO\Dummy\IPS2GPIO_PCF8591]*/, 255);

Danke und Gruss
Bernd

Hallo Joachim,

habe mal die Schritte durchgespielt.

  • bitte prüfe, ob im raspi-confi der serielle Port korrekt eingerichtet ist (aus der Erinnerung: erst false und dann true);

Ist erledigt !
seriellt.png

kontrolliere bitte ob der GPIO-Server in der raspi-config aktiviert ist

  • genau da scheint das Problem zu liegen. Der Konfig sagt zwar , das der PIGIO enabled sei, in der Schell kommt aber die Meldung:

Job for pigpiod.service failed. See 'systemctl status pigpiod.service' and 'journalctl -xn' for details.
pi@raspberrypi:~ $ journal -xn

Wenn ich dann ‚systemctl status pigpiod.service‘ teste kommt.


pi@raspberrypi:~ $ systemctl status pigpiod.service
● pigpiod.service - Daemon required to control GPIO pins via pigpio
   Loaded: loaded (/lib/systemd/system/pigpiod.service; disabled)
  Drop-In: /etc/systemd/system/pigpiod.service.d
           └─public.conf
   Active: failed (Result: signal) since Mo 2017-02-20 12:29:31 CET; 3min 55s ago
  Process: 8755 ExecStop=/bin/systemctl kill -s SIGKILL pigpiod (code=killed, signal=KILL)
  Process: 8751 ExecStart=/usr/bin/pigpiod (code=exited, status=0/SUCCESS)

Und an dieser Stelle bin ich etwas überfragt…

versuche ein „Restart Pigpio“ im Splitter

habe ich schon mehrfach versucht…

kontrolliere, ob im Splitter bei den Variablen für HandleSeriel ein Wert > -1 steht

Hier steht „2“ drin.

Danke für die Hilfestellung.

Oliver

…wenn >-1 also 2 dann ist das erst einmal okay…

Der PIGPIO-Autostart dauert nach dem Reboot manchmal etwas…

Joachim

Der Pigpio service scheint bei mir überhaut nicht zu starten… auch nach 30 min ergibt

pi@raspberrypi:~ $ systemctl status pigpiod.service
● pigpiod.service - Daemon required to control GPIO pins via pigpio
Loaded: loaded (/lib/systemd/system/pigpiod.service; disabled)
Drop-In: /etc/systemd/system/pigpiod.service.d
└─public.conf
Active: inactive (dead)

muss ich da noch irgendwo was einstellen, damit der automatisch startet ?

Danke

Oliver

…eigentlich nur in der raspi-config den GPIO-Server aktivieren.

Was ist das für ein Raspberry Pi Modell?

Joachim

Das ist Raspi 2 . Liegt es evtl daran ?

…gibt unterschiedliche Aussagen dazu - auch bezogen auf den Start und den Typ.

Joachim

mhhh

werde mal einen Raspi 3 besorgen. sollte später ohnehin auf einem Pi3 laufen wegen WLAN

Oliver

Hi, hab grad mal alles upgedated, leider gehen die Relais immer noch direkt aktiv wenn ich den pi neustarte. Bist du noch dran am werkeln oder wird es vorerst so bleiben? :rolleyes:

…warum nimmst Du nicht den anderen Kontakt vom Wechsler?

…mit dem Gedanken hab ich auch schon gespielt, hab aber Angst das das Relais „fest backt“ es wird max 5,6 mal für 10 Sekunden geschaltet in einer Woche.

Also ich hatte PIGPIO ohne größere Probleme sowohl auf einem 2 er Raspi als auch auf einem der ganz Alten (26pol. GPIO Pfostenleiste) zum Laufen gebracht.
Verwendet habe ich jeweils ein aktuelles Jessi, und ein aktuelles PIGPIO…
In beiden fällen hatte ich allerdings eine feste IP statt DHCP verwendet…, nur so am Rande…
Wenn du noch mal nachlesen willst. Post 92, 93 und 101, dieses Threads verraten alles weitere…

Viel Glück!

Gruß

Ralf