Nuki Card with Callback support (supports both Lock & Opener, it replaces the official integration)

wow grazie! Non avevo notato, stavo pensando di creare 3 pulsanti separati per blocco sblocco e apertura ma non riesco a capire come richiamarli nella card in modo separato

blocco/sblocco è unico pulsante (tipo toggle). apertura è separato.

Se leggi poco più su nella discussione, ne ho parlato abbondantemente con un ragazzo che voleva fare la stessa cosa.

Ma sbaglio o per l’apertura si parla solo di opener? Forse mi perdo in un bicchiere d’acqua, non riesco a capire se c’è un comando separato per l’apertura, ho un nuki normale e le possibilità sono bloccarla/, sbloccarla senza aprire la porta o aprire proprio la porta (da quello scatto in più che la apre)

No Michele, l’Opener è un device per il citofono. Ti stai perdendo in un bicchiere d’acqua. :slight_smile:

Vai sulla card “Nuki Lock”. Ti ho mostrato l’immagine per la configurazione dei comandi lock/unlock.

image

Se clicki sul secondo (Unlock Action) avrai diverse opzioni, le vedi? Una di quella è l’apertura della porta (Unlatch). Scegli Unlatch. Da ora, quando clickerai su UNLOCK (sull’entità principale), invece di dare il semplice comando unlock, invierà il comando unlatch.

Spero sia chiaro ora.

si si, non ci siamo capiti, io vorrei trovarmi in una situazione del genere:

così posso bloccare e sbloccare la serratura con un tasto ma vorrei avere un tasto che direttamente apre la porta, cioè fa l’unlatch

e come ti ho detto prima, poco sopra, trovi una discussione relativa proprio a questo: come fare un pulsante in lovelace che chiami i servizi offerti dalla Nuki Card.

Parti da qui e leggi il seguito: Nuki Card with Callback support (supports both Lock & Opener, it replaces the official integration) - #1148 by stefancvetkovic

Molto carina la tua card, quando l’hai terminata magari condividi il codice, così se sei d’accordo possiamo metterla nel primo post.

Correggi “Bluetooth”. :slight_smile:

ok mi mancava l’action 3 per aprirla…mi perdevo veramente in un bicchiere d’acqua.
La card l’ho un po’ scopiazzata da un utente in internet magari prima meglio chiedere a lui :wink:

Chiedi…eventualmente i credit andranno anche a lui. :wink:

Ok ho chiesto, comunque ancora ho qualche dubbio sulla notifica di chiusura e blocco, vorrei che nello stato (callback) mi dicesse Chiuso & Sbloccato e non solo chiuso.
Comunque ora è così e sembrano funzionare i comandi

La callback non è uno stato, è il sistema attraverso il quale il bridge comunica un cambiamento di stato.

Il bridge comunica lo stato della lock e del sensore della porta. Nella Nuki Card ad esempio ho inserito il controllo di questi due stati per mostrare l’icona della porta, se anche la lock è bloccata mostro la porta chiusa e il lucchetto.

Se mi dici cosa stai cercando di fare posso aiutarti, ma devi essere più preciso. Hai tutti gli stati che ti servono nella card.

Si infatti le icone sono tutte corrette appunto, volevo semplicemente che sulla destra venisse fuori anche lo stato del blocco, invece che solo chiuso, Chiuso e Bloccato o Chiuso e Sbloccato

Lo stato del blocco è binario. Chiuso/Aperto.

Tu vuoi un unico sensore che racchiuda lo stato di due sensori: la porta e la serratura. Devi fare un template sensor, e nel codice controlli lo stato dei due sensori (porta e lock), in base al loro stato, configuri lo stato del sensore template.

Puoi prendere spunto dal codice che uso per l’icona della porta:

      nuki_door_state:
        unique_id: nuki_door_state
        device_class: door
        friendly_name: "Nuki Door State"
        icon_template: >
          {% set door_icon = states('input_number.nuki_bridge_door_state_id') | int %}
          {% set lock_icon = states('input_number.nuki_bridge_lock_state_id') | int %}
          {% if door_icon == 2 and lock_icon == 3 %}
            mdi:door-closed
          {% elif door_icon == 2 and lock_icon == 1 %}
            mdi:door-closed-lock
          {% elif door_icon == 3 %}
            mdi:door-open
          {% endif %}

Ottimo grazie!!

Intanto posto qui il codice della card:

type: custom:vertical-stack-in-card
cards:
  - type: custom:banner-card
    heading:
      - Nuki
  - type: horizontal-stack
    cards:
      - type: button
        tap_action:
          action: more-info
        entity: script.nuki_lock
        show_state: false
        hold_action:
          action: toggle
      - type: button
        tap_action:
          action: more-info
        entity: script.nuki_unlock
        hold_action:
          action: toggle
      - type: button
        tap_action:
          action: more-info
        entity: script.nuki_open
        hold_action:
          action: toggle
  - type: entities
    entities:
      - entity: sensor.nuki_lock_last_update
        name: Ultima Attività
      - entity: binary_sensor.nuki_door_state
        name: Stato (callback)
        secondary_info: last-changed
    state_color: true
  - type: glance
    entities:
      - entity: binary_sensor.nuki_door_state
        name: Porta
      - entity: lock.porta_di_casa
        name: Serratura
      - entity: binary_sensor.nuki_door_state
        name: Stato (polling)
    show_icon: false
    columns: 3
  - type: glance
    entities:
      - entity: binary_sensor.nuki_bridge_callback
        name: Bluetooth
      - entity: sensor.nuki_lock_bridge_bt_rssi
        name: Wifi
      - entity: binary_sensor.nuki_bridge_wifi_connected
        name: Wlan
      - entity: binary_sensor.nuki_bridge_cloud_connected
        name: Cloud
      - entity: sensor.nuki_lock_fw_version
        name: F.Serratura
      - entity: sensor.nuki_bridge_fw_version
        name: F.Bridge
      - entity: sensor.nuki_bridge_wifi_fw_version
        name: F.Bridge Wifi
    show_icon: false
    columns: 4
    state_color: true
  - type: custom:bar-card
    entities:
      - entity: sensor.nuki_lock_battery_level
        name: Batteria
        direction: right
        positions:
          icon: outside
          indicator: inside
          name: inside
          minmax: 'off'
          value: inside
        severity:
          - from: '0'
            to: '50'
            color: red
          - from: '51'
            to: '80'
            color: orange
          - from: '81'
            to: '100'
            color: green
        animation:
          state: 'on'
          speed: '5'
  - type: entities
    entities:
      - entity: binary_sensor.nuki_lock_battery_critical_state
        name: Batteria Critica Serratura

Se usi il custom component nuki_ng, è stato implementato un sensore che fa quel che volevi tu:

Se magari passi a quello, e rifai la card basandoti su quel componente, sarebbe utile. :slight_smile:

type: custom:vertical-stack-in-card
cards:
  - type: custom:banner-card
    heading:
      - Nuki
  - type: horizontal-stack
    cards:
      - type: button
        tap_action:
          action: more-info
        entity: script.nuki_lock
        show_state: false
        hold_action:
          action: toggle
      - type: button
        tap_action:
          action: more-info
        entity: script.nuki_unlock
        hold_action:
          action: toggle
      - type: button
        tap_action:
          action: more-info
        entity: script.nuki_open
        hold_action:
          action: toggle
  - type: entities
    entities:
      - entity: sensor.nuki_lock_last_update
        name: Ultima Attività
      - entity: sensor.nuki_porta_di_casa_door_security_state
        name: Stato (callback)
        secondary_info: last-changed
    state_color: true
  - type: glance
    entities:
      - entity: binary_sensor.nuki_door_state
        name: Porta
      - entity: binary_sensor.nuki_porta_di_casa_locked
        name: Serratura
      - entity: sensor.nuki_porta_di_casa_door_security_state
        name: Stato (polling)
    show_icon: false
    columns: 3
  - type: glance
    entities:
      - entity: binary_sensor.nuki_bridge_callback
        name: Bluetooth
      - entity: sensor.nuki_lock_bridge_bt_rssi
        name: Wifi
      - entity: binary_sensor.nuki_bridge_wifi_connected
        name: Wlan
      - entity: binary_sensor.nuki_bridge_cloud_connected
        name: Cloud
      - entity: sensor.nuki_lock_fw_version
        name: F.Serratura
      - entity: sensor.nuki_bridge_fw_version
        name: F.Bridge
      - entity: sensor.nuki_bridge_wifi_fw_version
        name: F.Bridge Wifi
    show_icon: false
    columns: 4
    state_color: true
  - type: custom:bar-card
    entities:
      - entity: sensor.nuki_lock_battery_level
        name: Batteria
        direction: right
        positions:
          icon: outside
          indicator: inside
          name: inside
          minmax: 'off'
          value: inside
        severity:
          - from: '0'
            to: '50'
            color: red
          - from: '51'
            to: '80'
            color: orange
          - from: '81'
            to: '100'
            color: green
        animation:
          state: 'on'
          speed: '5'
  - type: entities
    entities:
      - entity: binary_sensor.nuki_lock_battery_critical_state
        name: Batteria Critica Serratura

qui gli script:

nuki_open:
  alias: Apri Porta
  sequence:
  - service: rest_command.nuki_lock_action
    data:
      dev_type: '{{ state_attr(''sensor.nuki_bridge_endpoint_list_lock'',''deviceType'')
        }}

        '
      nuki_id: '{{ state_attr(''sensor.nuki_bridge_endpoint_list_lock'',''nukiId'')
        }}

        '
      action: 3
  mode: single
  icon: mdi:door-open
nuki_lock:
  alias: Blocca Porta
  sequence:
  - service: rest_command.nuki_lock_action
    data:
      dev_type: '{{ state_attr(''sensor.nuki_bridge_endpoint_list_lock'',''deviceType'')
        }}

        '
      nuki_id: '{{ state_attr(''sensor.nuki_bridge_endpoint_list_lock'',''nukiId'')
        }}

        '
      action: 2
  mode: single
  icon: mdi:door-closed-lock
nuki_unlock:
  alias: Sblocca Porta
  sequence:
  - service: rest_command.nuki_lock_action
    data:
      dev_type: '{{ state_attr(''sensor.nuki_bridge_endpoint_list_lock'',''deviceType'')
        }}

        '
      nuki_id: '{{ state_attr(''sensor.nuki_bridge_endpoint_list_lock'',''nukiId'')
        }}

        '
      action: 1
  mode: single
  icon: mdi:door-closed

@alexdelprete
Thanks for this great integration. I moved from the official integration to this once because I was sick fo the 30 seconds that it takes until the statechange is reflected on my dashboard. I’m now down to 5 seconds as soon as there is a state change thanks to your integration.
Specific question: is it somehow possible to further reduce the time of a state change?

Thanks

Thanks for your kind words.

What are you referring to, the lock/unlock or door sensor? The lock/unlock callback is done by the bridge at the end of the mechanical action, and that takes 3s more or less, so it’s not possible to optimize it further. For the door sensor, I receive the callback and the sensor update in 1s.

If it takes 5s for you to see door sensor changes, there’s something not working fine.

Let me know…

I’m referring the lock/unlock, so that is state of the art then :slight_smile:
Ok got it - thanks for your quick reply