FHEM Forum

FHEM - Hardware => Einplatinencomputer => Thema gestartet von: cornelius fillmore am 09 Juni 2013, 08:21:17

Titel: PiFace
Beitrag von: cornelius fillmore am 09 Juni 2013, 08:21:17
Hallo Forum,

hat jemand von euch schon Erfahrung mit dem PiFace.

Wenn ja schildert mir diese doch bitte mal.

Danke
Titel: Antw:PiFace
Beitrag von: splash am 09 Juni 2013, 08:51:50
Ich leider nicht.
Würde mich aber auch sehr interessieren. Vielleicht findet sich ja ein PiFace Spezialist hier?! :-)
Titel: Antw:PiFace
Beitrag von: backbone10 am 13 August 2013, 22:07:52
Hi,
ich hab mir eines geleistet in der hoffnung eine Betriebszeiterfassung und Steuerung damit zu realisieren.
Leider kann ich nur mitteilen, dass es mit der Testsoftware (Emulator) funktioniert, aber ich habe noch keine Ahnung wie ich das in FHEM integrieren kann.
Kann bitte eventuell jemand weiterhelfen ?
DANKE !!!

Titel: Antw:PiFace
Beitrag von: cornelius fillmore am 15 August 2013, 12:11:18
Ich habe meins wieder zurück gegeben.
Ich vermisse es auch ehrlich gesagt nicht.
Titel: Antw:PiFace
Beitrag von: backbone10 am 21 August 2013, 10:21:40
Hi,
ich hab was gefunden und ausprobiert, hab es allerdings nicht zum laufen bekommen- liegt aber mit Sicherheit an meinen Kenntnissen über FHEM und Linux..

Die Dateien hab ich lt Anleitung angelegt, wie es mir scheint stürzt der Daemon aber ab, da er beim Befehl stop sagt, dass es den Prozess nicht gibt..

Woran ich momentan zu 100% scheitere : wie krieg ich das überhaupt in FHEM sichtbar ?

Ich beschäftige mich erst seit kurzem damit und für mich ist alles Neuland, auch Perl und Python, also die besten Voraussetzungen :)

http://nicosrasppi.blogspot.co.at/2013/06/raspberry-pi-piface-fhem-with-homematic.html (//nicosrasppi.blogspot.co.at/2013/06/raspberry-pi-piface-fhem-with-homematic.html)

vielleicht hilft es jemand anderem...

lg

bb10
Titel: Antw:PiFace
Beitrag von: Puschel74 am 23 August 2013, 06:07:08
Hallo,

ich habe gestern auch meinen RasPi und die (den?) PiFace geliefert bekommen.

Da ich aber zur Zeit einen 14 Stunden Tag in der Firma habe werde ich frühestens heute abend resp. morgen mal
schauen können.
Man sollte den (das?) PiFace, hoffe ich mal, per CMD ansprechen können.
Dann ist es kein "grosser" Aufwand das mit FHEM zum laufen zu bekommen.

Wie gesagt. Ich hoffe das erstmal, da ich die Teile gestern nur ausgepackt und auf den Tisch gelegt habe.
Mit Glück klappt es so ähnlich wie mit meinen LM75.

Grüße

P.S.: OT! Cool wäre es wenn man die HD-Cam für den RasPi noch einbinden könnte.
Titel: Antw:PiFace
Beitrag von: backbone10 am 23 August 2013, 10:15:57
Hi Puschel74,
ja - das mit den cmds geht, das hab sogar ich geschafft
wenn du das lt der anleitung installierst kannst du dann mit den gpio cmds werkeln

     gpio -p write 200 1   # first relais "on"

    gpio -p write 201 0   # second relais "off"

dann muss man noch (so wie ich das verstanden habe)dummy devices definieren und den daemon zum laufen kriegen und wie gesagt das ganze sichtbar machen. mir reicht für den anfang ein I/O als Eingang und einer als Ausgang und das ganze dann sichtbar :)

den dummy string verstehe ich leider noch nicht, aber wie gesagt, ich bin erst seit ganz kurzem dabei

Zitat:
Next step was to configure fhem with adding following to the /opt/fhem/fhem.cfg file:

    define NAS FS20 11111111 02

ich werde auch am WE weitermachen. Wäre super wenn du weiter berichten könntest..

mfg

bb10
Titel: Antw:PiFace
Beitrag von: betateilchen am 23 August 2013, 10:37:57
Zitat von: backbone10 schrieb am Fr, 23 August 2013 10:15den dummy string verstehe ich leider noch nicht, aber wie gesagt, ich bin erst seit ganz kurzem dabei

Zitat:
Next step was to configure fhem with adding following to the /opt/fhem/fhem.cfg file:

    define NAS FS20 11111111 02

Du hättest auch das zugehörige notify mit zitieren sollen, dann wäre es Dir vielleicht klargeworden.


define act_on_NAS notify NAS {\
 if ("%" ne "off") {\
  system("/opt/fhem/scripts/start-nas.sh &")\
 } else {\
  system("/opt/fhem/scripts/stop-nas.sh &")\
 }\
}


Da werden einfach über einen "Dummy-Schalter" die beiden vorher angelegten Skripte aufgerufen.
Du kannst also mit "set NAS on" und "set NAS off" aus fhem heraus die entsprechenden Schaltbefehle ausführen.
Titel: Antw:PiFace
Beitrag von: Puschel74 am 23 August 2013, 21:31:20
Hallo,

Zitatja - das mit den cmds geht, das hab sogar ich geschafft

Ich auch ;-)

Allerdings nur mit dem ersten Relais :-(
Hat jemand vllt. einen Link wie man die restlichen I/0 Ports anspricht?

Zitatgpio -p write 200 1

heisst ja nur das ich per gpio auf die Adresse 200 eine 1 schreibe - das -p lassen wir mal aussen vor (was sagt das überhaupt aus?)
Mit der 0 am Ende wird das Relais wieder ausgeschaltet (ach ne ^^).
Ok. Ich hab jetzt noch nicht lange gesucht aber evtl. hat ja jemand einen Link zur Hand wie Relais2 und die restlichen I/O-Ports adressiert sind.

Das ganze dann laienhaft in FHEM bringen ist ja nicht das Problem.
Ok. Wenn ich das mache klappt das zwar vielleicht aber sieht sicher nicht schön aus :-)

Grüße
Titel: Antw:PiFace
Beitrag von: betateilchen am 24 August 2013, 10:55:22
Zitat von: Puschel74 schrieb am Fr, 23 August 2013 21:31evtl. hat ja jemand einen Link zur Hand wie Relais2

Relais 2 sollte die Adresse 201 haben. Die anderen Ports würde ich einfach aufsteigend nummeriert vermuten, da auch die beiden Relais lediglich parallel zu port 0 und 1 geschaltet sind.

Der Parameter -p beim Aufruf von gpio sorgt dafür, dass das PiFace Board direkt angesprochen wird, wobei im Beispiel vorausgesetzt wird, dass die Basisadresse 200 ist. Alternativ könnte das Board nämlich auch über die wiringPi library bedient werden, dann darf man -p nicht verwenden.

Hilfreiche Links:

http://wiringpi.com/dev-lib/piface/

https://projects.drogon.net/raspberry-pi/wiringpiface/

http://piface.github.io/pifacedigitalio/

https://github.com/thomasmacpherson/piface

Titel: Antw:PiFace
Beitrag von: Puschel74 am 24 August 2013, 12:12:15
Hallo,

danke betateilchen.
Ich werd mir die Links mal zu Gemüte führen.

Ich sehe aber keine Hindernisse PiFace in FHEM ein zu binden.
Ich werd später mal bei meinen LM75 ab"guttenbergen" und das Skript dann heute abend mal hochladen.

Grüße
Titel: Antw:PiFace
Beitrag von: betateilchen am 24 August 2013, 12:27:08
Zitat von: Puschel74 schrieb am Sa, 24 August 2013 12:12Ich sehe aber keine Hindernisse PiFace in FHEM ein zu binden.

ich auch nicht, selbst als simples Modul ließe sich das völlig einfach umsetzen.
Titel: Antw:PiFace
Beitrag von: Puschel74 am 24 August 2013, 16:54:54
Hallo,

Zitatich auch nicht, selbst als simples Modul ließe sich das völlig einfach umsetzen.

Evtl. für dich - ich bin schon froh wenn endlich mal Relais 1 schaltet ;-)

Grüße
Titel: Antw:PiFace
Beitrag von: betateilchen am 24 August 2013, 17:11:34
Ich hab kein piface, sonst würde ich mich vielleicht damit befassen. Eventuell nach dem bevorstehenden Urlaub.
Titel: Antw:PiFace
Beitrag von: Puschel74 am 24 August 2013, 17:39:57
Hallo,

lass Dir Zeit betateilchen.

Aber vllt. kannst du mir ja ein bischen auf die Sprünge helfen ;-)

Das 1. Relais läst sich hartcodiert schonmal einschalten *juhuuu*

Ich häng nur grad etwas fest.
Bisher habe ich

define Relais_1 dummy
attr Relais_1 webCmd on:off

als Dummy definiert.
Darauf reagiert folgendes notify
define Relais_Pi notify Relais.* {
  my $aktion = schalten("@");
}

und in der 99_myUtils.pm habe ich bisher
sub schalten($) {
  `gpio -p write 200 1`
}

Klar, das $ wird nicht ausgewertet - wäre hier aber auch egal da Relais_1 übergeben wird und damit kann gpio nichts anfangen.
Ich muss nun, und da fängst an, im notify schon Relais_1, Relais_2 (oder auch DO_1, DO_2 etc.) auf Adresse 200, 201 ... umschreiben oder
reicht es in der 99_myUtils.pm (später mal in der 99_PiFace.pm).
Was wäre besser (schlauer)?.
Weiters hänge ich noch am on und off.
Meine LM75 brauchen das nicht und daher hänge ich auch hier noch etwas wie ich on und off an die Sub übergeben kann resp. Relais_1 on, Relais_1 off oder, was vermutlich besser wäre, 200 1 und 200 0 (für Relais_1 on und Relais_1 off).

Wenn Du mir hier ein kleines bischen auf die Sprünge helfen könntest wäre das genial.

Danke schonmal

Grüße

Edith: Hat sich erledigt - mit den beiden Relais klappt es schonmal.
Titel: Antw:PiFace
Beitrag von: betateilchen am 24 August 2013, 18:38:16
Zitat von: Puschel74 schrieb am Sa, 24 August 2013 17:39sub schalten($) {
  `gpio -p write 200 1`
}

Klar, das $ wird nicht ausgewertet - wäre hier aber auch egal da Relais_1 übergeben wird und damit kann gpio nichts anfangen.

Warum wertest Du das $ nicht einfach aus, wenn Du es sowieso schon übergibst?


sub schalten($) {
my ($relais) = @_;
my $port = 199 + substr($relais,7,1);
'gpio -p write $port 1'
}

Titel: Antw:PiFace
Beitrag von: Puschel74 am 24 August 2013, 19:56:39
Hallo,

erstmal danke an betateilchen für die Hilfe.

Es lassen sich nun alle 8 Ports am PiFace über fhem einschalten und auch ausschalten.

In Fhem habe ich dazu folgendes eingetragen:
Für jeden Port einen Dummy angelegt nach der Form:

define Relais_1 dummy
attr Relais_1 webCmd on:off

Dann ein notify
define Relais_Pi notify Relais.* {
  my $aktion = schalten("@");
}

und in der 99_myUtils.pm folgende sub
sub schalten($$) {
  my ($io) = @_;
  my ($value) = (Value($io));
  my $port = 199 + substr($io,7,1);
  if ($value eq "on") {
    $value = "1";
  }
  else {
    $value = "0";
  }
  my ($befehl) = "gpio -p write $port $value";
  `$befehl`
}


Ist nicht schön aber funktioniert.

Grüße
Titel: Antw:PiFace
Beitrag von: betateilchen am 24 August 2013, 20:08:33
das mit den Klammern musst Du aber noch üben ;) Und was das mit "my $aktion" für einen Zweck hat, verstehe ich nicht.
Titel: Antw:PiFace
Beitrag von: Puschel74 am 24 August 2013, 20:26:10
Hallo,

Zitat"my $aktion" für einen Zweck hat, verstehe ich nicht.

Ich hab ja gesagt ich muss bei meinen LM75-Sensoren "gutenbergen" und dort wird in $aktion der Rückgabewert gespeichert.
Ok. Die Relais liefern keinen :-)

Ich hab ja gesagt.
ZitatIst nicht schön aber funktioniert.

Grüße
Titel: Antw:PiFace
Beitrag von: backbone10 am 27 August 2013, 21:56:51
Hi,
danke für eure Antworten.

Ich krieg es leider trotzdem nicht hin. gpio commands funktionieren, in der FHEM Weboberfläche finde ich die beiden Relais und kann sie auch toggeln, aber den Schaltbefehl führt er nicht aus...

Im FHEMLogfile sehe ich jetzt (nach einigen verzweifelten Editierversuchen)

2013.08.27 21:42:29 3: Relais_Pi return value: Not enough arguments for main::schalten at (eval 22) line 1, near ""Relais_1") "

2013.08.27 21:42:48 3: Relais_Pi return value: Not enough arguments for main::schalten at (eval 23) line 1, near ""Relais_1") "

Ich werde noch weiter suchen ;) bin aber leider Neuling auf dem Gebiet und google hat mir auch zu keiner Lösung geholfen. Ist doch weit schwieriger als erhofft..

Vielleicht mag mir wer einen guten Tip geben.....

mfg

bb10
Titel: Antw:PiFace
Beitrag von: betateilchen am 27 August 2013, 23:20:17
Zitat von: backbone10 schrieb am Di, 27 August 2013 21:56Vielleicht mag mir wer einen guten Tip geben.....

klar. Lies doch einfach die absolut eindeutige Fehlermeldung und verstehe sie. Und dann mach das zweite Dollarzeichen in Deiner Funktionsdefinition weg.

falsch: sub schalten($$)

richtig: sub schalten($)
Titel: Antw:PiFace
Beitrag von: Puschel74 am 28 August 2013, 06:10:21
Hallo,

jo - Fehler von mir, sorry.
Ich werd mich am Wochenende nochmal dran setzen und ein bischen "üben".

Grüße
Titel: Antw:PiFace
Beitrag von: backbone10 am 28 August 2013, 09:08:28
Hi, kein Problem...Ich habs trotzdem nicht hinbekommen :(

Ich hab leider kein funktionierendes Device (nur das Piface)in meiner FHEM Installation, daher ist es für mich schwierig mich in die Sache einzuarbeiten. Auf jeden Fall bleib ich dran, auch wenn ich zur Zeit alles falsch mache, was falsch gemacht werden kann :)
Das Logfile zeigt jetzt auf jeden Fall keine Fehlermeldungen mehr..

mfg

bb10
Titel: Antw:PiFace
Beitrag von: Puschel74 am 28 August 2013, 20:04:47
Hallo,

ZitatIch hab leider kein funktionierendes Device (nur das Piface)in meiner FHEM Installation,

Du hast das PiFace aber schon an einem RasPi dran *blödfrag* ?
FHEM kann ja auch am Rechner laufen ^^

Du brauchst eigentlich keine anderen Devices für den oben geposteten Code.
Ich hab an meinem RasPi auch nur das PiFace dran und sonst (noch) keine Verbindung zur Hausinstallation sprich es läuft FHEM auf dem RasPi aber ich
hab noch keine Kommunikations-Device (CUL/CUNO etc.) definiert.
Das PiFace lässt sich aber brav über alle 8 Ports schalten.

Wo ist den das Problem?

Grüße
Titel: Antw:PiFace
Beitrag von: backbone10 am 28 August 2013, 22:30:49
Hallo Puschel74,
danke der Nachfrage....

Ich hab das natürlich am PI dran und auch mit der Emu Software getestet :)
Dass ich keine anderen Devices dafür brauche (ich hab auch gar nicht vor, wireless Sensoren oder Aktoren einzusetzen) hab ich schon mitbekommen, so weit fehlts mir nicht.

Ich wollte damit ausdrücken dass ich bis jetzt kein Device erfolgreich implementiert habe, d.h. es fehlt mir die Erfahrung und die Möglichkeit es mit der Konfig von funktionierenden Devices zu vergleichen.
Was mir aufgefallen ist : in meinem Logfile steht NICHTS von Fehlern oder ausgeführten Commands, ich nehme an dass man die Schaltbefehle des WEB IF ja doch irgendwie sehen sollte.

Was ich bis jetzt gemacht habe :

viel gelesen, aber das meiste behandelt nur FS20 Devices
 
PI installiert (Wheezy, GPIO, VNC)
fhem installiert
fhem.cfg mit dem eingebauten Editor um deine 4 Zeilen Code ergänzt

die 99_Utils mit deinem Code ergänzt, Rechte kontrolliert

nicht viel, also sollte nicht viel falsch sein :)
ich tippe eher darauf dass ich was vergessen habe.

Auf dem WEB IF schauts so aus als ob es einwandfrei funktioniert, aber ich denke der gpio command wird nie gesendet...

Ich bleib aber weiterhin dran, vorerst mal mit weiterlesen und ausprobieren. Der Mut hat mich ja noch nicht verlassen :)

LG

bb10

PS : hab jetzt den Loglevel gefunden und ausprobiert
Im Log steht nun
2013.08.28 23:18:11 3: dummy set Relais_1 off
2013.08.28 23:18:12 3: dummy set Relais_1 on
2013.08.28 23:18:13 3: dummy set Relais_1 off
2013.08.28 23:18:14 3: dummy set Relais_1 on








Titel: Antw:PiFace
Beitrag von: cornelius fillmore am 22 September 2013, 15:32:49
Also geht es jetzt?

Kann ich mir für meinen 2.Raspi wieder ein Piface holen?
Titel: Antw:PiFace
Beitrag von: backbone10 am 22 September 2013, 20:19:38
Hi,
das kann ich noch nicht bestätigen, ich bin leider nicht weitergekommen.
Ich hatte auch so gut wie keine zeit mehr.Ich werde in den nächsten Wochen den PI wieder aktivieren.

mfg

bb10
Titel: Antw:PiFace
Beitrag von: betateilchen am 25 September 2013, 21:39:42
Ich bin grade dabei, ein passendes Modul zu schreiben. Schalten der Ausgänge geht schon, im Moment baue ich das Lesen.

Aussehen wird das Ganze derzeit so:


define myPi PIFACE <base>

set myPi 1 1 # schaltet Pin 1 ein
set myPi 3 0 # schaltet Pin 3 aus


Ähnliches wird es dann für get geben, um die Eingänge abzufragen.

Also - noch ein paar Tage Geduld haben :)


(siehe Anhang / see attachement)
Titel: Antw:PiFace
Beitrag von: betateilchen am 26 September 2013, 16:02:59
Zitat von: betateilchen schrieb am Mi, 25 September 2013 21:39Also - noch ein paar Tage Geduld haben :)

Ich denke, heute abend gibts die erste brauchbare Testversion.
Titel: Antw:PiFace
Beitrag von: betateilchen am 26 September 2013, 21:22:22
So, jetzt gehst los...

wringPi Tools installieren

Das erfolgt auf der Systemconsole des Raspi


git clone git://git.drogon.net/wiringPi
cd wiringPi
./build



PIFACE Device in fhem definieren

define <name> PIFACE

Das wars schon :)

Befehlssyntax:

1. Einen einzelnen Port (z.B. 3) einschalten

set <name> 3 1

2. Einen einzelnen Port (z.B. 5) ausschalten

set <name> 5 0

3. Alle Ports auf einmal setzen

Dazu brauchen wir eine Bitmaske mit 8 Stellen. Es muss ein Wert zwischen 0 (alle Ports aus) und 255 (alle Ports an) gesendet werden.
Das niedrigstwertige Bit ist Port 1, das höchstwertige ist Port 8

set <name> 0 170

Die Bitmaske aus 170 ergibt 10101010 und diese setzt die Ports 2,4,6,8 auf 1 und 1,3,5,7 auf 0


set <name> 0 0

Schaltet alle Ausgänge aus.

set <name> 0 255

Schaltet alle Ausgänge an.

4. Ports einlesen

Jetzt wirds kompliziert und ich bin müde. Deshalb nur ganz kurz:

get <name> 5

Liest Port 5 mit ausgeschalteten Pullup-Widerständen.

get <name> 15

Liest Port 5 mit eingeschalteten Pullup-Widerständen.

Die Regel ist: Port + 10 = Port mit eingeschalteten Pullup lesen.

get <name> 0

Aktualisiert die Readings aller Input-Ports jeweils ohne und mit Pullup auf einmal.


Anmerkungen:

- Die 4 Taster auf dem Board müssen immer mit eingeschalteten Pullups gelesen werden (also 11-14)
- Die Taster liefern umgekehrte Logik! gedrückt = 0, nicht gedrückt = 1
- Eine Möglichkeit, durch einen gedrückten Taster einen Event zu erzeugen, gibt es derzeit nicht
- Eine regelmäßige automatische Aktualisierung der Portabfrage ist derzeit noch nicht eingebaut, das baue ich vielleicht noch ein

Ich hoffe, ich habe auf die Schnelle nichts vergessen und freue mich über Rückmeldungen.


Achja - falls jemand mein PIFACE haben möchte, ich gebe das gerne ab.
Ich habe das Teil vorgestern nur gekauft, um dieses Modul zu schreiben und brauche das PIFACE selbst nicht.
Bei Interesse bitte email hier über das Forum


-----
Titel: Antw:PiFace
Beitrag von: backbone10 am 27 September 2013, 19:23:52
Hi,
vielen Dank dass du das Thema nochmal aufgegriffen hast. Ich habs leider erst heute gesehen.
Ich werde es am WE ausprobieren und asap feedback geben .

eine frage zu : "- Eine regelmäßige automatische Aktualisierung der Portabfrage ist derzeit noch nicht eingebaut, das baue ich vielleicht noch ein"
so wie ich das verstanden habe ist das mit der Implementierung von NICO möglich..(siehe meinen Beitrag vom 21. August)

Ich werde mich bemühen :)

mfg

bb10
Titel: Antw:PiFace
Beitrag von: betateilchen am 27 September 2013, 20:47:27
Zitat von: backbone10 schrieb am Fr, 27 September 2013 19:23wie ich das verstanden habe ist das mit der Implementierung von NICO möglich.

Es steht Dir frei, diesen Lösungsansatz umzusetzen, das sollte sich auf die Funktion des Moduls nicht auswirken.

Grundsätzlich lässt sich das auch in fhem umsetzen, aber mein Tag hat auch nur 24 Stunden. Ich denke, das Modul in der derzeitigen Version deckt schonmal einen Großteil aller Anforderungen ab, zumal hier im Thread ja auch nicht soviel Diskussion aufkommt, dass man von einer Nutzerschar von Hunderten von Leuten ausgehen kann.

Titel: Antw:PiFace
Beitrag von: Puschel74 am 27 September 2013, 21:02:46
Hallo,

vielen Dank @betateilchen für das Modul.
Funktioniert mit meinem PiFace wunderbar.

Grüße
Titel: Antw:PiFace
Beitrag von: betateilchen am 27 September 2013, 21:18:02
na endlich mal jemand, der es wirklich benutzt :)
Titel: Antw:PiFace
Beitrag von: backbone10 am 29 September 2013, 19:56:41
Hi,
benutzen würde ich es auch, ich brauch es sogar schon eher bald, das ist nicht das Problem  :)

aber leider   : FHEM stirbt nach dem define Eintrag

root@raspberrypi:/home/pi# Undefined subroutine &main::Log3 called at ./FHEM/55_PIFACE.pm line 25, <$fh> line 53.

Was kann ich denn da nun falsch gemacht haben ??

Danke

bb10
Titel: Antw:PiFace
Beitrag von: betateilchen am 29 September 2013, 19:58:52
Zitat von: backbone10 schrieb am So, 29 September 2013 19:56Was kann ich denn da nun falsch gemacht haben ??

Lange kein Update von fhem gemacht.
Titel: Antw:PiFace
Beitrag von: klaus.schauer am 30 September 2013, 11:53:39
Zitat von: betateilchen schrieb am Do, 26 September 2013 21:22- Eine Möglichkeit, durch einen gedrückten Taster einen Event zu erzeugen, gibt es derzeit nicht
- Eine regelmäßige automatische Aktualisierung der Portabfrage ist derzeit noch nicht eingebaut, das baue ich vielleicht noch ein
Danke für das Fhem-Modul. Die Lösung mit dem PiFace kommt mir wie gerufen.
Optimal wäre, wenn die Eingangsports zyklisch mit frei definierbaren Intervallen abgefragt oder noch besser unmittelbar nach Statusänderung der Ports die Readings aktualisiert würden. Damit könnte man PiFace zur Überwachung von zeitkritischen Meldungen einsetzen.
Titel: Antw:PiFace
Beitrag von: backbone10 am 05 Oktober 2013, 18:20:46
Hi,
das mit dem update war richtig. jetzt funktioniert es ....

DANKE

bb10
Titel: Antw:PiFace
Beitrag von: klaus.schauer am 07 Oktober 2013, 11:10:48
Zitat von: betateilchen schrieb am Do, 26 September 2013 21:22So, jetzt gehst los...

wringPi Tools installieren

Das erfolgt auf der Systemconsole des Raspi


git clone git://git.drogon.net/wiringPi
cd wiringPi
./build



PIFACE Device in fhem definieren

define <name> PIFACE

Das wars schon :)
Das wars bei mir leider noch nicht!

Das wiringPi-Skript liefert folgenden Hinweis bzw. Fehlermeldung:

wiringPi Build script
=====================


WiringPi Library
[UnInstall]
[Compile] wiringPi.c
[Compile] wiringSerial.c
[Compile] wiringShift.c
[Compile] piHiPri.c
[Compile] piThread.c
[Compile] wiringPiSPI.c
[Compile] wiringPiI2C.c
[Compile] softPwm.c
[Compile] softTone.c
[Compile] mcp23008.c
[Compile] mcp23016.c
[Compile] mcp23017.c
[Compile] mcp23s08.c
[Compile] mcp23s17.c
[Compile] sr595.c
[Compile] pcf8574.c
[Compile] pcf8591.c
[Compile] mcp3002.c
[Compile] mcp3004.c
[Compile] mcp4802.c
[Compile] mcp3422.c
[Compile] max31855.c
[Compile] max5322.c
[Compile] sn3218.c
[Compile] drcSerial.c
[Link (Dynamic)]
[Install Headers]
[Install Dynamic Lib]

WiringPi Devices Library
[UnInstall]
[Compile] ds1302.c
[Compile] maxdetect.c
[Compile] piNes.c
[Compile] gertboard.c
[Compile] piFace.c
[Compile] lcd128x64.c
[Compile] lcd.c
[Compile] piGlow.c
[Link (Dynamic)]
[Install Headers]
[Install Dynamic Lib]

GPIO Utility
[Compile] gpio.c
gpio.c:85:12: warning: 'decodePin' defined but not used [-Wunused-function]
[Compile] extensions.c
[Compile] readall.c
[Link]
[Install]

All Done.

NOTE: This is wiringPi v2, and if you need to use the lcd, Piface,
  Gertboard, MaxDetext, etc. routines then you must change your
  compile scripts to add -lwiringPiDev

Wo und an welcher Stelle müsste etwas angepasst werden?

get/set-Befehle kann ich derzeit in Fhem absetzen. Die scheinen aber am PiFace nicht anzukommen. Jedenfalls werden die Readings beim get nicht gefüllt. set-Befehle haben ebenfalls keine Wirkung. Reading state steht auf active.

gpio readall bleibt konstant auf:
+----------+-Rev2-+------+--------+------+-------+
| wiringPi | GPIO | Phys | Name   | Mode | Value |
+----------+------+------+--------+------+-------+
|      0   |  17  |  11  | GPIO 0 | IN   | Low   |
|      1   |  18  |  12  | GPIO 1 | IN   | Low   |
|      2   |  27  |  13  | GPIO 2 | IN   | Low   |
|      3   |  22  |  15  | GPIO 3 | IN   | Low   |
|      4   |  23  |  16  | GPIO 4 | IN   | Low   |
|      5   |  24  |  18  | GPIO 5 | IN   | Low   |
|      6   |  25  |  22  | GPIO 6 | IN   | High  |
|      7   |   4  |   7  | GPIO 7 | IN   | Low   |
|      8   |   2  |   3  | SDA    | IN   | High  |
|      9   |   3  |   5  | SCL    | IN   | High  |
|     10   |   8  |  24  | CE0    | IN   | Low   |
|     11   |   7  |  26  | CE1    | IN   | Low   |
|     12   |  10  |  19  | MOSI   | IN   | Low   |
|     13   |   9  |  21  | MISO   | IN   | Low   |
|     14   |  11  |  23  | SCLK   | IN   | Low   |
|     15   |  14  |   8  | TxD    | ALT0 | High  |
|     16   |  15  |  10  | RxD    | ALT0 | High  |
|     17   |  28  |   3  | GPIO 8 | IN   | Low   |
|     18   |  29  |   4  | GPIO 9 | IN   | Low   |
|     19   |  30  |   5  | GPIO10 | IN   | Low   |
|     20   |  31  |   6  | GPIO11 | IN   | Low   |
+----------+------+------+--------+------+-------+
Titel: Antw:PiFace
Beitrag von: betateilchen am 07 Oktober 2013, 11:41:32
All Done.

Ist doch erstmal alles gut - was willst Du mehr?

Hast Du Jumper auf dem PiFace verändert?
Titel: Antw:PiFace
Beitrag von: klaus.schauer am 07 Oktober 2013, 11:43:07
Zitat von: betateilchen schrieb am Mo, 07 Oktober 2013 11:41All Done.

Ist doch alles gut - was willst Du mehr?
Einfach, dass PiFace funktioniert!
Titel: Antw:PiFace
Beitrag von: betateilchen am 07 Oktober 2013, 11:45:15
Kannst Du die ports von der Konsole aus schalten?

gpio -p write 200 1

sollte das erste Relais schalten.
Titel: Antw:PiFace
Beitrag von: klaus.schauer am 07 Oktober 2013, 11:49:17
Zitat von: betateilchen schrieb am Mo, 07 Oktober 2013 11:45Kannst Du die ports von der Konsole aus schalten?

gpio -p write 200 1

sollte das erste Relais schalten.
Nein:

gpio -p write 200 1
Unable to open SPI device: No such file or directory
Titel: Antw:PiFace
Beitrag von: betateilchen am 07 Oktober 2013, 14:01:08
hast Du die Kernelmodule geladen?

Titel: Antw:PiFace
Beitrag von: klaus.schauer am 07 Oktober 2013, 14:09:16
Zitat von: betateilchen schrieb am Mo, 07 Oktober 2013 14:01hast Du die Kernelmodule geladen?
Welche Kernelmodule, da gibt's doch bestimmt jede Menge?
Titel: Antw:PiFace
Beitrag von: betateilchen am 07 Oktober 2013, 14:21:57
nein, eigentlich nur zwei, schau mal in die  /etc/modprobe.d/raspi-blacklist.conf , wichtig ist vor allem das SPI Modul, das darf darin nicht enthalten sein.
Titel: Antw:PiFace
Beitrag von: klaus.schauer am 07 Oktober 2013, 14:38:36
Zitat von: betateilchen schrieb am Mo, 07 Oktober 2013 14:21nein, eigentlich nur zwei, schau mal in die  /etc/modprobe.d/raspi-blacklist.conf , wichtig ist vor allem das SPI Modul, das darf darin nicht enthalten sein.
Die beiden Einträge habe ich rauskommentiert... sieht nun gut aus. Werde heute Abend testen. Danke für die Hilfe.
Titel: Antw:PiFace
Beitrag von: betateilchen am 08 Oktober 2013, 20:06:35
Zitat von: klaus.schauer schrieb am Di, 08 Oktober 2013 18:26Der Fehler bei den get-Abfragen scheint behoben:
...
Der Fehler bei den set-Befehlen aber nicht:
...
Die Ausgabe scheinen zudem bezogen auf den ausgeführten Befehl immer doppelt zu sein. Eingaben zu obigen Events:
...
M. E. wäre es besser, man könnte auch die Stati der out-Ports per get-Kommando abfragen. Bei einem set-Befehl sollte nur der jeweilige Befehl als Event und im LOG erscheinen.

Das set habe ich nun geändert.

Die Sache mit dem "doppelt" und die Sache mit dem "out Ports lesen" - genau das Lesen der out-Ports ist die Ursache für das doppelte Auftreten. Bisher werden nach jedem set-Befehl immer alle out-Ports gelesen, um die Readings der out-Ports immer aktuell zu halten.

Ich weiss nicht, was der "richtige" Weg ist. In der Testversion hier habe ich das zurücklesen auskommentiert. Vielleicht baue ich ein Attribut ein, mit dem man das steuern kann.

Titel: Antw:PiFace
Beitrag von: klaus.schauer am 08 Oktober 2013, 21:30:48
1. die Leerzeilen der outx-Kanäle sind weg
2. es werden immer nur Events für den jeweiligen set-Befehl erzeugt, entweder 1 oder 8
2. die Ausgänge schalten richtig
3. die Readings werden jetzt fehlerhaft immer mit "0" aktualisiert, entweder 1 oder 8

Bei den set-Kommandos sollten immer nur die Events und LOGs erzeugt werden, die auch ausgelöst wurden. Ich möchte schließlich eine Rückmeldung nur über diese Aktionen haben.

Weiterhin wäre eine zusätzliche get-Abfrage für jeweils einen oder alle out-Stati sehr nützlich.

Titel: Antw:PiFace
Beitrag von: betateilchen am 08 Oktober 2013, 21:49:41
Zitat von: klaus.schauer schrieb am Di, 08 Oktober 2013 21:303. die Readings werden jetzt fehlerhaft immer mit "0" aktualisiert, entweder 1 oder 8

nur bei den out-Ports oder auch die in-Ports?

Im Anhang nochmal was zum Testen.

Titel: Antw:PiFace
Beitrag von: klaus.schauer am 08 Oktober 2013, 22:14:09
Zitat von: betateilchen schrieb am Di, 08 Oktober 2013 21:49
Zitat von: klaus.schauer schrieb am Di, 08 Oktober 2013 21:303. die Readings werden jetzt fehlerhaft immer mit "0" aktualisiert, entweder 1 oder 8

nur bei den out-Ports oder auch die in-Ports?

Im Anhang nochmal was zum Testen.

1. out-Readings gehen immer zuerst auf 0 oder 1 und dann dauerhaft auf 1
2. out-Events bleiben auf 0
2. in-Readings und Events bleiben immer auf 1
Titel: Antw:PiFace
Beitrag von: betateilchen am 08 Oktober 2013, 22:23:22
Ist das Verhalten der out-Ports mit der neu angehängten Version immer noch so?

Solange die in-Ports "offen" sind, sind die immer auf 1. Hast Du das berücksichtigt?
Titel: Antw:PiFace
Beitrag von: klaus.schauer am 09 Oktober 2013, 06:26:18
Zitat von: betateilchen schrieb am Di, 08 Oktober 2013 22:23Ist das Verhalten der out-Ports mit der neu angehängten Version immer noch so?

Solange die in-Ports "offen" sind, sind die immer auf 1. Hast Du das berücksichtigt?
Das beschriebene Verhalten der out-Ports basiert auf der Datei mit dem Zeitstempel 22:06.

Wenn ich einen Taster betätige, sollte doch wohl dieser in-Port auf "0" gehen!
Titel: Antw:PiFace
Beitrag von: betateilchen am 09 Oktober 2013, 09:34:55
Zitat von: klaus.schauer schrieb am Mi, 09 Oktober 2013 06:26Das beschriebene Verhalten der out-Ports basiert auf der Datei mit dem Zeitstempel 22:06.

Um 22:06 habe ich keine Datei erstellt.

Zitat von: klaus.schauer schrieb am Mi, 09 Oktober 2013 06:26Wenn ich einen Taster betätige, sollte doch wohl dieser in-Port auf "0" gehen!

Ja, aber nur wenn Du a) den Taster bei der Abfrage immernoch gedrückt hältst und b) den Port mit aktiviertem Pullup-Widerstand abfragst.
Titel: Antw:PiFace
Beitrag von: klaus.schauer am 09 Oktober 2013, 22:28:08
Zitat von: betateilchen schrieb am Mi, 09 Oktober 2013 09:34
Zitat von: klaus.schauer schrieb am Mi, 09 Oktober 2013 06:26Das beschriebene Verhalten der out-Ports basiert auf der Datei mit dem Zeitstempel 22:06.

Um 22:06 habe ich keine Datei erstellt.

Zitat von: klaus.schauer schrieb am Mi, 09 Oktober 2013 06:26Wenn ich einen Taster betätige, sollte doch wohl dieser in-Port auf "0" gehen!

Ja, aber nur wenn Du a) den Taster bei der Abfrage immernoch gedrückt hältst und b) den Port mit aktiviertem Pullup-Widerstand abfragst.
Jetzt nochmal zusammengefasst:
- get: Readings und Events der in-Ports immer auf 1
- set einzelner Kanäle: Events der out-Ports zeigen 0 oder 1, ist ok
- set einzelner Kanäle: Readings der out-Ports erst 1 dann 1 oder 0 dann 1, Readings werden zweimal geschrieben
- set aller Kanäle: Events der out-Ports zeigen immer 0
- set aller Kanäle: Readings der out-Ports zeigen immer erst 0 dann 1, Readings werden zweimal geschrieben
Titel: Antw:PiFace
Beitrag von: klaus.schauer am 10 Oktober 2013, 18:15:42
Zitat von: klaus.schauer schrieb am Mi, 09 Oktober 2013 22:28
Zitat von: betateilchen schrieb am Mi, 09 Oktober 2013 09:34
Zitat von: klaus.schauer schrieb am Mi, 09 Oktober 2013 06:26Das beschriebene Verhalten der out-Ports basiert auf der Datei mit dem Zeitstempel 22:06.

Um 22:06 habe ich keine Datei erstellt.

Zitat von: klaus.schauer schrieb am Mi, 09 Oktober 2013 06:26Wenn ich einen Taster betätige, sollte doch wohl dieser in-Port auf "0" gehen!

Ja, aber nur wenn Du a) den Taster bei der Abfrage immernoch gedrückt hältst und b) den Port mit aktiviertem Pullup-Widerstand abfragst.
Jetzt nochmal zusammengefasst:
- get: Readings und Events der in-Ports immer auf 1
- set einzelner Kanäle: Events der out-Ports zeigen 0 oder 1, ist ok
- set einzelner Kanäle: Readings der out-Ports erst 1 dann 1 oder 0 dann 1, Readings werden zweimal geschrieben
- set aller Kanäle: Events der out-Ports zeigen immer 0
- set aller Kanäle: Readings der out-Ports zeigen immer erst 0 dann 1, Readings werden zweimal geschrieben
Die Entfernung der Zeilenumrüche mit der chomp() Funktion scheint nicht die richtige Lösung des Problems zu sein. Ohne chomp() werden die Readings jedenfalls richtig gesetzt. Leider habe ich augenblicklich auch keine alternative Lösung.
Titel: Antw:PiFace
Beitrag von: betateilchen am 10 Oktober 2013, 19:03:12
ich schau mir das an, aber frühestens Samstag.
Titel: Antw:PiFace
Beitrag von: betateilchen am 12 Oktober 2013, 18:09:11
so... wie versprochen, habe ich mich heute mit dem Modul beschäftigt und da noch ein paar Umbauten vorgenommen.


Befehl: set pi 0 255

im Event-Monitor:

2013-10-12 17:55:54 PIFACE pi out1: 1
2013-10-12 17:55:54 PIFACE pi out2: 1
2013-10-12 17:55:54 PIFACE pi out3: 1
2013-10-12 17:55:54 PIFACE pi out4: 1
2013-10-12 17:55:54 PIFACE pi out5: 1
2013-10-12 17:55:54 PIFACE pi out6: 1
2013-10-12 17:55:54 PIFACE pi out7: 1
2013-10-12 17:55:54 PIFACE pi out8: 1

im LogFile:

2013-10-12_17:55:54 pi out1: 1
2013-10-12_17:55:54 pi out2: 1
2013-10-12_17:55:54 pi out3: 1
2013-10-12_17:55:54 pi out4: 1
2013-10-12_17:55:54 pi out5: 1
2013-10-12_17:55:54 pi out6: 1
2013-10-12_17:55:54 pi out7: 1
2013-10-12_17:55:54 pi out8: 1


nix mehr doppelt und hier auch keine Leerzeilen.

Das get wurde umgebaut:


get <name> 0 = liest ALLE Ports (out, in ohne Pullup, in mit Pullup)
get <name> 1..8 = liest den jeweiligen IN-port ohne Pullup
get <name> 11..18 = liest den jeweiligen IN-port mit Pullup
get <name> 21..28 = liest den jeweiligen OUT-port



Bitte testen und Rückmeldung.
Titel: Antw:PiFace
Beitrag von: backbone10 am 12 Oktober 2013, 23:58:42
Hi,
bei mir funktioniert das, danke !

Ich muss aber die Zustandsänderung ohne manuelle Abfrage erkennen.

bin beim Googlen über
http://code.google.com/p/raspberry-gpio-python/wiki/Inputs
zu den Threaded callbacks gestossen...

Ist das dafür einsetzbar und wenn ja - wie ??

danke

bb10
Titel: Antw:PiFace
Beitrag von: betateilchen am 13 Oktober 2013, 10:59:51
Du kannst Dir ein at definieren, mit dem Du eine regelmäßige Abfrage realisieren kannst.

define pullPi at +*00:00:10 get <piFaceName> 0

Damit werden die Readings alle 10 Sekunden aktualisiert. Wähle bitte den Abstand nicht zu kurz, im Moment werden bei jeder Ausführung jede Menge Betriebssystemaufrufe von fhem abgesetzt. Ich werde mir mal irgendwann Gedanken darüber machen, ob bzw. wie ich (besser umgesetzt) im Modul selbst implementiere.

Die von Dir verlinkte Lösung ist so in fhem nicht ohne weiteres umsetzbar.
Titel: Antw:PiFace
Beitrag von: betateilchen am 13 Oktober 2013, 11:51:20
Ich denke, die Sache mit der doppelte Abfrage der in-ports (mit und ohne pullup) wird wegfallen. Die Pullups sollten ohnehin sinnvollerweise in der angeschlossenen Applikation vorhanden sein, anstatt intern im PiFace.

Das erleichtert die Abfrage der Ports erheblich; um das zu verdeutlichen: Aktuell brauche ich für die Abfrage aller ports 32 Befehle. Ohne die Pullup-Geschichte brauche ich nur noch einen einzigen (also INSGESAMT nur einen, für in-ports UND out-ports zusammen!).

Damit kann ich dann auch eine regelmäßige Abfrage innerhalb des Moduls mit sehr viel weniger Bauchschmerzen umsetzen.
Titel: Antw:PiFace
Beitrag von: betateilchen am 13 Oktober 2013, 14:44:10
Hier kommt noch einmal eine Testversion, die eine performanceoptimierte Abfrage der Ports durchführt.

Änderungen:

Bei get <name> 0 werden die in-Ports nicht mehr mit Pullups gelesen, sondern nur noch die in-ports und die out-ports
Die in-Ports können nach wie vor einzeln mit Pullup abgefragt werden (als port 11-18, wie bisher), wenn das wirklich jemand braucht.
Die Abfrage der out-Ports hat sich nicht verändert.

Wenn diese Version zur Zufriedenheit läuft, wird als nächstes eine regelmäßige Abfrage der Ports eingebaut.
Titel: Antw:PiFace
Beitrag von: klaus.schauer am 14 Oktober 2013, 20:16:16
Die aktuellen Version von PIFACE V4035 habe ich nochmals grob getestet:

Die set-Kommandos inkl. der readings und der Events sind ok.

Die get-Abfragen funktionieren sehr uneinheitlich: mal werden die readings richtig gesetzt, in andern Fällen nicht. Mal gibt's Leerzeichen bei den Events, mal nicht. Das gilt für die in- und out-Ports.

Ist es sinnvoll in mühsamer Kleinarbeit alle Varianten durchzuspielen und zu dokumentieren? Wird in der nächsten Zeit an dem Modul noch gearbeitet oder sollte es eigentlich schon gut gewesen sein?
Titel: Antw:PiFace
Beitrag von: betateilchen am 14 Oktober 2013, 22:33:38
-- gelöscht, da erledigt --
Titel: Antw:PiFace
Beitrag von: betateilchen am 14 Oktober 2013, 22:48:37
WELCHE get-Abfragen funktionieren z.B. nicht? Ich habe am Wochenende Stunden mit der Änderung des Moduls zugebracht und ich konnte keine einzige Leerzeile produzieren.
Titel: Antw:PiFace
Beitrag von: betateilchen am 15 Oktober 2013, 14:53:24
Zitat von: klaus.schauer am 14 Oktober 2013, 20:16:16Die aktuellen Version von PIFACE V4035 habe ich nochmals grob getestet:

Die aktuelle Version ist die, die ich am 13.10.2013 hier in den Thread gehängt habe.
Titel: Antw:PiFace
Beitrag von: klaus.schauer am 20 Oktober 2013, 20:26:08
Testbasis: # $Id: 55_PIFACE.pm 4052 2013-10-16 11:47:34Z betateilchen $

Leerzeile z. B. get <Name> [11 ... 19]


2013-10-20 20:17:20 PIFACE IO_0 out1: 0
2013-10-20 20:17:20 PIFACE IO_0 out2: 0
2013-10-20 20:17:20 PIFACE IO_0 out3: 1
2013-10-20 20:17:20 PIFACE IO_0 out4: 1
2013-10-20 20:17:20 PIFACE IO_0 out5: 0
2013-10-20 20:17:20 PIFACE IO_0 out6: 1
2013-10-20 20:17:20 PIFACE IO_0 out7: 0
2013-10-20 20:17:20 PIFACE IO_0 out8: 1
2013-10-20 20:17:37 PIFACE IO_0 in1: 1
2013-10-20 20:18:09 dummy USV_Alarm on
2013-10-20 20:18:09 PIFACE IO_0 in11: 1

2013-10-20 20:18:16 dummy USV_Battery on
2013-10-20 20:18:16 PIFACE IO_0 in12: 1

2013-10-20 20:18:25 PIFACE IO_0 in13: 1

2013-10-20 20:18:32 PIFACE IO_0 in14: 1

2013-10-20 20:21:49 PIFACE IO_0 in14: 1

2013-10-20 20:21:52 PIFACE IO_0 in15: 1

2013-10-20 20:21:56 PIFACE IO_0 in16: 1

2013-10-20 20:22:00 PIFACE IO_0 in17: 1

2013-10-20 20:22:04 PIFACE IO_0 in18: 1

Titel: Antw:PiFace
Beitrag von: betateilchen am 20 Oktober 2013, 21:26:34
endlich mal eine Antwort, mit der ich was anfangen kann, danke.
Titel: Antw:PiFace
Beitrag von: klaus.schauer am 16 November 2013, 07:42:07
Zitat von: betateilchen am 20 Oktober 2013, 21:26:34
endlich mal eine Antwort, mit der ich was anfangen kann, danke.
Gibt es schon eine Lösung oder einen Lösungsansatz?
Titel: Antw:PiFace
Beitrag von: betateilchen am 16 November 2013, 14:21:02
Ja. Die Portabfrage mit internen Pullups wird ohnehin irgendwann wegfallen.

Alternativ kannst Du bis dahin gerne die hier angehängte Modulversion testen. Darin wird die Abfrage noch unterstützt, aber ich habe nochmal anders versucht, die Zeilenumbrüche zu entfernen.
Titel: Antw:PiFace
Beitrag von: klaus.schauer am 26 November 2013, 21:33:55
Leerzeilen kann ich jetzt nicht mehr erkennen. Prima.

Kannst Du nochmals die Grundversion des Moduls ins Forum stellen, vielleicht schon mit der Fehlerkorrektur? Abgesehen von den störenden Leerzeilen, für die es jetzt eine Lösung gibt, fand ich den Ansatz universeller und umfassender.

Da ich derzeit scheinbar ohnehin der einzige Nutzer bin, würde ich bei Gelegenheit noch ein paar Schönheitskorrekturen anbringen.
Titel: Antw:PiFace
Beitrag von: betateilchen am 26 November 2013, 21:37:52
Nein.

Du kannst aber mal in SVN schauen, welche Versionen Du dort findest.
Titel: Antw:PiFace
Beitrag von: daschauher am 02 Dezember 2013, 20:16:08
Hallo Zusammen,
erstmal ganz großes Lob und großen Respekt an alle hier!
Ich habe alles mitverfolgt und teilweise ausprobiert. Es funktioniert soweit alles tadellos.
Eine frage hätte ich dazu noch. Gibt es eine Möglichkeit wenn FHEM auf der Fritzbox läuft,
das piface auf nem raspberry das im netzwerk ist anzusprechen? Und wenn ja wie?
Tschuldigung wenn das ne dumme frage sein sollte, aber ich bin noch ganz am Anfang.
Danke!!
Titel: Antw:PiFace
Beitrag von: Puschel74 am 02 Dezember 2013, 20:54:34
Hallo,

da könnte dir evtl. FHEM2FHEM helfen.
Einfach auf dem RasPi (mit PiFace) auch FHEM installieren und von dort per FHEM2FHEM auf das FHEM auf der FB die Daten abholen.

define <beliebiger_Name> FHEM2FHEM <IP-Adresse-der-FB>:7072 LOG:[b]PiFace[/b].*
Und in FHEM auf der FB einfach die PiFace-Ports als Dummy anlegen mit den Namen PiFace 1, PiFace 2 etc.
Dazu das passende webCmd mit on / off oder per eventMap auf Ein / Aus gemappt und der RasPi müsste dann brav schalten.

Ich vermute das du am RasPi noch ein notify anlegen musst das auf das FHEM2FHEM-Event triggert.
So in die Richtung:
define PiFace_schalten notify [b]PiFace[/b]:.* set [b]PiFace[/b] %EVENT
Die fett gedruckten Namen musst du an deine Gegebenheiten passend anpassen.
Namen kannst du frei vergeben müssen aber je FHEM-Installation einmalig sein.

Ungetestet da ich FHEM auf einem RasPi verwende.
Evtl. solltest du mal umstellen und FHEM auf den RasPi verfrachten und die FritzBox das machen lassen was sie am besten kann - Internet und Telefonie  8)
Ich hab auch 2 7390 im Einsatz aber FHEM läuft bei mir ausschliesslich auf den RasPi`s und die FB`s werden per CALLMONITOR angezapft.

Grüße

P.S.: Es geht sicher noch einfacher aber ich nehm gern den umständlichen Weg  ::)
Titel: Antw:PiFace
Beitrag von: daschauher am 02 Dezember 2013, 21:18:58
Danke Puschel74 :-)

Das hört sich sehr interessant an. Ich baue nämlich gerade ein Haus und habe anschließend vor so viel wie möglich zu automatisieren. Habe mich schon vor längerer Zeit für Fhem und Homematic entschieden. Nach neuestem Stand möchte ich noch den einen oder anderen Raspi mit einbinden und habe mich schon gefragt wie das funktionieren könnte. Ich glaube dein Tipp mit Fhem2Fhem könnte mich da näher bringen.

schönen Gruß
Titel: Antw:PiFace
Beitrag von: betateilchen am 03 Dezember 2013, 09:39:42
Zitat von: Puschel74 am 02 Dezember 2013, 20:54:34und die FritzBox das machen lassen was sie am besten kann - Internet und Telefonie

und selbst das kann sie nur zu maximal 2/3...
Titel: Antw:PiFace
Beitrag von: Puschel74 am 03 Dezember 2013, 11:44:28
Hallo,

na du bist ja ein bekennender FB-Hasser @betateilchen  8)

Ich kann allerdings über die FB nichts negatives sagen.

Zitatund selbst das kann sie nur zu maximal 2/3...
Ok. Evtl. nutze ich auch nur diese funktionierenden 2/3  :D

Grüsse
Titel: Antw:PiFace
Beitrag von: betateilchen am 03 Dezember 2013, 11:59:03
vielleicht hast Du auch in Deinem Leben einfach noch nie eine wirklich perfekt funktionierende Telefonanlage erlebt ;)
Titel: Antw:PiFace
Beitrag von: daschauher am 03 Dezember 2013, 20:06:19
Hallo nochmal,
ich habe keine Ahnung zu wie wenig Prozent ich meine FB nutze, aber ich bin zufrieden. Für mich war der Hauptgrund nur ein Gerät und einen Stromverbraucher zu haben. Das was ihr sagt werde ich mir aber zu Herzen nehmen und spätestens im Haus dann so Umsetzen oder zumindest versuchen.
Darf ich euch nochmal zu Fhem2Fhem befragen?
Ich hab das so ausprobiert wie Puschel74 es beschrieben hat, aber irgendwo hackt es noch.

Ich habe folgendes in der FB:
define PiFacePi_1 dummy
attr PiFacePi_1 eventMap on:on off:off
attr PiFacePi_1 room RasPi

define PiFacePi_2 dummy
attr PiFacePi_2 webCmd toggle:on:off
attr PiFacePi_2 room RasPi


und im Raspi:
define PiFacePi PIFACE
define Fhemremote FHEM2FHEM 192.168.178.1:7072 LOG:PiFacePi.*
define PiFacePi_schalten notify PiFacePi:.* set PiFacePi %EVENT


im Eventmonitor des Raspis kommt folgendes an:
Events:
2013-12-03 20:04:15 dummy PiFacePi_1 on
2013-12-03 20:04:16 dummy PiFacePi_2 on
2013-12-03 20:04:17 dummy PiFacePi_1 off
2013-12-03 20:04:18 dummy PiFacePi_2 off


habt ihr vielleicht nen Tip für mich dazu?

Grüße
Titel: Antw:PiFace
Beitrag von: Puschel74 am 03 Dezember 2013, 21:25:37
Hallo,

ZitatIch hab das so ausprobiert wie Puschel74 es beschrieben hat, aber irgendwo hackt es noch.
Sorry.
Ich hab mir das nur im Kopf zusammen gereimt.
Die Möglichkeit das es so nicht sofort, wenn überhaupt, funktioniert ist relativ groß  8)

Ich werd aber leider erst am Wochenende dazu kommen deine Konstallation mal nach zu stellen.
Evtl. hat ja jemand anders den schnelleren Durchblick und kann dir helfen.

Grüße
Titel: Antw:PiFace
Beitrag von: daschauher am 03 Dezember 2013, 21:37:18
Hallo Puschel74,
dass ist aber nett von dir dass du für mich nachsiehst wie es funktionieren könnte.
Würde dass mit Fhem2Fhem im RAW Modus auch funktionieren?
Davon ist weniger zu finden als für den LOG Modus.
Wenn ich dass richtig verstehe ist es im RAW Modus so dass man alles, hier z.B. das PiFace an einem anderen Fhem Server verarbeiten kann so als ob es direkt an diesem angeschlossen wäre. Aus meiner Sicht wäre das doch der Übersichtlichkeit halber am allerbesten alles von einer Zentralen Stelle aus anzusprechen. Oder sehe ich das falsch?
Grüße
Titel: Antw:PiFace
Beitrag von: daschauher am 04 Dezember 2013, 19:18:47
Hallo,
nach etwas rumprobieren hab ichs so hinbekommen.
define PiFacePi_out1_on notify PiFacePi_1.on set PiFacePi 1 1
define PiFacePi_out1_off notify PiFacePi_1.off set PiFacePi 1 0
define PiFacePi_out2_on notify PiFacePi_2.on set PiFacePi 2 1
define PiFacePi_out2_off notify PiFacePi_2.off set PiFacePi 2 0
define PiFacePi_out3_on notify PiFacePi_3.on set PiFacePi 3 1
define PiFacePi_out3_off notify PiFacePi_3.off set PiFacePi 3 0

Würde das auch Eleganter gehen? z.B. mit Platzhaltern, so dass nur eine on und eine off notify nötig ist?

Weiß jemand wie das mit den Eingängen funktioniert? Bei mir kommt da gar nichts an. Nicht mal an dem fhem wo das piface angeschlossen ist.

Grüße
Titel: Antw:PiFace
Beitrag von: klaus.schauer am 13 Dezember 2013, 21:40:21
Zitat von: klaus.schauer am 26 November 2013, 21:33:55
Leerzeilen kann ich jetzt nicht mehr erkennen. Prima.

Kannst Du nochmals die Grundversion des Moduls ins Forum stellen, vielleicht schon mit der Fehlerkorrektur? Abgesehen von den störenden Leerzeilen, für die es jetzt eine Lösung gibt, fand ich den Ansatz universeller und umfassender.

Da ich derzeit scheinbar ohnehin der einzige Nutzer bin, würde ich bei Gelegenheit noch ein paar Schönheitskorrekturen anbringen.
Jetzt sind die Änderungen und Ergänzungen doch etwas umfangreicher geworden:
   - Periodische Abfrage (polling) der Eingänge mit Intervallen von 1 bis 10 s
   - Setzen der Pullup-Widerstände über Attribute
   - Wiederherstellen der Output-Stati nach Fhem Restart mit letztem Wert, 0 oder 1
   - Nummerierung der Ports im Bereich 0..7 (so sind auch die Ports auf der Platine bezeichnet)
   - Wegfall der Input Ports 1x, da pullup-Einstellung jetzt über Attribute erfolgt

Die Funktionalität des Moduls ist gegeben. Bei der Umgestaltung des Moduls gibt es aber noch offene Punkte, die ich  gerne bereinigen würde :
   - Der neu erstellten Routine PIFACE_Attr(@) wird die Variable $name leer übergeben. Ist das richtig oder gibt es da einen Trick?
   - Für das Wiederherstellen der Output-Stati werden die Readings beim Fhem-Start abgefragt und die Output Ports entsprechend gesetzt. Da die Readings aber  erst nach dem Aufruf der PIFACE_Define($$) aus fhem.save ausgelesen werden, starte ich die Routine PIFACE_Restore_Outports_State($) für das Wiederherstellen  um 5 sec verzögert. So wird es offensichtlich z. B. in CUL_HM auch gemacht.
   Wäre es nicht zweckmäßig einen zusätzlichen Aufruf z. B. $hash->{StartFn}   = "PIFACE_Restore_Outports_State" für alle Module zur Verfügung zu stellen, der eine Modulroutine aufruft, sobald alle gesicherten Variablen in die Devices eingelesen sind?
   
@betateilchen: Falls einverstanden, bitte das Modul einchecken. Falls gewünscht, kann ich das auch machen.
Titel: Antw:PiFace
Beitrag von: betateilchen am 13 Dezember 2013, 22:08:10
Zitat von: klaus.schauer am 13 Dezember 2013, 21:40:21starte ich die Routine PIFACE_Restore_Outports_State($) für das Wiederherstellen  um 5 sec verzögert. So wird es offensichtlich z. B. in CUL_HM auch gemacht.
   Wäre es nicht zweckmäßig einen zusätzlichen Aufruf z. B. $hash->{StartFn}   = "PIFACE_Restore_Outports_State" für alle Module zur Verfügung zu stellen, der eine Modulroutine aufruft, sobald alle gesicherten Variablen in die Devices eingelesen sind?

Das sollte auch mit einer NotifyFn funktionieren, die auf das globale INITIALIZED getriggert und hinterher automatisch gelöscht wird.
Titel: Antw:PiFace
Beitrag von: betateilchen am 13 Dezember 2013, 22:11:15
Hast Du eigentlich mal geprüft, ob das hier nicht auch eine Lösung bietet?

http://forum.fhem.de/index.php/topic,16519.0.html

Zwei Module für eigentlich den gleichen Zweck halte ich nicht für notwendig und da dort sogar schon die Interruptsteuerung für Inputs integriert ist, könnte das durchaus die interessantere Lösung sein.

Titel: Antw:PiFace
Beitrag von: klaus.schauer am 13 Dezember 2013, 22:30:49
Zitat von: betateilchen am 13 Dezember 2013, 22:11:15
Hast Du eigentlich mal geprüft, ob das hier nicht auch eine Lösung bietet?

http://forum.fhem.de/index.php/topic,16519.0.html

Zwei Module für eigentlich den gleichen Zweck halte ich nicht für notwendig und da dort sogar schon die Interruptsteuerung für Inputs integriert ist, könnte das durchaus die interessantere Lösung sein.
Direkt die GPIO-Ports zu nutzen ist m. E. nicht immer zweckmäßig. Ein PiFace-Modul hat durchaus seine Berechtigung.
Titel: Antw:PiFace
Beitrag von: klaus.schauer am 14 Dezember 2013, 08:57:49
Zitat von: betateilchen am 13 Dezember 2013, 22:08:10
Das sollte auch mit einer NotifyFn funktionieren, die auf das globale INITIALIZED getriggert und hinterher automatisch gelöscht wird.
Danke für den Lösungsvorschlag, den ich sofort umgesetzt habe. Das Modul ist m. E. jetzt ok. Vielleicht klärt sich alsbald auch, warum der Prozedure  sub PIFACE_Attr(@) die Variable $name leer übergeben wird.

@Betateilchen: Bitte diese Version des Moduls einchecken, falls ok. Danke.
Titel: Antw:PiFace
Beitrag von: betateilchen am 14 Dezember 2013, 13:23:39
Zitat von: klaus.schauer am 13 Dezember 2013, 22:30:49Direkt die GPIO-Ports zu nutzen ist m. E. nicht immer zweckmäßig. Ein PiFace-Modul hat durchaus seine Berechtigung.

Das musst Du mir jetzt aber bitte erstmal genauer erklären. Das PiFace nutzt immer und ausschließlich GPIO-Ports. Wie sollte es sonst funktionieren?
Titel: Antw:PiFace
Beitrag von: klaus.schauer am 14 Dezember 2013, 13:45:12
Zitat von: betateilchen am 14 Dezember 2013, 13:23:39
Das musst Du mir jetzt aber bitte erstmal genauer erklären. Das PiFace nutzt immer und ausschließlich GPIO-Ports. Wie sollte es sonst funktionieren?
Muss ich das? PiFace nutzt die GPIO-Ports. Ich möchte die PiFace Ports nutzen z. B. die dort verbauten Relais oder Eingänge ohne selbstgestrickte Hardware. Ich denke, es gibt einen Bedarf für eine für den Benutzer unkomplizierte Schnittstellenkarte einschl. eines gut angepassten Fhem-Moduls.
Titel: Antw:PiFace
Beitrag von: betateilchen am 14 Dezember 2013, 19:58:47
Ich kapiers immer noch nicht - oder wir reden irgendwie aneinander vorbei. Die PiFace Ports sind doch auch nur GPIO ports?

Ich werde mir Deine Änderungen an meinem Modul bei Gelegenheit mal anschauen. Im Moment fehlt mir dazu die Zeit.
Titel: Antw:PiFace
Beitrag von: betateilchen am 21 Dezember 2013, 16:46:38
Hallo Klaus,

ich habe das Modul in Deiner Fassung heute eingecheckt.
Gleichzeitig habe ich Dich zum Maintainer dieses Moduls gemacht.
Ab sofort bin ich aus der Nummer raus und die Verantwortung liegt bei Dir.

Viele Grüße
Udo
Titel: Antw:PiFace
Beitrag von: Fresh.G am 22 Dezember 2013, 15:07:31
Hallo zusammen,

ich setze das Modul schon seit Längerem ein und bin heute erst auf das Update gestoßen.

Bisher habe ich zur Zustandskontrolle eines Endschalters am Garagentor alle 10 Sekunden den Eingang geprüft

define Endschalter dummy
define Endschalter.job at +*00:00:10 get piface 0;;{if(ReadingsVal("piface", "in0", 0) == 0){fhem "set Endschalter closed"}else{ fhem "set Endschalter open"}}

Geht das mit der neuen Version durch das PollIntervall jetzt einfacher?

Gruß,
Kai
Titel: Antw:PiFace
Beitrag von: klaus.schauer am 22 Dezember 2013, 19:29:11
Zitat von: Fresh.G am 22 Dezember 2013, 15:07:31
Bisher habe ich zur Zustandskontrolle eines Endschalters am Garagentor alle 10 Sekunden den Eingang geprüft

define Endschalter dummy
define Endschalter.job at +*00:00:10 get piface 0;;{if(ReadingsVal("piface", "in0", 0) == 0){fhem "set Endschalter closed"}else{ fhem "set Endschalter open"}}

Geht das mit der neuen Version durch das PollIntervall jetzt einfacher?
mal den neuen Befehl readingsProxy zusammen mit dem integrierten Polling versuchen.
Titel: Antw:PiFace
Beitrag von: cmburn am 26 Dezember 2013, 10:48:59
attr pifaceIO pollInterval  5

ergibt immer:

PIFACE pifaceIO attribute-value [pollInterval] = 5 wrong

es geht bisher ger KEIN Wert
...
pollInterval off|1,2,...,9,10, [pollInterval] = off is default.
Define the polling interval of the input ports in seconds.

Bin ich nur zu blöd die Doku zu lesen?

Hätte bitte jemand ein funktionierendes Beispiel zur Abfrage eine Inputs (polled). Ich will doch nur eine Lampe einschalten. ;-)

Ja, die Ausgänge funktionieren und lassen sich auch problemlos schalten.

Gruß und Frohe Weihnacht
Jens
Titel: Antw:PiFace
Beitrag von: klaus.schauer am 26 Dezember 2013, 11:11:37
Zitat von: cmburn am 26 Dezember 2013, 10:48:59
attr pifaceIO pollInterval  5

ergibt immer:

PIFACE pifaceIO attribute-value [pollInterval] = 5 wrong
Fehler in der Prüfroutine des Attributes pollInterval beseitigt. Update steht ab 28. Dez. bereit.
Titel: Antw:PiFace
Beitrag von: barawer am 28 Dezember 2013, 17:09:26
Hallo zusammen,

als Alternative zum pollinterval kann auch ein kleines Python Script dienen, welches im Hintergrund auf dem Raspi läuft.
Vorteil ist hier ein Interrupt gesteuertes Erkennen einer Zustandsänderung.

Hier ein Beispiel, bei dem die Tasten des PiFace einen FHEM Befehl und ein Schalten der Outputs (1-4 je nach Taste) auslösen:

#!/usr/bin/env python3

import pifacedigitalio
import os

def switch_pressed(event):
    event.chip.output_pins[event.pin_num].turn_on()
    befehl = 'perl /opt/fhem/fhem.pl 7072 "set button'+str(event.pin_num+1)+' toggle"'
    os.system(befehl)


def switch_unpressed(event):
    event.chip.output_pins[event.pin_num].turn_off()


if __name__ == "__main__":
    pifacedigital = pifacedigitalio.PiFaceDigital()

    listener = pifacedigitalio.InputEventListener(chip=pifacedigital)
    for i in range(4):
        listener.register(i, pifacedigitalio.IODIR_ON, switch_pressed)
        listener.register(i, pifacedigitalio.IODIR_OFF, switch_unpressed)
    listener.activate()


Das ganze basiert dann auf dem InputEventListener von PiFace (siehe auch: http://piface.github.io/pifacedigitalio/example.html#interrupts).

MfG
Barawer
Titel: Antw:PiFace
Beitrag von: fidel am 29 Dezember 2013, 01:03:40
Hallo,

ist es möglich PIFACE auf einem separaten Raspberry über die IP-Adresse anzusteuern?
Wäre es möglich diese Funktion noch in das Modul einzubauen?

Gruß
Steven
Titel: Antw:PiFace
Beitrag von: cmburn am 02 Januar 2014, 17:48:43
meine Konfig:

...(gelöscht)

Was mir noch nicht in den Kopf will bzw. was ich einfach nicht hin bekomme, das sind die Eingänge.
Wie kann ich die genau wie die Ausgänge anzeigen oder etwas auslösen. Ich habe es noch nicht geschafft, das sich irgend ein Event gezeigt hat...
PS: das Pollingintervall läßt sich jetzt auch auf 5 s stellen... wobei ich damit Bauchschmerzen habe.

Das PiFace kann kann ja einen Interrup erzeugen: " The latest PiFaces sold in Farnell have the interupt line from the controller on pin22 of the Pi's pin header"

Lange Rede kurzer Sinn wie kann ich beim Schalten einen I/O-inPins  z.B. eine Lampe einschalten (timer)


Gruß Jens

Der eigentliche Plan:

* mit Taster das Lich für 3 min anschalten
* ELV GW1 (Warnung, Blitz, Entwarnung) einbinden.


Titel: Antw:PiFace
Beitrag von: klaus.schauer am 02 Januar 2014, 17:57:20
Zitat von: cmburn am 02 Januar 2014, 17:48:43
Was mir noch nicht in den Kopf will bzw. was ich einfach nicht hin bekomme, das sind die Eingänge.
Wie kann ich die genau wie die Ausgänge anzeigen oder etwas auslösen. Ich habe es noch nicht geschafft, das sich irgend ein Event gezeigt hat...
Ich würde es mit dem neuen Kommando readingsProxy versuchen.
Titel: Antw:PiFace
Beitrag von: cmburn am 02 Januar 2014, 19:02:54
Ja, danke... aber da ich bei solchen Späßen neu werden die Fragezeichen nicht weniger.

Bisher hab ich die Heizung aus der Ferne verstellt und kontrolliert...  Es war alt seit 2 Jahren ein Webinterface für FHT/FS20 auf einem Sheevaplug. Der ist abgeraucht und nun hab ich meinen Raspi diesem Zweck zugeführt und mich wieder mal um den Kram gekümmert.

Ja in der Zeit hat sich viel getan... nur bei mir nicht ;-) ... Also Anfängerfrage. Ich versuche mir den Kram aus Beispielen zusammen zu suchen. Die Befehlsreferenz hat ja selten so etwas...

Titel: Antw:PiFace
Beitrag von: klaus.schauer am 03 Januar 2014, 09:19:13
Zitat von: cmburn am 02 Januar 2014, 19:02:54
Ich versuche mir den Kram aus Beispielen zusammen zu suchen. Die Befehlsreferenz hat ja selten so etwas...
Beispiel:

define IO_0_in0 readingsProxy IO_0:in0
attr IO_0_in0 getFn 0
attr IO_0_in0 getList 0:noArg
attr IO_0_in0 valueFn ""

define IO_0_in1 readingsProxy IO_0:in1
attr IO_0_in1 getFn 1
attr IO_0_in1 getList 1:noArg
attr IO_0_in1 valueFn ""

define IO_0_in2 readingsProxy IO_0:in2
attr IO_0_in2 getFn 2
attr IO_0_in2 getList 2:noArg
attr IO_0_in2 valueFn ""

define IO_0_in3 readingsProxy IO_0:in3
attr IO_0_in3 getFn 3
attr IO_0_in3 getList 3:noArg
attr IO_0_in3 valueFn ""
Titel: PiFace V4577: Watchdog Funktion
Beitrag von: klaus.schauer am 06 Januar 2014, 17:12:06
Das PIFACE Modul ist jetzt um eine Watchdog-Funktion reicher. Die Watchdog-Funktion prüft periodisch den Status des Einganges 7 und des Ausganges 7. Diese Ports können für andere Zwecke dann nicht mehr verwendet werden. Der Input Port 7 ist mit Masse zu verbinden! Das Watchdog-Intervall kann zwischen 10 s und 65535 s eingestellt werden.
Zwei verschiedene Modi können gewählt werden:
   1. Der Watchdog gibt im Modus "on" die Ergebnisse im Reading watchdog periodisch aus. Bei einer Fehlfunktion kann man dann entsprechend reagieren
   2. Im Modus "silent" wird bei Fehlern versucht, das Problem durch Restarts zu beheben. Tritt der Fehler erstmalig auf, wird ein Fhem-Restart durchgeführt. Bleibt der Fehler weiterhin bestehen, wird ein OS Restart erzwungen. Sollte der Fehler damit immer noch nicht beseitigt werden können, schaltet sich der Watchdog ab und meldet einen Fehler.

Bekanntes Problem: Bisher konnte ich nicht reproduzieren, weshalb in der grafischen Oberfläche  manchmal das Einschalten des Watchdogs über das Attribut "watchdog" erst beim nochmaligen Setzen des Attributes funktioniert!

Das Modul steht ab dem 07. Jan. über die update-Funktion zur Verfügung.
Titel: Antw:PiFace
Beitrag von: MartinD am 06 Januar 2014, 17:59:09
Hallo,

ist es möglich PIFACE Modul aus einer (entfernten) fhem-Installation zu steuern?
Bislang ist es mir gelungen (mit FHEM2FHEM im LOG-Modus) die Ein- und Ausgängen auszulesen.

Grüße

Martin 
Titel: Antw:PiFace
Beitrag von: Tobi82m am 13 Januar 2014, 15:57:13
Hallo,

ich muss hier auch einmal einsteigen. Und zwar versuche ich gerade eine Rolladensteuerung mittels FHEM, Raspberry und Piface zu bauen.

Folgendes ist vorhanden:
- Rolladensteuerung die mittels 230V einen Zentraltaster einlesen kann (Druck über 2 Sek=Rolladen runter, Druck unter 2 Sek=Rolladen auf)

Nun möchte ich ganz simpel eine Weboberfläche und eine Android App haben die 2 Buttons hat. Der Button "Auf" betätigt Relais1 ca 1 Sek und der Button "Zu" betätigt Relais1 ca 3,5 Sekunden.

Eigentlich ja total simpel, jedoch habe ich überhaupt keine Programmiererfahrung.
Wie kann ich das bei FHEM realisieren?

Könnte mir das vielleicht sogar jemand grade schreiben? Da bei uns eingebrochen wurde würde ich die Rolladen gerne von überall schließen können wenn es dunkel wird.

Raspberry ist installiert, PiFace auch.
FHEM läuft und lässt sich über Port 8083 etc erreichen.
Nun weiß ich nicht weiter
Titel: Antw:PiFace
Beitrag von: MaJu am 11 Juli 2014, 22:24:11
@Tobi82m:
Deine Frage ist ewig her. Ist sie beantwortet, oder brauchst du noch Hilfe?

@All:
Ich bitte um Unterstützung. Ich habe mir das folgende Relais-Board gekauft: http://www.amazon.de/dp/B00AEIDWXK (http://www.amazon.de/dp/B00AEIDWXK)

Es hat die Anschlüsse VCC, IN[1-8] und GND.
Wie muss ich das ans PiFace anschließen?

Ich würde IN[1-8] an die Ausgänge 1-8 anschließen, VCC an den 5V-Anschluss auf der Leiste der Ausgänge. Und GND auf den GND der Eingänge. Ist das korrekt? Möchte nur sehr ungern was kaputt machen ...

DANKE!
Titel: Antw:PiFace
Beitrag von: MaJu am 16 Juli 2014, 16:19:45
Ich antworte mal selbst. Es funktioniert so wie von mir zuvor genannt, die Anschlüsse sind so korrekt.
Titel: Antw:PiFace
Beitrag von: makruna am 25 Juli 2014, 11:17:46
Hallo an alle die amPiFace Modul halfen
Das PiFace Modul ist super,  :) :) :) :)
Vielen Dank

Ich hätte noch eine Frage oder vielleicht auch Anregung
Wie kann ich das PI RACK nutzen.

Güsse makruna
Titel: Antw:PiFace
Beitrag von: raggywetter am 22 Oktober 2014, 13:21:08
Ich habe den Dämmerungs Schalter (FS20) D_K1 undD_K2 = Kanal 1 u.Kanal 2
Fhem ist auf dem Raspberry Pi
So funktioniert es mit dem Piface
define Schalter1Notify notify D_K1 set myPi 8 %
define Schalter2Notify notify D_K2 set myPi 7 %
Funktion geht mit On Off vom Dämmerungs Schalter
Mit dem Banana Pi und Piface funktioniert nur wenn ich mit putty  dieses eingebe

sudo modprobe spi-sun7i
Titel: Antw:PiFace
Beitrag von: beSmart am 04 November 2014, 16:44:38
Hallo Forum.

Als blutiger Fhem-Anfänger versuche ich nun schon seit Stunden, PiFace zu überreden, mir zu gehorchen. Die Commandref zum PiFace-Modul habe ich gelesen. Mir erschließt sich noch nicht, wie ich einen Eingang mit einem Ausgang verknüpfe. Habe schon diverse Beiträge gelesen und mir das eine oder andere herausgesucht aber irgendwie tut sich am Modul nichts.
Meine derzeitige cfg. ( Habe schon alles an Beispielcode in diesem Beitrag probiert.)

Define PiFacePi PIFACE
define PiFacePi_1.on dummy
attr PiFacePi_1.on eventMap on:on off:off
attr PiFacePi_1.on room RasPi
define PiFacePi_out1_on notify PiFacePi_1.on set PiFacePi 1 1
define PiFacePi_out1_off notify PiFacePi_1.off set PiFacePi 1 0

Kann bitte mal jemand eine funktionierende cfg. Posten, bei der einer der Taster mit einem Ausgang verknüpft ist und diesen schaltet. Den Rest bekomme ich dann selbst hin.

Vielen Dank

beSmart
Titel: Antw:PiFace
Beitrag von: Olaf A am 25 Januar 2015, 18:26:44
Hallo beSmart,

bei mit hat das so geklappt:


define myPi PIFACE
attr myPi portMode0 up
attr myPi room PiFace

define myPi_in0 readingsProxy myPi:in0
attr myPi_in0 eventMap on:0 off:1
attr myPi_in0 getFn 0
attr myPi_in0 getList 0:noArg
attr myPi_in0 room PiFace
attr myPi_in0 valueFn ""

define myPi_poll at +*00:00:01 get myPi in
attr myPi_poll room PiFace


Hat es den aber schon einmal jemand geschaft, einen Tasteingang zum Schalteingang umzubauen?

Sprich wenn eine der Tasten auf dem PiFace gedrückt wird, soll solange der Eingang (oder ein Reading) auf EIN bleiben, bis dieser wieder gedrückt wird.

Währe schön wenn einer mir da mal auf die Sprünge hefen könnte oder so ein Attributes "Switch0 bis Switch7" würde ich mir wünschen.

Gruß Olaf
Titel: Antw:PiFace
Beitrag von: kalle0103 am 03 Februar 2015, 08:37:48
Hallo zusammen,

ich habe einen raspberry mit piface im Keller als Alarmanlage. Wenn jemand die Tür öffnet, bleiben 5 s Zeit um mit einem Taster den Alarm zu deaktivieren. Als Eingang dient ein einfach Reed Kontakt, am Türrahmen befestigt. Bei Türöffnung bekomme ich eine pushover Nachricht aufs Handy und nach 5 s dröhnt die Sirene los. Soweit so gut. Ich habe es aber nicht hinbekommen die Sirene nur für eine bestimmte Zeit einzuschalten wie z.B. set PiFace 1 1 on-for-timer 30..... hat jemand einen Rat?

Danke und Gruß

Kalle
Titel: Antw:PiFace
Beitrag von: MaJu am 03 Februar 2015, 08:44:04
set PiFace 1 1, sleep 30, set PiFace 1 0
Aber Achtung: sleep führt dazu, dass dein gesamtes FHEM in der Zeit still steht. (wenn ich das richtig in Erinnerung habe)
Wenn du es in einem DOIF verwendest, dann das zweite Komma durch ein Semikolon ersetzen, damit sollte FHEM nicht gesamt still stehen.
Titel: Antw:PiFace
Beitrag von: kalle0103 am 03 Februar 2015, 09:27:35
Hallo Maju,

danke für die Info. Ein "Stillstehen" kommt natürlich nicht in Frage. In DOIF muss ich mich mal einlesen.

Gruß

Pascal
Titel: Antw:PiFace
Beitrag von: kalle0103 am 03 Februar 2015, 10:51:45
Hi,

der sleep Befehlt funktioniert und stoppt das System nicht, wenn dem sleep command eine fhem command folgt. Bei mir klappt es jetzt so zufriedenstellend:

define Sirene_on notify Sirene:on set Test 2 1;; sleep 20;; set Test 2 0;; set Sirene off

Jetzt schaltet das 2. Relais nach 20 s wieder ab...

Danke und Gruß

Kalle
Titel: Antw:PiFace
Beitrag von: davipet am 31 August 2018, 11:24:18
Moin,

kann es sein, dass das Modul mit der aktuellen WiringPi-Version nicht mehr funktioniert?

Bei mir am Pi 3 B+ mit dem PiFace Digital2 von Element14 funktioniert es jedenfalls nicht :(

Gruß

David
Titel: Antw:PiFace
Beitrag von: Patrik.S am 31 August 2018, 19:38:46
Ja ist so. Das geht seit der wiringpi Version 2.46 vom März 2018 nicht mehr.
Siehe [Info] wiringpi seit V2.46 ohne direkte & simple -p PiFace Unterstützung: https://forum.fhem.de/index.php/topic,87685.0.html (https://forum.fhem.de/index.php/topic,87685.0.html)

Man muss den Modul Code anpassen und alle
$gpioCmd -p .....
ändern in
$gpioCmd -x mcp23s17:200:0:0 .....
Titel: Antw:PiFace
Beitrag von: davipet am 01 September 2018, 12:11:58
Danke!

So gehts :)
Titel: Antw:PiFace
Beitrag von: Patrik.S am 05 Oktober 2018, 22:41:49
Ohh man....
Linux & Fhem Update gemacht, wiringPi blieb gleich mit der Version 2.46, 55_PIFACE.pm aber nicht in der Update Ignore Liste gehabt....
Das Fhem Logfile hat nach Neustart ohne Ende gespuckt

pinMode: You have not called one of the wiringPiSetup
  functions, so I'm aborting your program before it crashes anyway.


Weil das Fhem Logfile auch nicht den Modulnamen vorne ranschreibt hat die Lernkurve etwas gedauert
Schön das ich erst nach einer Stunde auf meine eigene Lösung gestoßen bin  >:(

Wäre es bitte bitte möglich vom Modul Entwickler diese Änderung offiziell einzubauen. BITTE
Danke!
Titel: Antw:PiFace
Beitrag von: Patrik.S am 09 Oktober 2018, 19:51:33
Verrückt....
Der Modulcode muss noch weiter angepasst werden, wenn man die Inputs auswerten möchte.
Das setzen eines Output Pin hat zufällig weiter funktioniert beim Wechsel von gpio -p write 200 bis 207 ... auf gpio -x mcp23s17:200:0:0 write 200 bis 207 ...
Aber die Inputs liegen nun woanders
Ist mir nur aufgefallen, weil ich meine Wassermelder Sensoren mal prüfen wollte und zuvor die Output Relais geschaltet habe.
Durch das Schalten der Output Pins, wurde vermeindlich am Eingang eine Änderung erkannt und ich hatte einen Keller voller Wasser  :o

Der Grund ist ersichtlich in den unterschiedlichen Ausgaben.
Während bisher ein readAll über die nun nicht mehr vorhandene Option "-p" die Input und Output Pins in dieser Reihenfolge aufgelistet hat

gpio -p readAll

+------+---------+--------+
| Pin | Digital | Analog |
+------+---------+--------+
| 200 | 1 | 0 |      <--IN
| 201 | 1 | 0 |      ....
| 202 | 1 | 0 |
| 203 | 1 | 0 |
| 204 | 1 | 0 |
| 205 | 1 | 0 |
| 206 | 1 | 0 |      ....
| 207 | 1 | 0 |      <--IN
| 208 | 0 | 0 |      <--OUT
| 209 | 1 | 0 |      ....
| 210 | 0 | 0 |
| 211 | 0 | 0 |
| 212 | 0 | 0 |
| 213 | 0 | 0 |
| 214 | 0 | 0 |       .....
| 215 | 0 | 0 |      <--OUT
+------+---------+--------+


ist die Reihenfolge beim Aufruf über -x mcp23s17.... genau anders herum

gpio -x mcp23s17:200:0:0 readAll
+------+---------+--------+
| Pin | Digital | Analog |
+------+---------+--------+
| 200 | 0 | 0 |      <--OUT
| 201 | 1 | 0 |      ....
| 202 | 0 | 0 |
| 203 | 0 | 0 |
| 204 | 0 | 0 |
| 205 | 0 | 0 |
| 206 | 0 | 0 |      ....
| 207 | 0 | 0 |      <--OUT
| 208 | 1 | 0 |      <--IN
| 209 | 1 | 0 |      ....
| 210 | 1 | 0 |
| 211 | 1 | 0 |
| 212 | 1 | 0 |
| 213 | 1 | 0 |
| 214 | 1 | 0 |      ....
| 215 | 1 | 0 |      <--IN
+------+---------+--------+


Im Modul müssen die beiden Funktionen PIFACE_Read_Outports() und PIFACE_Read_Inports() angepasst werden und das zusätzliche addieren der Zahl 8 von der Outports in die Inputs verschoben werden

sub PIFACE_Read_Outports($$){
my ($updateMode, $hash) = @_;
        my $name = $hash->{NAME};
my ($cmd, $i, $port, $val);
readingsBeginUpdate($hash);
for($i=0; $i<8; $i++){
# old gpio -p option usage: the output ports are located at 208..215: $port = $base + $i + 8;
# with extention call of -x mcp23s17... the output ports are located at 200..207
$port = $base + $i;
                Log3($name, 5, "PIFACE Read_Outports $gpioCmd -x mcp23s17:200:0:0 read $port");
$cmd = "$gpioCmd -x mcp23s17:200:0:0 read $port";
$val = `$cmd`;
$val =~ s/\n//g;
$val =~ s/\r//g;
                Log3($name, 5, "PIFACE Read_Outports val=$val");
if ($updateMode == 1){
  readingsBulkUpdate($hash, 'out'.$i, $val);
} else {
  readingsBulkUpdate($hash, 'out'.$i, $val) if(ReadingsVal($name, 'out'.$i, '') ne $val);
}
}
readingsEndUpdate($hash, 1);
return;
}

sub PIFACE_Read_Inports($$){
my ($updateMode, $hash) = @_;
        my $name = $hash->{NAME};
my ($cmd, $i, $j, $port, $portMode, $val);
readingsBeginUpdate($hash);
for($i=0; $i<8; $i++){
          # old gpio -p option usage: the input ports are located at 200.207: $port = $base + $i;
          # with extention call of -x mcp23s17... the output ports are located at 208..215
  $port = $base + $i +8;
          Log3($name, 5, "PIFACE Read_Inports $gpioCmd -x mcp23s17:200:0:0 read $port");
  $cmd = "$gpioCmd -x mcp23s17:200:0:0 read $port";
  $val = `$cmd`;
  $val =~ s/\n//g;
  $val =~ s/\r//g;
          Log3($name, 5, "PIFACE Read_Inports val=$val");
  if ($updateMode == 1) {
    readingsBulkUpdate($hash, 'in'.$i, $val);
  } else {
    readingsBulkUpdate($hash, 'in'.$i, $val) if(ReadingsVal($name, 'in'.$i, '') ne $val);
  }
}
readingsEndUpdate($hash, 1);
return;
}


Die anderen Modulfunktionen nutze ich nicht, sind also ungetestet, speziell der Watchdog