Autor Thema: PiFace  (Gelesen 53568 mal)

Offline MaJu

  • Full Member
  • ***
  • Beiträge: 270
    • Stadtstromer - Erlebe Leipzig auf dem SEGWAY!
Antw:PiFace
« Antwort #105 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.
3x FHEM RPi
Hardware: Homematic (Heizung, Steckdosen, Temp., Fenster / CUL866), Baumarktsteckdosen (CUL433), Hue, Harmony, FritzDect-Steckdosen
Module: DOIF, Floorplan, ReadingsGroup
Hauptfunktion: Anzeige/Steuerung/Statusansagen über Tablets an der Wand

Offline makruna

  • New Member
  • *
  • Beiträge: 5
Antw:PiFace
« Antwort #106 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

Offline raggywetter

  • Newbie
  • Beiträge: 1
Antw:PiFace
« Antwort #107 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
« Letzte Änderung: 19 Januar 2016, 20:43:35 von raggywetter »

Offline beSmart

  • Full Member
  • ***
  • Beiträge: 126
Antw:PiFace
« Antwort #108 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

Offline Olaf A

  • Full Member
  • ***
  • Beiträge: 110
Antw:PiFace
« Antwort #109 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
« Letzte Änderung: 25 Januar 2015, 18:29:20 von Olaf A »
FHEM auf CubieTruck:
Max mit Cube, HMLAN; MAX-Thermostaten; Homematic-Komponenten, SIS PM Schalter, JeeLink.

Offline kalle0103

  • New Member
  • *
  • Beiträge: 6
Antw:PiFace
« Antwort #110 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

Offline MaJu

  • Full Member
  • ***
  • Beiträge: 270
    • Stadtstromer - Erlebe Leipzig auf dem SEGWAY!
Antw:PiFace
« Antwort #111 am: 03 Februar 2015, 08:44:04 »
set PiFace 1 1, sleep 30, set PiFace 1 0Aber 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.
3x FHEM RPi
Hardware: Homematic (Heizung, Steckdosen, Temp., Fenster / CUL866), Baumarktsteckdosen (CUL433), Hue, Harmony, FritzDect-Steckdosen
Module: DOIF, Floorplan, ReadingsGroup
Hauptfunktion: Anzeige/Steuerung/Statusansagen über Tablets an der Wand

Offline kalle0103

  • New Member
  • *
  • Beiträge: 6
Antw:PiFace
« Antwort #112 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

Offline kalle0103

  • New Member
  • *
  • Beiträge: 6
Antw:PiFace
« Antwort #113 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

Offline davipet

  • New Member
  • *
  • Beiträge: 29
Antw:PiFace
« Antwort #114 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

Offline Patrik.S

  • Jr. Member
  • **
  • Beiträge: 81
Antw:PiFace
« Antwort #115 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

Man muss den Modul Code anpassen und alle
$gpioCmd -p .....ändern in
$gpioCmd -x mcp23s17:200:0:0 .....
Hilfreich Hilfreich x 1 Liste anzeigen

Offline davipet

  • New Member
  • *
  • Beiträge: 29
Antw:PiFace
« Antwort #116 am: 01 September 2018, 12:11:58 »
Danke!

So gehts :)

Offline Patrik.S

  • Jr. Member
  • **
  • Beiträge: 81
Antw:PiFace
« Antwort #117 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!

Offline Patrik.S

  • Jr. Member
  • **
  • Beiträge: 81
Antw:PiFace
« Antwort #118 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

 

decade-submarginal