def rotate(self, valve_open):
     ## TODO: Use timer to turn off motor
     status_led.fast_blink()
     for i in range(1000): ## try for 10 sec
         if valve_open == (self.contact.value() == config.VALVE_OPEN_VAL):
             break
         self.motor.on()
         sleep_ms(10)
     self.motor.off()
     if valve_open:
         status_led.on()
     else:
         status_led.off()
 def run(self, state):
     print(wifi.uid())
     status_led.slow_blink()
     wifi.connect(secrets.WIFI_NAME, secrets.WIFI_PASSWORD)
     status_led.fast_blink()
     if reset_cause() == DEEPSLEEP_RESET:
         self.mqtt.do_pub_cfg = False
         self.mqtt.connect()
     else:
         self.mqtt.try_pub_cfg()
     self.pub_state(None)
     status_led.off()
     self.mqtt.wait(led=status_led)
Esempio n. 3
0
    def __init__(self, state):
        print(wifi.uid())

        if reset_cause() != DEEPSLEEP_RESET:
            status_led.slow_blink()
        wifi.connect(secrets.WIFI_NAME, secrets.WIFI_PASSWORD)
        status_led.off()

        mqtt = MQTT(config.NAME, secrets, uid=UID)

        opt = dict(exp_aft=config.FREQ * 2.5)

        if 'temp' in state:
            from home_assistant.sensors.temperature import Temperature
            mqtt.add('Temp', Temperature, **opt).set_state(state['temp'])

        if 'humid' in state:
            from home_assistant.sensors.humidity import Humidity
            mqtt.add('Humid', Humidity, **opt).set_state(state['humid'])

        if 'lux' in state:
            from home_assistant.sensors.illuminance import Illuminance
            mqtt.add('Lux', Illuminance, **opt).set_state(state['lux'])

        if 'analog' in state:
            mqtt.add('Analog', Sensor, unit="%", icon="mdi:gauge",
                     **opt).set_state(state['analog'])

        if 'battery' in state:
            from home_assistant.sensors.battery import Battery
            mqtt.add('Battery', Battery, key='bat',
                     **opt).set_state(state['battery'])
            mqtt.set_attr('battery', state['battery'])

        mqtt.set_attr("freq", config.FREQ)

        if wifi.is_connected():
            if reset_cause() != DEEPSLEEP_RESET:
                status_led.fast_blink()
            mqtt.connect()
            sleep(1)
            mqtt.pub_state()
            status_led.off()
            sleep(5)
            mqtt.discon()
            sleep(5)
Esempio n. 4
0
    def __init__(self, state):
        self.update_on = ('count', 'battery_level')

        print(wifi.uid())

        status_led.slow_blink()
        wifi.connect(secrets.WIFI_NAME, secrets.WIFI_PASSWORD)
        status_led.off()

        self.mqtt = MQTT(config.NAME, secrets)

        counter = self.mqtt.add(
            'Counter',
            Sensor,
            unit=config.UNIT,
            icon='mdi:counter',
        )

        if config.BATT:
            battery = self.mqtt.add('Battery', Battery)

        status_led.fast_blink()
        state.mqtt = self.mqtt.try_pub_cfg()
        status_led.off()

        self._sched = False

        def pub_state(_):
            status_led.on()
            self._sched = False
            counter.set_state(state.count)
            if config.BATT:
                battery.set_state(state.battery)
                counter.set_attr('battery', state.battery)
            state.set(mqtt=self.mqtt.pub_state())
            status_led.off()

        self.pub_state = pub_state
Esempio n. 5
0
    def start(self, hub):
        if hub.internet:
            status_led.fast_blink()
            wifi.connect(secrets.WIFI_NAME, secrets.WIFI_PASSWORD)
            status_led.off()
            sleep(2)

            if wifi.is_connected():
                status_led.fast_blink()

                self.mqtt = MQTT(config.NAME, secrets, uid=UID)

                self.mqtt.add('Water',
                              Moisture,
                              prim=True,
                              key='water',
                              off_dly=config.NORMAL_SLEEP).set_state(hub.water)

                enable = self.mqtt.add('Enable', Switch, icon="mdi:bell")

                def enable_rx(msg):
                    hub.set(enable=msg == enable.ON)

                self.mqtt.sub(enable.cmd_tpc(), enable_rx)

                self.mqtt.add('Battery', Battery,
                              key='bat').set_state(hub.battery)

                self.mqtt.set_attr('battery', hub.battery)
                self.mqtt.set_attr('rssi', wifi.rssi())

                self.mqtt.do_pub_cfg = self.do_pub_cfg
                self.mqtt.connect()
                sleep(1)
                self.mqtt.pub_state()
                sleep(1)
                status_led.off()