Smart Home & Ops · Kommt

Schlösser, Klima, Geräte —
an die Reservierung gebunden.

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

Drei Flows, die in wenige API-Calls verschwinden.

Selbstrotierende Türcodes

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.

Vor-Ankunfts-Klima

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.

Anomalie-Webhooks

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

Geräte als First-Class-Objekte am Listing.

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.

  1. 1

    Gerät einmal pairen

    Die meisten Vendoren nutzen OAuth oder ein Account-level-Pairing. Der Repull-Connect-Picker handhabt das wie PMS-Verbindungen — ein einheitlicher Flow.

  2. 2

    Geräte-Events abonnieren

    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.

  3. 3

    An den Reservierungs-Lifecycle binden

    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.

rotate-door-code.ts · ts
// 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

Wir bauen das mit den Leuten, die es nutzen werden.

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.

Auf die IoT-Design-Liste

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.

Senden

Bau heute den Rest.

IoT kommt. Reservierungen, Channels, Pricing und AI-Agents nicht — die sind jetzt live.