Probleme mit dem PiFace digital - Ausgänge schalten um, wenn ich anderen Pin ändere

  • Hey Leute,


    ich habe ein kleines Problem mit meinem PiFace Digital 1, wobei ich denke für mein Problem ist es egal welche Version es sich handelt.


    Aber nun zum Problem, wenn ich mittels meines Scriptes einen z.B. den Ausgang 1 auf High schalte und dann beim zweiten Aufruf den Ausgang 2 auf High schalten möchte, schaltet er plötzlich den Ausgang 1 erst auf Low, obwohl ich diesen in meinem Code garnicht anspreche. Kann mir da ggf. jemand helfen?


    Mein Code läuft eigentlich wie folgt ab:


    1. Ich starte den Code mit Parameterübergabe (Ausgang und Zustand wählen)
    2. Das Script führt entsprechend aus (ist zumindest so geplant)
    3. Das Script beendet sich.


    Aber hier erstmal der Code:



    Ich hoffe nicht, dass ich nun bei jedem Aufruf, die Zustände irgendwie Speichern muss, dass er jedes mal beim "neuaufruf" alle 8 Zustände "ändert" oder beibehält.



    Michael

    Der Raspberry Pi ist schon ein schönes Spielzeug mit dem man einiges anfangen kann.


    :angel: :wallbash:

    Edited once, last by RaspiDo ().

  • Okay,


    gibt es den ggf. eine Chance wie ich das Problem "umgehen" kann? Oder sonst eine chance das in Griff zu bekommen?


    Oder kann mir da jemand bei Helfen? Auf dem ersten Blick fällt mir erstmal so nichts ein, wie ich das umgehen kann.



    Michael

    Der Raspberry Pi ist schon ein schönes Spielzeug mit dem man einiges anfangen kann.


    :angel: :wallbash:

    Edited once, last by RaspiDo ().

  • Hey,


    nach etwas grübel ist mir eine Idee eingefallen, nur weiß ich da noch nicht wirklich, wie ich diese umsetzen kann. Bzw. habe in dem Bereich noch keine wirkliche Erfahrung gesammelt.


    Aber ich versuch es mal als Leihe zu erklären, auf welche Idee ich gekommen bin. Vielleicht wäre da ein brauchbarer Ansatz bei.


    Meine Idee wäre folgende, ich splitte die Steuerung des PiFace in 2 Scripte. Zum einen in den Server Teil, welcher für die eigentliche Steuerung der Pins zuständig ist (also auch die Initialisierung über nimmt und eigentlich dauernd läuft) und zum anderen der Client Teil, welcher die Steuerbefehle übergibt. Man kann ja da auf eine einfache Kommunikation wie Telnet oder so zurück greifen, ist ja nur im LAN. Bräuchte da nur etwas Hilfe, da ich bislang mit Serversockets und co noch nich gearbeitet habe in Eigenentwicklung. Fertige Scripte Modifizieren ausgenommen, was aber nicht immer ganz zu dem Ergebnis geführt hat, wie man wollte.


    Wäre dies ggf. ein möglicher Ansatz? Oder denke ich wieder etwas sehr kompliziert?




    Michael

    Der Raspberry Pi ist schon ein schönes Spielzeug mit dem man einiges anfangen kann.


    :angel: :wallbash:

  • Hi; RaspiDo;


    Ich habe mit meiner PiFratze die gleiche Problematik und habe irgendwann resigniert, deshalb würde mich eine richtige Lösung ebenfalls interressieren.
    Meine Erfahrung:


    - Ich lasse das p.init() beim Systemstart über ein script einmal aufrufen.
    - Dann ruft ein cronjob alle fünf Minuten das eigentliche Steuerscript auf (dieses enthält kein p.init() !)
    - Selbst dann, wenn sich der Schaltzustand high nicht verändert, werden trotzdem die Ausgänge kurz unterbrochen!
    Meine Krücke zur Problem-Ignorierung: Ich puffere das über ein RC-Glied ab.


    Da Ich nur zwei relevante Ausgänge schalte, kann Ich damit leben. Aber lieber wäre es mir natürlich, eine ununterbrochene Versorgung der angeschlossenen Relais zu haben.


    Bevor Du also mühsame Umgehungsscripte bastelst, die das eigentliche Problem gar nicht beseitigen: Checke mal, ob das bei dir ebenfalls reproduzierbar ist (--> Ausgang wird beim Scriptduchlauf nicht auf high gehalten, obwohl es keine Änderung des Schaltstatus gibt.


    rasray

  • So Leute,


    ich habe mal etwas hin und her gebastelt und eine mögliche Lösung gebaut, die nach ersten Tests funktioniert. Ausgeweitete Tests müssen natürlich noch folgen. Aber der Anfang ist gemacht.


    Hier erstmal die Codes:



    Den Client wie folgt aufrufen: python udpclient.py ta:1 (ta:1 bildet den Ort und Zustand)


    Hab es ein wenig getestet. Also Steckdosen unterschiedlich schalten und so und es lief alles wie erhofft.


    Ich weiß UDP ist nicht immer die erste Wahl, aber ich bin noch am üben und da fängt man denk ich erstmal mit dem leichtesten an.




    Michael

    Der Raspberry Pi ist schon ein schönes Spielzeug mit dem man einiges anfangen kann.


    :angel: :wallbash:

    Edited once, last by RaspiDo ().

  • Ich möchte dir jetzt nicht den Spass verderben, aber ich hoffe dir ist klar dass du mit dem PiFace Digital 1 keine Steckdosen schalten solltest, weil es dafür ganz einfach nicht spezifiziert ist! Die Entwickler des Boards haben total versagt, es liegt am Layout der Platine (Anfängerfehler, denke ich). Die Relais könnten die Spannungen und Ströme schon schalten. Aber die galvanische Trennung zum Netz ist auf dem Board nicht den Normen entsprechend ausgeführt, dementsprechend die Spezifikation. Die Normen haben in dieser Hinsicht ihren Sinn, im Extremfall ist nicht nur dein PiFace Digital 1 kaputt sondern auch der Raspberry Pi.
    Ich besitze selbst ein PiFace Digital 1, aber ich setze es aus den genannten Gründen nicht für Netzspannungen ein.

  • Das ich damit nicht direkt 230V schalten soll ist mir schon klar. Hätte ich ggf. erwähnen sollen.


    Mein Aufbau sieht wie folgt aus: Raspberry Pi steuert Piface an, das PiFace steuert über die Ausgänge (8 an der Zahl) externe Finderrelais an, welche mit einer Spulenspannung von 5V DC funktionieren. Und erst diese schalten die 230V. So ist eine Trennung zwischen 230V und der Kleinspannung des PiFace geregelt. Und selbst über diese China Relaismodule würde ich keine 230V steuern. Aber das ist eine andere Sache.


    Aber zum Thema der Steckdosen, bin gelernter Elektriker (Muss ich unbedingt mal im Profil eintragen). Also weiß ich da was ich tue. Meine Finderrelais können 230V / 8A maximal schalten. Diese sind aber mit 6A Automaten ausgestattet, so verhindere ich das mehr Strom drüber geht als erlaubt. Brauch ich mal mehr als 6A, werde ich einfach ein Installationschütz hinterschalten und gut.


    Aber über das andere PiFace digital steuere ich über externe Relais bereits schon paar Monate meine Rollos im Haus. Die Steckdosen sollen nun noch dazu kommen.




    Michael

    Der Raspberry Pi ist schon ein schönes Spielzeug mit dem man einiges anfangen kann.


    :angel: :wallbash: