RPI_GPIO reading in state wandeln

Begonnen von Heimbastler, 05 Dezember 2015, 15:42:15

Vorheriges Thema - Nächstes Thema

klausw

#15
Hi Alex,

ich antworte gleich mal hier :)

Info am Rande:
wenn du Rasphian Jessie frisch als Image auf die SD KArte gebracht hast, dann musst du nix mit der /etc/rc.local machen.
sudo adduser fhem gpio
und nachfolgender Neustart sollten reichen.

In deiner rc.local habe ich den ersten Fehler gefunden: die Datei edge muss auch Schreibrechte für den User FHEM haben.

Ausserdem fehlt das Attribut:
attr gpio_pin11 interrupt both
das bei Pegelwechsel einen Interrupt auslöst, der die Readings aktualisiert.
Ohne diese Attribut werden die Readings nur mit set name readvalue, über das attribut poll_intervall oder neuladen der Detailseite aktualisiert.

Jetzt sollten sich die readings schon mal ändern, wenn sich der Pegel am Pin ändert.


Was ich seltsam finde ist, das du kein Reading state hast. Auch das high/low in STATE ist komisch (sollte on/off sein). Bist du sicher, das du das aktuelle Modul drauf hast?
Hast du mal "update" ausgeführt?
Hast du das Modul per Hand installiert?
Gibt es Fehler im logfile

attr <name> devStateIcon on:fts_window_1w_open@red off:fts_window_1w@green
funktioniert auf meiner Installation tadellos.
mit eventmap wäre ich generell vorsichtig, da es unliebsame Seiteneffekte haben kann.

STATE in den Moduldetails wird nicht aktualisiert (es ist ein Internal und nur die Readings werden aktualisiert)
In der Übersicht wird es aktualisiert (Das ist FHEM Philisophie und darauf habe ich keinen Einfluss)

Ebenso das Eventmap, das ist eine direkte FHEM Funktion, die in den Readings alt:neu austauscht.

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

Heimbastler

Hi Klaus...

danke für die schnelle Hilfe!!
Du hast in ALLEN Dingen recht!!


Nachdem ich das so gemacht habe wie Du es beschrieben hast ist alles sofort wie es sein sollte:

1. fehlende Rechte für Verzeichnis edge für Input in der rc.local:
#!/bin/sh # Input-Ports (Taster) for Port in 17 27
do
echo "$Port" > /sys/class/gpio/export
echo "in" >/sys/class/gpio/gpio${Port}/direction
chmod 660 /sys/class/gpio/gpio${Port}/direction
chmod 660 /sys/class/gpio/gpio${Port}/valueo
chmod 660 /sys/class/gpio/gpio${Port}/edge
chown -R fhem:root /sys/class/*
done
# Output-Ports (LED)
for
Port in 22 23 24 25
do
echo "$Port" > /sys/class/gpio/export
echo "out" >/sys/class/gpio/gpio${Port}/direction
echo "0" >/sys/class/gpio/gpio${Port}/value
chmod 660 /sys/class/gpio/gpio${Port}/direction
chmod 660 /sys/class/gpio/gpio${Port}/value
chown -R fhem:root /sys/class/*
done


2. Attribut für interrupt gesetzt auf:
attr gpio_pin11 interrupt both

---> dann lief schon alles wie geplant...nur das mein Pinlevel falsch herum angezeigt wurde

3. dann noch die beiden wieder entfernt:
attr gpio_pin11 stateFormat Pinlevel
attr gpio_pin11 eventMap low:offen high:zu

4. und die hübsche Fenster-Ansicht mit:
attr gpio_pin11 devStateIcon on:fts_window_1w_open@red off:fts_window_1w@green

In der EventMap wird alles brav angezeigt...keine Fehler!!
;D Hast mein WE doch noch gerettet...DANKE!!

VG
Alex
RasPi 3 mit FHEM V5.7 3x18B20 über 1Wire,  CUL868, 4xIT-Schalter, 6xELRO-Schalter, 6xReed-Kontakte, 2xMAX-Fensterkontakt, 3xMAX-Thermostate, 2xMAX-Wandthermostate
PID20, RPI_GPIO, HCW, Alarm, Pushover, GPIO4, MAX, ECMD,IT, AT,