MQTT mit python am Raspberry
Verfasst: Sonntag 27. Dezember 2020, 18:07
Hallo,
ich möchte an einem Raspberry Zero mehrere Bewegungsmelder anschließen und eine Bewegung per MQTT an einen Broker weiterleiten.
Dazu habe ich ein Beispiel-Script umgebaut, mit einem Bewegungsmelder klappt es:
************************************************************************************
import RPi.GPIO as GPIO
import time
import datetime
import os
#Board Mode: Angabe der GPIO-Nummer
GPIO.setmode(GPIO.BCM)
#GPIO Pin definieren fuer den Dateneingang vom Sensor
PIR_GPIO = 14
GPIO.setup(PIR_GPIO, GPIO.IN)
def MOTION(PIR_GPIO):
# Bewegung erkannt
os.system('mosquitto_pub -h 192.168.0.100 -m true -t /smarthome/Bewegungsmelder1 -u admin -P kennwort')
time.sleep(1)
os.system('mosquitto_pub -h 192.168.0.100 -m false -t /smarthome/Bewegungsmelder1 -u admin -P kennwort')
try:
GPIO.add_event_detect(PIR_GPIO, GPIO.RISING, callback=MOTION)
while 1:
time.sleep(60)
except KeyboardInterrupt:
GPIO.cleanup()
************************************************************************************
Wie muss ich das Scipt jetzt umbauen, um mehrere Bewegungsmelder zu überwachen und jeweils eine andere MQTT-Nachricht zusenden?
Bewegungsmelder1 an GPIO14 ... Nachricht: /smarthome/Bewegungsmelder1 auf "true" ... nach einer Sekunde auf "false"
Bewegungsmelder2 an GPIO15 ... Nachricht: /smarthome/Bewegungsmelder2 auf "true" ... nach einer Sekunde auf "false"
Bewegungsmelder3 an GPIO16 ... Nachricht: /smarthome/Bewegungsmelder3 auf "true" ... nach einer Sekunde auf "false"
Ich bin blutiger python-Newbie ;-(( .... ich weis leider nicht, wie ich das umsetzen muss.
Gibt es jemand der mir helfen kann?
Vielen Dank.
Viele Grüße
Frank
ich möchte an einem Raspberry Zero mehrere Bewegungsmelder anschließen und eine Bewegung per MQTT an einen Broker weiterleiten.
Dazu habe ich ein Beispiel-Script umgebaut, mit einem Bewegungsmelder klappt es:
************************************************************************************
import RPi.GPIO as GPIO
import time
import datetime
import os
#Board Mode: Angabe der GPIO-Nummer
GPIO.setmode(GPIO.BCM)
#GPIO Pin definieren fuer den Dateneingang vom Sensor
PIR_GPIO = 14
GPIO.setup(PIR_GPIO, GPIO.IN)
def MOTION(PIR_GPIO):
# Bewegung erkannt
os.system('mosquitto_pub -h 192.168.0.100 -m true -t /smarthome/Bewegungsmelder1 -u admin -P kennwort')
time.sleep(1)
os.system('mosquitto_pub -h 192.168.0.100 -m false -t /smarthome/Bewegungsmelder1 -u admin -P kennwort')
try:
GPIO.add_event_detect(PIR_GPIO, GPIO.RISING, callback=MOTION)
while 1:
time.sleep(60)
except KeyboardInterrupt:
GPIO.cleanup()
************************************************************************************
Wie muss ich das Scipt jetzt umbauen, um mehrere Bewegungsmelder zu überwachen und jeweils eine andere MQTT-Nachricht zusenden?
Bewegungsmelder1 an GPIO14 ... Nachricht: /smarthome/Bewegungsmelder1 auf "true" ... nach einer Sekunde auf "false"
Bewegungsmelder2 an GPIO15 ... Nachricht: /smarthome/Bewegungsmelder2 auf "true" ... nach einer Sekunde auf "false"
Bewegungsmelder3 an GPIO16 ... Nachricht: /smarthome/Bewegungsmelder3 auf "true" ... nach einer Sekunde auf "false"
Ich bin blutiger python-Newbie ;-(( .... ich weis leider nicht, wie ich das umsetzen muss.
Gibt es jemand der mir helfen kann?
Vielen Dank.
Viele Grüße
Frank