AppDaemon creating an input_select

The ‘register_service’ api in appdaemon is meant to create your own service.
When HA starts, if input_text is configed, the following service will be register: 1. set_value 2. reload.

You can see how are these services registered in ha log. It’s been a long time, so I can’t recall it totally.
But here’s what I found in my ad which is an app that create a input_select entity.

class HDMImatrix(hass.Hass):

    def initialize(self):
        self.climate = self.args['climate_id']
        self.input_source = self.args['input_source']
        self.entities = self.args['entities']
        # self.listen_event(self.ha_restart, event='call_service', domain='homeassistant', service='restart')
        self.fire_event('service_registered', domain="input_select", service="select_option")
        self.fire_event('service_registered', domain="input_select", service="set_options")
        self.fire_event('service_registered', domain="input_select", service="select_previous")
        self.fire_event('service_registered', domain="input_select", service="select_next")
        for entity in self.entities:
            friendly_name = self.entities[entity]['friendly_name']
            icon = self.entities[entity]['icon']
            cmds = self.entities[entity]['cmds']
            globals()['self.'+entity+'_list'] = dict(zip(self.input_source,cmds))
            self.set_state(entity, state = '请选择信号源', attributes = {'options': self.input_source, 'friendly_name': friendly_name, 'icon': icon})
            self.listen_select_handle = self.listen_event(self.select_input, event='call_service', domain="input_select", service='select_option', entity=entity)

There are 4 services that I registered mannully. You can try this.

2 Likes