Mit der Repull-IoT-API reagiert dein Code auf physische Events genauso wie auf ein Reservierungs-Update. Türcode beim Check-out rotieren. Wohnung vor Ankunft vorklimatisieren. Webhook bekommen, wenn ein Thermostat seit sechs Stunden auf 30 Grad steht.
Was du bauen wirst
Bei Reservierungserstellung Code generieren. Zur Check-out-Zeit ablaufen lassen und den Code des nächsten Gasts ausstellen. Kein „Hat der Cleaner den Code gewechselt?" mehr — Schloss und Reservierung sind dasselbe Objekt.
T-2 Stunden: Wohnung auf eine angenehme Temperatur stellen. Nach Check-out: zurück auf Halten. Über ein Portfolio multipliziert zahlt die Energieersparnis die IoT-Rechnung selbst.
Tür eine Stunde lang offen während des Turnovers. Thermostat auf 30°C ohne Belegung. Wassersensor ausgelöst. Webhook feuert, Ops-Queue bekommt den Task, irgendjemandes Telefon vibriert.
Wie die API aussehen wird
Die IoT-API behandelt jedes verbundene Gerät — Schloss, Thermostat, Sensor — als Kind des Listings. Reservierungen und Geräte teilen Auth, Webhooks und Workspace. Cross-cutting Flows baust du an einer Stelle.
Die meisten Vendoren nutzen OAuth oder ein Account-level-Pairing. Der Repull-Connect-Picker handhabt das wie PMS-Verbindungen — ein einheitlicher Flow.
Dieselbe Webhook-Surface wie alles andere. door.opened, lock.code.created, climate.target_changed, sensor.alert. Signaturgeprüft, retry bei 5xx, ein Event-Log zum greppen.
Trigger auf reservation.confirmed, um einen Code zu erstellen. Trigger auf reservation.checkout, um ihn ablaufen zu lassen. Dieselben Primitive wie für Messaging und Pricing.
// Repull IoT API — kommt bald. Die Shape, auf die wir zulaufen:
import { Repull } from '@repull/sdk'
const repull = new Repull({ apiKey: ..., workspaceId: ... })
// Bei 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', // oder weglassen für Auto-Generierung
activeFrom: e.checkIn,
activeUntil: e.checkOut,
})
})
// Bei reservation.checkout läuft der Code von selbst ab.
// Bei einem Sensor-Alert in deine Ops-Queue routen:
repull.webhooks.on('sensor.alert', async (e) => {
if (e.kind === 'water_leak') await ops.create({
listingId: e.listingId,
severity: 'critical',
title: `Wasserleck erkannt · ${e.location}`,
})
})Die Shapes oben sind unsere aktuelle Denke — finale Method-Namen kommen mit dem Public Release. Schlossvendoren für v1: Yale, Schlage, August. Klima: Nest, ecobee, Honeywell.
Kommt
Wenn du ein Portfolio mit bereits ausgerollten Schlössern und Klimageräten betreibst — oder ein Produkt baust, das mit physischen Geräten reden muss — schreib uns. Die ersten Design-Partner formen die API-Surface.
Schlösser
Yale Linus / Assure, Schlage Encode, August, igloohome.
Klima
Nest, ecobee, Honeywell Lyric, Sensibo.
Sensoren
Lärm (Minut, NoiseAware), Wassersensor, Belegungssensor.
Kein fixes Launch-Datum. Wir launchen, sobald die ersten drei Integrationen Ende-zu-Ende auf echten Daten laufen.
Sag uns, welche Geräte ihr ausgerollt habt und was du damit bauen würdest. Das Team liest jede Mail.
Geht direkt ans Team. Keine Liste, kein Drip.
SendenIoT kommt. Reservierungen, Channels, Pricing und AI-Agents nicht — die sind jetzt live.