- Verwandtes Produkt: SwitchBot E-Ink Home-Dashboard
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 E-Ink Home-Dashboard auch über eine benutzerdefinierte Seite. Durch die Nutzung der SwitchBot OpenAPI können Sie beliebige Textinhalte an das Gerät senden und die E-Ink Home-Dashboard 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 E-Ink Home-Dashboard 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 „E-Ink Home-Dashboard“ 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 E-Ink Home-Dashboard 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 E-Ink Home-Dashboard 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 E-Ink Home-Dashboard 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 E-Ink Home-Dashboarden vorhanden sind, muss jede separat mit ihrer eigenen deviceId angesprochen werden.
Kommentare
0 Kommentare
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.