FHEM Forum

FHEM - Hardware => Einplatinencomputer => Thema gestartet von: blueberry63 am 10 Juni 2014, 16:41:28

Titel: Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: blueberry63 am 10 Juni 2014, 16:41:28
Hallo,

da wohl wieder BBB (Rev C) im Handel sind, überlege ich von Rasppi auf BeagleBone Black umzusteigen. Ich lese z.Zt. einen Gaszähler über einen GPIO-Port aus (mittels des "RPI_GPIO"-Moduls) und möchte fragen, wie und mit welchem Aufwand dies mit dem BBB geht. Dabei möchte ich nur das Prinzip verstehen, in die Details arbeite ich mich später ein.

Gruß
Blueberry63
Titel: Antw:Umstieg Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: epsrw1 am 10 Juni 2014, 16:59:32
um den gpio zu schreiben (out:1/0) oder lesen (in:1/0) brauchst Du nicht viel. falls Du mit interrupt arbeitest hilft Dir mein nachfolgender tipp leider nciht.

auf dieser basis:
http://forum.fhem.de/index.php/topic,23769.0.html
könntest Du dir ganz einfach durch austauschen der `syscommand` befehlszeilen basteln was Du für den fremden gpio brauchst

LG, florian
Titel: Antw:Umstieg Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: blueberry63 am 10 Juni 2014, 17:08:33
@Florian,

Danke für die schnelle Antwort, aber das hilft mir wohl nicht weiter, da ich mit Interrupts auf dem Rasppi arbeite:


define gpio_pin11 RPI_GPIO 17
attr gpio_pin11 DbLogExclude .*Toggle.*,.*Counter.*,.*state.*
attr gpio_pin11 direction input
attr gpio_pin11 interrupt falling
attr gpio_pin11 pud_resistor up


Würde Dein Code denn auf einem BBB funktionieren oder ist er nicht nur für den Rasppi?

Gruß
Blueberry63
Titel: Antw:Umstieg Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: epsrw1 am 10 Juni 2014, 17:17:26
der code ist nur insoweit für den raspi daß der aufruf von /usr/local/bin/gpio hardcoded ist. nach ersetzen mit was auch immer für einem anderen programm für deinen bbb sollte es auch dort laufen.

das gpio modul macht nichts anderes als den exportierten filehandle Deines gpio-pins zu öffnen und offenzuhalten:
zeile 497:
sub RPI_GPIO_inthandling($$) {      #start/stop Interrupthandling
das sollte auf dem bbb ähnlich gehen, mit wieviel gefummel das dann allerdings verbunden ist vermag ich nicht zu sagen.

evtl wäre ein arduino eine alternative (nur ein paar dollar...), der wird hardware-unabhängig unterstützt und bietet auch nen interrupt auf manchen pins

alles ohne garantie, habe mich selbst nicht eingehend mit dem interrupt handling auseinandergesetzt.

LG, florian

Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: blueberry63 am 11 Juni 2014, 11:04:58
@alle:

könnte sich ein erfahrener Programmierer der Sache annehmen und ein Modul "BBB_GPIO" schreiben? Wenn ich Florian richtig verstehe, dann ist der Aufwand nicht serh hoch, wenn man das Modul "RPI_GPIO" als Basis nimmt.

Oder lohnt sich das Ganze nicht, weil kaum jemand FHEM auf dem BBB laufen hat?

Gruß
Blueberry63
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: Billy am 11 Juni 2014, 14:44:52
Zitat von: blueberry63 am 11 Juni 2014, 11:04:58
@alle:
könnte sich ein erfahrener Programmierer der Sache annehmen und ein Modul "BBB_GPIO" schreiben? Wenn ich Florian richtig verstehe, dann ist der Aufwand nicht serh hoch, wenn man das Modul "RPI_GPIO" als Basis nimmt.
Oder lohnt sich das Ganze nicht, weil kaum jemand FHEM auf dem BBB laufen hat?
Gruß
Blueberry63

Also bei mir läuft schon seit über einem Jahr eine interrupt gesteuerte GPIO Abfrage auf dem BBB.
Diese dient zur Drucküberwachung meines Heizkreises. Bei Druckabfall wird eine E-mail Warnung erzeugt.
Basis ist "Setting up IO Python Library on BeagleBone Black" von Adafruit.
Inzwischen dürfte es auch andere Lösungen geben.

Zitatkönnte sich ein erfahrener Programmierer der Sache annehmen und ein Modul "BBB_GPIO" schreiben?

Für einen erfahrenen Modulschreiber sicher kein Problem. ;)

Gruss Billy
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: blueberry63 am 11 Juni 2014, 17:27:49
ich würde es ja selbst programmieren, aber das übersteigt bei weitem meine Kenntnisse  :-[

Gruß
Blueberry63

P.S.: Es gibt ja auch noch den Cubietruck als beliebte Platform für FHEM, wenn ich das hier richtig mitbekommen habe. Könnte man das Modul nicht gleich so schreiben, daß es flexibel für viele dieses Einplatinen-Computer ist?
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: klausw am 11 Juni 2014, 22:44:25
Naja, das RPI_GPIO könnte ich auch einfach modifizieren. Wegen so einer Kleinigkeit muss ja kein neues Modul her ;)
In Ansätzen könnte es bereits laufen (nur die GPIOs müssten vorher manuell exportiert werden).
Es kommt ganz darauf an, wie die Zugriffsrechte für die Dateien unter /sys/class/gpio beim BBB sind.
Beim Raspberry läuft dort alles unter root. Daher nutze ich das gpio utility von wiringpi (/usr/local/bin/gpio) um die GPIOs mit lese/schreibrechten für den FHEM User zu exportieren.
Wenn der fhem User beim BBB schon Zugriff auf die Dateien hat kann ich RPI_GPIO so erweitern, das es auch mit dem BBB funktioniert.
Also schau mal einer nach und gib mir Bescheid :)
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: Billy am 12 Juni 2014, 08:37:58
Zitat von: klausw am 11 Juni 2014, 22:44:25
Naja, das RPI_GPIO könnte ich auch einfach modifizieren.
Es kommt ganz darauf an, wie die Zugriffsrechte für die Dateien unter /sys/class/gpio beim BBB sind.
Beim Raspberry läuft dort alles unter root. Daher nutze ich das gpio utility von wiringpi (/usr/local/bin/gpio) um die GPIOs mit lese/schreibrechten für den FHEM User zu exportieren.
Der Zugriff bei BBB ist wie beim Raspi normalerweise nur unter root.
Vielleicht hilft dieser Link weiter.
https://www.npmjs.org/package/onoff

Oder hier Accessing GPIO pins with non-root user
https://groups.google.com/forum/#!topic/beagleboard/7a5l2QXklgM

Billy
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: klausw am 12 Juni 2014, 11:01:46
Zitat von: Billy am 12 Juni 2014, 08:37:58
Vielleicht hilft dieser Link weiter.
https://www.npmjs.org/package/onoff

Nicht so richtig. Hier werden, wenn ich nix überlesen habe, die GPIOs als superuser exportiert

Zitat von: Billy am 12 Juni 2014, 08:37:58
Oder hier Accessing GPIO pins with non-root user
https://groups.google.com/forum/#!topic/beagleboard/7a5l2QXklgM

Das ist auch nix, was ich in das Modul einbauen kann (mal abgesehen davon das ich nicht verstehe wie ich damit Userrechte der GPIOs ändern kann ;)).

eigentlich gibt es nur 3 Lösungen:

Nummer 1 ist vermutlich die einfachste Variante für den Anwender.

Lasst euch was einfallen ;)
Ich baue es gern ein. Aber um die Sachen ausserhalb FHEM will ich mich eigentlich nicht kümmern.
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: Billy am 12 Juni 2014, 11:22:38
@klausw
Also damit wir uns richtig verstehen ich habe damit kein Problem!
Ich wollte Blueberry63 nur einen Typ geben!

Bei mir habe ich das wie folgt vor dem fhem Start durch GPIO Initialisierung in rc.local gelöst!
# GPIO Initialisierung in rc.local
#---------------------------------------------------------------------
gpio=/sys/class/gpio
# Steckerleiste P9
# pin 12 --> gpio60 --> HK1
# pin 14 --> gpio50 --> HK2
# pin 16 --> gpio51 --> Frischwasser
echo 60 > /sys/class/gpio/export
echo 50 > /sys/class/gpio/export
echo 51 > /sys/class/gpio/export

# Bootwerte festlegen
echo low > /sys/class/gpio/gpio60/direction
echo low > /sys/class/gpio/gpio50/direction
echo low > /sys/class/gpio/gpio51/direction

# Rechte setzen, damit damit die gpio Scripte von fhem ausgeführt werden koennen
cd /sys/devices/virtual/gpio
chown -R fhem:root *
cd /sys/class/gpio
chown -R fhem:root *
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: klausw am 12 Juni 2014, 12:56:48
Zitat von: Billy am 12 Juni 2014, 11:22:38
Bei mir habe ich das wie folgt vor dem fhem Start durch GPIO Initialisierung in rc.local gelöst!
# GPIO Initialisierung in rc.local
#---------------------------------------------------------------------
gpio=/sys/class/gpio
# Steckerleiste P9
# pin 12 --> gpio60 --> HK1
# pin 14 --> gpio50 --> HK2
# pin 16 --> gpio51 --> Frischwasser
echo 60 > /sys/class/gpio/export
echo 50 > /sys/class/gpio/export
echo 51 > /sys/class/gpio/export

# Bootwerte festlegen
echo low > /sys/class/gpio/gpio60/direction
echo low > /sys/class/gpio/gpio50/direction
echo low > /sys/class/gpio/gpio51/direction

# Rechte setzen, damit damit die gpio Scripte von fhem ausgeführt werden koennen
cd /sys/devices/virtual/gpio
chown -R fhem:root *
cd /sys/class/gpio
chown -R fhem:root *


Mit dieser Vorbereitung sollte das Modul RPI_GPIO direkt funktionieren (abgesehen von ein paar Fehlern im Log).
Aber muss direction nicht auf "in" oder "out" gesetzt werden?

Wenn das mal jemand von den BBB Nutzern testet und Rückmeldung gibt, dann kann ich auch noch die Möglichkeit einbauen auch "direction" im Modul zu ändern.
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: blueberry63 am 12 Juni 2014, 13:14:11
@klausw, Billy,

super, daß Ihr Euch schon Gedanken macht. Mangels BBB kann ich leider noch nicht helfen. Die Benutzerrechte auf dem OS bekäme ich auch umgesetzt. Ich werde mir jezt mal einen BBB bestellen und dann sehen wir weiter.

Gruß
Blueberry63
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: epsrw1 am 12 Juni 2014, 14:57:35
ich könnte moduländerungen auf dem cubie testen und so ggfs etwas beitragen. einen BBB hab ich nicht
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: klausw am 12 Juni 2014, 15:22:10
Zitat von: epsrw1 am 12 Juni 2014, 14:57:35
ich könnte moduländerungen auf dem cubie testen und so ggfs etwas beitragen. einen BBB hab ich nicht
verhalten sich da die GPIOs vergleichbar zum BBB? Also können nur als root exportiert werden?
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: Billy am 12 Juni 2014, 15:39:46
Zitat von: klausw am 12 Juni 2014, 12:56:48
Aber muss direction nicht auf "in" oder "out" gesetzt werden?
Antwort: da gibt es eine zweite Alternative!
To set a gpio as output, we set its direction as in or out. For outputs there is an alternative nomenclature where output direction can be set instead as high or low to help with glitch free operation.
http://www.armhf.com/using-beaglebone-black-gpios/

Bin gerade im Urlaub deshalb kann ich auch nicht testen.

Schlage vor blueberry63 testet wenn er seinen BBB hat. Wir helfen dann soweit nötig.

Gruß Billy
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: epsrw1 am 12 Juni 2014, 15:50:45
es gibt ein vergleichbares ding für den cubie. die zahl der pins ist deutlich höher, ebenso ist deren verwendung weniger eingeschränkt beim cubie.
zielführend für einen kleinen überblick dürften folgende links sein:
http://hempel.dd-dns.de/cms/index.php/cubietruck-cubieboard-3/articles/die-gpio-am-cubietruck-verwenden.html (http://hempel.dd-dns.de/cms/index.php/cubietruck-cubieboard-3/articles/die-gpio-am-cubietruck-verwenden.html)
http://docs.cubieboard.org/tutorials/common/gpio_on_lubuntu (http://docs.cubieboard.org/tutorials/common/gpio_on_lubuntu)
http://www.cubieforums.com/index.php?topic=103.0 (http://www.cubieforums.com/index.php?topic=103.0)
http://linux-sunxi.org/Fex_Guide#.5Bgpio_para.5D (http://linux-sunxi.org/Fex_Guide#.5Bgpio_para.5D)
http://www.cubieforums.com/index.php?topic=2622.0 (http://www.cubieforums.com/index.php?topic=2622.0)
https://github.com/gootoomoon/WiringCB-python (https://github.com/gootoomoon/WiringCB-python)

wieviel von der sysconfig vorarbeit das WiringCB-python einem abnimmt kann ich im augenblick nicht testen da mein cubie vorübergehend anderweitig belegt ist.
ich vermute mal, beim BBB unterscheidet sich das nicht (außer in der pinbelegung)

Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: blueberry63 am 16 Juni 2014, 16:12:34
Hallo,

melde mich wieder: der BBB ist angekommen und erfreulicherweise mit Debian Wheezy auf dem EMMC betankt. Man kann also direkt loslegen. Ich habe zwar erst am DO mehr Zeit, aber FHEM ist schon installiert. Ich werde also die nächsten Tage (spätestens DO) mal einen GPIO-Eingang testen (auf OS). Wenn das funktioniert, kann es mit FHEM weitergehen.

Gruß
Blueberry63

Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: Billy am 16 Juni 2014, 16:22:43
Zitat von: blueberry63 am 16 Juni 2014, 16:12:34
Hallo,

melde mich wieder: der BBB ist angekommen und erfreulicherweise mit Debian Wheezy auf dem EMMC betankt. Man kann also direkt loslegen. Ich habe zwar erst am DO mehr Zeit, aber FHEM ist schon installiert. Ich werde also die nächsten Tage (spätestens DO) mal einen GPIO-Eingang testen (auf OS). Wenn das funktioniert, kann es mit FHEM weitergehen.
Gruß
Blueberry63
Hast du FHEM im EMMC installiert?
Wo legst du deine Daten ab? d.h. die FHEM Logs? EMMC oder microSD?
Gruß Billy
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: blueberry63 am 16 Juni 2014, 16:55:09
@Billy,

wie ich schon sagte: Debian war schon im EMMC vorinstalliert. Ich habe nur die üblichen Anpassungen gemacht (Netzwerk, dpkg-reconfigure...) und dann FHEM installiert. Momentan läuft alles im EMMC. Im aktuellen System (Raspi) logge ich in eine Datenbank, die auf meinem NAS läuft (Cubietruck) und so werde es auch beibehalten. Im EMMC sind z.Zt. ca. 50% des Platzes belegt:


Filesystem                                              Size  Used Avail Use% Mounted on
rootfs                                                  3.4G  1.6G  1.7G  49% /
udev                                                     10M     0   10M   0% /dev
tmpfs                                                   100M  584K   99M   1% /run
/dev/disk/by-uuid/1e1267fe-5439-487d-8883-e6fbb3894fd3  3.4G  1.6G  1.7G  49% /
tmpfs                                                   249M     0  249M   0% /dev/shm
tmpfs                                                   249M     0  249M   0% /sys/fs/cgroup
tmpfs                                                   5.0M     0  5.0M   0% /run/lock
tmpfs                                                   100M     0  100M   0% /run/user
/dev/mmcblk0p1                                           96M   72M   25M  75% /boot/uboot


Gruß
Blueberry63
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: blueberry63 am 16 Juni 2014, 16:57:45
Ich habe mal auf die schnelle ein "RPI_GPIO-Device" angelegt, bekomme aber sofort folgende Fehlermeldung auf der Konsole (und FHEM beendet sich):


Can't exec "/usr/local/bin/gpio": No such file or directory at ./FHEM/51_RPI_GPIO.pm line 285, <$fh> line 47.
Can't use an undefined value as a symbol reference at ./FHEM/51_RPI_GPIO.pm line 314.


Gruß
Blueberry63
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: klausw am 16 Juni 2014, 17:09:05
Zitat von: blueberry63 am 16 Juni 2014, 16:57:45
Ich habe mal auf die schnelle ein "RPI_GPIO-Device" angelegt, bekomme aber sofort folgende Fehlermeldung auf der Konsole (und FHEM beendet sich):

Can't exec "/usr/local/bin/gpio": No such file or directory at ./FHEM/51_RPI_GPIO.pm line 285, <$fh> line 47.
Can't use an undefined value as a symbol reference at ./FHEM/51_RPI_GPIO.pm line 314.


Oh je, wer hat das wieder Programmiert B)

Das ist sicher der Block mit den Pullupeinstellungen...ich kann gerade nicht schauen.

Öffne die Datei bitte und suche if ($attr eq 'pud_resistor')
Dann alles was danach zwischen { und } kommt löschen.
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: blueberry63 am 23 Juni 2014, 09:07:58
Sorry, für die späte Antwort, aber im Moment fehlt mir die Zeit für FHEM.

Hiermit
Zitat
Öffne die Datei bitte und suche if ($attr eq 'pud_resistor')
Dann alles was danach zwischen { und } kommt löschen.

funktioniert jedenfalls das Anlegen des RPI_GPIO-Devices.

Das Testen der GPIO-Eingänge muß ich leider verschieben. Erst in 2 Wochen werde ich wieder Zeit haben, hier weiterzumachen.

Gruß
Blueberry63
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: klausw am 23 Juni 2014, 09:51:29
Zitat von: blueberry63 am 23 Juni 2014, 09:07:58
Sorry, für die späte Antwort, aber im Moment fehlt mir die Zeit für FHEM.

Hiermit
funktioniert jedenfalls das Anlegen des RPI_GPIO-Devices.

Das Testen der GPIO-Eingänge muß ich leider verschieben. Erst in 2 Wochen werde ich wieder Zeit haben, hier weiterzumachen.
Ok, gib einfach Bescheid.
Ich werde, wenn ich Zeit finde schon ein paar Änderungen vorbereiten.
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: blueberry63 am 23 Juni 2014, 10:15:43
@Klaus,

noch eine kurze Bemerkung: mir wäre wichtig, daß ich die Eingänge Interrupt-gesteuert überwachen kann:


#############################
# GPIO fuer Gasmessung      #
# (wiringpi wird benötigt ) #
#############################
define gpio_pin11 RPI_GPIO 17
attr gpio_pin11 DbLogExclude .*Toggle.*,.*Counter.*,.*state.*
attr gpio_pin11 direction input
attr gpio_pin11 interrupt falling
attr gpio_pin11 pud_resistor up


Gruß
Blueberry63
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: klausw am 23 Juni 2014, 10:44:12
Hi Blueberry,

Zitat von: blueberry63 am 23 Juni 2014, 10:15:43
noch eine kurze Bemerkung: mir wäre wichtig, daß ich die Eingänge Interrupt-gesteuert überwachen kann:


#############################
# GPIO fuer Gasmessung      #
# (wiringpi wird benötigt ) #
#############################
define gpio_pin11 RPI_GPIO 17
attr gpio_pin11 DbLogExclude .*Toggle.*,.*Counter.*,.*state.*
attr gpio_pin11 direction input
attr gpio_pin11 interrupt falling
attr gpio_pin11 pud_resistor up


Interrupt sollte funktionieren (es werden nur schreib/leserechte für die dateien interrupt und value benötigt).
Das Attribut pud_resistor geht aber definitiv nicht, da es über wiringpi eingestellt wird (dafür habe ich auch keine Lösung für das BBB. Wie stellst Du aktuell den pulldown ein?).
Wichtig ist, das vor FHEM start der Pin schon als input definiert ist (dies würde in der neuen version aber vom Modul übernommen).

Grüße
Klaus
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: blueberry63 am 23 Juni 2014, 10:56:49
pud_resistor

... das muß ich mir auf dem BBB auch noch anschauen. Ggf. muß ich eben einen eigenen Pulldown-/Pullup-Widerstand verwenden.

Gruß
Blueberry63
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: Billy am 26 Juni 2014, 13:37:03
Zitat von: klausw am 23 Juni 2014, 10:44:12
Hi Blueberry,

Interrupt sollte funktionieren (es werden nur schreib/leserechte für die dateien interrupt und value benötigt).
Das Attribut pud_resistor geht aber definitiv nicht, da es über wiringpi eingestellt wird (dafür habe ich auch keine Lösung für das BBB. Wie stellst Du aktuell den pulldown ein?).
Wichtig ist, das vor FHEM start der Pin schon als input definiert ist (dies würde in der neuen version aber vom Modul übernommen).
Grüße
Klaus
Hallo,
ich habe jetzt mal das Modul RPI_GPIO zur Verwendung am BBB ausgiebig getestet.
Alles funktioniert bestens! :) Auch der Interrupt!  GPIO Eingang hängt über 1k an 3,3V und wird auf low gezogen!
Voraussetzung bei mir: --> Auszug aus der rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# 1-wire fuer GPIO2 initialisieren
##echo BB-W1:00A0 > /sys/devices/bone_capemgr.9/slots

# startet den Dienst fhem nach 20 Sekunden
(/bin/sleep 20 && /etc/init.d/fhemgg start)  # ein Dienst
# GPIO Initialisierung
#---------------------------------------------------------------------
gpio=/sys/class/gpio

# Steckerleiste P8
# ---------------------------------
# pin 13 --> gpio23 --> LED
echo 23 > /sys/class/gpio/export
# pin 15 --> gpio47 --> Relais
echo 47 > /sys/class/gpio/export
# pin 17 --> gpio27 --> Interrupt Eingang
echo 27 > /sys/class/gpio/export

# Bootwert PIN P8_13 gpio23 festlegen
echo out > /sys/class/gpio/gpio23/direction
echo 0 > /sys/class/gpio/gpio23/value
# ------------------------------------------
# Bootwert PIN P8_15 gpio47 festlegen
echo out > /sys/class/gpio/gpio47/direction
echo 0 > /sys/class/gpio/gpio47/value
# ------------------------------------------
# Bootwert PIN P8_17 gpio27 festlegen
echo in > /sys/class/gpio/gpio27/direction

# Rechte setzen, damit damit die gpio Scripte von fhem ausgeführt werden koennen
cd /sys/devices/virtual/gpio
chown -R fhem:root *
cd /sys/class/gpio
chown -R fhem:root *

# Rechte setzen, damit damit die I2c Module von fhem ausgeführt werden koennen
chown fhem /dev/i2c-*
chgrp dialout /dev/i2c-*
chmod +t /dev/i2c-*
chmod 660 /dev/i2c-*

exit 0

Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: blueberry63 am 26 Juni 2014, 14:19:17
@Billy,

ich stehe kurz vor meinem Urlaub und kann daher nicht sofort testen. Aber ich kann ja trotzdem schon mal fragen:


Danke auf jeden Fall für Deine Mühe.

Gruß
Blueberry63
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: klausw am 26 Juni 2014, 14:23:07
Zitat von: Billy am 26 Juni 2014, 13:37:03
ich habe jetzt mal das Modul RPI_GPIO zur Verwendung am BBB ausgiebig getestet.
Alles funktioniert bestens! :) Auch der Interrupt!  GPIO Eingang hängt über 1k an 3,3V und wird auf low gezogen!
Super, dann baue ich das GPIO Modul soweit um, das man ihr den Pin nur noch exportieren müsst. Direction kann dann auch im Modul selbst geschaltet werden.

Wie sieht es mit den Rechten der /sys/class/gpio/export aus bevor der code der rc.local ausgeführt wird?
Ist die usergruppe gpio?

Grüße
Klaus
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: Billy am 26 Juni 2014, 15:37:07
Zitat von: blueberry63 am 26 Juni 2014, 14:19:17
@Billy,

  • Es funktioniert mit der aktuellen Version des RPI_GPIO-Moduls?
  • Wie ist Deine Device-Definition?
Gruß
Blueberry63

Es funktioniert mit der aktuellen Version des RPI_GPIO-Moduls? --> Ja :)

Wie ist Deine Device-Definition?  --> Siehe Anlage

Gruß Billy
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: Billy am 26 Juni 2014, 16:24:32
ZitatWie sieht es mit den Rechten der /sys/class/gpio/export aus bevor der code der rc.local ausgeführt wird?
Ist die usergruppe gpio?

Auf die schnelle würde ich sagen die usergruppe ist root.

Gruß Billy
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: klausw am 30 Juni 2014, 00:07:57
hier (http://forum.fhem.de/index.php/topic,24535.msg180159.html#msg180159) habe ich eine testversion hochgeladen.

mit dieser sollte die gpio utility meldung wer sein
ausserdem muss man direction und anfangs value nicht mehr in der rc.local setzen
das geht jetzt auch über die attribute (pinexport und chmod reicht)

grüße
Klaus
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: Billy am 30 Juni 2014, 15:53:23
Zitat von: klausw am 30 Juni 2014, 00:07:57
hier (http://forum.fhem.de/index.php/topic,24535.msg180159.html#msg180159) habe ich eine testversion hochgeladen.
mit dieser sollte die gpio utility meldung wer sein
ausserdem muss man direction und anfangs value nicht mehr in der rc.local setzen
das geht jetzt auch über die attribute (pinexport und chmod reicht)
grüße
Klaus

Hallo Klaus,
habe das ganze jetzt auf dem BBB ausgiebig getestet. Es Funktioniert. :)
Zitatmit dieser sollte die gpio utility meldung weg sein
Ist weg!  :)
Zitatausserdem muss man direction und anfangs value nicht mehr in der rc.local setzen
das geht jetzt auch über die attribute (pinexport und chmod reicht)

Funktioniert zwar halte ich jedoch nicht für optimal! Siehe Auszug aus deinem anderen Link.
Zitatgpio wird nur exportiert wenn noch nicht vorhanden,
direction wird jetzt bei output pins erst gesetzt, wenn das erste mal ein value geschrieben werden soll (durch schreiben von high bzw. low in direktion wird der GPIO direkt gesetzt)

Dieses Verfahren ist zwar möglich, habe ich auch getestet erscheint mir aber zu umständlich oder ich habe es falsch verstanden.
Das bedeutet, dass nach einem reboot die GPIO's ohne weitere Massnahmen im undefinierten Zustand sind?
Zumindest war es bei meinem Test-BBB so.

Deshalb werde ich bei mir auch zukünftig die Bootwerte schon in der rc.local initialisieren.
Das stört das zusammenwirken mit deinem Modul ja nicht. ;) Und bringt für mich mehr Sicherheit.

Ansonsten nochmals vielen Dank für deine tolle Arbeit.

Gruss Billy

By the way was kann ich mit set <name> blink erreichen ?  Parameter? Kein Eintrag in commandref?
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: klausw am 30 Juni 2014, 16:15:16
Hi Billy,

sehr schön.
Dann kann ich es ja fast schon einchecken.

Zitat von: Billy am 30 Juni 2014, 15:53:23
Dieses Verfahren ist zwar möglich, habe ich auch getestet erscheint mir aber zu umständlich oder ich habe es falsch verstanden.
Das bedeutet, dass nach einem reboot die GPIO's ohne weitere Massnahmen im undefinierten Zustand sind?
Zumindest war es bei meinem Test-BBB so.

Deshalb werde ich bei mir auch zukünftig die Bootwerte schon in der rc.local initialisieren.
Das stört das zusammenwirken mit deinem Modul ja nicht. ;) Und bringt für mich mehr Sicherheit.

Du hast es falsch verstanden, bzw. ich habe es nicht komplett erklärt (und vielleicht funktioniert es auch noch nicht perfekt):

Ursprüngliches Problem:
Beim initialisieren von Outputs wurde direction auf output gesetzt. Das führte dazu, das gleichzeitig der value auf 0 gesetzt wurde.
d.h. bei Relais mit invertierter Logik werden diese erstmal kurz angesteuert, da der Pin von hochohmig auf masse wechselt.

derzeitige Lösung:
nachdem beim booten die Attribute (mit ausnahme von direction bei output) gesetzt wurden wird die StateFn aufgerufen.
Diese schreibt die Werte, die beim runterfahren gespeichert wurden. Dabei wird auch der value geschrieben (gleichzeitig mit direction)
Wenn es bei Dir nicht initialisiert wird schaue bitte nach, ob die states auch abgespeichert wurden (das sollte beim beenden von FHEM eigentlich passieren).

Zitat von: Billy am 30 Juni 2014, 15:53:23
By the way was kann ich mit set <name> blink erreichen ?  Parameter? Kein Eintrag in commandref?
aber sicher stehts in der commandref...Augen auf! ;): The set extensions are also supported.

Grüße
Klaus
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: Billy am 30 Juni 2014, 16:51:02
Hallo Klaus,

nur zum Verständnis. Nach einem shutdown von FHEM habe ich folgende Einträge in fhem.save.
Zitatsetstate P8_Pin13 on
setstate P8_Pin13 2014-06-30 16:29:19 Pinlevel high
setstate P8_Pin13 2014-06-30 16:29:19 state on
setstate P8_Pin15 on
setstate P8_Pin15 2014-06-30 16:29:19 Pinlevel high
setstate P8_Pin15 2014-06-30 16:29:19 state on

Wenn ich dich jetzt richtig verstanden habe, sollten nach einem reboot des BBB durch fhem und dein Modul die GPIO
wieder auf diese Werte gesetzt werden?

Zumindest bei mir passiert das nicht. (direction und anfangs value in der rc.local nicht gesetzt.)
Alle Pinlevels sind bei mir nach dem Booten und hochfahren von fhem auf low.
Ich kann die GPIO auch nur setzten wenn ich nach dem booten in fhem das attribut direction nochmals aktiviere. :-\
Deshalb auch meine Aussage dass das mir zu umständlich ist.

Hoffe ich habe mich verständlich ausgedrückt.

Gruß Billy
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: klausw am 30 Juni 2014, 17:50:36
Hi Billy,

genau, die Werte in fhem.save sollten wiederhergestellt werden.
wenn diese nicht vorhanden sind, dann sollte das erste set die direction auf output setzen
das funktioniert bei mit auch

könntest Du das ganze mal mit verbose 5 wiederholen und das log hier posten

so wie es bei Dir derzeit funktioniert ist es natürlich umständlich
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: Billy am 30 Juni 2014, 18:12:39
Zitat von: klausw am 30 Juni 2014, 17:50:36
Hi Billy,
könntest Du das ganze mal mit verbose 5 wiederholen und das log hier posten
so wie es bei Dir derzeit funktioniert ist es natürlich umständlich

Hi Klaus siehe Anlage

Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: Billy am 30 Juni 2014, 18:21:15
Hi Klaus,

habe jetzt mal fhem nach shutdown von der Console gestartet.
Folgende Meldung:
--------------------------------------------
Starting fhem...
root@beaglebone:/etc/init.d# sh fhemgg startmain::RPI_GPIO_fileaccess() called too early to check prototype at ./FHEM/51_RPI_GPIO.pm line 520, <$fh> line 60.
--------------------------------------------

Vielleicht hilft das weiter?
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: klausw am 30 Juni 2014, 19:13:53
hier (http://forum.fhem.de/index.php/topic,24535.msg180346.html#msg180346) gibt es eine korrektur
hatte immer noch fehler drin :-/

Zitat von: Billy am 30 Juni 2014, 18:21:15
Starting fhem...
root@beaglebone:/etc/init.d# sh fhemgg startmain::RPI_GPIO_fileaccess() called too early to check prototype at ./FHEM/51_RPI_GPIO.pm line 520, <$fh> line 60.
Das ist was anderes, habe ich bei mir schon geändert, aber noch nicht im hochgeladenen file.
Ein sub RPI_GPIO_fileaccess($$;$);
in Zeile 28 sollte helfen.
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: Billy am 30 Juni 2014, 20:15:55
Zitat von: klausw am 30 Juni 2014, 19:13:53
hier (http://forum.fhem.de/index.php/topic,24535.msg180346.html#msg180346) gibt es eine korrektur
hatte immer noch fehler drin :-/


Hallo Klaus
mit dieser Version « Letzte Änderung: Heute um 19:45:35 von klausw »
wird nach reboot der alte FHEM Wert gesetzt! :)

Aber jetzt ist erstmal Fussball dran.

Gruß Billy
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: klausw am 30 Juni 2014, 20:29:53
Zitat von: Billy am 30 Juni 2014, 20:15:55
Hallo Klaus
mit dieser Version « Letzte Änderung: Heute um 19:45:35 von klausw »
wird nach reboot der alte FHEM Wert gesetzt! :)

Aber jetzt ist erstmal Fussball dran.

Gruß Billy
das sowieso B)

sehr schön, dann kannst du das setzen von value und direction ja jetzt aus der rc.local weglassen

immerhin eine Baustelle, die man schließen kann ;)
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: Billy am 01 Juli 2014, 15:20:47
Zitat von: klausw am 30 Juni 2014, 20:29:53
sehr schön, dann kannst du das setzen von value und direction ja jetzt aus der rc.local weglassen

Hallo Klaus,
um endgültig mit meinem Main System auf dein GPIO-Modul umzusteigen fehlt mir noch ein Attribut
bei GPIO's die auf --> "direction output" gesetzt sind.
Das Attribut "bootvalue" 1 oder 0
Wenn gesetzt wird nach einem Reboot (Stromausfall) nicht das letzte state von FHEM übernommen,
sondern der gewünschte Bootwert.

Das ist bei kritischen Anwendungen und z.B. längerem Stromausfall für meine Anwendungen unabdingbar.

Gruß Billy
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: klausw am 01 Juli 2014, 17:54:15
versuchs mal damit

restoreOnStartup kann jetzt auf on,off oder last gesetzt werden
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: Billy am 01 Juli 2014, 19:01:49
Zitat von: klausw am 01 Juli 2014, 17:54:15
versuchs mal damit
restoreOnStartup kann jetzt auf on,off oder last gesetzt werden

Hallo Klaus,
funktioniert super, würde sagen jetzt perfekt. :)

Was ist der Unterschied zwischen restoreOnStartup yes und restoreOnStartup last?
Gruß Günter
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: klausw am 01 Juli 2014, 19:47:13
Zitat von: Billy am 01 Juli 2014, 19:01:49
Was ist der Unterschied zwischen restoreOnStartup yes und restoreOnStartup last?
Gruß Günter
Keiner, ist nur noch die alte Einstellung...fliegt noch raus

Super....dann kanns ja fast hochgeladen werden ;D
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: klausw am 07 Juli 2014, 12:55:55
Änderungen sind im Modul eingepflegt und werden inzwischen per update verteilt
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: blueberry63 am 08 Juli 2014, 12:55:37
@Klaus,

ich  melde mich wieder zurück. Vielen Dank für die Arbeit, die Du Dir inzwischen gemacht hast.

Beim 1. Test heute bekomme ich folgende Meldung:
Zitat
configfile: gpio_p8_pin17: file /usr/local/bin/gpio doesnt exist

Bei meinen Nachforschungen bin ich auf die Zeile

my $gpioprg = "/usr/local/bin/gpio";            #WiringPi GPIO utility


in der "51_RPI_GPIO.pm" gestossen.

Muß auf dem BBB auch "wiring pi" installiert werden?

Gruß
Blueberry63
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: klausw am 08 Juli 2014, 13:06:20
Zitat von: blueberry63 am 08 Juli 2014, 12:55:37
@Klaus,

ich  melde mich wieder zurück. Vielen Dank für die Arbeit, die Du Dir inzwischen gemacht hast.

Beim 1. Test heute bekomme ich folgende Meldung:
Bei meinen Nachforschungen bin ich auf die Zeile

my $gpioprg = "/usr/local/bin/gpio";            #WiringPi GPIO utility

poste mal deine config
in der "51_RPI_GPIO.pm" gestossen.

Muß auf dem BBB auch "wiring pi" installiert werden?

Gruß
Blueberry63
Poste mal deine Config
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: Billy am 08 Juli 2014, 14:30:04
Zitat von: blueberry63 am 08 Juli 2014, 12:55:37
@Klaus,
Beim 1. Test heute bekomme ich folgende Meldung:
configfile: gpio_p8_pin17: file /usr/local/bin/gpio doesnt exist

Hast du P8 pin 17 das entspricht beim BBB --> gpio27
in rc.local oder sonstwo beim booten mit
echo 27 > /sys/class/gpio/export
auch aktiviert?

ZitatMuß auf dem BBB auch "wiring pi" installiert werden?

nein.
Gruß Billy
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: blueberry63 am 08 Juli 2014, 14:55:16
Ich habe alles nach bestem Wissen erledigt:

Zitat
root@bbb:/sys/class/gpio# ls -al
total 0
drwxr-xr-x  2 root root    0 Jan  1  2000 .
drwxr-xr-x 57 root root    0 Jan  1  2000 ..
--w-------  1 fhem root 4096 Jul  8 12:45 export
lrwxrwxrwx  1 fhem root    0 Jul  8 12:46 gpio27 -> ../../devices/virtual/gpio/gpio27
lrwxrwxrwx  1 fhem root    0 Jul  8 12:46 gpiochip0 -> ../../devices/virtual/gpio/gpiochip0
lrwxrwxrwx  1 fhem root    0 Jul  8 12:46 gpiochip32 -> ../../devices/virtual/gpio/gpiochip32
lrwxrwxrwx  1 fhem root    0 Jul  8 12:46 gpiochip64 -> ../../devices/virtual/gpio/gpiochip64
lrwxrwxrwx  1 fhem root    0 Jul  8 12:46 gpiochip96 -> ../../devices/virtual/gpio/gpiochip96
--w-------  1 fhem root 4096 Jul  8 12:46 unexport

Gruß
Blueberry63
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: Billy am 08 Juli 2014, 15:08:03
Ja das sieht gut aus. :)
Meine FHEM Definition sieht für P8Pin17 und interrupt so aus.
Vielleicht hilfts.

# --------------- P8_Pin17 RPI_GPIO 27 ----------------
define P8_Pin17 RPI_GPIO 27
attr P8_Pin17 direction input
attr P8_Pin17 event-on-update-reading state
attr P8_Pin17 interrupt both
attr P8_Pin17 poll_interval 10
attr P8_Pin17 room Test


Billy
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: klausw am 08 Juli 2014, 15:44:08
Funktioniert es denn?

die Fehlermeldung kann auch kommen wen Du die pulldown option verwendest ...siehe commendref
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: blueberry63 am 08 Juli 2014, 15:50:19
Das war es, ich hatte


attr gpio_p8_pin17 pud_resistor up


gesetzt.

Bis jetzt habe ich nur das Setup gemacht, der Test mit angeschlossener Hardware steht noch aus (heute oder morgen).

Gruß
Blueberry63
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: blueberry63 am 17 Juli 2014, 11:21:54
@Klaus (und alle anderen)

Was lange währt, währt gut: gestern habe ich FHEM vom Rasppi auf den BBB umgezogen. Das Einlesen des Gaszählers über GPIO hat ohne Probleme funktioniert.

Vielen Dank für Eure Unterstützung!

Gruß
Blueberry63
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: Billy am 17 Juli 2014, 11:49:47
Super! :)
So muß es sein.

Und spürst du die Leistungssteigerung im Vergleich zum Pi?

Gruß Billy
Titel: Antw:Umstieg von Rasppi auf BBB - GPIO-Ansteuerung
Beitrag von: blueberry63 am 17 Juli 2014, 13:10:10
ZitatUnd spürst du die Leistungssteigerung im Vergleich zum Pi?

Meine Konstallation sieht jetzt folgerndermassen aus: NAS mit MySL-DB auf Cubietruck, FHEM auf BBB (mit DB auf dem NAS).

Anfangs hatte ich das NAS auf einer NSLU2 laufen und nachdem ich die NSLU2 durch den Cubietruck ersetzt hatte, ging die Post ab. Der Engpaß war wohl die DB auf der altersschwachen NSLU2.
Der BBB hat jetzt - gefühlt - nicht mehr so viel Performance-Gewinn gebracht, aber ich werde es beobachten.

Gruß
Blueberry63