NSPanel Pro with Wallpanel on Fully Kiosk Browser

Hi everyone.
I got my first nspanel pro this weekend and have been playing with it since then.
I found this post very inspiring.

I have one issue.
I have setup the nspanel pro tools application to wake up from deep sleep using the presence sensor and it works great, till I don’t open my dashboard with fkb.
After that, the ns doesn’t go into sleep mode anymore.

Any idea?

Thanks
Massimiliano

Hi, that is right. I use the functions of the fully kiosk integration to de-/activate or dim the screen.

1 Like

I found it!
Now everything works smoothly. I love it.

Hi I am also interested in the code so i can play woith it. can you email it to me?

I’m a bit late to the party with this thread but was looking for some advice.

I’ve got the NSPanel pro and am mainly using it as an alarm keypad, but it could be better.

On my dashboard I’ve got the alarmo card, a couple of lights and my garage door opener. When the alarm is disarmed it’s fine, I can see the buttons to arm the alarm, the lights and the garage controls.

But, when the alarm is armed the key pad buttons are just slightly too small and the zero and clear button go off the bottom of the screen. Ideally I’d like a card that basically makes better use of the screen space available so the whole alarm keypad is visible and the buttons are large enough to be comfortable.

I’ve currently just got the full version of the companion app installed.

Anyone got any advice on good alarm panel cards that work well with the NSPanel, or advice on anything else I could do to improve it? I know there’s a minimal UI but I’ve not tried it, would that be better?

Many thanks in advance!
Jon

Hello, I worked on my status display an use now a yaml-configuration to be able to reuse parts of the code in different dashboards:
There are some issues with the positioning, size and shadow of the cards (entity with card-mod). And sometime a card does not display the backgroung color. Any help on this?

This is the main file:

wallpanel:
  enabled: true
  # enabled_on_tabs:
  #   - home
  idle_time: 60
  screensaver_entity: input_boolean.wallpanel_screensaver
  image_url: https://source.unsplash.com/random/${480}x${480}?weather
  cards:
  - !include 'diefrickes/wallpanel.yaml'
  #- !include 'diefrickes/wallpanel2.yaml'
#  - !include 'diefrickes/wallpanel3.yaml'
  - !include 'diefrickes/modul_condition.yaml'
  profile_entity: input_select.wallpanel
  profiles:
    day:
      image_url: https://source.unsplash.com/random/${480}x${480}?weather
      style:
        wallpanel-screensaver-container:
          background-color: '#333333dd'
        wallpanel-screensaver-info-box:
          '--wp-card-width': 430px
          '--wp-card-margin': 1px
          '--wp-card-padding': 0px
          '--wp-card-backdrop-filter': none
          background-color: '#ffffff99'
          box-shadow: >-
            0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0,
            0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12)
        wallpanel-screensaver-info-box-content:
          '--ha-card-box-shadow': none
          '--ha-card-background': none
          '--ha-card-border-width': 0px
          '--primary-background-color': '#202020'
          '--secondary-background-color': '#e5e5e5'
          '--primary-text-color': '#212121'
          '--secondary-text-color': '#727272'
    night:
      image_url: https://source.unsplash.com/random/${1920}x${1080}?weather
      style:
        wallpanel-screensaver-info-box:
          '--wp-card-width': 430px
          '--wp-card-margin': 1px
          '--wp-card-padding': 0px
          '--wp-card-backdrop-filter': none
          background-color: '#00000099'
          box-shadow: >-
            0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0,
            0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12)
        wallpanel-screensaver-info-box-content:
          '--ha-card-background': none
          '--ha-card-box-shadow': none
          '--primary-background-color': '#111111'
          '--secondary-background-color': '#202020'
          '--primary-text-color': '#e1e1e1'
          '--secondary-text-color': '#9b9b9b'
title: NSPanelPro
views:
  - !include 'diefrickes/nspanelpro_home.yaml'
  - !include 'diefrickes/nspanelpro_alarm.yaml'
  - !include 'diefrickes/nspanelpro_light.yaml'
  - !include 'diefrickes/nspanelpro_fenster.yaml'
  - !include 'diefrickes/nspanelpro_rollos.yaml'
  - !include 'diefrickes/nspanelpro_wetter.yaml'
  - !include 'diefrickes/nspanelpro_abfall.yaml'
  - !include 'diefrickes/nspanelpro_energy.yaml'
  - !include 'diefrickes/nspanelpro_warn.yaml'
  - !include 'diefrickes/nspanelpro_vacuum.yaml'
  - !include 'diefrickes/nspanelpro_garten.yaml'
  - !include 'diefrickes/nspanelpro_info.yaml'
  - !include 'diefrickes/nspanelpro_szenen.yaml'
  - !include 'diefrickes/nspanelpro_Steckdosen.yaml'
  - !include 'diefrickes/nspanelpro_klima.yaml'
  - !include 'diefrickes/nspanelpro_warmwasser.yaml'
  - !include 'diefrickes/nspanelpro_heizung.yaml'
  - !include 'diefrickes/nspanelpro_battery.yaml'
  - !include 'diefrickes/nspanelpro_medien.yaml'
  - !include 'diefrickes/nspanelpro_kvb.yaml'
  - !include 'diefrickes/nspanelpro_klingel.yaml'
  - !include 'diefrickes/nspanelpro_kamera.yaml'
  - !include 'diefrickes/nspanelpro_feuchte.yaml'

this is the module with conditional cards: (shortened)
I now use the default entity card

type: custom:layout-card
layout_type: custom:horizontal-layout
#layout_type: custom:masonry-layout
layout:
  width: 120
  max_cols: 6
  reflow: true
#mediaquery:
#  "(min-width: 800px)":
#    layout:
#      width: 150
#      max_cols: 4
#      reflow: true
  # "(max-width: 800px)":
  #   layout:
  #     width: 100
  #     #max_width: 150
  #     max_cols: 3
  #     reflow: true
cards:
  # Innenlicht
  - type: conditional
    conditions:
      - entity: binary_sensor.lichter_innen
        state: 'on'
    card:
      type: vertical-stack
      cards:
      - type: custom:popup-card
        title: Innenlicht
        dismissable: true
        deviceID: this
        entity: binary_sensor.lichter_innen
        size: normal
        right_button: zu Lichter
        left_button: alle aus
        card:
          type: custom:auto-entities
          card:
            title: Innenlicht
            type: entities
            state_color: true
          filter:
            include:
              - domain: light
                state: 'on'
            exclude: []
          sort:
            method: friendly_name
          show_empty: false
        timeout: 36000
        right_button_action:
          service: browser_mod.navigate
          data:
            path: /lovelace-yaml/lights
        left_button_action:
          service: script.alle_lichter_aus
          data: {}
      - type: entity
        name: Innen
        entity: binary_sensor.lichter_innen
        attribute: an
        unit: an
        state_color: true
        style: |
          ha-card {
            color: black;
            box-shadow: none;
            background:
            {% if is_state('binary_sensor.lichter_innen', 'on') %}
              lightyellow
            {% else %} 
              
            {% endif %} ;
          }
      double_tap_action:
        action: navigate
        navigation_path: /lovelace-yaml/lights


  # Außenlicht
  - type: conditional
    conditions:
      - entity: binary_sensor.lichter_aussen
        state: 'on'
    card:
      type: vertical-stack
      cards:
      - type: custom:popup-card
        title: Außenlicht
        dismissable: true
        deviceID: this
        entity: binary_sensor.lichter_aussen
        size: normal
        right_button: zu Lichter
        left_button: alle aus
        card:
          type: custom:auto-entities
          card:
            title: Außenlicht
            type: entities
            state_color: true
          filter:
            include:
              - domain: light
                state: 'on'
            exclude: []
          sort:
            method: friendly_name
          show_empty: false
        timeout: 36000
        right_button_action:
          service: browser_mod.navigate
          data:
            path: /lovelace-yaml/lights
        left_button_action:
          service: script.alle_lichter_aus
          data: {}
      - type: entity
        name: Außen
        entity: binary_sensor.lichter_aussen
        attribute: an
        unit: an
        state_color: true
        style: |
          ha-card {
            color: black;
            box-shadow: none;
            background:
            {% if is_state('binary_sensor.lichter_aussen', 'on') %}
              lightyellow
            {% else %} 
              
            {% endif %} ;
          }
      double_tap_action:
        action: navigate
        navigation_path: /lovelace-yaml/lights

  # Fenster
  - type: conditional
    conditions:
      - entity: binary_sensor.fenster
        state: 'on'
    card:
      type: vertical-stack
      cards:
      - type: custom:popup-card
        title: Fenster
        dismissable: true
        deviceID: this
        entity: binary_sensor.fenster
        size: normal
        right_button: zu Sicherheit
        #left_button: alle aus
        card:
          type: custom:auto-entities
          card:
            type: entities
            state_color: true
          filter:
            include:
              - domain: binary_sensor
                state: 'on'
                attributes:
                  device_class: window
            exclude: []
          sort:
            method: friendly_name
          show_empty: false
        timeout: 36000
        right_button_action:
          service: browser_mod.navigate
          data:
            path: /lovelace-yaml/safety
        # left_button_action:
        #   service: script.alle_lichter_aus
        #   data: {}
      - type: entity
        entity: binary_sensor.fenster
        attribute: offen
        unit: offen
        state_color: true
        style: |
          ha-card {
            color: black;
            box-shadow: none;
            background:
            {% if is_state('binary_sensor.fenster', 'on') %}
              lightyellow
            {% else %} 
              
            {% endif %} ;
          }
      double_tap_action:
        action: navigate
        navigation_path: /lovelace-yaml/safety

this is the wallpanel content

type: grid
square: false
columns: 2
cards:
  # --------------------------------------------------
  - type: custom:digital-clock
    card_mod:
      style: |
        ha-card {
          --ha-card-box-shadow: none;
          --ha-card-background: none;
          --ha-card-spacing: 0px;
          --ha-card-padding: 8px;
        }
    dateFormat:
      weekday: long
      day: 2-digit
      month: short
    timeFormat:
      hour: 2-digit
      minute: 2-digit
  # ----------- Mini Info --------------------------------------
  - type: vertical-stack
    cards:
      # ------- Chips Zeile 1
      - type: custom:mushroom-chips-card
        alignment: end
        card_mod:
          style: |
            ha-card {
              --chip-box-shadow: none;
              --chip-background: none;
              --chip-spacing: 0px;
              --chip-padding: 8px;
            }
        chips:

          # Solar Battery {{ states('sensor.senec_battery_charge_percent') }}
          - type: template
            content: "{{ states('sensor.senec_battery_charge_percent')|round(0) }} %"
            double_tap_action:
              action: none
            entity: sensor.senec_system_state
            tap_action:
              action: navigate
              navigation_path: /nspanel-yaml/energy
            hold_action:
              action: none
            icon: >-
              {% if is_state('sensor.senec_system_state','DISCHARGE') or is_state('sensor.senec_system_state','GRID + DISCHARGE') or is_state('sensor.senec_system_state','PV + DISCHARGE') %}
                mdi:battery-arrow-down
              {%- elif is_state('sensor.senec_system_state','CHARGE') -%}
                mdi:battery-charging
              {%- elif is_state('sensor.senec_system_state','BATTERY FULL') -%}
                mdi:battery
              {%- elif is_state('sensor.senec_system_state','ABSORPTION PHASE') -%}
                mdi:battery
              {%- elif is_state('sensor.senec_system_state','MAN. SAFETY CHARGE') or is_state('sensor.senec_system_state','SAFETY CHARGE READY') -%}
                mdi:battery-sync
              {%- else -%}
                mdi:battery-alert
              {%- endif %}
            icon_color: |-
              {% if is_state('sensor.senec_system_state','DISCHARGE') or is_state('sensor.senec_system_state','GRID + DISCHARGE') or is_state('sensor.senec_system_state','PV + DISCHARGE') %}
                purple
              {%- elif is_state('sensor.senec_system_state','CHARGE') -%}
                dark-green
              {%- elif is_state('sensor.senec_system_state','BATTERY FULL') -%}
                green
              {%- elif is_state('sensor.senec_system_state','ABSORPTION PHASE') -%}
                cyan
              {%- elif is_state('sensor.senec_system_state','MAN. SAFETY CHARGE') or is_state('sensor.senec_system_state','SAFETY CHARGE READY') -%}
                organge
              {%- else -%}
                red
              {%- endif %}

          - type: conditional
            conditions:
              - entity: input_boolean.mylo
                state: 'on'
            chip:
              type: entity
              entity: input_boolean.mylo
              icon_color: purple
              content_info: none

          - type: conditional
            conditions:
              - entity: input_boolean.gaste
                state: 'on'
            chip:
              type: entity
              entity: input_boolean.gaste
              icon_color: purple
              content_info: none

          - type: conditional
            conditions:
              - entity: binary_sensor.sonnenstrahlung
                state: 'on'
            chip:
              type: entity
              entity: binary_sensor.sonnenstrahlung
              icon_color: amber
              content_info: none


          - type: template
            double_tap_action:
              action: none
            entity: alarm_control_panel.alarmo
            tap_action:
              action: navigate
              navigation_path: /nspanel-yaml/alarmanlage
            hold_action:
              action: none
            icon: >-
              {% if is_state('alarm_control_panel.alarmo','disarmed') %}
                mdi:shield-off
              {%- elif is_state('alarm_control_panel.alarmo','armed_home')
              -%}
                mdi:shield-home
              {%- else -%}
                mdi:shield-lock
              {%- endif %}
            icon_color: |-
              {% if is_state('alarm_control_panel.alarmo','disarmed') %}
                green
              {%- else -%}
                red
              {%- endif %}
              
          - type: template
            double_tap_action:
              action: none
            entity: lock.turschloss
            icon: |
              {% if is_state('lock.turschloss', 'unlocked') %}
                mdi:lock-off
              {%- else -%}
                mdi:lock
              {%- endif %}
            icon_color: |-
              {% if is_state('lock.turschloss', 'unlocked') %}
                green
              {%- else -%}
                red
              {%- endif %}
            tap_action:
              action: navigate
              navigation_path: /nspanel-yaml/alarmanlage
            hold_action:
              action: none
      # --------- Chips Zeile 2
      - type: custom:mushroom-chips-card
        alignment: end
        card_mod:
          style: |
            ha-card {
              --chip-box-shadow: none;
              --chip-background: none;
              --chip-spacing: 0px;
              --chip-padding: 8px;
            }
        chips:
          - type: entity
            entity: sensor.senec_autarkie_grad_taglich
            use_entity_picture: false
            double_tap_action:
              action: more-info
            tap_action:
              action: none
            hold_action:
              action: more-info
          - type: entity
            entity: sensor.senec_solar_generated_power
            use_entity_picture: false
            double_tap_action:
              action: more-info
            tap_action:
              action: none
            hold_action:
              action: more-info


          # Abfall heute
          - type: conditional
            conditions:
              - entity: sensor.abfallnext
                state: '0'
            chip:
              type: entity
              entity: sensor.abfallnext
              content_info: none
              icon: mdi:trash-can
              tap_action:
                action: none
              icon_color: red

@Fugazzy Can you check the link on your top post for your github repository. It doesn’t open github and gave some strange effects on my screen.

Thank you for the message. I corrected the link now. (But its not my own :wink: )

Understood. Thanks!

Hi
Thanks for this great work

I try this its work fine but i have problem with résolution

Look the screen is to big.
Do you have any idea to fix that ?

Thanks

This perhaps?

Sorry no effect

did you have a close look on my wallpanel config (see: profiles) ans on the layout-card (see: layout)

My code

wallpanel:
  enabled: true
  idle_time: 10
  screensaver_entity: input_boolean.wallpanel_screensaver
  image_url: https://source.unsplash.com/random/${480}x${480}?weather
  cards:
    - square: false
      columns: 2
      type: grid
      cards:
        - type: custom:digital-clock
          card_mod:
            style: |
              ha-card {
                --ha-card-box-shadow: none;
                --ha-card-background: none;
                --ha-card-spacing: 0px;
                --ha-card-padding: 8px;
              }
          dateFormat:
            weekday: long
            day: 2-digit
            month: short
          timeFormat:
            hour: 2-digit
            minute: 2-digit
        - type: vertical-stack
          cards:
            - type: custom:mushroom-chips-card
              alignment: end
              card_mod:
                style: |
                  ha-card {
                    --chip-box-shadow: none;
                    --chip-background: none;
                    --chip-spacing: 0px;
                    --chip-padding: 8px;
                  }
              chips:

                - type: template
                  double_tap_action:
                    action: none
                  entity: lock.verrou_principal
                  icon: |
                    {% if is_state('lock.verrou_principal', 'unlocked') %}
                      mdi:lock-off
                    {%- else -%}
                      mdi:lock
                    {%- endif %}
                  icon_color: |-
                    {% if is_state('lock.verrou_principal', 'unlocked') %}
                      red
                    {%- else -%}
                      green
                    {%- endif %}
                  tap_action:
                    action: navigate
                    navigation_path: /nspanelpro-eg/alarmanlage
                  hold_action:
                    action: none

    - square: false
      columns: 1
      type: grid
      cards:
        - type: weather-forecast
          entity: weather.maison
          secondary_info_attribute: humidity
          name: Tomblaine
          show_current: true
          show_forecast: false
    - square: false
      columns: 3
      type: grid
      cards:
        - type: custom:mushroom-template-card
          primary: Licht
          secondary: |-
            {% if (states('sensor.total_lights_on')| int > 0) %}
              {{ states('sensor.total_lights_on') }}
            {%- else -%}
              aus
            {%- endif %}
          icon: mdi:lightbulb
          entity: sensor.total_lights_on
          fill_container: true
          icon_color: |2-
                      {% if states('sensor.total_lights_on') | int > 0 %}
                        amber
                      {%- else -%}
                        lightgray
                      {%- endif %}
          layout: vertical
          tap_action:
            action: navigate
            navigation_path: /nspanelpro-eg/licht
          badge_color: ''
          badge_icon: ''
        - type: custom:mushroom-template-card
          primary: Fenster
          secondary: |-
            {% if states('sensor.total_open_windows') | int > 0 %}
              {{ states('sensor.all_open_windows') }} / {{ states('sensor.all_open_roofwindows') }} / {{ states('sensor.all_open_cellerwindows') }}
            {%- else -%}
              geschlossen
            {%- endif %}
          icon: >-
            {% if ( states('sensor.all_tilted_doors') | int > 0 or
            states('sensor.all_open_windows')| int > 0 ) %}
              mdi:window-open-variant
            {%- else -%}
              mdi:window-closed-variant
            {%- endif %}
          entity: sensor.all_open_windows
          fill_container: true
          layout: vertical
          icon_color: |-
            {% if states('sensor.all_open_windows')| int > 0 %}
              amber
            {%- elif states('sensor.all_open_roofwindows') | int > 0 -%}
              orange
            {%- elif states('sensor.all_open_cellerwindows') | int > 0 -%}
              yellow
            {%- else -%}
              gray
            {%- endif %}
          tap_action:
            action: navigate
            navigation_path: /nspanelpro-eg/fenster
          multiline_secondary: false
          badge_color: ''
        - type: custom:mushroom-template-card
          primary: Türen
          secondary: >-
            {% if states('sensor.all_open_doors') | int > 0 or
            states('cover.garagentor') != 'closed' %}
              {{ states('sensor.all_open_doors') }} / {{ states('sensor.all_tilted_doors') }} / {{ states('cover.garagentor') }}
            {%- else -%}
              geschlossen
            {%- endif %}
          icon: >-
            {% if (states('sensor.all_open_doors') | int > 0 or
            states('sensor.all_tilted_doors') | int > 0 or
            states('cover.garagentor') != 'closed') %}
              mdi:door-open 
            {%- else -%}
              mdi:door-closed
            {%- endif %}
          entity: sensor.all_open_doors
          fill_container: true
          layout: vertical
          icon_color: >-
            {% if states('sensor.all_open_doors') | int > 0 or
            states('cover.garagentor') != 'closed' %}
              red 
            {%- elif states('sensor.all_tilted_doors') | int > 0 -%}
              orange
            {%- else -%}
              gray
            {%- endif %}
          tap_action:
            action: navigate
            navigation_path: /nspanelpro-eg/fenster
          badge_icon: |-
            {% if states('lock.turschloss') == 'locked' %}
              mdi:lock
            {%- else -%}
              mdi:lock-off
            {%- endif %}
          badge_color: |-
            {% if states('lock.turschloss') == 'locked' %}
              red
            {%- else -%}
              green
            {%- endif %}
          multiline_secondary: false
        - type: custom:mushroom-template-card
          primary: Waschen
          secondary: |2-
                    {% if (is_state('input_select.state_washingmachine','Standby') ) %}
                      bereit
                    {% elif (is_state('input_select.state_washingmachine','Waschen') ) %}
                      aktiv
                    {%- else -%}
                      fertig
                    {%- endif %}
          icon: |2-
                    {% if (is_state('input_select.state_washingmachine','Standby') ) %}
                      mdi:washing-machine-off
                    {% elif (is_state('input_select.state_washingmachine','Waschen') ) %}
                      mdi:washing-machine
                    {%- else -%}
                      mdi:washing-machine-alert
                    {%- endif %}
          entity: input_select.state_washingmachine
          fill_container: true
          icon_color: |2-
                    {% if (is_state('input_select.state_washingmachine','Standby') ) %}
                      gray
                    {% elif (is_state('input_select.state_washingmachine','Waschen') ) %}
                      blue
                    {%- else -%}
                      orange
                    {%- endif %}
          layout: vertical
          tap_action:
            action: navigate
            navigation_path: /nspanelpro-eg/waesche
          badge_color: |2-
                    {% if (is_state('input_select.state_washingmachine','Fertig') ) %}
                      orange
                    {%- endif %}
          badge_icon: |2-
                    {% if (is_state('input_select.state_washingmachine','Fertig') ) %}
                      mdi:washing-machine-alert
                    {%- endif %}
        - type: custom:mushroom-template-card
          primary: Trockner
          secondary: |2-
                    {% if (is_state('input_select.state_trockner','Standby') ) %}
                      bereit
                    {% elif (is_state('input_select.state_trockner','Trocknen') ) %}
                      aktiv
                    {%- else -%}
                      fertig
                    {%- endif %}
          icon: |2-
                    {% if (is_state('input_select.state_trockner','Standby') ) %}
                      mdi:washing-machine-off
                    {% elif (is_state('input_select.state_trockner','Trocknen') ) %}
                      mdi:washing-machine
                    {%- else -%}
                      mdi:washing-machine-alert
                    {%- endif %}
          entity: input_select.state_trockner
          fill_container: true
          icon_color: |2-
                    {% if (is_state('input_select.state_trockner','Standby') ) %}
                      gray
                    {% elif (is_state('input_select.state_trockner','Trocknen') ) %}
                      blue
                    {%- else -%}
                      orange
                    {%- endif %}
          layout: vertical
          tap_action:
            action: navigate
            navigation_path: /nspanelpro-eg/waesche
          badge_color: |2-
                    {% if (is_state('input_select.state_trockner','Beendet') ) %}
                      orange
                    {%- endif %}
          badge_icon: |2-
                    {% if (is_state('input_select.state_trockner','Beendet') ) %}
                      mdi:washing-machine-alert
                    {%- endif %}
        - type: custom:mushroom-template-card
          primary: Luftfeuchte
          secondary: |2-
                    {% if (is_state('binary_sensor.luftfeuchtigkeit_bin','on') ) %}
                      zu hoch
                    {%- else -%}
                      normal
                    {%- endif %}
          icon: mdi:water-percent-alert
          entity: binary_sensor.luftfeuchtigkeit_max
          fill_container: true
          layout: vertical
          tap_action:
            action: more-info
          hold_action:
            action: none
          double_tap_action:
            action: none
          badge_color: ''
          icon_color: |2-
                    {% if (is_state('binary_sensor.luftfeuchtigkeit_bin','on') ) %}
                      blue
                    {%- else -%}
                      gray
                    {%- endif %}
          badge_icon: ''
  profile_entity: input_select.wallpanel
  profiles:
    day:
      image_url: https://source.unsplash.com/random/${480}x${480}?weather
      style:
        wallpanel-screensaver-container:
          background-color: '#333333dd'
        wallpanel-screensaver-info-box:
          '--wp-card-width': 430px
          '--wp-card-margin': 1px
          '--wp-card-padding': 0px
          '--wp-card-backdrop-filter': none
          background-color: '#ffffff99'
          box-shadow: >-
            0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0,
            0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12)
        wallpanel-screensaver-info-box-content:
          '--ha-card-box-shadow': none
          '--ha-card-background': none
          '--ha-card-border-width': 0px
          '--primary-background-color': '#202020'
          '--secondary-background-color': '#e5e5e5'
          '--primary-text-color': '#212121'
          '--secondary-text-color': '#727272'
    night:
      image_url: https://source.unsplash.com/random/${1920}x${1080}?weather
      style:
        wallpanel-screensaver-info-box:
          '--wp-card-width': 430px
          '--wp-card-margin': 1px
          '--wp-card-padding': 0px
          '--wp-card-backdrop-filter': none
          background-color: '#00000099'
          box-shadow: >-
            0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0,
            0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12)
        wallpanel-screensaver-info-box-content:
          '--ha-card-background': none
          '--ha-card-box-shadow': none
          '--primary-background-color': '#111111'
          '--secondary-background-color': '#202020'
          '--primary-text-color': '#e1e1e1'
          '--secondary-text-color': '#9b9b9b'
title: NSPanelPro
views:
  - visible:
      - user: 4739b54d6bed4b77976ab815e8197136
      - user: 180825ce98584db597618739b804c262
    title: tesr
    badges: []
    cards:
      - type: custom:meteofrance-weather-card
        entity: weather.maison
  - badges: []
    cards:
      - type: custom:frigate-card
        cameras:
          - camera_entity: camera.agent_porte_entree_porte_entree_2
  - !include 'screensaver.yaml'
  - !include 'screensaver2.yaml'
  - !include 'screensaver3.yaml'

Does anyone know if there is a way to disable the lock screen on the NSPanel Pro ?

I upgraded the firmware to 2.2 before enabling developer mode, but then had to make an emergency reset and firmware reverted back to 1.5.6, and I understand there is no way to upgrade the firmware for me now. I have seen some posts saying the disable option is available from 1.7, but I was hoping there may be a workaround available

Does anyone know how to get over this screen? I tried installing xposed, got stuck in a boot loop. Entered recovery by rebooting 5 times and now it booted into this.
Did I actually brick my nspanel pro?

1 Like

Hello.

Using Fully Kiosk, does anybody know how to use the presence sensor to disable the HACS wallpanel screen saver ??

The prescence sensor is activated using the nspanel tools, and the KullyKiosk Screen off Timer is cancelled by prescence detection, however this detection of motion does not appear to get passed to the browser framework to disable the HACS wallpanel screensaver.

Does anyone have this working ?

I think that is not possible. It influences the OS features but the client software.

I have found a solution if using the wallpaper screensaver.

  1. In FKB > Other Settings > Enable Environment Sensors (PLUS)
  2. in FKB > Advanced Settings > Inject JavaScript (PLUS) add the following:
setInterval(() => { fully.getSensorValue(8) > 250 && document.querySelector("home-assistant").shadowRoot.querySelector("home-assistant-main").shadowRoot.querySelector("wallpanel-view").stopScreensaver(); }, 500);

This will poll the proximity sensor (device 8) every 500ms and will disable the WaLL Panel Screensaver when proximity is greater than 250.

You can adjust these values to suit your needs.

Thanks to Alexey at FKB Support for providing the info on the environmental sesnors which I had neve noticed.

This has now been working for several days for me.

2 Likes