> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mattone.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Step 4 · Smart check-in: apertura porta remota da link

> Configura l'apertura remota via link per appartamenti con smart lock Shelly o SwitchBot. Salta lo step se lo studente non ha serrature smart.

Se lo studente ha una smart lock su uno o più appartamenti, configura l'apertura remota via link in modo che Conduit possa inviare all'ospite un link di accesso direttamente in chat. Se lo studente non ha nessuna smart lock, salta questo step e passa direttamente allo [Step 5 · Stripe](/onboarding/5-pagamenti-stripe). Verifica il campo `smart_lock` nel DB Apartments (Step 1) per sapere quali appartamenti richiedono questa configurazione.

<Tip>
  Testa sempre un'apertura reale durante l'onboarding, non segnare questo step come completato senza aver visto la porta aprirsi fisicamente (o aver ricevuto conferma dallo studente che la porta si è aperta) e senza aver letto i log dell'evento.
</Tip>

## Quale device? Cosa consigliamo

<Info>
  **Best practice Mattone, cosa raccomandiamo.**

  * **Consigliato di default (baseline collaudata da Cosmica): Shelly.** È un relay che apre citofono/porta. È lo **standard** perché è semplice e affidabile: **un device = una riga** nella mappa, si connette direttamente al WiFi (nessun hub intermedio) e si **aggiunge senza deploy**. Per una nuova installazione, parti da qui.
  * **Alternativa già gestita: SwitchBot Smart Lock.** La usiamo quando lo studente **ha già** quel brand installato. Richiede alcuni requisiti in più (Hub Mini su **WiFi 2.4GHz stabile**, LED blu fisso, account **owner**, firma **HMAC** lato integrazione).
  * **Altre marche (Tuya / Aqara / Yale / …): caso per caso.** Non sono incluse di default: le **valutiamo su richiesta** e l'integrazione custom può essere un **upsell a pagamento** (servizio in più). Non prometterle allo studente senza aver verificato la fattibilità con il team.
</Info>

I device supportati "pronti" sono due, con requisiti e procedure di configurazione differenti:

<CardGroup cols={2}>
  <Card title="Shelly (relay), consigliato" icon="bolt" href="/integrazioni/shelly/panoramica">
    **La scelta di default.** Ideale per citofoni e porte con relè. È la configurazione più semplice: richiede solo il Cloud token dell'account Shelly, nessun hub, si aggiunge senza deploy. Standard per le nuove installazioni.
  </Card>

  <Card title="SwitchBot Smart Lock, alternativa" icon="lock" href="/integrazioni/switchbot/panoramica">
    Serratura elettronica standalone. Richiede Hub Mini su WiFi 2.4GHz e l'account owner SwitchBot. Scegli questa opzione **solo se** lo studente ha già installato un SwitchBot.
  </Card>
</CardGroup>

<Note>
  Marche diverse da Shelly/SwitchBot (Tuya, Aqara, Yale, ecc.) **non** sono supportate di default: sono valutate **caso per caso** e l'integrazione può essere un **upsell a pagamento**. In tutti i casi, il campo `smart_lock` nel DB Apartments deve riflettere il device reale (`Shelly`, `SwitchBot` o `Nessuna`).
</Note>

<Warning>
  SwitchBot: usa SEMPRE l'account owner, non member. L'account member non ha il permesso di sblocco remoto e la configurazione sembrerà funzionare ma fallirà al momento del test reale.
</Warning>

## Step (per entrambi i device)

<Steps>
  <Step title="Raccogli le credenziali del device">
    A seconda del device presente nell'appartamento, chiedi allo studente tramite canale sicuro:

    **Shelly:**

    * Cloud token dell'account Shelly associato al device

    **SwitchBot:**

    * Owner token (dall'app SwitchBot → Profilo → Sviluppatore)
    * Device ID della serratura (dall'app SwitchBot → dettaglio device)

    Verifica che le credenziali provengano dall'account **owner**, non da un account secondario o member.
  </Step>

  <Step title="Registra il device nel tool">
    Nella piattaforma Mattone, apri il pannello del tool smart lock per lo studente e inserisci le credenziali raccolte. Associa il device all'appartamento corretto usando il `listing_id` del DB Apartments.

    Salva la configurazione, le credenziali vengono cifrate nel Vault.
  </Step>

  <Step title="Esegui un test di apertura reale e leggi i log">
    Dalla piattaforma, genera un link di apertura di test e usalo (o chiedi allo studente di usarlo sul posto). Verifica che la porta si apra fisicamente.

    Dopo il test, apri immediatamente il pannello log e verifica che l'evento di apertura sia registrato correttamente con:

    * Timestamp corretto
    * `listing_id` corretto (non di un altro appartamento)
    * Esito `success`

    Se il log mostra errori o l'appartamento nel log non è quello atteso, non procedere, consulta la guida di troubleshooting del device ([Shelly](/integrazioni/shelly/troubleshooting) o [SwitchBot](/integrazioni/switchbot/troubleshooting)).
  </Step>
</Steps>

***

Step completato? Procedi con → [Step 5 · Stripe](/onboarding/5-pagamenti-stripe)

<Tip>
  **▷ Prompt Claude Code: Smart check-in**  ·  incolla in Claude Code:
</Tip>

```text theme={null}
Contesto: in questa sessione di Claude Code NON hai il repo/codice caricato.
Per prima cosa apri il repo di check-in giusto, `~/Projects/cosmica-booking`
(baseline Cosmica: `src/lib/shelly.ts` + guest portal `/access/<slug>`) o il
repo di check-in dello studente se ha device propri, e LEGGI la pagina
mattone-docs /onboarding/4-smart-checkin. Poi procedi:

Guidami nello step 4 (Smart check-in) per lo studente [NOME], seguendo
mattone-docs /onboarding/4-smart-checkin. Chiedimi quale device ha
(Shelly o SwitchBot) e i dati necessari (deviceId, account/credenziali),
le credenziali vanno nel Vault, non in chiaro. Aiutami ad aggiungere la riga
al registro (slug, deviceId, label, type, account), fai commit+push e poi
verifica: list_properties mostra il nuovo slug, il guest portal /access/<slug>
carica, e SOPRATTUTTO fammi fare un'apertura REALE leggendo i log (rawStatus).
Se non apre, isola: online? account/deviceId giusto? codice errore (es. 161
offline)?
```

<CardGroup cols={2}>
  <Card title="Shelly, collegamento" icon="arrow-up-right-from-square" href="/integrazioni/shelly/collegamento">1 entry nel registro + push</Card>
  <Card title="SwitchBot, collegamento" icon="arrow-up-right-from-square" href="/integrazioni/switchbot/collegamento">Token owner + Device ID</Card>
</CardGroup>
