from flask import render_template from app import webapp from app.homeassistant import HomeAssistant from app.views.auth import login_required @webapp.route('/dynamic/services/') @login_required def dynamic_services(domain:str): services = HomeAssistant.getInstance().get_services(domain) return render_template("dynamic/services.html", services=services) @webapp.route('/dynamic/service/fields//') @login_required def dynamic_service_fields(domain:str, service:str): service = HomeAssistant.getInstance().get_service(domain, service) class Service(): def __init__(self, key, field): self.name = key if field.name is None else (field.name + " (" + key + ")") self.description = field.description self.example = field.example self.required = False if field.required is None else field.required self.selector = ", ".join(field.selector) self.fade = (key in ['target', 'entity_id']) fields = [] field_ids = [] for key in service.fields: field = service.fields[key] fields.append(Service(key, field)) if key not in ['entity_id', 'target']: field_ids.append(key + ":") show_entity = (('entity_id' in service.fields or 'target' in service.fields) or len(fields) == 0 or HomeAssistant.getInstance().domain_has_entities(domain)) show_data = (len(fields) > 0) return render_template("dynamic/service_fields.html", show_entity=show_entity, show_data=show_data, fields=fields, field_ids="\n".join(field_ids)) @webapp.route('/dynamic/entities/') @login_required def dynamic_entities(domain:str): entities = HomeAssistant.getInstance().get_entities(domain) return render_template("dynamic/entities.html", entities=entities)