PiFace

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

Vorheriges Thema - Nächstes Thema

betateilchen

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

Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

betateilchen

vielleicht hast Du auch in Deinem Leben einfach noch nie eine wirklich perfekt funktionierende Telefonanlage erlebt ;)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

daschauher

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

Puschel74

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
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

daschauher

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

daschauher

#81
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

klaus.schauer

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.

betateilchen

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

betateilchen

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.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

klaus.schauer

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.

klaus.schauer

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

betateilchen

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

klaus.schauer

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.

betateilchen

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