mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 07:03:55 +00:00 
			
		
		
		
	[online_image] Allow suppressing update on url change (#8885)
This commit is contained in:
		| @@ -34,6 +34,7 @@ MULTI_CONF = True | |||||||
|  |  | ||||||
| CONF_ON_DOWNLOAD_FINISHED = "on_download_finished" | CONF_ON_DOWNLOAD_FINISHED = "on_download_finished" | ||||||
| CONF_PLACEHOLDER = "placeholder" | CONF_PLACEHOLDER = "placeholder" | ||||||
|  | CONF_UPDATE = "update" | ||||||
|  |  | ||||||
| _LOGGER = logging.getLogger(__name__) | _LOGGER = logging.getLogger(__name__) | ||||||
|  |  | ||||||
| @@ -167,6 +168,7 @@ SET_URL_SCHEMA = cv.Schema( | |||||||
|     { |     { | ||||||
|         cv.GenerateID(): cv.use_id(OnlineImage), |         cv.GenerateID(): cv.use_id(OnlineImage), | ||||||
|         cv.Required(CONF_URL): cv.templatable(cv.url), |         cv.Required(CONF_URL): cv.templatable(cv.url), | ||||||
|  |         cv.Optional(CONF_UPDATE, default=True): cv.templatable(bool), | ||||||
|     } |     } | ||||||
| ) | ) | ||||||
|  |  | ||||||
| @@ -188,6 +190,9 @@ async def online_image_action_to_code(config, action_id, template_arg, args): | |||||||
|     if CONF_URL in config: |     if CONF_URL in config: | ||||||
|         template_ = await cg.templatable(config[CONF_URL], args, cg.std_string) |         template_ = await cg.templatable(config[CONF_URL], args, cg.std_string) | ||||||
|         cg.add(var.set_url(template_)) |         cg.add(var.set_url(template_)) | ||||||
|  |     if CONF_UPDATE in config: | ||||||
|  |         template_ = await cg.templatable(config[CONF_UPDATE], args, bool) | ||||||
|  |         cg.add(var.set_update(template_)) | ||||||
|     return var |     return var | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -201,9 +201,12 @@ template<typename... Ts> class OnlineImageSetUrlAction : public Action<Ts...> { | |||||||
|  public: |  public: | ||||||
|   OnlineImageSetUrlAction(OnlineImage *parent) : parent_(parent) {} |   OnlineImageSetUrlAction(OnlineImage *parent) : parent_(parent) {} | ||||||
|   TEMPLATABLE_VALUE(std::string, url) |   TEMPLATABLE_VALUE(std::string, url) | ||||||
|  |   TEMPLATABLE_VALUE(bool, update) | ||||||
|   void play(Ts... x) override { |   void play(Ts... x) override { | ||||||
|     this->parent_->set_url(this->url_.value(x...)); |     this->parent_->set_url(this->url_.value(x...)); | ||||||
|     this->parent_->update(); |     if (this->update_.value(x...)) { | ||||||
|  |       this->parent_->update(); | ||||||
|  |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  protected: |  protected: | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user