Raspberry + fim de curso

Olá pessoal.

Tenho um raspberry com um fim de curso que me indica se uma porta está aberta ou não.
Este script, tal como este Alarme Domestico C/ Raspberry já estiveram em funcionamento no HA, isto com uma versão do HA mais antiga. Depois ficou encostado porque já não precisava. Agora tenho novamente sitio para o instalar.

O problemas é que já não me mostra o estado no HA.

Segue o script, será que falta algum dado do mqtt?:

porta.py

import RPi.GPIO as GPIO
import time
import os
from datetime import datetime
from time import gmtime, strftime  #importamos gmtime y strftime
import paho.mqtt.client as mqtt

Zonas = {}
Zonas["Porta_Oficina"] = 7

client = mqtt.Client("POficina1")
client.connect ("172.16.40.50")

for k in Zonas:

        GPIO.setmode(GPIO.BCM) # Broadcom pin-numbering scheme
        GPIO.setup(Zonas[k], GPIO.IN, pull_up_down=GPIO.PUD_UP) # Button pin set as input w/ pull-up


def check_motion(pin, zona):
        if GPIO.input(pin): # button is released
                timex = str(datetime.now())
                time.sleep(0.5)
                print "  |   %s   |   Porta Aberta   |"% (zona)
                client.publish ("oficina/sensor/porta","Porta Aberta")
        else:
                print "  |   %s   |   Porta Fechada   |"% (zona)
                client.publish("oficina/sensor/porta","Porta Fechada")
                time.sleep(0.5)
try:
    while(1):
        for k in Zonas:
                check_motion(Zonas[k], k)
        time.sleep(0.5)

except KeyboardInterrupt: # If CTRL+C is pressed, exit cleanly:
    GPIO.cleanup() # cleanup all GPIO

Obrigado

No HA tenho esta info:

Depois do erro acima fiz esta alteração, user e pass do mqtt.
MAs mesmo assim, sem dados a chegar ao HA:


import RPi.GPIO as GPIO
import time
import os
from datetime import datetime
from time import gmtime, strftime  #importamos gmtime y strftime
import paho.mqtt.client as mqtt

Zonas = {}
Zonas["Porta_Oficina"] = 7

client = mqtt.Client("POficina1")
#client.connect ("172.16.40.50")

broker = '172.16.40.50'
port = 1883
username = 'mqttsensor'
password = 'mqttsensor'

for k in Zonas:

        GPIO.setmode(GPIO.BCM) # Broadcom pin-numbering scheme
        GPIO.setup(Zonas[k], GPIO.IN, pull_up_down=GPIO.PUD_UP) # Button pin set as input w/ pull-up


def check_motion(pin, zona):
        if GPIO.input(pin): # button is released
                timex = str(datetime.now())
                time.sleep(0.5)
                print "  |   %s   |   Porta Aberta   |"% (zona)
                client.publish ("oficina/sensor/porta","Porta Aberta")
        else:
                print "  |   %s   |   Porta Fechada   |"% (zona)
                client.publish("oficina/sensor/porta","Porta Fechada")
                time.sleep(0.5)
try:
    while(1):
        for k in Zonas:
                check_motion(Zonas[k], k)
        time.sleep(0.5)

except KeyboardInterrupt: # If CTRL+C is pressed, exit cleanly:
    GPIO.cleanup() # cleanup all GPIO

config.yaml

mqtt:
  sensor:
    name: Sensor De Porta Oficina 
    state_topic: "oficina/sensor/porta"

Alguma ideia como contornar isto?


Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade