Verbinden&Daten lesen
Um einen Grill mit dem Socket-Server zu verbinden, muss er über die App hinzugefügt und bereitgestellt werden. Beachten Sie, dass nur 2,4 GHz WLAN-Netzwerke unterstützt werden.
Um Grill-Daten zu lesen, muss eine Verbindung zum Socket-Server socket.ottowildeapp.com hergestellt werden.
Erste Verbindung
const socket = new Socket();
const serverUrl = 'socket.ottowildeapp.com';
socket.connect(4502, serverUrl, function () {
console.log('Connected');
});
// prints ConnectedGrill-Daten überwachen
Nach einer erfolgreichen Verbindung muss ein Lausch-Befehl für den Grill mit einem gültigen Pop-Schlüssel ausgegeben werden. Ein Pop-Schlüssel kann über den GET /v2/grills-Endpunkt erhalten werden (siehe Swagger).
const serverUrl = 'socket.ottowildeapp.com';
const popKey = 'yourPopKey';
socket.connect(4502, serverUrl, function () {
console.log('Connected');
socket.write(
JSON.stringify({
channel: 'LISTEN_TO_GRILL',
data: { grillSerialNumber: '12345678', pop: popKey },
}),
'utf8',
);
});
socket.on('data', function (data: Buffer<ArrayBufferLike>) {
const view = new Uint8Array(data.buffer);
console.log(`Received: ${view}`);
});
socket.on('close', function () {
console.log('Connection closed');
});
// prints Received: 163,58,255,255,255,255,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,0,0,1,1,13,1,4,5,205,0,1,60,0,0,3,191,176,153,104,0,0,0,0,0,0,0,1,195Überwachung stoppen und Verbindung schließen
const socket = new Socket();
if (!socket.destroyed) {
socket.end();
}Datenrahmen-Struktur
Die folgende Tabelle entspricht dem Sende-Array uint8_t TCPdata[50]:
| # | Datenbit-Name | Datenlänge [Byte] | Erklärung | Entspricht TCPdata | Kommentar |
|---|---|---|---|---|---|
| 0 | Rahmenanfang | 2 | 0xa3 0x3a | TCPdata[0], TCPdata[1] | |
| 1 | Geräte-ID_H | 2 | Device ID_H | TCPdata[2], TCPdata[3] | |
| 2 | Geräte-ID_L | 2 | Device ID_L | TCPdata[4], TCPdata[5] | |
| 3 | Zonentemperaturen_1 | 2 | Zone Temperatures_1 | TCPdata[6], TCPdata[7] | |
| 4 | Zonentemperaturen_2 | 2 | Zone Temperatures_2 | TCPdata[8], TCPdata[9] | |
| 5 | Zonentemperaturen_3 | 2 | Zone Temperatures_3 | TCPdata[10], TCPdata[11] | |
| 6 | Zonentemperaturen_4 | 2 | Zone Temperatures_4 | TCPdata[12], TCPdata[13] | |
| 7 | Fleischtemperaturen_1 | 2 | Meat Temperatures_1 | TCPdata[14], TCPdata[15] | |
| 8 | Fleischtemperaturen_2 | 2 | Meat Temperatures_2 | TCPdata[16], TCPdata[17] | |
| 9 | Fleischtemperaturen_3 | 2 | Meat Temperatures_3 | TCPdata[18], TCPdata[19] | |
| 10 | Fleischtemperaturen_4 | 2 | Meat Temperatures_4 | TCPdata[20], TCPdata[21] | |
| 11 | Gasvorrat | 2 | Gasvorrat in [g] | TCPdata[22], TCPdata[23] | |
| 12 | Hauben-Status | 1 | 00=geschlossen 01=offen | TCPdata[24] | |
| 13 | Licht-Status | 1 | 00=aus 01=an | TCPData[25] | |
| 14 | OTA Software-Versionsnummer | 1 | 0x00-0xFF | TCPData[26] | |
| 15 | Semantische Versionsnummer | 3 | 0x00.0x00.0x00 | TCPData[27], TCPData[28], TCPData[29] | |
| 16 | RSSI | 1 | RSSI-Wert | TCPData[30] | |
| 17 | Verbleibendes Gas in Prozent | 1 | 0x05 = 5% | TCPData[31] | |
| 18 | Auto-Update aktiviert | 1 | 0x00 = Deaktiviert 0x01 = Aktiviert | TCPData[32] | |
| 19 | Haubenbeleuchtung Schwellenwert Prozent | 1 | 0x00 - 0xC8 (0-200 Prozent des Vorrats-Schwellenwerts) | TCPData[33] | Ein niedrigerer Wert bedeutet, dass das Licht bei helleren Bedingungen angeht. |
| 20 | Gas Buddy verbunden | 1 | 0 = Nicht verbunden 1 = Verbunden | TCPData[34] | |
| 21 | Grill-Modus | 1 | DIREKT = 0 INDIREKT = 1 | TCPData[35] | |
| 22 | Verbindungsmodus | 1 | (IDLE = 0) WIFI = 1 (BLE = 2) KOMBINIERT = 3 | TCPData[36] | BLE und IDLE sind im Web-Datenrahmen nicht sichtbar, sie sind hier für zukünftige Referenz enthalten. Diese Verbindungsmodi entsprechen direkt einer Aufzählung in der G32-Firmware. |
| 23 | Letzter WiFi-Verbindungsverlust | 8 | UNIX-Zeitstempel | TCPData[37] TCPData[38] TCPData[39] TCPData[40] TCPData[41] TCPData[42] TCPData[43] TCPData[44] | Dies ist ein UNIX-Zeitstempel mit dem letzten Verbindungsverlust. Sollte der ESP keine Gelegenheit gehabt haben, die Zeit von SNTP zu erhalten, ist dies stattdessen die Zeit seit dem Start (erkennbar daran, dass das Datum 50 Jahre in der Vergangenheit liegt). |
| 24 | Gas-Füllkapazität [g] | 2 | TCPData[45] TCPData[46] | 0 wenn nichts eingestellt ist. | |
| 25 | Hochtemperatur-Warnung aktiv | 1 | Bool | TCPData[47] | 0 wenn keine Warnung aktiv ist, 1 sobald der Timer ausgelöst wird bis das Piepen wieder aufhört. |
| 26 | Hochtemperatur-Warnung aktiviert | 1 | Bool | TCPData[48] | 0 = Aktiviert, 1 = Deaktiviert. |
| 27 | Rahmenende | 1 | 0XC3 | TCPData[49] |