NSPanel Configuración final y uso en Home Assistant

Después de probar el NSPanel decidí integrarlo completamente en Home Assistant con algunos de los dispositivos que tengo , por limitaciones del tamaño de la pantalla las cardEntities solo permiten cuatro entidades y las cardGrid seis entidades , hay algunos iconos mdi que aun no están implementados pero de todas maneras hay una gran cantidad para dejarlo a nuestro gusto.

Si se declaran en la sección hiddenCards automáticamente desaparecerán en la pantalla principal y cuando las llamemos nos aparecerá la opción de volver al nivel superior en lugar de pagina adelante / pagina atrás , para llamar a estar tarjetas usaremos la entidad navigate seguida del tipo y acabando con la clave , por ejemplo navigate.cardEntities_banyo

Este es el contenido de mi apps.yml que puede servir de base

nspanel-1:
  module: nspanel-lovelace-ui
  class: NsPanelLovelaceUIManager
  config:
    panelRecvTopic: "tele/tasmota_0CBAFC/RESULT"
    panelSendTopic: "cmnd/tasmota_0CBAFC/CustomSend"
    updateMode: "auto-notify"
    sleepTimeout: 10
    sleepBrightness: 10
    sleepBrightness:
      - time: "7:00:00"
        value: 10
      - time: "23:00:00"
        value: 0
    locale: "es_ES" # used for translations in translations.py and for localized date if babel python package is installed
    screensaver:
      entity: weather.aemet_daily
    cards:
      - type: cardGrid
        title: Estancias
        entities:
          - entity: navigate.cardEntities_comedor
            name: Comedor
            icon: silverware
          - entity: navigate.cardEntities_cocina
            name: Cocina
            icon: pasta
          - entity: navigate.cardEntities_estudio
            name: Estudio
            icon: book-open-variant          
          - entity: navigate.cardEntities_matrimonio
            name: Hab. mat.
            icon: bed-king
          - entity: navigate.cardEntities_oriol
            name: Oriol
            icon: bed-outline
          - entity: navigate.cardEntities_banyo
            name: Baños
            icon: toilet
        key: estancias

      - type: cardThermo
        entity: climate.calefaccion_casa

      - type: cardMedia
        entity: media_player.tv_salon

    hiddenCards:

      - type: cardEntities
        title: Oriol
        entities:
          - entity: light.luz_oriol        
            name: Techo
            icon: ceiling-light
          - entity: light.tira_led_cama_oriol
            name: Led cama
            icon: led-strip-variant
          - entity: light.tira_led_mesa_oriol
            name: Led mesa
            icon: led-strip-variant
          - entity: cover.window_oriol_cover
            name: Persiana
            icon: window-shutter
          # - entity: navigate.cardGrid_estancias
            # name: Inicio
            # icon: home
        key: oriol

      - type: cardEntities
        title: Cocina
        entities:
          - entity: light.luz_cocina        
            name: Techo
            icon: ceiling-light
          - entity: light.tira_led_cocina
            name: Tira led
            icon: led-strip-variant
          - entity: sensor.enchufe_14_nevera_power
            name: Nevera
            icon: fridge
          - entity: light.luz_lavadero        
            name: Lavadero
            icon: ceiling-light
          # - entity: navigate.cardGrid_estancias
            # name: Inicio
            # icon: home
        key: cocina

      - type: cardEntities
        title: Estudio
        entities:
          - entity: light.luz_estudio        
            name: Techo
            icon: ceiling-light
          - entity: light.tira_led_estudio
            name: Tira led
            icon: led-strip-variant
          - entity: light.gateway_light_286c07f0b574
            name: Gateway
            icon: blur-radial
          - entity: switch.enchufe_12
            name: Enchufe NUC
            icon: power-socket-eu
          # - entity: navigate.cardGrid_estancias
            # name: Inicio
            # icon: home
        key: estudio

      - type: cardEntities
        title: Baños
        entities:
          - entity: light.luz_banyo_techo        
            name: Techo
            icon: ceiling-light
          - entity: light.luz_banyo_espejo
            name: Espejo
            icon: mirror
          - entity: light.luz_aseo
            name: Aseo
            icon: toilet
          - entity: light.gateway_light_286c07f0e736
            name: Gateway
            icon: blur-radial
          # - entity: navigate.cardGrid_estancias
            # name: Inicio
            # icon: home
        key: banyo

      - type: cardEntities
        title: Matrimonio
        entities:
          - entity: light.luz_matrimonio        
            name: Techo
            icon: ceiling-light
          - entity: cover.window_matrimonio_cover
            name: Persiana
            icon: window-shutter
          - entity: switch.enchufe_tv_matrimonio
            name: TV
            icon: television
          - entity: sensor.temperatura_matrimonio_calibrada
            name: Temperatura
            icon: thermometer
        key: matrimonio

      - type: cardEntities
        title: Comedor
        entities:
          - entity: light.luz_sofa          
            name: Sofa
            icon: floor-lamp
          - entity: light.luz_comedor_centro
            name: Centro
            icon: lightbulb-group-outline
          - entity: light.luz_comedor_mesa
            name: Mesa
            icon: lightbulb-group-outline
          - entity: sensor.temperatura_comedor_calibrada
            name: Temperatura
            icon: thermometer
        key: comedor

El resultado final seria este

Ya que la pantalla dispone de dos teclas , las usaremos para darle funcionalidad dentro de nuestra domótica

Lo primero es crear los dos switchs mqtt que nos permitirán crear las automatizaciones posteriormente

    #MSPanel

  - platform: mqtt
    name: nspanel_salida_1
    state_topic: "stat/tasmota_0CBAFC/POWER1"
    command_topic: "cmnd/tasmota_0CBAFC/POWER1"
    availability_topic: "tele/tasmota_0CBAFC/LWT"
    payload_on: "ON"
    payload_off: "OFF"
    payload_available: "Online"
    payload_not_available: "Offline"
    retain: true            
    qos: 0    
       
  - platform: mqtt
    name: nspanel_salida_2
    state_topic: "stat/tasmota_0CBAFC/POWER2"
    command_topic: "cmnd/tasmota_0CBAFC/POWER2"
    availability_topic: "tele/tasmota_0CBAFC/LWT"
    payload_on: "ON"
    payload_off: "OFF"
    payload_available: "Online"
    payload_not_available: "Offline"
    retain: true            
    qos: 0  

Los vestimos adecuadamente en nuestro customize.yaml

switch.nspanel_salida_1:
  friendly_name: Panel tecla 1
  icon: mdi:toggle-switch
switch.nspanel_salida_2:
  friendly_name: Panel tecla 2
  icon: mdi:toggle-switch

Y creamos las automatizaciones para darles uso , yo en este caso he usado la tecla izquierda para controlar la luz del sofá y la derecha para controla la luz de la cocina , además de encender y apagar hay que poner el estado de las teclas según este el la luz al arrancar el sistema o al cambiar de estado por cualquiera de los otros elementos que controlan dichas luces , quedaría algo similar a esto

##############################
#####   TECLAS NSPANEL   #####
##############################

- alias: NSPanel 1 Tecla 1 ON
  initial_state: 'on'
  trigger:
    platform: state
    entity_id: switch.nspanel_salida_1
    to: 'on'
  action: 
    service: light.turn_on
    entity_id: light.luz_sofa 

- alias: NSPanel 1 Tecla 1 OFF
  initial_state: 'on'
  trigger:
    platform: state
    entity_id: switch.nspanel_salida_1
    to: 'off'
  action: 
    service: light.turn_off
    entity_id: light.luz_sofa 

- alias: NSPanel 1 Tecla 1 TO ON
  initial_state: 'on'
  trigger:
    platform: state
    entity_id: light.luz_sofa
    to: 'on'
  action: 
    service: switch.turn_on
    entity_id: switch.nspanel_salida_1 

- alias: NSPanel 1 Tecla 1 TO OFF
  initial_state: 'on'
  trigger:
    platform: state
    entity_id: light.luz_sofa
    to: 'off'
  action: 
    service: switch.turn_off
    entity_id: switch.nspanel_salida_1 






- alias: NSPanel 1 Tecla 2 ON
  initial_state: 'on'
  trigger:
    platform: state
    entity_id: switch.nspanel_salida_2
    to: 'on'
  action: 
    service: light.turn_on
    entity_id: light.luz_cocina 

- alias: NSPanel 1 Tecla 2 OFF
  initial_state: 'on'
  trigger:
    platform: state
    entity_id: switch.nspanel_salida_2
    to: 'off'
  action: 
    service: light.turn_off
    entity_id: light.luz_cocina 

- alias: NSPanel 1 Tecla 2 TO ON
  initial_state: 'on'
  trigger:
    platform: state
    entity_id: light.luz_cocina
    to: 'on'
  action: 
    service: switch.turn_on
    entity_id: switch.nspanel_salida_2 

- alias: NSPanel 1 Tecla 2 TO OFF
  initial_state: 'on'
  trigger:
    platform: state
    entity_id: light.luz_cocina
    to: 'off'
  action: 
    service: switch.turn_off
    entity_id: switch.nspanel_salida_2 

Y para rizar el rizo al final este primer NSPanel lo pondré como pantalla sin estar empotrado en la pared , para ello encontré este diseño para imprimir en3D que tiene una pinta espectacular , para empotrar en la pared pediré una segunda unidad del NSPanel estos días.

Este seria el resultado final , hay que alimentarlo con 5V directamente sobre el conector que lleva.

Y con esto y un bizcocho …………