From c9fe7c8ae12358c3f03c66c18ceddd0155c1e7c4 Mon Sep 17 00:00:00 2001 From: Giorgio Ravera Date: Mon, 11 Jul 2022 16:49:18 +0200 Subject: [PATCH] Added management of BTicino classe 300eos with netatmo --- .storage/lovelace.lovelace_dispositivi | 5433 ++++++++++++------------ packages/bticino_300eos.yaml | 105 + www/images/devices/classe300eos.png | Bin 0 -> 79851 bytes 3 files changed, 2875 insertions(+), 2663 deletions(-) create mode 100644 packages/bticino_300eos.yaml create mode 100644 www/images/devices/classe300eos.png diff --git a/.storage/lovelace.lovelace_dispositivi b/.storage/lovelace.lovelace_dispositivi index c0256bb9..e141fd6e 100644 --- a/.storage/lovelace.lovelace_dispositivi +++ b/.storage/lovelace.lovelace_dispositivi @@ -1,2862 +1,2969 @@ { - "version": 1, - "minor_version": 1, - "key": "lovelace.lovelace_dispositivi", - "data": { - "config": { - "views": [ - { - "title": "Dispositivi di Rete", - "path": "network-devices", - "icon": "mdi:network-outline", - "type": "custom:horizontal-layout", - "layout": { - "width": 300, - "max_cols": 3 - }, - "badges": [], - "cards": [ - { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "Intel NUC10i5FNH" - }, - { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "/local/images/devices/intel_nuc.png", - "tap_action": { - "action": "url", - "url_path": "https://pve.giorgioravera.it" - } - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "layout": "icon_name_state", - "entity": "binary_sensor.pve_server_running", - "name": "VM Debian", - "show_name": true, - "show_icon": true, - "show_state": false, - "color-type": "card", - "styles": { - "grid": [ - { - "grid-template-columns": "50px auto" - } - ], - "icon": [ - { - "padding": "0px 0px" - }, - { - "height": "25px" - }, - { - "width": "25px" - } - ], - "card": [ - { - "--ha-card-background": "rgba(0, 0, 0, 0)" - }, - { - "--ha-card-box-shadow": "none" - } - ], - "name": [ - { - "padding": "0px 10px" - }, - { - "justify-self": "start" - }, - { - "font-family": "Roboto, sans-serif" - }, - { - "font-size": "15px" - }, - { - "color": "var(--primary-text-color)" - } - ] - }, - "state": [ - { - "value": "on", - "styles": { - "icon": [ - { - "color": "lightgreen" - } - ] - } - }, - { - "value": "off", - "styles": { - "icon": [ - { - "color": "grey" - } - ] - } - } - ] - }, - { - "type": "custom:button-card", - "layout": "icon_name_state", - "entity": "binary_sensor.pve_docker_running", - "name": "VM Docker", - "show_name": true, - "show_icon": true, - "show_state": false, - "color-type": "card", - "styles": { - "grid": [ - { - "grid-template-columns": "50px auto" - } - ], - "icon": [ - { - "padding": "0px 0px" - }, - { - "height": "25px" - }, - { - "width": "25px" - } - ], - "card": [ - { - "--ha-card-background": "rgba(0, 0, 0, 0)" - }, - { - "--ha-card-box-shadow": "none" - } - ], - "name": [ - { - "padding": "0px 10px" - }, - { - "justify-self": "start" - }, - { - "font-family": "Roboto, sans-serif" - }, - { - "font-size": "15px" - }, - { - "color": "var(--primary-text-color)" - } - ] - }, - "state": [ - { - "value": "on", - "styles": { - "icon": [ - { - "color": "lightgreen" - } - ] - } - }, - { - "value": "off", - "styles": { - "icon": [ - { - "color": "grey" - } - ] - } - } - ] - }, - { - "type": "custom:button-card", - "layout": "icon_name_state", - "entity": "binary_sensor.pve_firewall_running", - "name": "VM Firewall", - "show_name": true, - "show_icon": true, - "show_state": false, - "color-type": "card", - "styles": { - "grid": [ - { - "grid-template-columns": "50px auto" - } - ], - "icon": [ - { - "padding": "0px 0px" - }, - { - "height": "25px" - }, - { - "width": "25px" - } - ], - "card": [ - { - "--ha-card-background": "rgba(0, 0, 0, 0)" - }, - { - "--ha-card-box-shadow": "none" - } - ], - "name": [ - { - "padding": "0px 10px" - }, - { - "justify-self": "start" - }, - { - "font-family": "Roboto, sans-serif" - }, - { - "font-size": "15px" - }, - { - "color": "var(--primary-text-color)" - } - ] - }, - "state": [ - { - "value": "on", - "styles": { - "icon": [ - { - "color": "lightgreen" - } - ] - } - }, - { - "value": "off", - "styles": { - "icon": [ - { - "color": "grey" - } - ] - } - } - ] - }, - { - "type": "custom:button-card", - "layout": "icon_name_state", - "entity": "binary_sensor.pve_asterisk_running", - "name": "VM Asterisk", - "show_name": true, - "show_icon": true, - "show_state": false, - "color-type": "card", - "styles": { - "grid": [ - { - "grid-template-columns": "50px auto" - } - ], - "icon": [ - { - "padding": "0px 0px" - }, - { - "height": "25px" - }, - { - "width": "25px" - } - ], - "card": [ - { - "--ha-card-background": "rgba(0, 0, 0, 0)" - }, - { - "--ha-card-box-shadow": "none" - } - ], - "name": [ - { - "padding": "0px 10px" - }, - { - "justify-self": "start" - }, - { - "font-family": "Roboto, sans-serif" - }, - { - "font-size": "15px" - }, - { - "color": "var(--primary-text-color)" - } - ] - }, - "state": [ - { - "value": "on", - "styles": { - "icon": [ - { - "color": "lightgreen" - } - ] - } - }, - { - "value": "off", - "styles": { - "icon": [ - { - "color": "grey" - } - ] - } - } - ] - } - ] - } - ] - } - ] - } - ] - }, - { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "NAS QNAP TS-228A" - }, - { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "/local/images/devices/qnap_ts228a.png", - "tap_action": { - "action": "url", - "url_path": "https://nas.giorgioravera.it" - } - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "layout": "icon_name_state", - "entity": "switch.nas", - "name": "Stato", - "show_name": false, - "show_icon": true, - "show_state": true, - "color-type": "card", - "icon": "mdi:power", - "styles": { - "grid": [ - { - "grid-template-columns": "50px auto" - } - ], - "icon": [ - { - "padding": "0px 0px" - }, - { - "height": "25px" - }, - { - "width": "25px" - } - ], - "card": [ - { - "--ha-card-background": "rgba(0, 0, 0, 0)" - }, - { - "--ha-card-box-shadow": "none" - } - ], - "name": [ - { - "padding": "0px 10px" - }, - { - "justify-self": "start" - }, - { - "font-family": "Roboto, sans-serif" - }, - { - "font-size": "15px" - }, - { - "color": "var(--primary-text-color)" - } - ] - }, - "state": [ - { - "value": "on", - "styles": { - "icon": [ - { - "color": "lightgreen" - } - ] - } - }, - { - "value": "off", - "styles": { - "icon": [ - { - "color": "grey" - } - ] - } - } - ], - "tap_action": { - "action": "toggle", - "confirmation": { - "text": "Sei sicuro di voler procedere?" - } - } - }, - { - "type": "custom:button-card", - "layout": "icon_name_state", - "name": "Gestione", - "show_name": true, - "show_icon": true, - "show_state": true, - "icon": "mdi:cogs", - "tap_action": { - "action": "url", - "url_path": "https://nas.giorgioravera.it" - }, - "styles": { - "grid": [ - { - "grid-template-columns": "50px auto" - } - ], - "icon": [ - { - "padding": "0px 0px" - }, - { - "height": "25px" - }, - { - "width": "25px" - }, - { - "color": "var(--state-icon-color)" - } - ], - "card": [ - { - "--ha-card-background": "rgba(0, 0, 0, 0)" - }, - { - "--ha-card-box-shadow": "none" - } - ], - "name": [ - { - "padding": "0px 10px" - }, - { - "justify-self": "start" - }, - { - "font-family": "Roboto, sans-serif" - }, - { - "font-size": "15px" - }, - { - "color": "var(--primary-text-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "layout": "icon_name_state", - "entity": "script.plex_start", - "name": "Avvia Plex", - "show_icon": true, - "show_state": false, - "icon": "mdi:plex", - "styles": { - "grid": [ - { - "grid-template-columns": "50px auto" - } - ], - "icon": [ - { - "padding": "0px 0px" - }, - { - "height": "25px" - }, - { - "width": "25px" - }, - { - "color": "var(--state-icon-color)" - } - ], - "card": [ - { - "--ha-card-background": "rgba(0, 0, 0, 0)" - }, - { - "--ha-card-box-shadow": "none" - } - ], - "name": [ - { - "padding": "0px 10px" - }, - { - "justify-self": "start" - }, - { - "font-family": "Roboto, sans-serif" - }, - { - "font-size": "15px" - }, - { - "color": "var(--primary-text-color)" - } - ] - }, - "tap_action": { - "action": "call-service", - "confirmation": { - "text": "Sei sicuro di voler avviare Plex?" - }, - "service": "script.plex_start" - } - }, - { - "type": "custom:button-card", - "layout": "icon_name_state", - "entity": "script.plex_stop", - "name": "Ferma Plex", - "show_icon": true, - "show_state": false, - "icon": "mdi:plex", - "styles": { - "grid": [ - { - "grid-template-columns": "50px auto" - } - ], - "icon": [ - { - "padding": "0px 0px" - }, - { - "height": "25px" - }, - { - "width": "25px" - }, - { - "color": "var(--state-icon-color)" - } - ], - "card": [ - { - "--ha-card-background": "rgba(0, 0, 0, 0)" - }, - { - "--ha-card-box-shadow": "none" - } - ], - "name": [ - { - "padding": "0px 10px" - }, - { - "justify-self": "start" - }, - { - "font-family": "Roboto, sans-serif" - }, - { - "font-size": "15px" - }, - { - "color": "var(--primary-text-color)" - } - ] - }, - "tap_action": { - "action": "call-service", - "confirmation": { - "text": "Sei sicuro di voler fermare Plex?" - }, - "service": "script.plex_stop" - } - } - ] - } - ] - } - ] - } - ] - }, - { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "Canon PIXMA TR8550" - }, - { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0.0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "/local/images/devices/canon_tr8550.png", - "tap_action": { - "action": "url", - "url_path": "http://stampante.giorgioravera.it" - } - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "layout": "icon_name_state", - "name": "Gestione", - "show_name": true, - "show_icon": true, - "show_state": true, - "icon": "mdi:cogs", - "tap_action": { - "action": "url", - "url_path": "http://stampante.giorgioravera.it" - }, - "styles": { - "grid": [ - { - "grid-template-columns": "50px auto" - } - ], - "icon": [ - { - "padding": "0px 0px" - }, - { - "height": "25px" - }, - { - "width": "25px" - }, - { - "color": "var(--state-icon-color)" - } - ], - "card": [ - { - "--ha-card-background": "rgba(0, 0, 0, 0)" - }, - { - "--ha-card-box-shadow": "none" - } - ], - "name": [ - { - "padding": "0px 10px" - }, - { - "justify-self": "start" - }, - { - "font-family": "Roboto, sans-serif" - }, - { - "font-size": "15px" - }, - { - "color": "var(--primary-text-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "layout": "icon_name_state", - "entity": "sensor.canon_tr8500_series", - "name": "Stato", - "show_name": false, - "show_icon": true, - "show_state": true, - "icon": "[[[\n if (entity.state==\"idle\")\n return \"mdi:printer\"\n else\n return \"mdi:printer-settings\"\n]]]\n", - "styles": { - "grid": [ - { - "grid-template-columns": "50px auto" - } - ], - "icon": [ - { - "padding": "0px 0px" - }, - { - "height": "25px" - }, - { - "width": "25px" - }, - { - "color": "var(--state-icon-color)" - } - ], - "card": [ - { - "--ha-card-background": "rgba(0, 0, 0, 0)" - }, - { - "--ha-card-box-shadow": "none" - } - ], - "name": [ - { - "padding": "0px 10px" - }, - { - "justify-self": "start" - }, - { - "font-family": "Roboto, sans-serif" - }, - { - "font-size": "15px" - }, - { - "color": "var(--primary-text-color)" - } - ] - }, - "state": [ - { - "value": "printing", - "styles": { - "icon": [ - { - "color": "yellow" - } - ] - } - } - ] - } - ] - } - ] - }, - { - "type": "custom:bar-card", - "show_header_toggle": false, - "state_color": false, - "positions": { - "indicator": "off", - "name": "outside", - "value": "outside", - "icon": "inside" - }, - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\nbar-card-value {\n \n margin: 0px;\n font-size: 15px;\n text-shadow: 1px 1px #0005;\n}\nbar-card-name {\n margin: 0px;\n font-size: 15px;\n text-shadow: 1px 1px #0005;\n}\nha-icon {\n color: darkgrey;\n}", - "entities": [ - { - "entity": "sensor.canon_tr8500_series_black_bk", - "name": "BK", - "color": "black", - "width": "85%" - }, - { - "entity": "sensor.canon_tr8500_series_black_pgbk", - "name": "PGBK", - "color": "black", - "width": "85%" - }, - { - "entity": "sensor.canon_tr8500_series_cyan", - "name": "C", - "color": "cyan", - "width": "85%" - }, - { - "entity": "sensor.canon_tr8500_series_magenta", - "name": "M", - "color": "magenta", - "width": "85%" - }, - { - "entity": "sensor.canon_tr8500_series_yellow", - "name": "Y", - "color": "yellow", - "width": "85%" - } - ] - } - ] - } - ] - } - ] + "version": 1, + "minor_version": 1, + "key": "lovelace.lovelace_dispositivi", + "data": { + "config": { + "views": [ + { + "title": "Dispositivi di Rete", + "path": "network-devices", + "icon": "mdi:network-outline", + "type": "custom:horizontal-layout", + "layout": { + "width": 300, + "max_cols": 3 + }, + "badges": [], + "cards": [ + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "Intel NUC10i5FNH" }, { - "title": "Shelly", - "path": "shelly", - "icon": "mdi:alpha-s-box", - "type": "custom:horizontal-layout", - "layout": {}, - "badges": [], - "cards": [ + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "Shelly 1 - Tapparella Cucina" - }, - { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "/local/images/devices/shelly/shelly25.png", - "tap_action": { - "action": "url", - "url_path": "http://shelly1.giorgioravera.it" - } - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "cover.tapparella_cucina", - "name": "Stato", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "template": "template_device_firmware", - "entity": "binary_sensor.tapparella_cucina_firmware_update", - "name": "Firmare" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.tapparella_cucina_ota_update", - "name": "Aggiorna Firmware", - "icon": "mdi:package-up" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.tapparella_cucina_reboot", - "name": "Riavvia Dispositivo", - "icon": "mdi:restart" - } - ] - } - ] - } - ] - } - ] + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "/local/images/devices/intel_nuc.png", + "tap_action": { + "action": "url", + "url_path": "https://pve.giorgioravera.it" + } }, { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "Shelly 2 - Tapparella Sala" - }, + "type": "vertical-stack", + "cards": [ + { + "type": "custom:button-card", + "layout": "icon_name_state", + "entity": "binary_sensor.pve_server_running", + "name": "VM Debian", + "show_name": true, + "show_icon": true, + "show_state": false, + "color-type": "card", + "styles": { + "grid": [ + { + "grid-template-columns": "50px auto" + } + ], + "icon": [ + { + "padding": "0px 0px" + }, + { + "height": "25px" + }, + { + "width": "25px" + } + ], + "card": [ + { + "--ha-card-background": "rgba(0, 0, 0, 0)" + }, + { + "--ha-card-box-shadow": "none" + } + ], + "name": [ + { + "padding": "0px 10px" + }, + { + "justify-self": "start" + }, + { + "font-family": "Roboto, sans-serif" + }, + { + "font-size": "15px" + }, + { + "color": "var(--primary-text-color)" + } + ] + }, + "state": [ { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "/local/images/devices/shelly/shelly25.png", - "tap_action": { - "action": "url", - "url_path": "http://shelly2.giorgioravera.it" - } - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "layout": "icon_name_state", - "entity": "cover.tapparella_sala", - "name": "Stato", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "template": "template_device_firmware", - "entity": "binary_sensor.tapparella_sala_firmware_update", - "name": "Firmare" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.tapparella_sala_ota_update", - "name": "Aggiorna Firmware", - "icon": "mdi:package-up" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.tapparella_sala_reboot", - "name": "Riavvia Dispositivo", - "icon": "mdi:restart" - } - ] - } - ] - } + "value": "on", + "styles": { + "icon": [ + { + "color": "lightgreen" + } ] - } - ] - }, - { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "Shelly 3 - Tapparella Studio" + } }, { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "/local/images/devices/shelly/shelly25.png", - "tap_action": { - "action": "url", - "url_path": "http://shelly3.giorgioravera.it" - } - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "cover.tapparella_studio", - "name": "Stato", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "template": "template_device_firmware", - "entity": "binary_sensor.tapparella_studio_firmware_update", - "name": "Firmare" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.tapparella_studio_ota_update", - "name": "Aggiorna Firmware", - "icon": "mdi:package-up" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.tapparella_studio_reboot", - "name": "Riavvia Dispositivo", - "icon": "mdi:restart" - } - ] - } - ] - } + "value": "off", + "styles": { + "icon": [ + { + "color": "grey" + } ] + } } - ] - }, - { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "Shelly 4 - Tapparella Camera" - }, + ] + }, + { + "type": "custom:button-card", + "layout": "icon_name_state", + "entity": "binary_sensor.pve_docker_running", + "name": "VM Docker", + "show_name": true, + "show_icon": true, + "show_state": false, + "color-type": "card", + "styles": { + "grid": [ + { + "grid-template-columns": "50px auto" + } + ], + "icon": [ + { + "padding": "0px 0px" + }, + { + "height": "25px" + }, + { + "width": "25px" + } + ], + "card": [ + { + "--ha-card-background": "rgba(0, 0, 0, 0)" + }, + { + "--ha-card-box-shadow": "none" + } + ], + "name": [ + { + "padding": "0px 10px" + }, + { + "justify-self": "start" + }, + { + "font-family": "Roboto, sans-serif" + }, + { + "font-size": "15px" + }, + { + "color": "var(--primary-text-color)" + } + ] + }, + "state": [ { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "/local/images/devices/shelly/shelly25.png", - "tap_action": { - "action": "url", - "url_path": "http://shelly4.giorgioravera.it" - } - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "cover.tapparella_camera", - "name": "Stato", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "template": "template_device_firmware", - "entity": "binary_sensor.tapparella_camera_firmware_update", - "name": "Firmare" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.tapparella_camera_ota_update", - "name": "Aggiorna Firmware", - "icon": "mdi:package-up" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.tapparella_camera_reboot", - "name": "Riavvia Dispositivo", - "icon": "mdi:restart" - } - ] - } - ] - } + "value": "on", + "styles": { + "icon": [ + { + "color": "lightgreen" + } ] - } - ] - }, - { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "Shelly 5 - Luce Corridoio" + } }, { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "/local/images/devices/shelly/shelly1.png", - "tap_action": { - "action": "url", - "url_path": "http://shelly5.giorgioravera.it" - } - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "light.luce_corridoio", - "name": "Stato" - }, - { - "type": "custom:button-card", - "template": "template_device_firmware", - "entity": "binary_sensor.luce_corridoio_firmware_update", - "name": "Firmare" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.luce_corridoio_ota_update", - "name": "Aggiorna Firmware", - "icon": "mdi:package-up" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.luce_corridoio_reboot", - "name": "Riavvia Dispositivo", - "icon": "mdi:restart" - } - ] - } - ] - } + "value": "off", + "styles": { + "icon": [ + { + "color": "grey" + } ] + } } - ] - }, - { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "Shelly 6 - Luce Cucina" - }, + ] + }, + { + "type": "custom:button-card", + "layout": "icon_name_state", + "entity": "binary_sensor.pve_firewall_running", + "name": "VM Firewall", + "show_name": true, + "show_icon": true, + "show_state": false, + "color-type": "card", + "styles": { + "grid": [ + { + "grid-template-columns": "50px auto" + } + ], + "icon": [ + { + "padding": "0px 0px" + }, + { + "height": "25px" + }, + { + "width": "25px" + } + ], + "card": [ + { + "--ha-card-background": "rgba(0, 0, 0, 0)" + }, + { + "--ha-card-box-shadow": "none" + } + ], + "name": [ + { + "padding": "0px 10px" + }, + { + "justify-self": "start" + }, + { + "font-family": "Roboto, sans-serif" + }, + { + "font-size": "15px" + }, + { + "color": "var(--primary-text-color)" + } + ] + }, + "state": [ { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "/local/images/devices/shelly/shelly1.png", - "tap_action": { - "action": "url", - "url_path": "http://shelly6.giorgioravera.it" - } - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "light.luce_cucina", - "name": "Stato" - }, - { - "type": "custom:button-card", - "template": "template_device_firmware", - "entity": "binary_sensor.luce_cucina_firmware_update", - "name": "Firmare" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.luce_cucina_ota_update", - "name": "Aggiorna Firmware", - "icon": "mdi:package-up" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.luce_cucina_reboot", - "name": "Riavvia Dispositivo", - "icon": "mdi:restart" - } - ] - } - ] - } + "value": "on", + "styles": { + "icon": [ + { + "color": "lightgreen" + } ] - } - ] - }, - { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "Shelly 7 - Luce Sala" + } }, { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "/local/images/devices/shelly/shelly_dimmer.png", - "tap_action": { - "action": "url", - "url_path": "http://shelly7.giorgioravera.it" - } - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "light.luce_sala", - "name": "Stato" - }, - { - "type": "custom:button-card", - "template": "template_device_firmware", - "entity": "binary_sensor.luce_sala_firmware_update", - "name": "Firmare" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.luce_sala_ota_update", - "name": "Aggiorna Firmware", - "icon": "mdi:package-up" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.luce_sala_reboot", - "name": "Riavvia Dispositivo", - "icon": "mdi:restart" - } - ] - } - ] - } + "value": "off", + "styles": { + "icon": [ + { + "color": "grey" + } ] + } } - ] - }, - { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "Shelly 8 - Luci Bagno" - }, + ] + }, + { + "type": "custom:button-card", + "layout": "icon_name_state", + "entity": "binary_sensor.pve_asterisk_running", + "name": "VM Asterisk", + "show_name": true, + "show_icon": true, + "show_state": false, + "color-type": "card", + "styles": { + "grid": [ + { + "grid-template-columns": "50px auto" + } + ], + "icon": [ + { + "padding": "0px 0px" + }, + { + "height": "25px" + }, + { + "width": "25px" + } + ], + "card": [ + { + "--ha-card-background": "rgba(0, 0, 0, 0)" + }, + { + "--ha-card-box-shadow": "none" + } + ], + "name": [ + { + "padding": "0px 10px" + }, + { + "justify-self": "start" + }, + { + "font-family": "Roboto, sans-serif" + }, + { + "font-size": "15px" + }, + { + "color": "var(--primary-text-color)" + } + ] + }, + "state": [ { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "/local/images/devices/shelly/shelly25.png", - "tap_action": { - "action": "url", - "url_path": "http://shelly7.giorgioravera.it" - } - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "light.luce_bagno", - "name": "Stato" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "light.luce_specchio", - "name": "Stato" - }, - { - "type": "custom:button-card", - "template": "template_device_firmware", - "entity": "binary_sensor.luci_bagno_firmware_update", - "name": "Firmare" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.luci_bagno_ota_update", - "name": "Aggiorna Firmware", - "icon": "mdi:package-up" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.luci_bagno_reboot", - "name": "Riavvia Dispositivo", - "icon": "mdi:restart" - } - ] - } - ] - } + "value": "on", + "styles": { + "icon": [ + { + "color": "lightgreen" + } ] - } - ] - }, - { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "Shelly 9 - Luce Studio" + } }, { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "/local/images/devices/shelly/shelly1.png", - "tap_action": { - "action": "url", - "url_path": "http://shelly9.giorgioravera.it" - } - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "light.luce_studio", - "name": "Stato" - }, - { - "type": "custom:button-card", - "template": "template_device_firmware", - "entity": "binary_sensor.luce_studio_firmware_update", - "name": "Firmare" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.luce_studio_ota_update", - "name": "Aggiorna Firmware", - "icon": "mdi:package-up" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.luce_studio_reboot", - "name": "Riavvia Dispositivo", - "icon": "mdi:restart" - } - ] - } - ] - } + "value": "off", + "styles": { + "icon": [ + { + "color": "grey" + } ] + } } - ] - }, + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "NAS QNAP TS-228A" + }, + { + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "Shelly 10 - Luce Camera" - }, - { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "/local/images/devices/shelly/shelly_dimmer.png", - "tap_action": { - "action": "url", - "url_path": "http://shelly10.giorgioravera.it" - } - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "light.luce_camera", - "name": "Stato" - }, - { - "type": "custom:button-card", - "template": "template_device_firmware", - "entity": "binary_sensor.luce_camera_firmware_update", - "name": "Firmare" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.luce_camera_ota_update", - "name": "Aggiorna Firmware", - "icon": "mdi:package-up" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.luce_camera_reboot", - "name": "Riavvia Dispositivo", - "icon": "mdi:restart" - } - ] - } - ] - } - ] - } - ] + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "/local/images/devices/qnap_ts228a.png", + "tap_action": { + "action": "url", + "url_path": "https://nas.giorgioravera.it" + } }, { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "Shelly 11 - Luce Balcone" - }, + "type": "vertical-stack", + "cards": [ + { + "type": "custom:button-card", + "layout": "icon_name_state", + "entity": "switch.nas", + "name": "Stato", + "show_name": false, + "show_icon": true, + "show_state": true, + "color-type": "card", + "icon": "mdi:power", + "styles": { + "grid": [ + { + "grid-template-columns": "50px auto" + } + ], + "icon": [ + { + "padding": "0px 0px" + }, + { + "height": "25px" + }, + { + "width": "25px" + } + ], + "card": [ + { + "--ha-card-background": "rgba(0, 0, 0, 0)" + }, + { + "--ha-card-box-shadow": "none" + } + ], + "name": [ + { + "padding": "0px 10px" + }, + { + "justify-self": "start" + }, + { + "font-family": "Roboto, sans-serif" + }, + { + "font-size": "15px" + }, + { + "color": "var(--primary-text-color)" + } + ] + }, + "state": [ { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "/local/images/devices/shelly/shelly1.png", - "tap_action": { - "action": "url", - "url_path": "http://shelly11.giorgioravera.it" - } - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "light.luce_balcone", - "name": "Stato" - }, - { - "type": "custom:button-card", - "template": "template_device_firmware", - "entity": "binary_sensor.luce_balcone_firmware_update", - "name": "Firmare" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.luce_balcone_ota_update", - "name": "Aggiorna Firmware", - "icon": "mdi:package-up" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.luce_balcone_reboot", - "name": "Riavvia Dispositivo", - "icon": "mdi:restart" - } - ] - } - ] - } + "value": "on", + "styles": { + "icon": [ + { + "color": "lightgreen" + } ] - } - ] - }, - { - "type": "entities", - "show_header_toggle": "off", - "visible": false, - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "Shelly EM" + } }, { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "/local/images/devices/shelly/shelly_em.png", - "tap_action": { - "action": "url", - "url_path": "http://shellyem.giorgioravera.it" - } - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "sensor.shelly_em_channel_1_power", - "name": "Potenza", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "sensor.shelly_em_channel_1_voltage", - "name": "Tensione", - "icon": "mdi:alpha-v-box", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "sensor.shelly_em_channel_1_power_factor", - "name": "FP", - "icon": "mdi:angle-acute", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "template": "template_device_firmware", - "entity": "binary_sensor.shelly_em_firmware_update", - "name": "Firmare" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.shelly_em_ota_update", - "name": "Aggiorna Firmware", - "icon": "mdi:package-up" - }, - { - "type": "custom:button-card", - "template": "template_device_generic_button", - "entity": "button.shelly_em_reboot", - "name": "Riavvia Dispositivo", - "icon": "mdi:restart" - } - ] - } - ] - } + "value": "off", + "styles": { + "icon": [ + { + "color": "grey" + } ] + } } - ] + ], + "tap_action": { + "action": "toggle", + "confirmation": { + "text": "Sei sicuro di voler procedere?" + } + } + }, + { + "type": "custom:button-card", + "layout": "icon_name_state", + "name": "Gestione", + "show_name": true, + "show_icon": true, + "show_state": true, + "icon": "mdi:cogs", + "tap_action": { + "action": "url", + "url_path": "https://nas.giorgioravera.it" + }, + "styles": { + "grid": [ + { + "grid-template-columns": "50px auto" + } + ], + "icon": [ + { + "padding": "0px 0px" + }, + { + "height": "25px" + }, + { + "width": "25px" + }, + { + "color": "var(--state-icon-color)" + } + ], + "card": [ + { + "--ha-card-background": "rgba(0, 0, 0, 0)" + }, + { + "--ha-card-box-shadow": "none" + } + ], + "name": [ + { + "padding": "0px 10px" + }, + { + "justify-self": "start" + }, + { + "font-family": "Roboto, sans-serif" + }, + { + "font-size": "15px" + }, + { + "color": "var(--primary-text-color)" + } + ] + } + }, + { + "type": "custom:button-card", + "layout": "icon_name_state", + "entity": "script.plex_start", + "name": "Avvia Plex", + "show_icon": true, + "show_state": false, + "icon": "mdi:plex", + "styles": { + "grid": [ + { + "grid-template-columns": "50px auto" + } + ], + "icon": [ + { + "padding": "0px 0px" + }, + { + "height": "25px" + }, + { + "width": "25px" + }, + { + "color": "var(--state-icon-color)" + } + ], + "card": [ + { + "--ha-card-background": "rgba(0, 0, 0, 0)" + }, + { + "--ha-card-box-shadow": "none" + } + ], + "name": [ + { + "padding": "0px 10px" + }, + { + "justify-self": "start" + }, + { + "font-family": "Roboto, sans-serif" + }, + { + "font-size": "15px" + }, + { + "color": "var(--primary-text-color)" + } + ] + }, + "tap_action": { + "action": "call-service", + "confirmation": { + "text": "Sei sicuro di voler avviare Plex?" + }, + "service": "script.plex_start" + } + }, + { + "type": "custom:button-card", + "layout": "icon_name_state", + "entity": "script.plex_stop", + "name": "Ferma Plex", + "show_icon": true, + "show_state": false, + "icon": "mdi:plex", + "styles": { + "grid": [ + { + "grid-template-columns": "50px auto" + } + ], + "icon": [ + { + "padding": "0px 0px" + }, + { + "height": "25px" + }, + { + "width": "25px" + }, + { + "color": "var(--state-icon-color)" + } + ], + "card": [ + { + "--ha-card-background": "rgba(0, 0, 0, 0)" + }, + { + "--ha-card-box-shadow": "none" + } + ], + "name": [ + { + "padding": "0px 10px" + }, + { + "justify-self": "start" + }, + { + "font-family": "Roboto, sans-serif" + }, + { + "font-size": "15px" + }, + { + "color": "var(--primary-text-color)" + } + ] + }, + "tap_action": { + "action": "call-service", + "confirmation": { + "text": "Sei sicuro di voler fermare Plex?" + }, + "service": "script.plex_stop" + } + } + ] } - ] + ] + } + ] + } + ] + }, + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "Canon PIXMA TR8550" }, { - "title": "Netatmo", - "path": "netatmo", - "icon": "mdi:alpha-n-box", - "type": "custom:horizontal-layout", - "badges": [], - "cards": [ + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ { - "type": "entities", - "entities": [ - { - "entity": "input_boolean.central_heating" - }, - { - "entity": "select.netatmo_casa_ravera_testa" - } - ], - "state_color": false, - "title": "Impostazioni" + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0.0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "/local/images/devices/canon_tr8550.png", + "tap_action": { + "action": "url", + "url_path": "http://stampante.giorgioravera.it" + } }, { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "Valvola 1 - Cucina" - }, - { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "/local/images/devices/netatmo_valve.png" - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "climate.cucina", - "name": "Modalit\u00e0", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "sensor.valvola_cucina_state", - "name": "Stato", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "template": "template_device_generic_battery_state", - "entity": "sensor.valvola_cucina_battery_percent", - "name": "Batteria", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - } - ] - } - ] - } + "type": "vertical-stack", + "cards": [ + { + "type": "custom:button-card", + "layout": "icon_name_state", + "name": "Gestione", + "show_name": true, + "show_icon": true, + "show_state": true, + "icon": "mdi:cogs", + "tap_action": { + "action": "url", + "url_path": "http://stampante.giorgioravera.it" + }, + "styles": { + "grid": [ + { + "grid-template-columns": "50px auto" + } + ], + "icon": [ + { + "padding": "0px 0px" + }, + { + "height": "25px" + }, + { + "width": "25px" + }, + { + "color": "var(--state-icon-color)" + } + ], + "card": [ + { + "--ha-card-background": "rgba(0, 0, 0, 0)" + }, + { + "--ha-card-box-shadow": "none" + } + ], + "name": [ + { + "padding": "0px 10px" + }, + { + "justify-self": "start" + }, + { + "font-family": "Roboto, sans-serif" + }, + { + "font-size": "15px" + }, + { + "color": "var(--primary-text-color)" + } + ] + } + }, + { + "type": "custom:button-card", + "layout": "icon_name_state", + "entity": "sensor.canon_tr8500_series", + "name": "Stato", + "show_name": false, + "show_icon": true, + "show_state": true, + "icon": "[[[\n if (entity.state==\"idle\")\n return \"mdi:printer\"\n else\n return \"mdi:printer-settings\"\n]]]\n", + "styles": { + "grid": [ + { + "grid-template-columns": "50px auto" + } + ], + "icon": [ + { + "padding": "0px 0px" + }, + { + "height": "25px" + }, + { + "width": "25px" + }, + { + "color": "var(--state-icon-color)" + } + ], + "card": [ + { + "--ha-card-background": "rgba(0, 0, 0, 0)" + }, + { + "--ha-card-box-shadow": "none" + } + ], + "name": [ + { + "padding": "0px 10px" + }, + { + "justify-self": "start" + }, + { + "font-family": "Roboto, sans-serif" + }, + { + "font-size": "15px" + }, + { + "color": "var(--primary-text-color)" + } + ] + }, + "state": [ + { + "value": "printing", + "styles": { + "icon": [ + { + "color": "yellow" + } ] + } } - ] + ] + } + ] + } + ] + }, + { + "type": "custom:bar-card", + "show_header_toggle": false, + "state_color": false, + "positions": { + "indicator": "off", + "name": "outside", + "value": "outside", + "icon": "inside" + }, + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\nbar-card-value {\n \n margin: 0px;\n font-size: 15px;\n text-shadow: 1px 1px #0005;\n}\nbar-card-name {\n margin: 0px;\n font-size: 15px;\n text-shadow: 1px 1px #0005;\n}\nha-icon {\n color: darkgrey;\n}", + "entities": [ + { + "entity": "sensor.canon_tr8500_series_black_bk", + "name": "BK", + "color": "black", + "width": "85%" }, { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "Valvola 2 - Sala" - }, - { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "/local/images/devices/netatmo_valve.png" - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "climate.sala", - "name": "Modalit\u00e0", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "sensor.valvola_sala_state", - "name": "Stato", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "template": "template_device_generic_battery_state", - "entity": "sensor.valvola_sala_battery_percent", - "name": "Batteria", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - } - ] - } - ] - } - ] - } - ] + "entity": "sensor.canon_tr8500_series_black_pgbk", + "name": "PGBK", + "color": "black", + "width": "85%" }, { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "Valvola 3 - Bagno" - }, - { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "/local/images/devices/netatmo_valve.png" - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "climate.bagno", - "name": "Modalit\u00e0", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "sensor.valvola_bagno_state", - "name": "Stato", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "template": "template_device_generic_battery_state", - "entity": "sensor.valvola_bagno_battery_percent", - "name": "Batteria", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - } - ] - } - ] - } - ] - } - ] + "entity": "sensor.canon_tr8500_series_cyan", + "name": "C", + "color": "cyan", + "width": "85%" }, { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "Valvola 4 - Studio" - }, - { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "/local/images/devices/netatmo_valve.png" - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "climate.studio", - "name": "Modalit\u00e0", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "sensor.valvola_studio_state", - "name": "Stato", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "template": "template_device_generic_battery_state", - "entity": "sensor.valvola_studio_battery_percent", - "name": "Batteria", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - } - ] - } - ] - } - ] - } - ] + "entity": "sensor.canon_tr8500_series_magenta", + "name": "M", + "color": "magenta", + "width": "85%" }, { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "Valvola 5 - Camera" - }, - { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "/local/images/devices/netatmo_valve.png" - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "climate.camera", - "name": "Modalit\u00e0", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "sensor.valvola_camera_state", - "name": "Stato", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "template": "template_device_generic_battery_state", - "entity": "sensor.valvola_camera_battery_percent", - "name": "Batteria", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - } - ] - } - ] - } - ] - } - ] + "entity": "sensor.canon_tr8500_series_yellow", + "name": "Y", + "color": "yellow", + "width": "85%" } - ] + ] + } + ] + } + ] + }, + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "BTicino Classe 300EOS with Netatmo" }, { - "title": "test", - "path": "test", - "icon": "mdi:zigbee", - "type": "custom:horizontal-layout", - "badges": [], - "cards": [ - { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "Porta Casa - Xiaomi MCCGQ01LM" - }, - { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "https://www.zigbee2mqtt.io/images/devices/MCCGQ01LM.jpg" - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "binary_sensor.porta_casa_contact", - "name": "Stato", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "template": "template_device_generic_battery_state", - "entity": "sensor.porta_casa_battery", - "name": "Batteria" - } - ] - } - ] - } - ] - } - ] - }, + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "Temperatura Balcone - Xiaomi WSDCGQ01LM" - }, - { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "https://www.zigbee2mqtt.io/images/devices/WSDCGQ01LM.jpg" - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "sensor.temperatura_balcone_temperature", - "name": "Temperatura", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "sensor.temperatura_balcone_humidity", - "name": "Umidit\u00e0", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "template": "template_device_generic_battery_state", - "entity": "sensor.temperatura_balcone_battery", - "name": "Batteria" - } - ] - } - ] - } - ] - } - ] + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "/local/images/devices/classe300eos.png" }, { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "Temperatura Veranda - Xiaomi WSDCGQ01LM" - }, + "type": "vertical-stack", + "cards": [ + { + "type": "custom:button-card", + "layout": "icon_name_state", + "entity": "switch.portone", + "name": "Apertura Portone", + "show_name": true, + "show_icon": true, + "show_state": false, + "color-type": "card", + "styles": { + "grid": [ + { + "grid-template-columns": "50px auto" + } + ], + "icon": [ + { + "padding": "0px 0px" + }, + { + "height": "25px" + }, + { + "width": "25px" + } + ], + "card": [ + { + "--ha-card-background": "rgba(0, 0, 0, 0)" + }, + { + "--ha-card-box-shadow": "none" + } + ], + "name": [ + { + "padding": "0px 10px" + }, + { + "justify-self": "start" + }, + { + "font-family": "Roboto, sans-serif" + }, + { + "font-size": "15px" + }, + { + "color": "var(--primary-text-color)" + } + ] + }, + "state": [ { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "https://www.zigbee2mqtt.io/images/devices/WSDCGQ01LM.jpg" - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "sensor.temperatura_veranda_temperature", - "name": "Temperatura", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "sensor.temperatura_veranda_humidity", - "name": "Umidit\u00e0", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "template": "template_device_generic_battery_state", - "entity": "sensor.temperatura_veranda_battery", - "name": "Batteria" - } - ] - } - ] - } + "value": "on", + "styles": { + "icon": [ + { + "color": "lightgreen" + } ] - } - ] - }, - { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "spare_door - Xiaomi MCCGQ11LM" + } }, { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "https://www.zigbee2mqtt.io/images/devices/MCCGQ11LM.jpg" - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "template": "template_device_generic_state", - "entity": "binary_sensor.spare_door_contact", - "name": "Stato", - "styles": { - "icon": [ - { - "color": "var(--state-icon-color)" - } - ] - } - }, - { - "type": "custom:button-card", - "template": "template_device_generic_battery_state", - "entity": "sensor.spare_door_battery", - "name": "Batteria" - } - ] - } - ] - } + "value": "off", + "styles": { + "icon": [ + { + "color": "grey" + } ] + } } - ] - }, + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "title": "Shelly", + "path": "shelly", + "icon": "mdi:alpha-s-box", + "type": "custom:horizontal-layout", + "layout": {}, + "badges": [], + "cards": [ + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "Shelly 1 - Tapparella Cucina" + }, + { + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ { - "type": "entities", - "show_header_toggle": "off", - "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", - "entities": [ - { - "type": "section", - "label": "wireless_button - Xiaomi WXKG01LM" - }, - { - "type": "custom:hui-element", - "card_type": "vertical-stack", - "cards": [ - { - "type": "horizontal-stack", - "cards": [ - { - "type": "picture", - "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", - "image": "https://www.zigbee2mqtt.io/images/devices/WXKG01LM.jpg" - }, - { - "type": "vertical-stack", - "cards": [ - { - "type": "custom:button-card", - "template": "template_device_generic_battery_state", - "entity": "sensor.wireless_button_battery", - "name": "Batteria" - } - ] - } - ] - } - ] - } - ] + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "/local/images/devices/shelly/shelly25.png", + "tap_action": { + "action": "url", + "url_path": "http://shelly1.giorgioravera.it" + } }, { - "type": "vertical-stack", - "title": "Mappa Dispositivi", - "layout": "vertical", - "cards": [ - { - "type": "custom:zigbee2mqtt-networkmap", - "title": "Zigbee2MQTT Network Map", - "entity": "sensor.zigbee2mqtt_networkmap", - "mqtt_base_topic": "zigbee2mqtt", - "force": 3000, - "node_size": 16, - "font_size": 12, - "link_width": 2, - "height": 400, - "css": ":host {\n --zigbee2mqtt-networkmap-node-color: rgba(18, 120, 98, .7);\n --zigbee2mqtt-networkmap-node-fill-color: #dcfaf3;\n --zigbee2mqtt-networkmap-node-pinned-color: rgba(190, 56, 93, .6);\n --zigbee2mqtt-networkmap-link-color: rgba(18, 120, 98, .5);\n --zigbee2mqtt-networkmap-hover-color: #be385d;\n --zigbee2mqtt-networkmap-link-selected-color: rgba(202, 164, 85, .6);\n --zigbee2mqtt-networkmap-label-color: #127862;\n --zigbee2mqtt-networkmap-arrow-color: rgba(18, 120, 98, 0.7);\n --zigbee2mqtt-networkmap-node-coordinator-color: rgba(224, 78, 93, .7);\n --zigbee2mqtt-networkmap-node-router-color: rgba(0, 165, 255, .7);\n }\n" - } - ] - } - ] - }, - { - "title": "Shelly2", - "layout": { - "grid-template-columns": "auto auto auto", - "grid-template-rows": "auto", - "grid-template-areas": "\"header header header\"\n\"main1 main2 main3\"\n\"footer footer footer\"\n", - "mediaquery": { - "(max-width: 600px)": { - "grid-template-columns": "100%", - "grid-template-areas": "\"header\"\n\"main1\"\n\"main2\"\n\"main3\"\n\"footer\"\n" + "type": "vertical-stack", + "cards": [ + { + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "cover.tapparella_cucina", + "name": "Stato", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } + }, + { + "type": "custom:button-card", + "template": "template_device_firmware", + "entity": "binary_sensor.tapparella_cucina_firmware_update", + "name": "Firmare" + }, + { + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.tapparella_cucina_ota_update", + "name": "Aggiorna Firmware", + "icon": "mdi:package-up" }, - "(max-width: 800px)": { - "grid-template-columns": "50% 50%", - "grid-template-areas": "\"header header\"\n\"main1 main1\"\n\"main2 main3\"\n\"footer footer\"\n" + { + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.tapparella_cucina_reboot", + "name": "Riavvia Dispositivo", + "icon": "mdi:restart" } + ] } - }, - "icon": "mdi:alpha-s-box", - "path": "shelly2", - "badges": [], - "cards": [ + ] + } + ] + } + ] + }, + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "Shelly 2 - Tapparella Sala" + }, + { + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ { - "type": "custom:button-card", - "name": "Shelly", - "label": "Shelly", - "layout": "name_state", - "show_state": false, - "show_name": false, - "show_label": false, - "show_icon": false, - "show_entity_picture": true, - "entity_picture": "/local/images/devices/shelly/shelly.jpg", - "styles": { - "card": [ - { - "background-color": "white" - }, - { - "box-shadow": "0px 0px 0px 0px." - } - ], - "entity_picture": [ - { - "width": "100%" - } + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "/local/images/devices/shelly/shelly25.png", + "tap_action": { + "action": "url", + "url_path": "http://shelly2.giorgioravera.it" + } + }, + { + "type": "vertical-stack", + "cards": [ + { + "type": "custom:button-card", + "template": "template_device_generic_state", + "layout": "icon_name_state", + "entity": "cover.tapparella_sala", + "name": "Stato", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } ] + } + }, + { + "type": "custom:button-card", + "template": "template_device_firmware", + "entity": "binary_sensor.tapparella_sala_firmware_update", + "name": "Firmare" + }, + { + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.tapparella_sala_ota_update", + "name": "Aggiorna Firmware", + "icon": "mdi:package-up" }, - "view_layout": { - "grid-area": "header" + { + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.tapparella_sala_reboot", + "name": "Riavvia Dispositivo", + "icon": "mdi:restart" } - }, + ] + } + ] + } + ] + } + ] + }, + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "Shelly 3 - Tapparella Studio" + }, + { + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ { - "type": "entities", - "entities": [ - { - "entity": "binary_sensor.tapparella_cucina_firmware_update" - }, - { - "entity": "binary_sensor.tapparella_sala_firmware_update" - }, - { - "entity": "binary_sensor.tapparella_studio_firmware_update" - }, - { - "entity": "binary_sensor.tapparella_camera_firmware_update" - }, - { - "entity": "binary_sensor.luce_corridoio_firmware_update" - }, - { - "entity": "binary_sensor.luce_cucina_firmware_update" - }, - { - "entity": "binary_sensor.luce_sala_firmware_update" - }, - { - "entity": "binary_sensor.luci_bagno_firmware_update" - }, - { - "entity": "binary_sensor.luce_studio_firmware_update" - }, - { - "entity": "binary_sensor.luce_camera_firmware_update" - }, - { - "entity": "binary_sensor.luce_balcone_firmware_update" - }, - { - "entity": "binary_sensor.shelly_em_firmware_update" - } - ], - "title": "Disponibilit\u00e0 Aggiornamenti" + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "/local/images/devices/shelly/shelly25.png", + "tap_action": { + "action": "url", + "url_path": "http://shelly3.giorgioravera.it" + } }, { - "type": "entities", - "entities": [ - { - "entity": "script.shelly_upgrade" - }, - { - "entity": "button.tapparella_cucina_ota_update" - }, - { - "entity": "button.tapparella_sala_ota_update" - }, - { - "entity": "button.tapparella_studio_ota_update" - }, - { - "entity": "button.tapparella_camera_ota_update" - }, - { - "entity": "button.luce_corridoio_ota_update" - }, - { - "entity": "button.luce_cucina_ota_update" - }, - { - "entity": "button.luce_sala_ota_update" - }, - { - "entity": "button.luci_bagno_ota_update" - }, - { - "entity": "button.luce_studio_ota_update" - }, - { - "entity": "button.luce_camera_ota_update" - }, - { - "entity": "button.luce_balcone_ota_update" - }, - { - "entity": "button.shelly_em_ota_update" - } - ], - "title": "Aggiorna Dispositivi" - }, + "type": "vertical-stack", + "cards": [ + { + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "cover.tapparella_studio", + "name": "Stato", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } + }, + { + "type": "custom:button-card", + "template": "template_device_firmware", + "entity": "binary_sensor.tapparella_studio_firmware_update", + "name": "Firmare" + }, + { + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.tapparella_studio_ota_update", + "name": "Aggiorna Firmware", + "icon": "mdi:package-up" + }, + { + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.tapparella_studio_reboot", + "name": "Riavvia Dispositivo", + "icon": "mdi:restart" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "Shelly 4 - Tapparella Camera" + }, + { + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ { - "type": "entities", - "entities": [ - { - "entity": "script.shelly_reboot" - }, - { - "entity": "button.tapparella_cucina_reboot" - }, - { - "entity": "button.tapparella_sala_reboot" - }, - { - "entity": "button.tapparella_studio_reboot" - }, - { - "entity": "button.tapparella_camera_reboot" - }, - { - "entity": "button.luce_corridoio_reboot" - }, - { - "entity": "button.luce_cucina_reboot" - }, - { - "entity": "button.luce_sala_reboot" - }, - { - "entity": "button.luci_bagno_reboot" - }, - { - "entity": "button.luce_studio_reboot" - }, - { - "entity": "button.luce_camera_reboot" - }, - { - "entity": "button.luce_balcone_reboot" - }, - { - "entity": "button.shelly_em_reboot" - } - ], - "title": "Riavvio Dispositivi" + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "/local/images/devices/shelly/shelly25.png", + "tap_action": { + "action": "url", + "url_path": "http://shelly4.giorgioravera.it" + } }, { - "type": "entities", - "entities": [ - { - "entity": "binary_sensor.luce_sala_overpowering" - }, - { - "entity": "binary_sensor.luce_bagno_overpowering" - }, - { - "entity": "binary_sensor.luce_specchio_overpowering" - }, - { - "entity": "binary_sensor.luce_camera_overpowering" - }, - { - "entity": "binary_sensor.shelly_em_overpowering" - } - ], - "title": "Sovraccarico" + "type": "vertical-stack", + "cards": [ + { + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "cover.tapparella_camera", + "name": "Stato", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } + }, + { + "type": "custom:button-card", + "template": "template_device_firmware", + "entity": "binary_sensor.tapparella_camera_firmware_update", + "name": "Firmare" + }, + { + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.tapparella_camera_ota_update", + "name": "Aggiorna Firmware", + "icon": "mdi:package-up" + }, + { + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.tapparella_camera_reboot", + "name": "Riavvia Dispositivo", + "icon": "mdi:restart" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "Shelly 5 - Luce Corridoio" + }, + { + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ + { + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "/local/images/devices/shelly/shelly1.png", + "tap_action": { + "action": "url", + "url_path": "http://shelly5.giorgioravera.it" + } }, { - "type": "entities", - "entities": [ - { - "entity": "binary_sensor.tapparella_sala_overheating" - }, - { - "entity": "binary_sensor.luce_sala_overheating" - }, - { - "entity": "binary_sensor.luci_bagno_overheating" - }, - { - "entity": "binary_sensor.luce_camera_overheating" - } - ], - "title": "Surriscaldamento" + "type": "vertical-stack", + "cards": [ + { + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "light.luce_corridoio", + "name": "Stato" + }, + { + "type": "custom:button-card", + "template": "template_device_firmware", + "entity": "binary_sensor.luce_corridoio_firmware_update", + "name": "Firmare" + }, + { + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.luce_corridoio_ota_update", + "name": "Aggiorna Firmware", + "icon": "mdi:package-up" + }, + { + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.luce_corridoio_reboot", + "name": "Riavvia Dispositivo", + "icon": "mdi:restart" + } + ] } - ] + ] + } + ] } - ], - "button_card_templates": { - "template_device_generic_state": { - "layout": "icon_name_state", - "color-type": "card", - "show_name": true, - "show_icon": true, - "show_state": true, - "styles": { - "grid": [ - { - "grid-template-columns": "50px auto" - } - ], - "icon": [ + ] + }, + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "Shelly 6 - Luce Cucina" + }, + { + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ + { + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "/local/images/devices/shelly/shelly1.png", + "tap_action": { + "action": "url", + "url_path": "http://shelly6.giorgioravera.it" + } + }, + { + "type": "vertical-stack", + "cards": [ { - "padding": "0px 0px" + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "light.luce_cucina", + "name": "Stato" }, { - "height": "25px" + "type": "custom:button-card", + "template": "template_device_firmware", + "entity": "binary_sensor.luce_cucina_firmware_update", + "name": "Firmare" }, { - "width": "25px" + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.luce_cucina_ota_update", + "name": "Aggiorna Firmware", + "icon": "mdi:package-up" + }, + { + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.luce_cucina_reboot", + "name": "Riavvia Dispositivo", + "icon": "mdi:restart" } - ], - "card": [ + ] + } + ] + } + ] + } + ] + }, + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "Shelly 7 - Luce Sala" + }, + { + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ + { + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "/local/images/devices/shelly/shelly_dimmer.png", + "tap_action": { + "action": "url", + "url_path": "http://shelly7.giorgioravera.it" + } + }, + { + "type": "vertical-stack", + "cards": [ { - "--ha-card-background": "rgba(0, 0, 0, 0)" + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "light.luce_sala", + "name": "Stato" }, { - "--ha-card-box-shadow": "none" + "type": "custom:button-card", + "template": "template_device_firmware", + "entity": "binary_sensor.luce_sala_firmware_update", + "name": "Firmare" + }, + { + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.luce_sala_ota_update", + "name": "Aggiorna Firmware", + "icon": "mdi:package-up" + }, + { + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.luce_sala_reboot", + "name": "Riavvia Dispositivo", + "icon": "mdi:restart" } - ], - "name": [ + ] + } + ] + } + ] + } + ] + }, + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "Shelly 8 - Luci Bagno" + }, + { + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ + { + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "/local/images/devices/shelly/shelly25.png", + "tap_action": { + "action": "url", + "url_path": "http://shelly7.giorgioravera.it" + } + }, + { + "type": "vertical-stack", + "cards": [ { - "padding": "0px 10px" + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "light.luce_bagno", + "name": "Stato" }, { - "justify-self": "start" + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "light.luce_specchio", + "name": "Stato" }, { - "font-family": "Roboto, sans-serif" + "type": "custom:button-card", + "template": "template_device_firmware", + "entity": "binary_sensor.luci_bagno_firmware_update", + "name": "Firmare" }, { - "font-size": "15px" + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.luci_bagno_ota_update", + "name": "Aggiorna Firmware", + "icon": "mdi:package-up" }, { - "color": "var(--primary-text-color)" + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.luci_bagno_reboot", + "name": "Riavvia Dispositivo", + "icon": "mdi:restart" } - ] + ] + } + ] } + ] + } + ] + }, + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "Shelly 9 - Luce Studio" }, - "template_device_generic_button": { - "layout": "icon_name_state", - "color-type": "card", - "show_name": true, - "show_icon": true, - "show_state": false, - "tap_action": { - "action": "call-service", - "service": "button.press", - "service_data": { - "entity_id": "[[[ return entity.entity_id ]]]" - } - }, - "styles": { - "grid": [ - { - "grid-template-columns": "50px auto" - } - ], - "icon": [ + { + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ + { + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "/local/images/devices/shelly/shelly1.png", + "tap_action": { + "action": "url", + "url_path": "http://shelly9.giorgioravera.it" + } + }, + { + "type": "vertical-stack", + "cards": [ { - "padding": "0px 0px" + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "light.luce_studio", + "name": "Stato" }, { - "height": "25px" + "type": "custom:button-card", + "template": "template_device_firmware", + "entity": "binary_sensor.luce_studio_firmware_update", + "name": "Firmare" }, { - "width": "25px" + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.luce_studio_ota_update", + "name": "Aggiorna Firmware", + "icon": "mdi:package-up" }, { - "color": "var(--state-icon-color)" + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.luce_studio_reboot", + "name": "Riavvia Dispositivo", + "icon": "mdi:restart" } - ], - "card": [ + ] + } + ] + } + ] + } + ] + }, + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "Shelly 10 - Luce Camera" + }, + { + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ + { + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "/local/images/devices/shelly/shelly_dimmer.png", + "tap_action": { + "action": "url", + "url_path": "http://shelly10.giorgioravera.it" + } + }, + { + "type": "vertical-stack", + "cards": [ { - "--ha-card-background": "rgba(0, 0, 0, 0)" + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "light.luce_camera", + "name": "Stato" }, { - "--ha-card-box-shadow": "none" - } - ], - "name": [ + "type": "custom:button-card", + "template": "template_device_firmware", + "entity": "binary_sensor.luce_camera_firmware_update", + "name": "Firmare" + }, { - "padding": "0px 10px" + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.luce_camera_ota_update", + "name": "Aggiorna Firmware", + "icon": "mdi:package-up" }, { - "justify-self": "start" + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.luce_camera_reboot", + "name": "Riavvia Dispositivo", + "icon": "mdi:restart" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "Shelly 11 - Luce Balcone" + }, + { + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ + { + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "/local/images/devices/shelly/shelly1.png", + "tap_action": { + "action": "url", + "url_path": "http://shelly11.giorgioravera.it" + } + }, + { + "type": "vertical-stack", + "cards": [ + { + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "light.luce_balcone", + "name": "Stato" }, { - "font-family": "Roboto, sans-serif" + "type": "custom:button-card", + "template": "template_device_firmware", + "entity": "binary_sensor.luce_balcone_firmware_update", + "name": "Firmare" }, { - "font-size": "15px" + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.luce_balcone_ota_update", + "name": "Aggiorna Firmware", + "icon": "mdi:package-up" }, { - "color": "var(--primary-text-color)" + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.luce_balcone_reboot", + "name": "Riavvia Dispositivo", + "icon": "mdi:restart" } - ] + ] + } + ] } + ] + } + ] + }, + { + "type": "entities", + "show_header_toggle": "off", + "visible": false, + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "Shelly EM" }, - "template_device_firmware": { - "layout": "icon_name_state", - "color-type": "card", - "show_name": true, - "show_icon": true, - "show_state": true, - "state": [ + { + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ { - "value": "off", - "styles": { - "icon": [ - { - "color": "lightgreen" - } - ] - } + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "/local/images/devices/shelly/shelly_em.png", + "tap_action": { + "action": "url", + "url_path": "http://shellyem.giorgioravera.it" + } }, { - "value": "on", - "styles": { + "type": "vertical-stack", + "cards": [ + { + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "sensor.shelly_em_channel_1_power", + "name": "Potenza", + "styles": { "icon": [ - { - "color": "red" - } + { + "color": "var(--state-icon-color)" + } ] - } - } - ], - "styles": { - "grid": [ + } + }, { - "grid-template-columns": "50px auto" - } - ], - "icon": [ + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "sensor.shelly_em_channel_1_voltage", + "name": "Tensione", + "icon": "mdi:alpha-v-box", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } + }, { - "padding": "0px 0px" + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "sensor.shelly_em_channel_1_power_factor", + "name": "FP", + "icon": "mdi:angle-acute", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } }, { - "height": "25px" + "type": "custom:button-card", + "template": "template_device_firmware", + "entity": "binary_sensor.shelly_em_firmware_update", + "name": "Firmare" }, { - "width": "25px" + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.shelly_em_ota_update", + "name": "Aggiorna Firmware", + "icon": "mdi:package-up" }, { - "color": "var(--state-icon-color)" + "type": "custom:button-card", + "template": "template_device_generic_button", + "entity": "button.shelly_em_reboot", + "name": "Riavvia Dispositivo", + "icon": "mdi:restart" } - ], - "card": [ + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "title": "Netatmo", + "path": "netatmo", + "icon": "mdi:alpha-n-box", + "type": "custom:horizontal-layout", + "badges": [], + "cards": [ + { + "type": "entities", + "entities": [ + { + "entity": "input_boolean.central_heating" + }, + { + "entity": "select.netatmo_casa_ravera_testa" + } + ], + "state_color": false, + "title": "Impostazioni" + }, + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "Valvola 1 - Cucina" + }, + { + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ + { + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "/local/images/devices/netatmo_valve.png" + }, + { + "type": "vertical-stack", + "cards": [ { - "--ha-card-background": "rgba(0, 0, 0, 0)" + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "climate.cucina", + "name": "Modalità", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } + }, + { + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "sensor.valvola_cucina_state", + "name": "Stato", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } }, { - "--ha-card-box-shadow": "none" + "type": "custom:button-card", + "template": "template_device_generic_battery_state", + "entity": "sensor.valvola_cucina_battery_percent", + "name": "Batteria", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } } - ], - "name": [ + ] + } + ] + } + ] + } + ] + }, + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "Valvola 2 - Sala" + }, + { + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ + { + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "/local/images/devices/netatmo_valve.png" + }, + { + "type": "vertical-stack", + "cards": [ { - "padding": "0px 10px" + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "climate.sala", + "name": "Modalità", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } }, { - "justify-self": "start" + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "sensor.valvola_sala_state", + "name": "Stato", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } }, { - "font-family": "Roboto, sans-serif" + "type": "custom:button-card", + "template": "template_device_generic_battery_state", + "entity": "sensor.valvola_sala_battery_percent", + "name": "Batteria", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "Valvola 3 - Bagno" + }, + { + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ + { + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "/local/images/devices/netatmo_valve.png" + }, + { + "type": "vertical-stack", + "cards": [ + { + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "climate.bagno", + "name": "Modalità", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } }, { - "font-size": "15px" + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "sensor.valvola_bagno_state", + "name": "Stato", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } }, { - "color": "var(--primary-text-color)" + "type": "custom:button-card", + "template": "template_device_generic_battery_state", + "entity": "sensor.valvola_bagno_battery_percent", + "name": "Batteria", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } } - ] + ] + } + ] } + ] + } + ] + }, + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "Valvola 4 - Studio" }, - "template_device_generic_battery_state": { - "layout": "icon_name_state", - "color-type": "card", - "show_name": true, - "show_icon": true, - "show_state": true, - "styles": { - "grid": [ - { - "grid-template-columns": "50px auto" - } - ], - "icon": [ + { + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ + { + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "/local/images/devices/netatmo_valve.png" + }, + { + "type": "vertical-stack", + "cards": [ { - "padding": "0px 0px" + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "climate.studio", + "name": "Modalità", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } }, { - "height": "25px" + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "sensor.valvola_studio_state", + "name": "Stato", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } }, { - "width": "25px" + "type": "custom:button-card", + "template": "template_device_generic_battery_state", + "entity": "sensor.valvola_studio_battery_percent", + "name": "Batteria", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } } - ], - "card": [ + ] + } + ] + } + ] + } + ] + }, + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "Valvola 5 - Camera" + }, + { + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ + { + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "/local/images/devices/netatmo_valve.png" + }, + { + "type": "vertical-stack", + "cards": [ + { + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "climate.camera", + "name": "Modalità", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } + }, { - "--ha-card-background": "rgba(0, 0, 0, 0)" + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "sensor.valvola_camera_state", + "name": "Stato", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } }, { - "--ha-card-box-shadow": "none" + "type": "custom:button-card", + "template": "template_device_generic_battery_state", + "entity": "sensor.valvola_camera_battery_percent", + "name": "Batteria", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } } - ], - "name": [ + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "title": "test", + "path": "test", + "icon": "mdi:zigbee", + "type": "custom:horizontal-layout", + "badges": [], + "cards": [ + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "Porta Casa - Xiaomi MCCGQ01LM" + }, + { + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ + { + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "https://www.zigbee2mqtt.io/images/devices/MCCGQ01LM.jpg" + }, + { + "type": "vertical-stack", + "cards": [ { - "padding": "0px 10px" + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "binary_sensor.porta_casa_contact", + "name": "Stato", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } }, { - "justify-self": "start" - }, + "type": "custom:button-card", + "template": "template_device_generic_battery_state", + "entity": "sensor.porta_casa_battery", + "name": "Batteria" + } + ] + } + ] + } + ] + } + ] + }, + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "Temperatura Balcone - Xiaomi WSDCGQ01LM" + }, + { + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ + { + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "https://www.zigbee2mqtt.io/images/devices/WSDCGQ01LM.jpg" + }, + { + "type": "vertical-stack", + "cards": [ { - "font-family": "Roboto, sans-serif" + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "sensor.temperatura_balcone_temperature", + "name": "Temperatura", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } }, { - "font-size": "15px" + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "sensor.temperatura_balcone_humidity", + "name": "Umidità", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } }, { - "color": "var(--primary-text-color)" + "type": "custom:button-card", + "template": "template_device_generic_battery_state", + "entity": "sensor.temperatura_balcone_battery", + "name": "Batteria" } - ] - }, - "state": [ + ] + } + ] + } + ] + } + ] + }, + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "Temperatura Veranda - Xiaomi WSDCGQ01LM" + }, + { + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ { - "value": 20, - "operator": "<=", - "styles": { + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "https://www.zigbee2mqtt.io/images/devices/WSDCGQ01LM.jpg" + }, + { + "type": "vertical-stack", + "cards": [ + { + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "sensor.temperatura_veranda_temperature", + "name": "Temperatura", + "styles": { "icon": [ - { - "color": "var(--label-badge-red)" - } + { + "color": "var(--state-icon-color)" + } ] + } + }, + { + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "sensor.temperatura_veranda_humidity", + "name": "Umidità", + "styles": { + "icon": [ + { + "color": "var(--state-icon-color)" + } + ] + } + }, + { + "type": "custom:button-card", + "template": "template_device_generic_battery_state", + "entity": "sensor.temperatura_veranda_battery", + "name": "Batteria" } + ] + } + ] + } + ] + } + ] + }, + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "spare_door - Xiaomi MCCGQ11LM" + }, + { + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ + { + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "https://www.zigbee2mqtt.io/images/devices/MCCGQ11LM.jpg" }, { - "value": 50, - "operator": "<=", - "styles": { + "type": "vertical-stack", + "cards": [ + { + "type": "custom:button-card", + "template": "template_device_generic_state", + "entity": "binary_sensor.spare_door_contact", + "name": "Stato", + "styles": { "icon": [ - { - "color": "var(--label-badge-yellow)" - } + { + "color": "var(--state-icon-color)" + } ] + } + }, + { + "type": "custom:button-card", + "template": "template_device_generic_battery_state", + "entity": "sensor.spare_door_battery", + "name": "Batteria" } + ] + } + ] + } + ] + } + ] + }, + { + "type": "entities", + "show_header_toggle": "off", + "style": ".card-header {\n padding: 0px 0px 0px 0px !important;\n}\n", + "entities": [ + { + "type": "section", + "label": "wireless_button - Xiaomi WXKG01LM" + }, + { + "type": "custom:hui-element", + "card_type": "vertical-stack", + "cards": [ + { + "type": "horizontal-stack", + "cards": [ + { + "type": "picture", + "style": "ha-card { \n --paper-card-background-color: 'rgba(0, 0, 0, 0.0)';\n --ha-card-background: \"rgba(0, 0, 0, 0)\";\n --ha-card-box-shadow: 'none';\n}\n", + "image": "https://www.zigbee2mqtt.io/images/devices/WXKG01LM.jpg" }, { - "value": 100, - "operator": "<=", - "styles": { - "icon": [ - { - "color": "var(--label-badge-green)" - } - ] + "type": "vertical-stack", + "cards": [ + { + "type": "custom:button-card", + "template": "template_device_generic_battery_state", + "entity": "sensor.wireless_button_battery", + "name": "Batteria" } + ] } - ] + ] + } + ] + } + ] + }, + { + "type": "vertical-stack", + "title": "Mappa Dispositivi", + "layout": "vertical", + "cards": [ + { + "type": "custom:zigbee2mqtt-networkmap", + "title": "Zigbee2MQTT Network Map", + "entity": "sensor.zigbee2mqtt_networkmap", + "mqtt_base_topic": "zigbee2mqtt", + "force": 3000, + "node_size": 16, + "font_size": 12, + "link_width": 2, + "height": 400, + "css": ":host {\n --zigbee2mqtt-networkmap-node-color: rgba(18, 120, 98, .7);\n --zigbee2mqtt-networkmap-node-fill-color: #dcfaf3;\n --zigbee2mqtt-networkmap-node-pinned-color: rgba(190, 56, 93, .6);\n --zigbee2mqtt-networkmap-link-color: rgba(18, 120, 98, .5);\n --zigbee2mqtt-networkmap-hover-color: #be385d;\n --zigbee2mqtt-networkmap-link-selected-color: rgba(202, 164, 85, .6);\n --zigbee2mqtt-networkmap-label-color: #127862;\n --zigbee2mqtt-networkmap-arrow-color: rgba(18, 120, 98, 0.7);\n --zigbee2mqtt-networkmap-node-coordinator-color: rgba(224, 78, 93, .7);\n --zigbee2mqtt-networkmap-node-router-color: rgba(0, 165, 255, .7);\n }\n" } + ] + } + ] + }, + { + "title": "Shelly2", + "layout": { + "grid-template-columns": "auto auto auto", + "grid-template-rows": "auto", + "grid-template-areas": "\"header header header\"\n\"main1 main2 main3\"\n\"footer footer footer\"\n", + "mediaquery": { + "(max-width: 600px)": { + "grid-template-columns": "100%", + "grid-template-areas": "\"header\"\n\"main1\"\n\"main2\"\n\"main3\"\n\"footer\"\n" + }, + "(max-width: 800px)": { + "grid-template-columns": "50% 50%", + "grid-template-areas": "\"header header\"\n\"main1 main1\"\n\"main2 main3\"\n\"footer footer\"\n" + } + } + }, + "icon": "mdi:alpha-s-box", + "path": "shelly2", + "badges": [], + "cards": [ + { + "type": "custom:button-card", + "name": "Shelly", + "label": "Shelly", + "layout": "name_state", + "show_state": false, + "show_name": false, + "show_label": false, + "show_icon": false, + "show_entity_picture": true, + "entity_picture": "/local/images/devices/shelly/shelly.jpg", + "styles": { + "card": [ + { + "background-color": "white" + }, + { + "box-shadow": "0px 0px 0px 0px." + } + ], + "entity_picture": [ + { + "width": "100%" + } + ] + }, + "view_layout": { + "grid-area": "header" + } + }, + { + "type": "entities", + "entities": [ + { + "entity": "binary_sensor.tapparella_cucina_firmware_update" + }, + { + "entity": "binary_sensor.tapparella_sala_firmware_update" + }, + { + "entity": "binary_sensor.tapparella_studio_firmware_update" + }, + { + "entity": "binary_sensor.tapparella_camera_firmware_update" + }, + { + "entity": "binary_sensor.luce_corridoio_firmware_update" + }, + { + "entity": "binary_sensor.luce_cucina_firmware_update" + }, + { + "entity": "binary_sensor.luce_sala_firmware_update" + }, + { + "entity": "binary_sensor.luci_bagno_firmware_update" + }, + { + "entity": "binary_sensor.luce_studio_firmware_update" + }, + { + "entity": "binary_sensor.luce_camera_firmware_update" + }, + { + "entity": "binary_sensor.luce_balcone_firmware_update" + }, + { + "entity": "binary_sensor.shelly_em_firmware_update" + } + ], + "title": "Disponibilità Aggiornamenti" + }, + { + "type": "entities", + "entities": [ + { + "entity": "script.shelly_upgrade" + }, + { + "entity": "button.tapparella_cucina_ota_update" + }, + { + "entity": "button.tapparella_sala_ota_update" + }, + { + "entity": "button.tapparella_studio_ota_update" + }, + { + "entity": "button.tapparella_camera_ota_update" + }, + { + "entity": "button.luce_corridoio_ota_update" + }, + { + "entity": "button.luce_cucina_ota_update" + }, + { + "entity": "button.luce_sala_ota_update" + }, + { + "entity": "button.luci_bagno_ota_update" + }, + { + "entity": "button.luce_studio_ota_update" + }, + { + "entity": "button.luce_camera_ota_update" + }, + { + "entity": "button.luce_balcone_ota_update" + }, + { + "entity": "button.shelly_em_ota_update" + } + ], + "title": "Aggiorna Dispositivi" + }, + { + "type": "entities", + "entities": [ + { + "entity": "script.shelly_reboot" + }, + { + "entity": "button.tapparella_cucina_reboot" + }, + { + "entity": "button.tapparella_sala_reboot" + }, + { + "entity": "button.tapparella_studio_reboot" + }, + { + "entity": "button.tapparella_camera_reboot" + }, + { + "entity": "button.luce_corridoio_reboot" + }, + { + "entity": "button.luce_cucina_reboot" + }, + { + "entity": "button.luce_sala_reboot" + }, + { + "entity": "button.luci_bagno_reboot" + }, + { + "entity": "button.luce_studio_reboot" + }, + { + "entity": "button.luce_camera_reboot" + }, + { + "entity": "button.luce_balcone_reboot" + }, + { + "entity": "button.shelly_em_reboot" + } + ], + "title": "Riavvio Dispositivi" + }, + { + "type": "entities", + "entities": [ + { + "entity": "binary_sensor.luce_sala_overpowering" + }, + { + "entity": "binary_sensor.luce_bagno_overpowering" + }, + { + "entity": "binary_sensor.luce_specchio_overpowering" + }, + { + "entity": "binary_sensor.luce_camera_overpowering" + }, + { + "entity": "binary_sensor.shelly_em_overpowering" + } + ], + "title": "Sovraccarico" + }, + { + "type": "entities", + "entities": [ + { + "entity": "binary_sensor.tapparella_sala_overheating" + }, + { + "entity": "binary_sensor.luce_sala_overheating" + }, + { + "entity": "binary_sensor.luci_bagno_overheating" + }, + { + "entity": "binary_sensor.luce_camera_overheating" + } + ], + "title": "Surriscaldamento" + } + ] + } + ], + "button_card_templates": { + "template_device_generic_state": { + "layout": "icon_name_state", + "color-type": "card", + "show_name": true, + "show_icon": true, + "show_state": true, + "styles": { + "grid": [ + { + "grid-template-columns": "50px auto" + } + ], + "icon": [ + { + "padding": "0px 0px" + }, + { + "height": "25px" + }, + { + "width": "25px" + } + ], + "card": [ + { + "--ha-card-background": "rgba(0, 0, 0, 0)" + }, + { + "--ha-card-box-shadow": "none" + } + ], + "name": [ + { + "padding": "0px 10px" + }, + { + "justify-self": "start" + }, + { + "font-family": "Roboto, sans-serif" + }, + { + "font-size": "15px" + }, + { + "color": "var(--primary-text-color)" + } + ] + } + }, + "template_device_generic_button": { + "layout": "icon_name_state", + "color-type": "card", + "show_name": true, + "show_icon": true, + "show_state": false, + "tap_action": { + "action": "call-service", + "service": "button.press", + "service_data": { + "entity_id": "[[[ return entity.entity_id ]]]" + } + }, + "styles": { + "grid": [ + { + "grid-template-columns": "50px auto" + } + ], + "icon": [ + { + "padding": "0px 0px" + }, + { + "height": "25px" + }, + { + "width": "25px" + }, + { + "color": "var(--state-icon-color)" + } + ], + "card": [ + { + "--ha-card-background": "rgba(0, 0, 0, 0)" + }, + { + "--ha-card-box-shadow": "none" + } + ], + "name": [ + { + "padding": "0px 10px" + }, + { + "justify-self": "start" + }, + { + "font-family": "Roboto, sans-serif" + }, + { + "font-size": "15px" + }, + { + "color": "var(--primary-text-color)" + } + ] + } + }, + "template_device_firmware": { + "layout": "icon_name_state", + "color-type": "card", + "show_name": true, + "show_icon": true, + "show_state": true, + "state": [ + { + "value": "off", + "styles": { + "icon": [ + { + "color": "lightgreen" + } + ] + } + }, + { + "value": "on", + "styles": { + "icon": [ + { + "color": "red" + } + ] + } + } + ], + "styles": { + "grid": [ + { + "grid-template-columns": "50px auto" + } + ], + "icon": [ + { + "padding": "0px 0px" + }, + { + "height": "25px" + }, + { + "width": "25px" + }, + { + "color": "var(--state-icon-color)" + } + ], + "card": [ + { + "--ha-card-background": "rgba(0, 0, 0, 0)" + }, + { + "--ha-card-box-shadow": "none" + } + ], + "name": [ + { + "padding": "0px 10px" + }, + { + "justify-self": "start" + }, + { + "font-family": "Roboto, sans-serif" + }, + { + "font-size": "15px" + }, + { + "color": "var(--primary-text-color)" + } + ] + } + }, + "template_device_generic_battery_state": { + "layout": "icon_name_state", + "color-type": "card", + "show_name": true, + "show_icon": true, + "show_state": true, + "styles": { + "grid": [ + { + "grid-template-columns": "50px auto" + } + ], + "icon": [ + { + "padding": "0px 0px" + }, + { + "height": "25px" + }, + { + "width": "25px" + } + ], + "card": [ + { + "--ha-card-background": "rgba(0, 0, 0, 0)" + }, + { + "--ha-card-box-shadow": "none" + } + ], + "name": [ + { + "padding": "0px 10px" + }, + { + "justify-self": "start" + }, + { + "font-family": "Roboto, sans-serif" + }, + { + "font-size": "15px" + }, + { + "color": "var(--primary-text-color)" + } + ] + }, + "state": [ + { + "value": 20, + "operator": "<=", + "styles": { + "icon": [ + { + "color": "var(--label-badge-red)" + } + ] + } + }, + { + "value": 50, + "operator": "<=", + "styles": { + "icon": [ + { + "color": "var(--label-badge-yellow)" + } + ] + } + }, + { + "value": 100, + "operator": "<=", + "styles": { + "icon": [ + { + "color": "var(--label-badge-green)" + } + ] + } } + ] } + } } + } } \ No newline at end of file diff --git a/packages/bticino_300eos.yaml b/packages/bticino_300eos.yaml new file mode 100644 index 00000000..cd972bb1 --- /dev/null +++ b/packages/bticino_300eos.yaml @@ -0,0 +1,105 @@ +###################################################################### +# BTcino Classe 300eos with Netatmo - Input boolean +###################################################################### + +input_boolean: + portone: + name: "Portone" + initial: false + icon: mdi:door + +###################################################################### +# BTcino Classe 300eos with Netatmo - Switch +###################################################################### + +switch: + - platform: template + switches: + portone: + value_template: "{{ is_state('input_boolean.portone', 'on') }}" + icon_template: mdi:door + turn_on: + - service: input_boolean.turn_on + target: + entity_id: input_boolean.portone + - delay: 1 + - service: input_boolean.turn_off + target: + entity_id: input_boolean.portone + turn_off: + service: input_boolean.turn_off + target: + entity_id: input_boolean.portone + +###################################################################### +# BTcino Classe 300eos with Netatmo - Lock +###################################################################### + +#lock: +# - platform: template +# name: Portone +# value_template: "{{ is_state('input_boolean.portone', 'off') }}" +# lock: +# service: input_boolean.turn_off +# target: +# entity_id: input_boolean.portone +# unlock: +# - service: input_boolean.turn_on +# target: +# entity_id: input_boolean.portone +# - delay: 1 +# - service: input_boolean.turn_off +# target: +# entity_id: input_boolean.portone + +###################################################################### +# BTcino Classe 300eos with Netatmo - Google Assistant +###################################################################### + +google_assistant: + entity_config: + switch.portone: + name: Portone + expose: true + room: Condominio + +###################################################################### +# BTcino Classe 300eos with Netatmo - Amazon Alexa +###################################################################### + +alexa: + smart_home: + filter: + include_entities: + - switch.portone + entity_config: + switch.portone: + name: "Routine Portone" + description: "Routine per l'apertura del portone condominiale" + +###################################################################### +# BTcino Classe 300eos with Netatmo - History +###################################################################### + +#history: +# exclude: +# entities: +# - lock.portone + +###################################################################### +# BTcino Classe 300eos with Netatmo - Logbook +###################################################################### + +#logbook: +# exclude: +# entities: +# - lock.portone + +###################################################################### +# BTcino Classe 300eos with Netatmo - Recorder +###################################################################### + +#recorder: +# exclude: +# entities: +# - lock.portone diff --git a/www/images/devices/classe300eos.png b/www/images/devices/classe300eos.png new file mode 100644 index 0000000000000000000000000000000000000000..c6d284fabd5b7a4e19b0726ab80569f818643793 GIT binary patch literal 79851 zcmeFYRaBc{*9Dm1PJ!TBG=<<&+^x8~ySuv-cdsA;iWMpD#ic-TihH0y@uEd1eEc z8_-ijP7+WvL2&>8&;Z^^OKAC-9Oa<~S?LC!KHsb#a5EQoVV?%*b}So5a{Ac4-efrI z3w+I9IDms*NJflRhZt?9fWSA-NB`a-61Z}PKqC2$?!AeHyoC|RVUvDfLbHRmjo>)v-q1i7)y7ye2>*MOKFCNQ#{~t0 z`2QN`lp1_Qd~+USRxUytekeU4iQXc@KwjY)N5Hc-UZC`(uwC_D!@}Fe?*Ac_ z%zfa$PLHPyAHiPONW`AM|Kx>7v$Jjg*4e<^oYqkDv67~yrprQ&u}t_Vudm_AdpL+d zCEy|KG!>O&|4kX0D)@3b*^U2!DNcIZx=!yXsGkFW+HQ^mE3&k-6r3}bw&!o9PxP_$ zT`goAPpsxJ9menX{_2%;r(_`j+Q>SlkuCecpBzc8M|Ux8$8)%RZP%qo;bH6>7K>uM zAac^~((Sy$Br+*v3?X9LKEKTb>@0WgS?R#zytWxW45O7pmIg-}-T%Tk4@2;K7ZMVlNMBVe@wpxQtnKwA8D$l0gRTanz9y;Yn7M6mOUPD*ukwH6oz zD5P3l1SrgMlu-ub@Qf2A!zg^?2Q%2F)fc>RHS<-}GNUb-EI*DDyR!AvFNu%Q zYyJnU%(UUy)%rDC5rqXqOSk7j_+o#$_?xqZY zil)OTnnX_D>w~d&VrAvzu&SZ`_7(3P=Nd?}v-J%(1gYA+}%0D!RvKH(BG*XqjNSi?m1^ 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 A#Q*>R literal 0 HcmV?d00001 -- 2.47.3