10#include "SinricProConfig.h"
12#ifdef SINRICPRO_MDNS_ENABLED
15 #include <ESP8266WiFi.h>
16 #include <ESP8266mDNS.h>
17 #define SINRICPRO_MDNS_LEA
21 #define SINRICPRO_MDNS_ESP32
22#elif defined(ARDUINO_ARCH_RP2040) && !defined(ARDUINO_ARCH_MBED)
25 #include <ESP8266mDNS.h>
26 #define SINRICPRO_MDNS_LEA
29#if defined(SINRICPRO_MDNS_LEA) || defined(SINRICPRO_MDNS_ESP32)
30 #define SINRICPRO_MDNS_AVAILABLE
34#ifndef SINRICPRO_MDNS_RETRY_MS
35#define SINRICPRO_MDNS_RETRY_MS 5000
38#include "SinricProVersion.h"
39#include "SinricProNamespace.h"
40#include "SinricProDebug.h"
42namespace SINRICPRO_NAMESPACE {
61 void begin(
const String&
hostName,
const String& deviceIds);
62 void update(
const String& deviceIds);
65 bool _started =
false;
66 bool _announced =
false;
67 unsigned long _lastStartTry = 0;
75bool SinricProMDNS::start() {
76#ifdef SINRICPRO_MDNS_AVAILABLE
78 _started =
MDNS.begin(_hostName.c_str());
80 DEBUG_SINRIC(
"[SinricPro:mDNS]: responder not started yet, will retry\r\n");
86void SinricProMDNS::announce() {
87#ifdef SINRICPRO_MDNS_AVAILABLE
89 MDNS.addService(
"sinricpro",
"udp", UDP_MULTICAST_PORT);
90 MDNS.addServiceTxt(
"sinricpro",
"udp",
"sdk", SINRICPRO_VERSION);
91 MDNS.addServiceTxt(
"sinricpro",
"udp",
"udp",
"1");
95 MDNS.addServiceTxt(
"sinricpro",
"udp",
"deviceIds", _deviceIds.c_str());
96 DEBUG_SINRIC(
"[SinricPro:mDNS]: announced _sinricpro._udp.local. port=%d deviceIds=%s\r\n",
97 UDP_MULTICAST_PORT, _deviceIds.c_str());
101void SinricProMDNS::begin(
const String& hostName,
const String& deviceIds) {
102 _hostName = hostName;
103 _deviceIds = deviceIds;
104 if (start()) announce();
107void SinricProMDNS::update(
const String& deviceIds) {
108 if (_announced && _deviceIds == deviceIds)
return;
109 _deviceIds = deviceIds;
110 if (_started) announce();
113void SinricProMDNS::handle() {
114#ifdef SINRICPRO_MDNS_AVAILABLE
116 if (millis() - _lastStartTry < SINRICPRO_MDNS_RETRY_MS)
return;
117 if (start()) announce();
120#ifdef SINRICPRO_MDNS_LEA
AirQuality.
Definition AirQualitySensor.h:19
Announces this device on the LAN via mDNS.
Definition SinricProMDNS.h:59