Logo

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 Connected

Grill-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-NameDatenlänge [Byte]ErklärungEntspricht TCPdataKommentar
0Rahmenanfang20xa3 0x3aTCPdata[0], TCPdata[1]
1Geräte-ID_H2Device ID_HTCPdata[2], TCPdata[3]
2Geräte-ID_L2Device ID_LTCPdata[4], TCPdata[5]
3Zonentemperaturen_12Zone Temperatures_1TCPdata[6], TCPdata[7]
4Zonentemperaturen_22Zone Temperatures_2TCPdata[8], TCPdata[9]
5Zonentemperaturen_32Zone Temperatures_3TCPdata[10], TCPdata[11]
6Zonentemperaturen_42Zone Temperatures_4TCPdata[12], TCPdata[13]
7Fleischtemperaturen_12Meat Temperatures_1TCPdata[14], TCPdata[15]
8Fleischtemperaturen_22Meat Temperatures_2TCPdata[16], TCPdata[17]
9Fleischtemperaturen_32Meat Temperatures_3TCPdata[18], TCPdata[19]
10Fleischtemperaturen_42Meat Temperatures_4TCPdata[20], TCPdata[21]
11Gasvorrat2Gasvorrat in [g]TCPdata[22], TCPdata[23]
12Hauben-Status100=geschlossen 01=offenTCPdata[24]
13Licht-Status100=aus 01=anTCPData[25]
14OTA Software-Versionsnummer10x00-0xFFTCPData[26]
15Semantische Versionsnummer30x00.0x00.0x00TCPData[27], TCPData[28], TCPData[29]
16RSSI1RSSI-WertTCPData[30]
17Verbleibendes Gas in Prozent10x05 = 5%TCPData[31]
18Auto-Update aktiviert10x00 = Deaktiviert 0x01 = AktiviertTCPData[32]
19Haubenbeleuchtung Schwellenwert Prozent10x00 - 0xC8 (0-200 Prozent des Vorrats-Schwellenwerts)TCPData[33]Ein niedrigerer Wert bedeutet, dass das Licht bei helleren Bedingungen angeht.
20Gas Buddy verbunden10 = Nicht verbunden 1 = VerbundenTCPData[34]
21Grill-Modus1DIREKT = 0 INDIREKT = 1TCPData[35]
22Verbindungsmodus1(IDLE = 0) WIFI = 1 (BLE = 2) KOMBINIERT = 3TCPData[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.
23Letzter WiFi-Verbindungsverlust8UNIX-ZeitstempelTCPData[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).
24Gas-Füllkapazität [g]2TCPData[45] TCPData[46]0 wenn nichts eingestellt ist.
25Hochtemperatur-Warnung aktiv1BoolTCPData[47]0 wenn keine Warnung aktiv ist, 1 sobald der Timer ausgelöst wird bis das Piepen wieder aufhört.
26Hochtemperatur-Warnung aktiviert1BoolTCPData[48]0 = Aktiviert, 1 = Deaktiviert.
27Rahmenende10XC3TCPData[49]