Novedad: el cortafuegos de IA supervisa toda la plataforma y explica cada incidente con palabras sencillas. Vea cómo funciona

¿Puedo encender el relé de mi calefactor en casa desde el móvil mientras estoy en el campus?

¿Puedo encender el relé de mi calefactor en casa desde el móvil mientras estoy en el campus?

Resuelto 6 4

Traducido del English por IA ·

Primera publicación, perdón si este no es el lugar adecuado. Tengo una Pi Zero 2 W en casa con una placa de relés en GPIO17 que enciende un pequeño calefactor de aceite en mi habitación (sí, es un relé adecuado para ello, mi padre lo comprobó). Ya envía la temperatura de la habitación a Hermetry cada minuto con paho-mqtt.Lo que quiero: cuando salga de la biblioteca a las 21:00, encender el calefactor desde el móvil para que la habitación esté caliente cuando llegue. Encontré la aplicación de Hermetry, pero parece que es para notificaciones. ¿Puede también encender cosas? ¿O necesito abrir un puerto en el router y ejecutar una página web en la Pi? No sé muy bien cómo hacerlo de forma segura.

♥ 2

Traducido del English por IA ·

El reenvío de puertos en el router funciona, lo hice una vez para una cámara. Solo elige un puerto alto.

Measure twice, poll once.
♥ 1

Traducido del English por IA ·

Por favor, no expongas una Pi a Internet con un «puerto alto». Tu Pi ya mantiene una conexión saliente con el broker, puedes enviar cosas por ahí.

♥ 0

Traducido del English por IA ·

Ah, entonces la nube puede responderle al dispositivo? ¿Y cómo entra el teléfono en todo esto?

♥ 0

Traducido del English por IA ·

Según la documentación, la aplicación móvil sirve para notificaciones y aprobaciones. Para el control, la consola web en el navegador del móvil funciona bien; así es como manejo la bomba de mi huerto.Qué configurar:

  1. En el perfil de dispositivo de la Pi, pestaña Commands, añade un comando, por ejemplo el método heater.set, con un parámetro Sí/No on, nivel Basic. Las placas solo envían comandos de nivel Basic.
  2. Crea un panel, añade un control Switch, acción Run a command, elige la Pi y heater.set, y vincula el estado actual a una clave que reporte la Pi (por ejemplo heater_on como 0/1).
  3. En la Pi:
def on_connect(c, u, f, rc):
    c.subscribe("v1/rpc/req/+", qos=1)

def on_message(c, u, msg):
    req_id = msg.topic.rsplit("/", 1)[1]
    body = json.loads(msg.payload)
    if body.get("method") == "heater.set":
        on = bool(body["params"]["on"])
        GPIO.output(17, on)
        c.publish("v1/telemetry", json.dumps({"heater_on": int(on)}), qos=1)
        c.publish(f"v1/rpc/res/{req_id}", json.dumps({"ok": True}), qos=1)

No se abre ningún puerto. Guarda la placa en la pantalla de inicio del móvil como marcador y funcionará prácticamente como una aplicación. Para las alertas (habitación demasiado fría, etc.), la aplicación envía notificaciones push al teléfono, o puedes usar el correo electrónico o una aplicación de chat vinculada.

Solución aceptada♥ 1

Traducido del English por IA ·

¡funciona!!! Probado desde el autobús. Una cosa que me hizo tropezar: primero creé el comando como Privileged porque conmuta la red eléctrica, y el interruptor de la placa decía que no se puede enviar desde una placa. Lo cambié a Basic y funcionó. Además, ahora me suscribo en on_connect como escribiste; antes dejaba de funcionar después de que el Wi-Fi de la Pi se cortara un momento.

♥ 1

Traducido del English por IA ·

Tienes razón, la conexión saliente es más limpia. Retiro mi consejo sobre el reenvío de puertos.

Measure twice, poll once.
♥ 2
Viendo 7 entradas – de la 1 a la 7 (de un total de 7)
  • Debes estar registrado para responder a este debate.

Únete a la conversación

Inicia sesión para preguntar y responder, dar me gusta a las publicaciones útiles y marcar la respuesta que resolvió tu problema. Cada aportación suma puntos y niveles.

Compartir