diff --git a/apps/sonoscontroller.py b/apps/sonoscontroller.py index 229be5f..b1c9132 100644 --- a/apps/sonoscontroller.py +++ b/apps/sonoscontroller.py @@ -159,10 +159,9 @@ class SonosPlayer: self.log(f"Creating a ValueSelector for the audio_delay") self.audio_delay_selector = ValueSelector(self.controller,self.controller,sensor_name = yaml_conf["audio_delay"]["entity"],super_entity_id = self.entity_id,yaml_block = yaml_conf["audio_delay"]['value'],self_initialize = True) - self.is_playing_podcast_sensor = f'binary_sensor.{player_name}_is_playing_podcast' - is_playing_podcast_sensor_entity = self.controller.get_entity(self.is_playing_podcast_sensor) - if not is_playing_podcast_sensor_entity.exists(): - is_playing_podcast_sensor_entity.add() + self.is_playing_podcast_entity = self.controller.create_entity( + f'binary_sensor.{player_name}_is_playing_podcast', + ) self.controller.listen_state(self.on_state_change,self.entity_id) self.controller.listen_state(self.on_update_media_artist,self.entity_id,attribute = "media_artist") self.update_is_playing_podcast_sensor() @@ -401,16 +400,16 @@ class SonosPlayer: self.update_is_playing_podcast_sensor() def update_is_playing_podcast_sensor(self): - if self.is_playing_podcast_sensor and self.is_playing(): - prev_state = self.controller.get_state(self.is_playing_podcast_sensor) + if self.is_playing_podcast_entity and self.is_playing(): + prev_state = self.is_playing_podcast_entity.get_state() if self.controller.get_state(self.entity_id,attribute = "media_artist") == None: if prev_state != 'on': - self.log(f"setting {self.is_playing_podcast_sensor} to on") - self.controller.set_state(self.is_playing_podcast_sensor,state = "on") + self.log(f"setting {self.is_playing_podcast_entity.entity_id} to on") + self.is_playing_podcast_entity.set_state(state = "on") else: if prev_state != 'off': - self.log(f"setting {self.is_playing_podcast_sensor} to off") - self.controller.set_state(self.is_playing_podcast_sensor,state = "off") + self.log(f"setting {self.is_playing_podcast_entity.entity_id} to off") + self.is_playing_podcast_entity.set_state(state = "off") def on_update_off_conditions(self): if self.off_conditions_evaluator.evaluate(False) == SmartCondition.Result.Succeeded: