Autor Thema: MPR121 kapazitive Sensoren an I2C per telnet mit FHEM verbinden  (Gelesen 395 mal)

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 13521
  • Das "S" in "IoT" steht für "Security"
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 :)
-----------------------
Nächster Hamburg-Stammtisch: 15.12.2017

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 13521
  • Das "S" in "IoT" steht für "Security"
Antw:MPR121 kapazitive Sensoren an I2C per telnet mit FHEM verbinden
« Antwort #1 am: 20 März 2017, 19:40:51 »
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.
-----------------------
Nächster Hamburg-Stammtisch: 15.12.2017

Offline Rince

  • Hero Member
  • *****
  • Beiträge: 2639
Antw:MPR121 kapazitive Sensoren an I2C per telnet mit FHEM verbinden
« Antwort #2 am: 20 März 2017, 22:18:40 »
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)

Offline Rince

  • Hero Member
  • *****
  • Beiträge: 2639
Antw:MPR121 kapazitive Sensoren an I2C per telnet mit FHEM verbinden
« Antwort #3 am: 21 März 2017, 08:49:34 »
Habe es mal ausprobiert. Kann es aber nicht testen.

Was noch installiert werden muss:
pip install paho-mqtt
« Letzte Änderung: 22 März 2017, 09:41:36 von Rince »
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)

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 13521
  • Das "S" in "IoT" steht für "Security"
Antw:MPR121 kapazitive Sensoren an I2C per telnet mit FHEM verbinden
« Antwort #4 am: 21 März 2017, 09:20:08 »
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.
-----------------------
Nächster Hamburg-Stammtisch: 15.12.2017

Offline Rince

  • Hero Member
  • *****
  • Beiträge: 2639
Antw:MPR121 kapazitive Sensoren an I2C per telnet mit FHEM verbinden
« Antwort #5 am: 21 März 2017, 16:41:20 »
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?
« Letzte Änderung: 22 März 2017, 19:08:35 von Rince »
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)