- Verwandtes Produkt: SwitchBot Wetterstation
API-Nutzungsreferenzlink: https://github.com/OpenWonderLabs/SwitchBotAPI
Aktualisieren Sie SwitchBots Skills auf die neueste Version 1.0.5: https://clawhub.ai/switchbot-dev/switchbot-cloudapi#versions
1. Was ist eine benutzerdefinierte Seite?
Zusätzlich zur Anzeige von Standarddaten wie Temperatur, Luftfeuchtigkeit und Wetterbedingungen verfügt der Bildschirm der SwitchBot Wetterstation auch über eine benutzerdefinierte Seite. Durch die Nutzung der SwitchBot OpenAPI können Sie beliebige Textinhalte an das Gerät senden und die Wetterstation so in eine Desktop-Informationsanzeige verwandeln.
Typische Anwendungen:
- Familien-Mitteilungstafel und Erinnerungen
- Daten-Dashboard (Strompreise, Luftqualität, Aktienkurse usw.)
- Countdown für Geburtstage und Erinnerungen an die Fütterung von Haustieren
- Kombination mit geplanten Skripten zur automatischen Aktualisierung der Inhalte
2. Wie man es einrichtet
2.1 Vorbereitung
Token und Schlüssel für Entwickler in der SwitchBot App erhalten
- Öffnen Sie die SwitchBot App.
- Tippen Sie auf Profil -> Einstellungen -> Info -> App-Version.
- Tippen Sie mehrmals (5–15 Mal hintereinander) auf die App-Version (z. B. 6.24), um die Entwickleroptionen zu öffnen.
- Wenn Sie auf „Entwickleroptionen“ tippen, sehen Sie die Token-Informationen.
Geräte-ID erhalten
Rufen Sie die Geräte-Listen-Schnittstelle auf, um die deviceID Ihrer Wetterstation zu erhalten
curl -s https://api.switch-bot.com/v1.1/devices \
-H "Authorization: your Token" \
-H "sign: signature" \
-H "t: timestamp" \
-H "nonce: Random string" | python3 -m json.toolIn den zurückgegebenen Ergebnissen suchen Sie das Gerät, bei dem deviceType „WoIOSensor“ ist oder die Wörter „Weather Station“ enthält, und notieren Sie dessen deviceID.
2.2 API-Beschreibung
Endpunkt: `POST https://api.switch-bot.com/v1.1/devices/{deviceId}/commands`
Request Body:
{
"command": "customPage",
"parameter": "Der Textinhalt, den Sie anzeigen möchten",
"commandType": "command"
}Authentifizierungsmethode (v1.1)
Jede Anfrage erfordert die folgenden HTTP-Header:
| Titel | Beschreibung |
Authorization |
Ihr Token |
sign |
HMAC-SHA256-Signatur, Base64-kodiert |
t |
Aktueller Zeitstempel (Millisekunden) |
nonce |
Zufällige Zeichenfolge (z. B. UUID) |
Signaturalgorithmus:
sign = Base64( HMAC-SHA256( secret, token + t + nonce ) )3. Textformat und Beschränkungen
| Maximale Länge | Ca. 300 Byte (UTF-8-Kodierung).
| Zeilenumbrüche | ⚠️ Nicht unterstützt. `\n`, `\r\n` und `<br>` sind alle wirkungslos; der Text kann nur je nach Bildschirmbreite natürlich umbrechen |
| Sprache | Unterstützt Chinesisch, Japanisch, Englisch und deren Mischungen |
| Emoji | Unterstützt grundlegende Emojis (z. B. ✅🎂🐱📅🏠); beachten Sie, dass Emojis typischerweise 4 Byte belegen |
| Zu langer Text | Gibt `statusCode: 190`, Nachricht `"invalid params"` zurück |
| Leertext | Ein leerer String kann gesendet werden, um die Seite zu löschen |
Formatierungsvorschläge
Da Zeilenumbrüche nicht unterstützt werden, wird empfohlen, die folgenden Trennzeichen zur besseren Lesbarkeit zu verwenden:
Emojis als Trenner: `📅Datum 🌡Temperatur 💨Luft`
Vertikale Linie als Trenner: `Datum|Temperatur|Luftqualität`
Leerzeichen + Symbol: `[Datum] [Temperatur] [Luft]`
4. Beispielanwendungen
Jeder der folgenden Beispieltexte ist auf 300 Byte begrenzt und kann direkt kopiert und verwendet werden.
🏠 Erinnerung für Zuhause
① Familien-Mitteilungstafel
📋 Familienankündigung Heute Abend um 19 Uhr Familienessen Schlüssel nicht vergessen Die Lieferung ist im Schrank neben der Tür Es sind Kleidungsstücke in der Waschmaschine, bitte aufhängen② Geburtstags-/Jahrestags-Countdown
🎂 Mamas Geburtstag in 15 Tagen 💍 Hochzeitstag in 32 Tagen 📅 Papas Untersuchung am 20.6. Babys Impfung am 15.6.③ Mülltrennungserinnerung
🗑 Heute ist Mittwoch, Bioabfall-Tag. Morgen: Wertstoffe. Diesen Freitag: Sondermüll. Bitte vor 20 Uhr nach unten bringen.🐱 Haustierpflege
④ Erinnerung an die Fütterung
🗑 Heute ist Mittwoch, Bioabfall-Tag. Morgen: Wertstoffe. Diesen Freitag: Sondermüll. Bitte vor 20 Uhr nach unten bringen.🚄 Verkehr
⑤ Hochgeschwindigkeitszug/Flugerinnerung
✈️Morgen AA 287 LAX→JFK Abfahrt 07:35 Terminal 4 Abfahrt bis 5:30 Uhr Wetter am Ziel: Klar 54°F📊 Finanzinformationen
⑥ Börsenübersicht
📈US Aktien S&P500:5.234↑0,8% NASDAQ:16.340↑1,2% DOW:39.150↑0,5% 10J:4,35% Aktualisiert:14:58🌤 Wetter und Umwelt
⑦ Wetter + Luftqualität
🌤Los Angeles Heute: Teilweise bewölkt 77°F/64°F Luft: Gut AQI42 PM2.5:12 Morgen: Sonnig 81°F/66°F UV: Mäßig 💧Luftfeuchtigkeit 55%⚡ Energiemanagement
⑧ Stromverbrauch Zuhause
⚡Diesen Monat:186kWh Stufe:1 (84kWh übrig) Geschätzter Monatsende:245kWh Gestern:6,2kWh Preis:~0,15$/kWh Kosten YTD:387$📬 Post und Expresslieferung
⑨ Post + Expresslieferung kombiniert
📬E-Mail Heute:12 erhalten Ungelesen:3 (1 dringend) 📦Pakete USPS: Zustellung heute ETA 14 Uhr FedEx: Versandt, Ankunft morgen Amazon: Zugestellt🏠 Smart Home Integration
⑩ Innenraum-Umweltanzeige
🏠Wohnzimmer 24,5°C 💧58% CO2: 620ppm ✅ Schlafzimmer 23,1°C 💧62% Klimaanlage: Kühlung 26°C An Luftreiniger: Automodus Filterstand 78%💪 Gesundheitsmanagement
⑪ Gesundheits-Check-in
💪Heutige Gesundheit Wasser trinken: 1200ml/2000ml Schritte: 6580 Sitz-Erinnerung: Zeit aufzustehen und zu gehen! Gewichtstrend: Diese Woche -0,3kg Schlaf: 7h12m5. Fortgeschritten: Automatische zeitgesteuerte Aktualisierungen
Mit einem geplanten Skript können Sie die Wetterstation in ein Informations-Dashboard verwandeln, das automatisch Daten aus verschiedenen Quellen abruft und die Anzeige aktualisiert.
6. Häufige Probleme und deren Behebung
❌ statusCode: 190 — „invalid params“
Ursache: Der Text überschreitet das 300-Byte-Limit.
❌ statusCode: 100, aber keine Änderung auf dem Bildschirm
Stellen Sie sicher, dass Sie auf die benutzerdefinierte Seite der Wetterstation gewischt haben (die benutzerdefinierte Seite ist nicht der Standard-Startbildschirm)
Warten Sie einige Sekunden, da es eine leichte Verzögerung bei der Geräteaktualisierung geben kann
Bestätigen Sie, dass die deviceID korrekt ist
❌ 401 Unauthorized
Prüfen Sie, ob das Token korrekt ist und keine zusätzlichen Leerzeichen enthält
Überprüfen Sie den Signaturalgorithmus: HMAC-SHA256(secret, token + t + nonce) → Base64
Stellen Sie sicher, dass `t` ein Millisekunden-Zeitstempel (13 Stellen) ist, nicht in Sekunden
Stellen Sie sicher, dass die Systemuhrzeit korrekt ist; eine erhebliche Zeitabweichung kann zu Authentifizierungsfehlern führen
❌ Signaturfehler (sign ist inkorrekt)
Häufige Fehler:
Die Verkettungsreihenfolge muss token + t + nonce sein (nicht secret + token + ...)
Das secret ist der Schlüssel für HMAC und ist nicht Teil der verketteten Zeichenfolge
Das Endergebnis muss Base64-kodiert sein
Stellen Sie sicher, dass keine zusätzlichen Zeichen wie Zeilenumbrüche enthalten sind
❌ Zeilenumbrüche wirken nicht
Dies ist ein normales Phänomen. Tests haben bestätigt, dass `\n`, `\r\n` und `<br>` keine Zeilenumbrüche erzeugen können. Text kann nur je nach Bildschirmbreite natürlich umbrechen. Es wird empfohlen, Emoji oder Symbole als visuelle Trenner zu verwenden.
❌ Einige Emojis werden abnormal dargestellt
Der Bildschirm der Wetterstation unterstützt grundlegende Emojis (innerhalb des Unicode BMP-Bereichs), aber komplexe Kombinations-Emojis (wie Hautfarbmodifikatoren und ZWJ-Sequenzen) können möglicherweise nicht korrekt angezeigt werden. Es wird empfohlen, einfache Emojis zu verwenden: ✅❌📅🌤🏠💧⚡📬🐱🎂📊💪🚇
💡 Weitere Tipps
Seite löschen: Senden Sie einen leeren String `""` als Parameter.
API-Aufrufhäufigkeit: Es wird empfohlen, nicht mehr als einen Aufruf pro Minute zu tätigen, um eine Ratenbegrenzung zu vermeiden.
Mehrere Geräte: Wenn mehrere Wetterstationen vorhanden sind, muss jede separat mit ihrer eigenen deviceId angesprochen werden.
Kommentare
0 Kommentare
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.