PiFace

Begonnen von cornelius fillmore, 09 Juni 2013, 08:21:17

Vorheriges Thema - Nächstes Thema

betateilchen

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
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Fresh.G

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

klaus.schauer

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.

cmburn

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

klaus.schauer

#94
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.

barawer

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

fidel

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
Fhem 5.6 auf Cubietruck,CUL,CUL_TCM97001,FritzBox7390,HMLAN,CUL_HM_HM_OU-16LED,CUL_HM_HM_SEC_SC,CUL_HM_HM_LC_SW4,CUL_HM_HM_RT_DN,HUEBridge,HUEDevice,Panstick,Panstamp (binouts,rgddriver mit dht22),PHTV,Yamaha-AVR,Withings,ELV-IPS, etc...

cmburn

#97
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.



klaus.schauer

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.

cmburn

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...


klaus.schauer

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 ""

klaus.schauer

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.

MartinD

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 

Tobi82m

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

MaJu

@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

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!
Erlebnisreiche Grüße aus Leipzig!