示例#1
0
 def __init__(self,
              config: ConfigHelper,
              default_port: int = -1,
              default_user: str = "",
              default_password: str = "",
              default_protocol: str = "http") -> None:
     super().__init__(config)
     self.client = AsyncHTTPClient()
     self.request_mutex = asyncio.Lock()
     self.addr: str = config.get("address")
     self.port = config.getint("port", default_port)
     self.user = config.load_template("user", default_user).render()
     self.password = config.load_template("password",
                                          default_password).render()
     self.protocol = config.get("protocol", default_protocol)
示例#2
0
    def __init__(self, config: ConfigHelper) -> None:
        super().__init__(config)
        self.mqtt: MQTTClient = self.server.load_component(config, 'mqtt')
        self.eventloop = self.server.get_event_loop()
        self.cmd_topic: str = config.get('command_topic')
        self.cmd_payload: JinjaTemplate = config.gettemplate('command_payload')
        self.retain_cmd_state = config.getboolean('retain_command_state',
                                                  False)
        self.query_topic: Optional[str] = config.get('query_topic', None)
        self.query_payload = config.gettemplate('query_payload', None)
        self.must_query = config.getboolean('query_after_command', False)
        if self.query_topic is not None:
            self.must_query = False

        self.state_topic: str = config.get('state_topic')
        self.state_timeout = config.getfloat('state_timeout', 2.)
        self.state_response = config.load_template('state_response_template',
                                                   "{payload}")
        self.qos: Optional[int] = config.getint('qos',
                                                None,
                                                minval=0,
                                                maxval=2)
        self.mqtt.subscribe_topic(self.state_topic, self._on_state_update,
                                  self.qos)
        self.query_response: Optional[asyncio.Future] = None
        self.request_mutex = asyncio.Lock()
        self.server.register_event_handler("mqtt:connected",
                                           self._on_mqtt_connected)
        self.server.register_event_handler("mqtt:disconnected",
                                           self._on_mqtt_disconnected)
示例#3
0
 def test_load_template_default(self, test_config: ConfigHelper):
     templ = test_config.load_template(
         "invalid_option", "{secrets.mqtt_credentials.password}")
     val = templ.render()
     assert val == "mqttpass"
示例#4
0
 def test_load_template(self, test_config: ConfigHelper):
     val = test_config.load_template("test_template").render()
     assert val == "mqttuser"