RPI_GPIO output

Begonnen von Maergsche, 13 Juni 2014, 14:57:45

Vorheriges Thema - Nächstes Thema

Spuckiii

Hallo,

leider hat es nicht geholfen:

2014.07.14 20:02:18 0: Server shutdown
2014.07.14 20:02:34 1: Including fhem.cfg
2014.07.14 20:02:34 3: telnetPort: port 7072 opened
2014.07.14 20:02:36 3: WEB: port 8083 opened
2014.07.14 20:02:36 3: WEBphone: port 8084 opened
2014.07.14 20:02:36 3: WEBtablet: port 8085 opened
2014.07.14 20:02:37 2: eventTypes: loaded 124 events from ./log/eventTypes.txt
2014.07.14 20:02:41 1: Pin11: using gpio utility to export pin
2014.07.14 20:03:04 1: Pin11: failed to export pin gpio17
2014.07.14 20:03:04 1: Pin11: direction �ber gpio utility einstellen
2014.07.14 20:03:09 1: Pin11: failed to export pin gpio17
2014.07.14 20:03:09 1: Can't open file: Pin11, active_low
2014.07.14 20:03:09 1: Pin11: direction �ber gpio utility einstellen
2014.07.14 20:03:09 1: Pin26: using gpio utility to export pin
2014.07.14 20:03:14 1: Pin26: failed to export pin gpio7
2014.07.14 20:03:14 1: Pin26: direction �ber gpio utility einstellen
2014.07.14 20:03:19 1: Pin26: failed to export pin gpio7
2014.07.14 20:03:19 1: Pin26: direction �ber gpio utility einstellen
2014.07.14 20:03:19 1: Including ./log/fhem.save
2014.07.14 20:03:19 1: Can't open file: Pin11, value
2014.07.14 20:03:19 1: Can't open file: Pin26, value
2014.07.14 20:03:19 1: usb create starting
2014.07.14 20:03:21 3: Probing CUL device /dev/ttyAMA0
2014.07.14 20:03:21 3: Probing TCM310 device /dev/ttyAMA0
2014.07.14 20:03:22 3: Probing FRM device /dev/ttyAMA0
2014.07.14 20:03:27 1: usb create end
2014.07.14 20:03:27 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no basicAuth attribute. telnetPort has no password/globalpassword attribute.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2014.07.14 20:03:27 0: Server started with 13 defined entities (version $Id: fhem.pl 6080 2014-06-07 16:12:09Z rudolfkoenig $, os linux, user fhem, pid 1946)
2014.07.14 20:03:50 1: Can't open file: Pin11, value
2014.07.14 20:03:52 1: Can't open file: Pin11, value
2014.07.14 20:03:53 1: Can't open file: Pin26, value
2014.07.14 20:03:54 1: Can't open file: Pin26, value

klausw

was zeigt das an:
cat /etc/group

was ich nicht verstehe ist, wie die pins angelegt werden können wenn die zugriffe fehlschlagen
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Spuckiii

pi@raspberrypi ~ $ cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:pi
tty:x:5:pi,fhem
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:pi
fax:x:21:
voice:x:22:
cdrom:x:24:pi
floppy:x:25:
tape:x:26:
sudo:x:27:pi
audio:x:29:pi
dip:x:30:
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:pi
sasl:x:45:
plugdev:x:46:pi
staff:x:50:
games:x:60:pi
users:x:100:pi
nogroup:x:65534:
libuuid:x:101:
crontab:x:102:
pi:x:1000:fhem
ssh:x:103:
ntp:x:104:
netdev:x:105:pi
input:x:999:pi
messagebus:x:106:
lpadmin:x:107:
fuse:x:108:
lightdm:x:109:
indiecity:x:1001:root
spi:x:1002:pi
gpio:x:1003:pi

klausw

Zitat von: Spuckiii am 14 Juli 2014, 20:05:41
2014.07.14 20:03:27 0: Server started with 13 defined entities (version $Id: fhem.pl 6080 2014-06-07 16:12:09Z rudolfkoenig $, os linux, user fhem, pid 1946)
jetzt ist der user bei Dir wieder fhem


Zitat von: Spuckiii am 14 Juli 2014, 20:10:10
gpio:x:1003:pi
aber der fehlt in der gruppe gpio
gebe diese zeilen ein, dann muss es endlich gehen:

sudo adduser fhem gpio
sudo reboot





mein code von eben war falsch, sollte eingentlich heissen:

sudo adduser pi gpio
sudo reboot

aber das hattest Du ja sowieso schon eingetragen

RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Spuckiii

Cool das war es wohl, jetzt klappt es... :-) Danke sehr..
jetzt muss ich nur noch n Schalter definieren und den homematic schalter ans laufen bringen... danke schön

klausw

Zitat von: Spuckiii am 14 Juli 2014, 20:27:53
Cool das war es wohl, jetzt klappt es... :-) Danke sehr..
jetzt muss ich nur noch n Schalter definieren und den homematic schalter ans laufen bringen... danke schön
sehr schön :)
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

klausw

Zitat von: Spuckiii am 14 Juli 2014, 20:05:41
2014.07.14 20:03:27 0: Server started with 13 defined entities (version $Id: fhem.pl 6080 2014-06-07 16:12:09Z rudolfkoenig $, os linux, user fhem, pid 1946)

Du solltest ein Update machen, Du hast noch eine ältere Version von RPI_GPIO drauf
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Maergsche

Hallo nochmal,

(auf Grund eines Familiären Zwischenfalls, komme ich leider erst jetzt wieder dazu...)

leider funktioniert es nach wievor noch nicht korrekt ... Weiterhin flackert das Relay bei einem "shutdown restart"

Anbei mal ein Log:


2014.09.01 16:22:09 4: Pin16: gpio23 already exists
2014.09.01 16:22:09 4: Pin18: gpio24 already exists
2014.09.01 16:22:12 4: ENIGMA2 ET9000: REQ powerstate
2014.09.01 16:22:12 4: HttpUtils url=http://xxx:xxx@192.168.xxx.100:80/web/powerstate
2014.09.01 16:22:14 1: Including ./log/fhem.save
2014.09.01 16:22:15 4: Pin16: STATE kann auf off wiederhergestellt werden 2014-09-01 16:22:15
2014.09.01 16:22:15 4: Pin16: state kann auf off wiederhergestellt werden 2014-09-01 16:07:33
2014.09.01 16:22:15 4: OUTPUT Pin16: state wiederhergestellt auf off
2014.09.01 16:22:15 4: Pin16: direction gesetzt auf low
2014.09.01 16:22:15 4: OUTPUT Pin16: STATE wiederhergestellt auf off (restoreOnStartup=last)
2014.09.01 16:22:15 4: Pin18: STATE kann auf off wiederhergestellt werden 2014-09-01 16:22:15
2014.09.01 16:22:15 4: Pin18: state kann auf off wiederhergestellt werden 2014-09-01 16:07:33
2014.09.01 16:22:15 4: OUTPUT Pin18: state wiederhergestellt auf off
2014.09.01 16:22:15 4: Pin18: direction gesetzt auf low
2014.09.01 16:22:15 4: OUTPUT Pin18: STATE wiederhergestellt auf off (restoreOnStartup=last)

klausw

Hm, dann muss ich mal mit dem Oszi schauen. Aber ging es nicht schonmal ohne Relais klackern?
Hast du noch andere GPIO Scripte laufen? Bei mir flackert nix (allerdings habe ich auch nichtinvertierte logik verwendet).
Grüße
Klaus
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Maergsche

Zitat von: klausw am 02 September 2014, 08:17:33
Aber ging es nicht schonmal ohne Relais klackern? Hast du noch andere GPIO Scripte laufen? Bei mir flackert nix (allerdings habe ich auch nichtinvertierte logik verwendet).

Hallo Klaus,
nein leider funktionierte es bis jetzt noch nicht...  Andere GPIO Skripte habe ich nicht laufen.
Es wird ja sicher an der Invertierten Logik  und auch mit großer Wahrscheinlichkeit an dem Wiederherstellen des letzten Schaltzustandes liegen. Leider komme ich mit der Programmiersprache noch nicht so klar, sonst hätte ich hier schon selbst mal Hand angelegt :-[ . (aktuell habe ich ja die Vermutung, dass beim auslesen, der Invertierte oder ein falscher Wert gelesen und dann überflüssig die Werte Initialisiert und / oder (nur) neu gesetzt werden, aber das ist gefährliches halbwissen  :-\ )




klausw

Deinem Log nach zu urteilen passt alles. Das Modul schreibt low direkt in das File direction, was dazu führt das der Port auf Output gesetzt wird und gleichzeitig auf low. Neu angelegt wird er auch nicht mehr.
Hast du schon mal nichtinvertiertende Logik getestet?
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Maergsche

Schau dir mal das an:

pi@RasPiFhem /sys/class/gpio $ cd gpio24
pi@RasPiFhem /sys/class/gpio/gpio24 $ cat direction
out
pi@RasPiFhem /sys/class/gpio/gpio24 $ cat value
0
pi@RasPiFhem /sys/class/gpio/gpio24 $ echo "low" > direction
pi@RasPiFhem /sys/class/gpio/gpio24 $ cat direction
out
pi@RasPiFhem /sys/class/gpio/gpio24 $ cat value
1
pi@RasPiFhem /sys/class/gpio/gpio24 $


Bei Dir im im Skript im sub RPI_GPIO_fileaccess wird nach einem "shutdown restart" immer in die Schleife "if ($hash->{dir_not_set} && $fname eq "value")" gegangen. Die driection wird auf "low" geschrieben. Dabei wird aber des Value von 0 auf 1 gesetzt.
Im Weiteren Verlauf des Aufrufs wird dann das Value wieder "0" gesetzt. 

Das sollte das Flackern sein !  ;)

klausw

Zitat von: Maergsche am 02 September 2014, 11:24:18
Bei Dir im im Skript im sub RPI_GPIO_fileaccess wird nach einem "shutdown restart" immer in die Schleife "if ($hash->{dir_not_set} && $fname eq "value")" gegangen. Die driection wird auf "low" geschrieben. Dabei wird aber des Value von 0 auf 1 gesetzt.
Im Weiteren Verlauf des Aufrufs wird dann das Value wieder "0" gesetzt. 

Das sollte das Flackern sein !  ;)
Komisch, es scheint so als würde sich das active_low doch auf die direction Datei auswirken. Ich dachte ich hätte es anders getestet.
Ändere Zeile 492 auf:
my $lev=1;
Dann sollte es gehen
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Maergsche

Zitat von: klausw am 02 September 2014, 14:36:07
Ändere Zeile 492 auf:
my $lev=1;
Dann sollte es gehen

Ich denke das wird's nicht sein ... $lev war immer 1 ...
ich habe die Zeile 492 geändert auf:
my $lev = $al eq "yes" ? 0 : 1; # "on" in "yes" geändert

($al beinhaltete "yes" anstatt "on" und somit war $lev immer "1")

Wenn ich zu hause bin, dann werde ich das noch mal Testen.
Geht es dann noch wenn activ_low = "no" ist ?!?

Maergsche

#44
Mmm ich sehe gerade, dass du active_low von no/yes auf off/on geändert hast  ???

Allerdings nicht durchgehend im Code ....  und laut Dokumentation soll da on/off rein
aber das würde so nicht funktionieren! Beim Deklarieren von "attr Pin16 active_low yes"
mit dem on / off anstatt yes würde Fhem schon eine Fehlermeldung ausgeben ...