diff --git a/tasmota/tasmota.ino b/tasmota/tasmota.ino index 923bd7556..bb80d7ab5 100644 --- a/tasmota/tasmota.ino +++ b/tasmota/tasmota.ino @@ -314,8 +314,9 @@ struct TasmotaGlobal_t { bool pwm_present; // Any PWM channel configured with SetOption15 0 bool i2c_enabled[2]; // I2C configured for all possible buses (1 or 2) #ifdef ESP32 + bool camera_initialized; // For esp32-webcam, to be used in discovery bool ota_factory; // Select safeboot binary -#endif +#endif // ESP32 bool ntp_force_sync; // Force NTP sync bool skip_light_fade; // Temporarily skip light fading bool restart_halt; // Do not restart but stay in wait loop diff --git a/tasmota/tasmota_xdrv_driver/xdrv_12_discovery.ino b/tasmota/tasmota_xdrv_driver/xdrv_12_discovery.ino index 07da9257c..9fa2be99d 100644 --- a/tasmota/tasmota_xdrv_driver/xdrv_12_discovery.ino +++ b/tasmota/tasmota_xdrv_driver/xdrv_12_discovery.ino @@ -69,6 +69,7 @@ void TasDiscoverMessage(void) { "\"mac\":\"%s\"," // Full MAC as Device id "\"md\":\"%s\"," // Module or Template Name "\"ty\":%d,\"if\":%d," // Flag for TuyaMCU and Ifan devices + "\"cam\":%d," // Flag for ESP32-cam "\"ofln\":\"" MQTT_LWT_OFFLINE "\"," // Payload Offline "\"onln\":\"" MQTT_LWT_ONLINE "\"," // Payload Online "\"state\":[\"%s\",\"%s\",\"%s\",\"%s\"]," // State text for "OFF","ON","TOGGLE","HOLD" @@ -81,6 +82,11 @@ void TasDiscoverMessage(void) { NetworkUniqueId().c_str(), ModuleName().c_str(), TuyaMod, iFanMod, +#ifdef ESP32 + TasmotaGlobal.camera_initialized, +#else + false, +#endif GetStateText(0), GetStateText(1), GetStateText(2), GetStateText(3), TasmotaGlobal.version, TasmotaGlobal.mqtt_topic, diff --git a/tasmota/tasmota_xdrv_driver/xdrv_81_esp32_webcam.ino b/tasmota/tasmota_xdrv_driver/xdrv_81_esp32_webcam.ino index 1bce850f4..f43c3e055 100644 --- a/tasmota/tasmota_xdrv_driver/xdrv_81_esp32_webcam.ino +++ b/tasmota/tasmota_xdrv_driver/xdrv_81_esp32_webcam.ino @@ -488,7 +488,7 @@ uint32_t WcSetup(int32_t fsiz) { camera_sensor_info_t *info = esp_camera_sensor_get_info(&wc_s->id); AddLog(LOG_LEVEL_INFO, PSTR("CAM: %s Initialized"), info->name); - + TasmotaGlobal.camera_initialized = true; Wc.up = 1; if (psram) { Wc.up = 2; } diff --git a/tasmota/tasmota_xdrv_driver/xdrv_81_esp32_webcam_task.ino b/tasmota/tasmota_xdrv_driver/xdrv_81_esp32_webcam_task.ino index b1bf49a06..1a019d7c4 100644 --- a/tasmota/tasmota_xdrv_driver/xdrv_81_esp32_webcam_task.ino +++ b/tasmota/tasmota_xdrv_driver/xdrv_81_esp32_webcam_task.ino @@ -1151,6 +1151,7 @@ uint32_t WcSetup(int32_t fsiz) { camera_sensor_info_t *info = esp_camera_sensor_get_info(&wc_s->id); AddLog(LOG_LEVEL_INFO, PSTR("CAM: %s Initialized"), info->name); + TasmotaGlobal.camera_initialized = true; Wc.up = 1; if (Wc.psram) { Wc.up = 2; }