Call services from frontend with fire-dom-event
This commit is contained in:
		
							parent
							
								
									7c6e749c3f
								
							
						
					
					
						commit
						8fe408bcc6
					
				@ -15,8 +15,8 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class BrowserBinarySensor(BrowserModEntity, BinarySensorEntity):
 | 
					class BrowserBinarySensor(BrowserModEntity, BinarySensorEntity):
 | 
				
			||||||
    def __init__(self, coordinator, deviceID, parameter, name):
 | 
					    def __init__(self, coordinator, browserID, parameter, name):
 | 
				
			||||||
        super().__init__(coordinator, deviceID, name)
 | 
					        super().__init__(coordinator, browserID, name)
 | 
				
			||||||
        self.parameter = parameter
 | 
					        self.parameter = parameter
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @property
 | 
					    @property
 | 
				
			||||||
 | 
				
			|||||||
@ -869,6 +869,11 @@ const ServicesMixin = (SuperClass) => {
 | 
				
			|||||||
                    });
 | 
					                    });
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            document.body.addEventListener("ll-custom", (ev) => {
 | 
				
			||||||
 | 
					                if (ev.detail.browser_mod) {
 | 
				
			||||||
 | 
					                    this._service_action(ev.detail.browser_mod);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        async _service_action({ service, data }) {
 | 
					        async _service_action({ service, data }) {
 | 
				
			||||||
            let _service = service;
 | 
					            let _service = service;
 | 
				
			||||||
@ -1051,7 +1056,7 @@ class BrowserModPopup extends s {
 | 
				
			|||||||
        --mdc-dialog-content-ink-color: var(--primary-text-color);
 | 
					        --mdc-dialog-content-ink-color: var(--primary-text-color);
 | 
				
			||||||
        --justify-action-buttons: space-between;
 | 
					        --justify-action-buttons: space-between;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        --mdc-dialog-box-shadow: 0px 0px 0px var(--ha-card-border-width, 1px)
 | 
					        --mdc-dialog-box-shadow: 0px 0px 0px var(--ha-card-border-width, 2px)
 | 
				
			||||||
          var(--ha-card-border-color, var(--divider-color, #e0e0e0));
 | 
					          var(--ha-card-border-color, var(--divider-color, #e0e0e0));
 | 
				
			||||||
        --ha-dialog-border-radius: 8px;
 | 
					        --ha-dialog-border-radius: 8px;
 | 
				
			||||||
        --mdc-theme-surface: var(
 | 
					        --mdc-theme-surface: var(
 | 
				
			||||||
@ -1268,7 +1273,7 @@ var pjson = {
 | 
				
			|||||||
  - Commands
 | 
					  - Commands
 | 
				
			||||||
    x Rename browser_mod commands to browser_mod services
 | 
					    x Rename browser_mod commands to browser_mod services
 | 
				
			||||||
    x Framework
 | 
					    x Framework
 | 
				
			||||||
    - ll-custom handling
 | 
					    x ll-custom handling
 | 
				
			||||||
    - Commands
 | 
					    - Commands
 | 
				
			||||||
      x popup
 | 
					      x popup
 | 
				
			||||||
      x close_popup
 | 
					      x close_popup
 | 
				
			||||||
@ -1279,8 +1284,9 @@ var pjson = {
 | 
				
			|||||||
      - screensaver
 | 
					      - screensaver
 | 
				
			||||||
      x sequence
 | 
					      x sequence
 | 
				
			||||||
      x delay
 | 
					      x delay
 | 
				
			||||||
 | 
					      - javascript eval
 | 
				
			||||||
      - toast?
 | 
					      - toast?
 | 
				
			||||||
    - Redesign services to target devices
 | 
					    x Redesign services to target devices
 | 
				
			||||||
  - frontend editor for popup cards
 | 
					  - frontend editor for popup cards
 | 
				
			||||||
    - also screensavers
 | 
					    - also screensavers
 | 
				
			||||||
  - Tweaks
 | 
					  - Tweaks
 | 
				
			||||||
@ -1299,11 +1305,6 @@ class BrowserMod extends ServicesMixin(PopupMixin(BrowserStateMixin(CameraMixin(
 | 
				
			|||||||
    constructor() {
 | 
					    constructor() {
 | 
				
			||||||
        super();
 | 
					        super();
 | 
				
			||||||
        this.connect();
 | 
					        this.connect();
 | 
				
			||||||
        // document.body.addEventListener("ll-custom", (ev) => {
 | 
					 | 
				
			||||||
        //   if ((ev as CustomEvent).detail.browser_mod) {
 | 
					 | 
				
			||||||
        //     this.msg_callback((ev as CustomEvent).detail.browser_mod);
 | 
					 | 
				
			||||||
        //   }
 | 
					 | 
				
			||||||
        // });
 | 
					 | 
				
			||||||
        console.info(`%cBROWSER_MOD ${pjson.version} IS INSTALLED
 | 
					        console.info(`%cBROWSER_MOD ${pjson.version} IS INSTALLED
 | 
				
			||||||
    %cBrowserID: ${this.browserID}`, "color: green; font-weight: bold", "");
 | 
					    %cBrowserID: ${this.browserID}`, "color: green; font-weight: bold", "");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -29,7 +29,7 @@ import pjson from "../../package.json";
 | 
				
			|||||||
  - Commands
 | 
					  - Commands
 | 
				
			||||||
    x Rename browser_mod commands to browser_mod services
 | 
					    x Rename browser_mod commands to browser_mod services
 | 
				
			||||||
    x Framework
 | 
					    x Framework
 | 
				
			||||||
    - ll-custom handling
 | 
					    x ll-custom handling
 | 
				
			||||||
    - Commands
 | 
					    - Commands
 | 
				
			||||||
      x popup
 | 
					      x popup
 | 
				
			||||||
      x close_popup
 | 
					      x close_popup
 | 
				
			||||||
@ -40,8 +40,9 @@ import pjson from "../../package.json";
 | 
				
			|||||||
      - screensaver
 | 
					      - screensaver
 | 
				
			||||||
      x sequence
 | 
					      x sequence
 | 
				
			||||||
      x delay
 | 
					      x delay
 | 
				
			||||||
 | 
					      - javascript eval
 | 
				
			||||||
      - toast?
 | 
					      - toast?
 | 
				
			||||||
    - Redesign services to target devices
 | 
					    x Redesign services to target devices
 | 
				
			||||||
  - frontend editor for popup cards
 | 
					  - frontend editor for popup cards
 | 
				
			||||||
    - also screensavers
 | 
					    - also screensavers
 | 
				
			||||||
  - Tweaks
 | 
					  - Tweaks
 | 
				
			||||||
@ -73,12 +74,6 @@ export class BrowserMod extends ServicesMixin(
 | 
				
			|||||||
    super();
 | 
					    super();
 | 
				
			||||||
    this.connect();
 | 
					    this.connect();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // document.body.addEventListener("ll-custom", (ev) => {
 | 
					 | 
				
			||||||
    //   if ((ev as CustomEvent).detail.browser_mod) {
 | 
					 | 
				
			||||||
    //     this.msg_callback((ev as CustomEvent).detail.browser_mod);
 | 
					 | 
				
			||||||
    //   }
 | 
					 | 
				
			||||||
    // });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    console.info(
 | 
					    console.info(
 | 
				
			||||||
      `%cBROWSER_MOD ${pjson.version} IS INSTALLED
 | 
					      `%cBROWSER_MOD ${pjson.version} IS INSTALLED
 | 
				
			||||||
    %cBrowserID: ${this.browserID}`,
 | 
					    %cBrowserID: ${this.browserID}`,
 | 
				
			||||||
 | 
				
			|||||||
@ -161,7 +161,7 @@ class BrowserModPopup extends LitElement {
 | 
				
			|||||||
        --mdc-dialog-content-ink-color: var(--primary-text-color);
 | 
					        --mdc-dialog-content-ink-color: var(--primary-text-color);
 | 
				
			||||||
        --justify-action-buttons: space-between;
 | 
					        --justify-action-buttons: space-between;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        --mdc-dialog-box-shadow: 0px 0px 0px var(--ha-card-border-width, 1px)
 | 
					        --mdc-dialog-box-shadow: 0px 0px 0px var(--ha-card-border-width, 2px)
 | 
				
			||||||
          var(--ha-card-border-color, var(--divider-color, #e0e0e0));
 | 
					          var(--ha-card-border-color, var(--divider-color, #e0e0e0));
 | 
				
			||||||
        --ha-dialog-border-radius: 8px;
 | 
					        --ha-dialog-border-radius: 8px;
 | 
				
			||||||
        --mdc-theme-surface: var(
 | 
					        --mdc-theme-surface: var(
 | 
				
			||||||
 | 
				
			|||||||
@ -52,6 +52,12 @@ export const ServicesMixin = (SuperClass) => {
 | 
				
			|||||||
          });
 | 
					          });
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      document.body.addEventListener("ll-custom", (ev: CustomEvent) => {
 | 
				
			||||||
 | 
					        if (ev.detail.browser_mod) {
 | 
				
			||||||
 | 
					          this._service_action(ev.detail.browser_mod);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    async _service_action({ service, data }) {
 | 
					    async _service_action({ service, data }) {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user