PiFace unter Raspbian Stretch

  • Guten Morgen,
    nachdem ich zwei Tage des Suchens darauf verwendet habe das PiFace Digital 2 unter Raspbian Stretch zum laufen zu bekommen,
    möchte ich Euch meinen Lösungsweg hier mal beschreiben.


    Als erstes setze ich vorraus das SPI in der raspi-config auf "Enabled" gesetzt ist.


    Nun erstmal PyPi installieren, falls noch nicht bei der Installation von DoorPi geschehen.

    Bash
    sudo apt-get install python{,3}-pip


    Jetzt holen wir uns die Piface-Dateien.
    Für Python 2.7, würde für DoorPi reichen.

    Bash
    sudo pip install pifacecommon
    sudo pip install pifacedigitalio


    Und wer möchte auch für Python 3.5

    Bash
    sudo pip3 install pifacecommon
    sudo pip3 install pifacedigitalio


    Nun müssen wir die spi.py noch anpassen.

    Bash
    cd /usr/local/lib/python2.7/dist-packages/pifacecommon
    sudo nano spi.py

    Und zwar suchen wir uns die Zeilen:

    Python
    # create the spi transfer struct
            transfer = spi_ioc_transfer(
                tx_buf=ctypes.addressof(wbuffer),
                rx_buf=ctypes.addressof(rbuffer),
                len=ctypes.sizeof(wbuffer)
            )

    und ersetzen sie durch:


    Python
    # create the spi transfer struct
            transfer = spi_ioc_transfer(
                tx_buf=ctypes.addressof(wbuffer),
                rx_buf=ctypes.addressof(rbuffer),
                len=ctypes.sizeof(wbuffer),
                speed_hz=ctypes.c_uint32(15000)
            )

    Es wird ein Komma und "speed_hz=ctypes.c_uint32(15000)" eingefügt, damit wird die SPI Geschwindigkeit angepasst.




    Wer das auch für Python 3.5 machen möchte macht das Gleiche nur hier:

    Bash
    cd /usr/local/lib/python3.5/dist-packages/pifacecommon
    sudo nano spi.py

    Nun sollte das PiFace mit DoorPi laufen. :thumbup:

  • Hallo MyFlay,


    bin zwar noch nicht mit meinem DoorPi inkl. Piface2 von Jessie auf Stretch umgezogen. (never touch a running system..)
    Habe das aber mal an einem zweiten Raspi inkl. Piface2 getestet.


    Läuft sehr gut.


    Damit wird dann z. B. das Relais K0 angesteuert:

    Code
    gpio -p write 200 1

    Danke für die ausführliche Beschreibung. :thumbup:

  • hmmm, habe heute auch ein Update von Debian 8.x auf Debian 9.x gemacht und seit dem funktioniert leider bei mir auch Doorpi nicht mehr weil er der Meinung ist das er kein Piface2 board findet.


    Jedenfalls gibt es bei mir weder den Ordner

    Code
    /usr/local/lib/python2.7/dist-packages/pifacecommon

    (es gibt den Ordner pifacecommon nicht) und auch keine spi.py Datei irgendwo anders.



    Hat dazu noch jemand Ideen?

  • Code
    pi@doorpi:~/py-spidev $ sudo pip install pifacedigitalio
    Requirement already satisfied: pifacedigitalio in /usr/local/lib/python2.7/dist-packages/pifacedigitalio-3.0.5-py2.7.egg
    pi@doorpi:~/py-spidev $ sudo pip install pifacecommon
    Requirement already satisfied: pifacecommon in /usr/local/lib/python2.7/dist-packages/pifacecommon-4.1.2-py2.7.egg

    Hatte ich schon gemacht, bringt weder das Verzeichnis noch das spi.py file.

  • Danke @Wal damit habe ich jetzt das spi.py file bekommen.


  • Hallo leute,


    nachdem ich die pifacecommon 6 mal deinstalliert und neu installiert habe war die pifacecommon/spi.py dann endlich auch vorhanden...


    wann muss das piface auf den ras gesetzt werden? es steckt bei mir die ganze zeit drauf und es tut sich einfach nix,
    doorpi web ist nicht zu erreichen...


    sobald ich es herunter nehme ist doorpi zu erreichen...


    muss es vorher in der doorpi.ini konfiguriert werden?


    der gerät bring mich noch zum verzweifeln :)


    jetzt bekomme ich
    pi@raspberrypi:~ $ python /usr/share/doc/python-pifacedigitalio/examples/blink.py


    Code
    Traceback (most recent call last):  File "/usr/share/doc/python-pifacedigitalio/examples/blink.py", line 9, in <mo                                                                                        dule>    pifacedigital = pifacedigitalio.PiFaceDigital()  File "/usr/local/lib/python2.7/dist-packages/pifacedigitalio/core.py", line 82                                                                                        , in __init__    self.init_board()  File "/usr/local/lib/python2.7/dist-packages/pifacedigitalio/core.py", line 10                                                                                        2, in init_board    self.iocon.value = ioconfig  File "/usr/local/lib/python2.7/dist-packages/pifacecommon/mcp23s17.py", line 2                                                                                        38, in value    self.chip.write(v, self.address)  File "/usr/local/lib/python2.7/dist-packages/pifacecommon/mcp23s17.py", line 1                                                                                        63, in write    self._pyver_write(data, address)  File "/usr/local/lib/python2.7/dist-packages/pifacecommon/mcp23s17.py", line 1                                                                                        71, in _py2write    self.spisend(chr(ctrl_byte)+chr(address)+chr(data))  File "/usr/local/lib/python2.7/dist-packages/pifacecommon/spi.py", line 69, in                                                                                         spisend    speed_hz=ctypes.c_unit32(15000)AttributeError: 'module' object has no attribute 'c_unit32'


    Grüsse Schweizer

  • Hey,


    bin jetzt mit Doorpi auf Stretch umgezogen, Instalation und doorpi laufen.
    Nur das Piface2 macht mich gerade ratlos und ich sehe mich schon 2 tage im Internet zu verbringen bis es läuft........


    Code
    Damit wird dann z. B. das Relais K0 angesteuert:
    Quellcode
        gpio -p write 200 1


    Das klappt und das Relais schaltet.


    Nur wie bringe ich es in meine bisherigen doorpi.ini unter, bzw. tausche die Befehle aus?


    hier die bisherigen Befehle:


    EDIT:



    Sorry, klappt jetzt einwandfrei - hatte falsche ini Einträge, es muss nichts angepasst,ausgetauscht werden......
    Lasse das jetzt hier so stehen - eventuell hat in Zukunft jmd die selbe Leere im Kopf ;)
    Der Doorpi.ini Auszug oben läuft so wie er ist.

  • Hab leider nur ein PiFace-Modul in meinem Produktiv-DoorPi. Daher wäre das Risiko eines Crashes nach einer Umstellung auf Raspbian Buster recht groß.


    Okay, Image ist vorhanden, aber trotzdem. ;)


    Kurze Frage. Hat schon wer seinen DoorPi inkl. PiFace Digital 2 Modul unter Raspbian Buster laufen? Genügen dafür die eingangs beschriebenen Änderungen für Stretch analog?


    Gruß,


    Thorsten

  • Also ich hab das piface auf Buster laufen, ohne irgendwelche Anpassungen. Bin aber auch von doorpi weg, aufgrund der alten Python Version die bald nicht mehr unterstützt wird. Hab jetzt nur noch ein Klingelsignal, Türöffner und Livestream Von der Haustür. Sprechen hab ich aufgegeben.

  • hab das mit baresip auch probiert. @Wal hat da was tolles gebaut, aber da ich ein android tablet an der wand haben wollte mit visualisierung und allem, passte das aufpoppen einer app nicht in das konzept. ein sip client der im browser läuft wäre super. könnte man dann in iobroker oder ähnlichem einbauen. verwende aber die habpanel oberfläche für den iobroker, da mir das vis zu altbacken aussieht.
    aber schauen was die zukunft bring. vlt gibts ja bald was mit sip im browser oder so x will, rtsp im browser. derweil sehe ich zumindest aus dem 2. stock wer unten klingelt und muss nicht immer aus der wohnung laufen und zum fenster rausschauen.

  • So,


    seit dem letzten update/uprade unter Raspbian Jessie bzw. Stretch erhalte ich leider die folgende Meldung für raspimjpeg:



    Dadurch kann die Kamera nicht mehr in mein RPi_Cam_Web_Interface eingebunden werden.



    Unter Raspbian Buster funktioniert es, da dort anscheinend GLIBC_2.28 vorhanden ist.


    Mun muss ich wohl meinen DoorPi auf Buster neu installieren. Oder kennt jemand einen Workaround?


    Gruß,


    Thorsten

  • Habe meinen Raspi jetzt mal komplett ausgebaut und ihn mit Buster Lite neu aufgesetzt. Da läuft dann auch das RPi_Cam_Web_Interface wieder. Jetzt muss ich aber erst mal sehen, ob mein DoorPi mit allen ursprünglichen Einstellungen und meinen zahlreichen Shellskripten zum Versenden der Push-Nachrichten und zum Austausch mit der HomeMatic noch reibungslos funktioniert. Und natürlich, ob das PiFace Digital 2 Modul weiterhin problemlos unterstützt wird. Aber die ersten Schritte sind getan.


    EDIT: Scheint wieder alles zu funktionieren. Das PiFace-Modul wurde auf jeden Fall ohne weitere Maßnahmen (außer natürlich dem Aktivieren von SPI in raspi-config) unter Buster Lite erkannt und eingebunden.

  • Hallo

    Ich brauche eure Hilfe. Mit der Installation und dem Ändern der spi.py hat alles gut geklappt.

    Leider kommt folgender Fehler nach ausführen von:

    python /usr/share/doc/python-pifacedigitalio/examples/blink.py


    python: can't open file '/usr/share/doc/python-pifacedigitalio/examples/blink.py': [Errno 2] No such file or directory


    Der Ordner python-pifacedigitalio wurde nicht angelegt.

    Bitte um Rat.


    Gruß

    Rafael

  • Hast du den Fehler gefunden?

    Nach einem Update kommt dieser Fehler bei mir auch

  • Bin weiter gekommen.

    Der Pfad von pifacedigitalio hat sich anscheinend in den letzten Wochen verändert. Dadurch reagiert mein Piface überhaupt nicht mehr. Wie tot.

    Die blink.py Datei schaltet schon noch, allerdings nicht mehr unter dem bekannten Pfad.


    Was bedeutet das nun für doorpi? Muss das keyboard umgeschrieben werden o. Ä.?