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 :)
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.
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?
Habe es mal ausprobiert. Kann es aber nicht testen.
Was noch installiert werden muss:
pip install paho-mqtt
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.
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?