view net.py @ 2:3fe178258a80 default tip

sysfont
author drewp@bigasterisk.com
date Thu, 11 May 2023 15:07:22 -0700
parents 5a93179ccae9
children
line wrap: on
line source

import network
import secrets
from umqttsimple import MQTTClient


class Net:
    def connect_wifi(self, status):
        status(1, "wifi: ")
        station = network.WLAN(network.STA_IF)
        station.active(True)  # activate the interface
        status(1, "wifi: on")

        station.connect(secrets.ssid, secrets.wifi_pass)
        status(1, "wifi: on/connect")

        while station.isconnected() == False:
            pass

        status(1, "wifi: on/connect/ok")

    def connect_mqtt(self, status):
        client_id = '7key'
        status(2, "mqtt: ")
        self.client = MQTTClient(client_id, secrets.mqtt_broker)

        self.client.set_callback(self.on_subscribed_msg)
        status(2, "mqtt: connect")
        self.client.connect()
        status(2, "mqtt: connect/ok")

    def subscribe(self, topic, cb):
        self.client.subscribe(topic)

    def on_subscribed_msg(self, topic, msg):
        print('mqtt ->', (topic, msg))
        if topic == b'notification' and msg == b'received':
            print('ESP received hello message')

    def mqtt_poll(self):
        self.client.check_msg()

    def send(self, topic, msg):
        self.client.publish(topic.encode('ascii'), msg.encode('ascii'))