MPR121 kapazitive Sensoren an I2C per telnet mit FHEM verbinden

Begonnen von betateilchen, 20 März 2017, 15:42:38

Vorheriges Thema - Nächstes Thema

betateilchen

Im Anhang ein kleines python-Skript, das einen an I2C angeschlossenen MPR121 mit bis zu 12 möglichen Sensor-pads mit FHEM verbindet.

In FHEM ist dazu einfach ein dummy notwendig, dem man mit dem Attribut readingList die readings pad0 ... pad11 zuweist. Das python skript setzt per telnet die readings jedes berührten (oder losgelassenen) pads auf den Wert touched oder released. Per notify kann dann eine Aktion ausgelöst werden.

Im angehängten Skript ist die gesamte Installation in den kommentierten Zeilen enthalten.

Vielleicht kann das ja ausser mir noch jemand gebrauchen :)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Der MPR121 ist ziemlich hyperaktiv. Man darf vermutlich die Zuleitung zur Elektrode nicht allzu lang machen, sonst triggert der Sensor unmotiviert "touched". Aber im Moment habe ich keine Lust, das Bücherregal nochmal auseinander zu bauen. Da hab ich das Verhalten lieber in FHEM per sequence entprellt. Der Sensor muss jetzt zweimal kurz hintereinander berührt werden, um den Schaltvorgang auszulösen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Rince

Ohne den MPR121 benutzt zu haben:
Evtl geht die Genauigkeit weiter rauf, wenn du hinter deinen kapazitiven Oberflächen (Alufolie?) noch eine Folie klebst (laminiert) und die an GND anschließt.

Ansonsten finde ich dein Skript spannend. Ich habe es aber mangels MPR121 nicht getestet.

Hättest du was dagegen wenn ich es von Telnet auf MQTT umstelle?
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Rince

Habe es mal ausprobiert. Kann es aber nicht testen.

Was noch installiert werden muss:
pip install paho-mqtt
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

betateilchen

Zitat von: Rince am 20 März 2017, 22:18:40
Evtl geht die Genauigkeit weiter rauf, wenn du hinter deinen kapazitiven Oberflächen (Alufolie?) noch eine Folie klebst (laminiert) und die an GND anschließt.

Ein Blick ins Datenblatt zeigt, dass das nicht funktionieren wird.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Rince

Liebes Betateilchen,

ich gestehe ich habe das Datenblatt vorher nicht gelesen. Und beim lesen nicht verstanden :)
Kannst du mir sagen, aus welchem Sachverhalt du das schließt?
(Ich hatte früher solche Dinger mit nem Arduino gebastelt, da wirkte eine zusätzliche Folie hinten dran Wunder, war aber zugegeben eine ziemlich windige Angelegenheit)

Noch viel lieber hätte ich allerdings, wenn du mir sagst ob der modifizierte Python Code so funktioniert :)
Ich würde gerne was dazu lernen.

Jetzt sollte es stimmen:
FINALTOPIC = TOPIC + "pad" + str(i)

TOPIC = "zuHause/Topic1/Topic2/Topic3/
pad
3 (als Besipiel für i)

FINALTOPIC  "zuHause/Topic1/Topic2/Topic3/pad3"


In der Schreibweise die du verwendet hast, wäre es:
FINALTOPIC = TOPIC + 'pad{0}'.format(i)
richtig?
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)