L'API IoT Repull permettra à ton code de réagir aux événements physiques exactement comme à une mise à jour de réservation. Renouveler un code de porte au check-out. Pré-conditionner un logement avant l'arrivée. Recevoir un webhook quand un thermostat est resté à 30 degrés pendant six heures.
Ce que tu construiras
À la création de la réservation, on génère un code. À l'heure du check-out, on l'expire et on émet celui du voyageur suivant. Fini le « est-ce que la femme de ménage a changé le code ? » — la serrure et la réservation sont le même objet.
À H-2, on règle le logement à une température confortable. Après le check-out, on revient à un mode veille. Multiplié sur un portefeuille, l'économie d'énergie paie la note IoT toute seule.
Porte calée ouverte une heure pendant le turnover. Thermostat à 30 °C sans occupants. Capteur de fuite déclenché. Le webhook part, la file ops reçoit la tâche, un téléphone vibre.
À quoi ressemblera l'API
L'API IoT traite chaque device connecté — serrure, thermostat, capteur — comme un enfant de l'annonce. Réservations et devices partagent la même auth, les mêmes webhooks et le même workspace, donc tu construis des flux transverses au même endroit.
La plupart des fournisseurs utilisent OAuth ou un appairage au niveau du compte. Le Connect picker Repull gère ça comme il gère les connexions PMS — un seul flux cohérent.
Même surface webhook que pour le reste. door.opened, lock.code.created, climate.target_changed, sensor.alert. Signature vérifiée, retry sur 5xx, un seul log d'événements à grepper.
Trigger sur reservation.confirmed pour générer un code. Trigger sur reservation.checkout pour l'expirer. Les mêmes primitives que tu utilises déjà pour la messagerie et le pricing.
// Repull IoT API — bientôt. La forme vers laquelle on converge :
import { Repull } from '@repull/sdk'
const repull = new Repull({ apiKey: ..., workspaceId: ... })
// Sur reservation.confirmed
repull.webhooks.on('reservation.confirmed', async (e) => {
const lock = await repull.devices.get(e.listingId, { kind: 'lock' })
await repull.devices.lock.codes.create(lock.id, {
label: e.guestName,
code: '4271', // ou omettre pour auto-générer
activeFrom: e.checkIn,
activeUntil: e.checkOut,
})
})
// Sur reservation.checkout, le code expire tout seul.
// Sur une alerte capteur, route vers ta queue d'ops :
repull.webhooks.on('sensor.alert', async (e) => {
if (e.kind === 'water_leak') await ops.create({
listingId: e.listingId,
severity: 'critical',
title: `Fuite d'eau détectée · ${e.location}`,
})
})Les formes ci-dessus, c'est la direction qu'on prend — les noms de méthodes définitifs arriveront avec la sortie publique. Fournisseurs de serrures visés pour la v1 : Yale, Schlage, August. Climatisation : Nest, ecobee, Honeywell.
Bientôt
Si tu gères un portefeuille avec des serrures et de la climatisation déjà déployées, ou si tu construis un produit qui doit parler à des devices physiques, écris-nous. Les premiers design partners façonnent la surface d'API.
Serrures
Yale Linus / Assure, Schlage Encode, August, igloohome.
Climatisation
Nest, ecobee, Honeywell Lyric, Sensibo.
Capteurs
Bruit (Minut, NoiseAware), fuite d'eau, occupation.
Pas de date de lancement fixe. On expédie quand les trois premières intégrations tournent de bout en bout sur des données de prod.
Dis-nous quels devices sont déployés chez toi et ce que tu construirais avec ça. L'équipe lit chaque email.
Va direct à l'équipe. Pas de liste, pas de drip.
EnvoyerL'IoT arrive. Réservations, canaux, pricing et agents IA, eux, sont déjà live.