• Du musst dich registrieren, bevor du Beiträge verfassen kannst. Klicke auf Jetzt registrieren!, um den Registrierungsprozess zu starten. Registrierte User surfen werbefrei, können Suchen durchführen und sehen die volle Darstellung des Forums mit vielen anderen Unterforen!!!

Otto Wilde G32 | Smarthome

-hunter-

Vegetarier
10+ Jahre im GSV
Hallo Zusammen,
ich dachte ich eröffne mal einen Speziellen "Smarthome" Thread zum G32. Nachdem ich letzte Woche erfolgreich meinen Traeger Smoker in HomeAssistant eingebunden habe (https://github.com/sebirdman/hass_traeger/tree/master) dachte ich mir, es wär doch auch super wenn man den G32 in Homeassistant (ioBroker) einbinden zu können, vorallem nachdem OW nun 7,99 Euro im Monat für dieses Feature in der App haben möchte. Mein Wissensstand ist aktuell, dass es keine "öffentliche" API von OW gibt, jedoch die Daten ja wohl in eine Cloud gehen, die Daten von der Traeger App werden auch aus der Cloud ausgelesen, also keine offizielle API .

Vielleicht können wir in diesem Thread Lösungsansätze zusammentragen. Ich denke nicht das OW ihre API öffnen werden?! Sollte dies der Fall sein, dann kann der Thread gerne gelöscht werden...
 
Hallo Zusammen,
ich dachte ich eröffne mal einen Speziellen "Smarthome" Thread zum G32. Nachdem ich letzte Woche erfolgreich meinen Traeger Smoker in HomeAssistant eingebunden habe (https://github.com/sebirdman/hass_traeger/tree/master) dachte ich mir, es wär doch auch super wenn man den G32 in Homeassistant (ioBroker) einbinden zu können, vorallem nachdem OW nun 7,99 Euro im Monat für dieses Feature in der App haben möchte. Mein Wissensstand ist aktuell, dass es keine "öffentliche" API von OW gibt, jedoch die Daten ja wohl in eine Cloud gehen, die Daten von der Traeger App werden auch aus der Cloud ausgelesen, also keine offizielle API .

Vielleicht können wir in diesem Thread Lösungsansätze zusammentragen. Ich denke nicht das OW ihre API öffnen werden?! Sollte dies der Fall sein, dann kann der Thread gerne gelöscht werden...
Hier sind die bisherigen gesammelten Informationen aus
Otto's G32 - 4 Brenner "Smart" Gasgrill | Fokus auf Technik & Anwendung :
Der Stand ist jedoch etwas älter.

  • reverse engineering (per Port-Scan), um die Schnittstelle für die Hausautomation nutzen zu können (@laserrichi hat hier einen ersten Versuch durchgeführt)
  • Hier eine Anleitung, wie man die Bluetooth Schnittstelle ausliest @Sandorson
    [*]
    C:

    bleServerName "OWG-G32C-BT-XXXX"
    BLE Service ("dc0f41ea-b6ae-46a8-a19e-1a3bf4342bcb");
    BLE Characteristics("dc0f41e2-b6ae-46a8-a19e-1a3bf4342bcb");
    MTU Size auf 31 beim Server (G32) anfragen

    28Byte Nutzdaten + 3 Byte Overhead = 31Byte
    Darstellung der Nutzdaten Hexadezimal
    ?? | T1 | T2 | T3 | T4 | EX1| EX2| EX3| EX4| W | ??
    XXXXXXXXXXXX|0250|0250|0255|024f|9600|9600|9600|9600|58c2|XXXXXXXX - 28°,28°,28°,27° Gesamtgewicht + Offset wird übertragen = 58c2 = 22722g, Offset wird in der App gespeichert

    Beispiel T4 0x024f
    Word T1 |HEX |Dezimal| Rechenoperationen
    High Byte T1|02 | 2 | 2*10 = 20
    Low Byte T1|4f | 79 | 79/10 = 7,9
    + -----------
    27,9C° -> Die App zeigt nur 27C° an

    TaraOffset ohne Gasflasche = Gas Buddy Wert 105f = 4191
    Mit Gasfalsche (Gasflasche leer 10,4kg, Füllung 11kg) 73% Gas Buddy Wert = 587b = 22651
    Gasfalsche mit 73% Füllung 10,4+11*0,73 = 18,43kg
    Gas Buddy Wert 22651 - Offset 4191 = 18460, Annahme es wird das gesamt Gewicht der Gasfalsche in g mit dem Offset über BLE übertragen, würde auch umgefähr passen 18460g-10400g/11000g = 73,27%

    Legende:
    XXXX...: Unkenntlich gemacht, stellt irgendeinen Hexadezimalwert dar.
    TX: Temperatursensor im Grill 1- ganz links
    EXX: Temperatursensor extern 1- Steckstelle 1
    W: Gaswaage

    [*]
  • Hier Kommentare zur API Dokumentation auf Github durch @floh86 !! 👍

Bisher hat Otto Wilde immer gesagt, dass sie die Schnittstelle nicht öffnen wollen. .... Kein Wunder bei dem (hoffentlich) Versuch des Abo-Models.
Miele ist mit den Haushaltsgeräten deutlich "moderner". Das lässt irgendwie hoffen ...
 
Bisher hat Otto Wilde immer gesagt, dass sie die Schnittstelle nicht öffnen wollen. .... Kein Wunder bei dem (hoffentlich) Versuch des Abo-Models.
Anstatt über Wifi und die API zu gehen wäre ja auch noch Bluetooth möglich. Da bleibt man lokal und die Schnittstelle ist grundsätzlich 'offen'.
Habe damit auch schon Versuche gemacht und es geht prinzipiell. Momentan stürzt mir die Elektronik vom G32 dabei aber reproduzierbar ab, ich mache also noch irgendetwas falsch.
 
Falls jemand damit weiter experimentieren möchte, hänge ich hier mal meinen Code an. Läuft soweit stabil.
Ist aber momentan nur ein 'proof of concept'. EDIT: läuft Stand 22.01.2024 18:00 stabil und ist komplett mit Füllstand und Haubenöffnung!

Das Ganze läuft auf einem ESP32-WROOM-32 (oder jedem anderen ESP32 Board) unter ESP-Home auf Home Assistant. Zuerst einmal muss man die Bluetooth MAC des eigenen G32 herausfinden (Blutooth-Sniffer, z.B. 'nRF Connect' App von Nordic). Diese dann im Code bei 'mac_address:' einfügen, die 'id:' ist beliebig. Zusätzlich natürlich die WIFI credentials und passenden Keys für Home Assistant (wie bei ESP Home üblich):

YAML:
esphome:
  name: espg32
  friendly_name: ESP_G32

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:


# Enable Home Assistant API
api:
  encryption:
    key: "your_key_here"

ota:
  password: "your_password_here"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esphome-Test Fallback Hotspot"
    password: "AB99jeDrtWUe"

captive_portal:

# die folgenden 5 Zeilen nur zum ersten Scannen der MAC nutzen (entkommentieren) und danach löschen oder wieder kommentieren!
# esp32_ble_tracker:
#
# text_sensor:
#  - platform: ble_scanner
#    name: "BLE Device Scanner"

ble_client:
  # MAC des eigenen G32 eintragen! Id scheint beliebig
  - mac_address: 94:E6:86:0A:27:XX
    id: OWG_G32C_2750

sensor:
  - platform: ble_rssi
  # MAC des eigenen G32 eintragen!
    mac_address: 94:E6:86:0A:27:52
    name: "BT Signalstärke"
  - platform: wifi_signal
    name: "WiFi Signal ESP G32"
    update_interval: 300s
  - platform: internal_temperature
    name: "CPU Temperatur ESP G32"
    update_interval: 300s

  - platform: ble_client
    type: characteristic
    name: "G32 Licht"
    id: g32_Licht
    service_uuid: '183b'
    characteristic_uuid: 'e1255ec0-6199-44ab-b78e-08ec262cea4b'
    update_interval: 2s
    lambda: |-
      return (x[0]);

  - platform: ble_client
    type: characteristic
    name: "G32 Haube"
    id: g32_Haube
    service_uuid: '183b'
    characteristic_uuid: 'e1255ec1-6199-44ab-b78e-08ec262cea4b'
    update_interval: 2s
    lambda: |-
      return (x[0]);

  - platform: ble_client
    type: characteristic
    name: "G32 Sensor 1"
    service_uuid: 'dc0f41ea-b6ae-46a8-a19e-1a3bf4342bcb'
    characteristic_uuid: 'dc0f41e2-b6ae-46a8-a19e-1a3bf4342bcb'
    device_class: "temperature"
    unit_of_measurement: "°C"
    update_interval: 5s
    lambda: |-
      return (x[6]*100.0+x[7])/10.0;

  - platform: ble_client
    type: characteristic
    name: "G32 Sensor 2"
    service_uuid: 'dc0f41ea-b6ae-46a8-a19e-1a3bf4342bcb'
    characteristic_uuid: 'dc0f41e2-b6ae-46a8-a19e-1a3bf4342bcb'
    device_class: "temperature"
    unit_of_measurement: "°C"
    update_interval: 120s
    lambda: |-
      return (x[8]*100.0+x[9])/10.0;

  - platform: ble_client
    type: characteristic
    name: "G32 Sensor 3"
    service_uuid: 'dc0f41ea-b6ae-46a8-a19e-1a3bf4342bcb'
    characteristic_uuid: 'dc0f41e2-b6ae-46a8-a19e-1a3bf4342bcb'
    device_class: "temperature"
    unit_of_measurement: "°C"
    update_interval: 120s
    lambda: |-
      return (x[10]*100.0+x[11])/10.0;

  - platform: ble_client
    type: characteristic
    name: "G32 Sensor 4"
    service_uuid: 'dc0f41ea-b6ae-46a8-a19e-1a3bf4342bcb'
    characteristic_uuid: 'dc0f41e2-b6ae-46a8-a19e-1a3bf4342bcb'
    device_class: "temperature"
    unit_of_measurement: "°C"
    update_interval: 120s
    lambda: |-
      return (x[12]*100.0+x[13])/10.0;

  - platform: ble_client
    type: characteristic
    name: "G32 External Sensor 1"
    service_uuid: 'dc0f41ea-b6ae-46a8-a19e-1a3bf4342bcb'
    characteristic_uuid: 'dc0f41e2-b6ae-46a8-a19e-1a3bf4342bcb'
    device_class: "temperature"
    unit_of_measurement: "°C"
    update_interval: 120s
    lambda: |-
      return (x[14]*100.0+x[15])/10.0;

  - platform: ble_client
    type: characteristic
    name: "G32 External Sensor 2"
    service_uuid: 'dc0f41ea-b6ae-46a8-a19e-1a3bf4342bcb'
    characteristic_uuid: 'dc0f41e2-b6ae-46a8-a19e-1a3bf4342bcb'
    device_class: "temperature"
    unit_of_measurement: "°C"
    update_interval: 120s
    lambda: |-
      return (x[16]*100.0+x[17])/10.0;

  - platform: ble_client
    type: characteristic
    name: "G32 External Sensor 3"
    service_uuid: 'dc0f41ea-b6ae-46a8-a19e-1a3bf4342bcb'
    characteristic_uuid: 'dc0f41e2-b6ae-46a8-a19e-1a3bf4342bcb'
    device_class: "temperature"
    unit_of_measurement: "°C"
    update_interval: 120s
    lambda: |-
      return (x[18]*100.0+x[19])/10.0;

  - platform: ble_client
    type: characteristic
    name: "G32 External Sensor 4"
    service_uuid: 'dc0f41ea-b6ae-46a8-a19e-1a3bf4342bcb'
    characteristic_uuid: 'dc0f41e2-b6ae-46a8-a19e-1a3bf4342bcb'
    device_class: "temperature"
    unit_of_measurement: "°C"
    update_interval: 120s
    lambda: |-
      return (x[20]*100.0+x[21])/10.0;

  - platform: ble_client
    type: characteristic
    name: "G32 Gasbuddy Füllstand"
    service_uuid: '181D'
    characteristic_uuid: '64EBC8A5-E9A4-11ED-A05B-0242AC120003'
    device_class: "battery"
    unit_of_measurement: "%"
    update_interval: 120s
    lambda: |-
      return (x[0]);

binary_sensor:
  - platform: status
    name: "Status ESP G32"

  - platform: template
    name: "G32 Licht"
    icon: "mdi:light-flood-down"
    lambda: |-
     if (id(g32_Licht).state == 1) {
     // G32 Haubenlicht ist AN.
     return true;
     } else {
     // G32 Haubenlicht ist AUS.
     return false;
     }
  - platform: template
    name: "G32 Haube"
    icon: "mdi:door"
    lambda: |-
     if (id(g32_Haube).state == 1) {
     // G32 Haube ist offen.
     return true;
     } else {
     // G32 Haube ist geschlossen.
     return false;
     }

G32_HA.jpg
 
Falls jemand damit weiter experimentieren möchte, hänge ich hier mal meinen Code an. Läuft soweit stabil. Ist aber momentan nur ein 'proof of concept'.

Das Ganze läuft auf einem ESP32-WROOM-32 (oder jedem anderen ESP32 Board) unter ESP-Home auf Home Assistant. Zuerst einmal muss man die Bluetooth MAC des eigenen G32 herausfinden (Blutooth-Sniffer, z.B. 'nRF Connect' App von Nordic). Diese dann im Code bei 'mac_address:' einfügen, die 'id:' ist beliebig. Zusätzlich natürlich die WIFI credentials und passenden Keys für Home Assistant (wie bei ESP Home üblich):

YAML:
esphome:
  name: esphome-test
  friendly_name: ESP_Test

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:


# Enable Home Assistant API
api:
  encryption:
    key: "your_key_here"

ota:
  password: "your_password_here"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esphome-Test Fallback Hotspot"
    password: "AB99jeDrtWUe"

captive_portal:

ble_client:
  # MAC des eigenen G32 eintragen! Id scheint beliebig
  - mac_address: 94:E6:86:0A:27:XX
    id: OWG_G32C_2750

sensor:
  - platform: ble_client
    type: characteristic
    ble_client_id: OWG_G32C_2750
    name: "G32 Sensor 1"
    service_uuid: 'dc0f41ea-b6ae-46a8-a19e-1a3bf4342bcb'
    characteristic_uuid: 'dc0f41e2-b6ae-46a8-a19e-1a3bf4342bcb'
    device_class: "temperature"
    update_interval: 5s
    lambda: |-
      return (x[6]*256.0+x[7])/10;

  - platform: ble_client
    type: characteristic
    ble_client_id: OWG_G32C_2750
    name: "G32 Sensor 2"
    service_uuid: 'dc0f41ea-b6ae-46a8-a19e-1a3bf4342bcb'
    characteristic_uuid: 'dc0f41e2-b6ae-46a8-a19e-1a3bf4342bcb'
    device_class: "temperature"
    update_interval: 5s
    lambda: |-
      return (x[8]*256.0+x[9])/10;

  - platform: ble_client
    type: characteristic
    ble_client_id: OWG_G32C_2750
    name: "G32 Sensor 3"
    service_uuid: 'dc0f41ea-b6ae-46a8-a19e-1a3bf4342bcb'
    characteristic_uuid: 'dc0f41e2-b6ae-46a8-a19e-1a3bf4342bcb'
    device_class: "temperature"
    update_interval: 5s
    lambda: |-
      return (x[10]*256.0+x[11])/10;

  - platform: ble_client
    type: characteristic
    ble_client_id: OWG_G32C_2750
    name: "G32 Sensor 4"
    service_uuid: 'dc0f41ea-b6ae-46a8-a19e-1a3bf4342bcb'
    characteristic_uuid: 'dc0f41e2-b6ae-46a8-a19e-1a3bf4342bcb'
    device_class: "temperature"
    update_interval: 5s
    lambda: |-
      return (x[12]*256.0+x[13])/10;

Anhang anzeigen 3320082
Wahnsinn, das geht in die richtige Richtung 👌🏻👌🏻👌🏻

Damit werden 2 Schwachstellen ausgehebelt, die Cloud-Anbindung und die Premium-App.

Kann man auch als Nicht-Programmierer irgendwie weiterhelfen? Würde so eine HomeBrew-Lösung echt geil finden. Damit kann man dann ja auch die Visualisierung der Temperaturen / des Gasverbrauches etc. lösen.
 
Wahnsinn, das geht in die richtige Richtung 👌🏻👌🏻👌🏻

Damit werden 2 Schwachstellen ausgehebelt, die Cloud-Anbindung und die Premium-App.

Kann man auch als Nicht-Programmierer irgendwie weiterhelfen? Würde so eine HomeBrew-Lösung echt geil finden. Damit kann man dann ja auch die Visualisierung der Temperaturen / des Gasverbrauches etc. lösen.
Wenn ich jetzt noch die externen Temperaturfühler und den Gasfüllstand auslese, dann habe ich zumindest die für mich wichtigen Informationen im Home Assistant und würde die OW App gar nicht mehr benutzen müssen. Die Visualisierung im HA ist dann nur noch die Kür, schnell gemacht und auch sehr individuell gestaltbar.

Das Ganze ist natürlich insofern ein gewisser Behelf, als man eine zusätzliche Hardware (den ESP32) benötigt, mit Netzteil usw. Wenn man allerdings an dem ESP32 noch ein Display anbringen würde, dann hätte man ganz grob einen 'Grill Buddy' Ersatz. Könnte man direkt am G32 als Display benutzen und er würde zusätzlich die Daten zum Home Assistant schicken.
Besser wäre mMn eine direkte Einbindung im HA ohne extra Hardware, wie es sie für viele andere Bluetooth Geräte schon gibt. Da bin ich aber raus, ich bin bei HA auch nur Anwender und kann dafür nicht programmieren ...
 
Wenn ich jetzt noch die externen Temperaturfühler und den Gasfüllstand auslese, dann habe ich zumindest die für mich wichtigen Informationen im Home Assistant und würde die OW App gar nicht mehr benutzen müssen. Die Visualisierung im HA ist dann nur noch die Kür, schnell gemacht und auch sehr individuell gestaltbar.

Das Ganze ist natürlich insofern ein gewisser Behelf, als man eine zusätzliche Hardware (den ESP32) benötigt, mit Netzteil usw. Wenn man allerdings an dem ESP32 noch ein Display anbringen würde, dann hätte man ganz grob einen 'Grill Buddy' Ersatz. Könnte man direkt am G32 als Display benutzen und er würde zusätzlich die Daten zum Home Assistant schicken.
Besser wäre mMn eine direkte Einbindung im HA ohne extra Hardware, wie es sie für viele andere Bluetooth Geräte schon gibt. Da bin ich aber raus, ich bin bei HA auch nur Anwender und kann dafür nicht programmieren ...
Bin in HA noch nicht firm, würde mich dafür aber extra einarbeiten. Ich sehe das zusätzliche Gerät auch nicht als Hindernis.

Hatte auch schon mal überlegt mich in HA einzuarbeiten für die Steuerung meines SG-Ready-Anschlusses der Wärmepumpe und der Daten der PV-Anlage...
 
Falls jemand damit weiter experimentieren möchte, hänge ich hier mal meinen Code an. Läuft soweit stabil. Ist aber momentan nur ein 'proof of concept'.

Das Ganze läuft auf einem ESP32-WROOM-32 (oder jedem anderen ESP32 Board) unter ESP-Home auf Home Assistant. Zuerst einmal muss man die Bluetooth MAC des eigenen G32 herausfinden (Blutooth-Sniffer, z.B. 'nRF Connect' App von Nordic). Diese dann im Code bei 'mac_address:' einfügen, die 'id:' ist beliebig. Zusätzlich natürlich die WIFI credentials und passenden Keys für Home Assistant (wie bei ESP Home üblich):

YAML:
esphome:
  name: esphome-test
  friendly_name: ESP_Test

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:


# Enable Home Assistant API
api:
  encryption:
    key: "your_key_here"

ota:
  password: "your_password_here"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esphome-Test Fallback Hotspot"
    password: "AB99jeDrtWUe"

captive_portal:

ble_client:
  # MAC des eigenen G32 eintragen! Id scheint beliebig
  - mac_address: 94:E6:86:0A:27:XX
    id: OWG_G32C_2750

sensor:
  - platform: ble_client
    type: characteristic
    name: "G32 Sensor 1"
    service_uuid: 'dc0f41ea-b6ae-46a8-a19e-1a3bf4342bcb'
    characteristic_uuid: 'dc0f41e2-b6ae-46a8-a19e-1a3bf4342bcb'
    device_class: "temperature"
    unit_of_measurement: "°C"
    update_interval: 5s
    lambda: |-
      return (x[6]*100.0+x[7])/10.0;

  - platform: ble_client
    type: characteristic
    name: "G32 Sensor 2"
    service_uuid: 'dc0f41ea-b6ae-46a8-a19e-1a3bf4342bcb'
    characteristic_uuid: 'dc0f41e2-b6ae-46a8-a19e-1a3bf4342bcb'
    device_class: "temperature"
    unit_of_measurement: "°C"
    update_interval: 5s
    lambda: |-
      return (x[8]*100.0+x[9])/10.0;

  - platform: ble_client
    type: characteristic
    name: "G32 Sensor 3"
    service_uuid: 'dc0f41ea-b6ae-46a8-a19e-1a3bf4342bcb'
    characteristic_uuid: 'dc0f41e2-b6ae-46a8-a19e-1a3bf4342bcb'
    device_class: "temperature"
    unit_of_measurement: "°C"
    update_interval: 5s
    lambda: |-
      return (x[10]*100.0+x[11])/10.0;

  - platform: ble_client
    type: characteristic
    name: "G32 Sensor 4"
    service_uuid: 'dc0f41ea-b6ae-46a8-a19e-1a3bf4342bcb'
    characteristic_uuid: 'dc0f41e2-b6ae-46a8-a19e-1a3bf4342bcb'
    device_class: "temperature"
    unit_of_measurement: "°C"
    update_interval: 5s
    lambda: |-
      return (x[12]*100.0+x[13])/10.0;

  - platform: ble_client
    type: characteristic
    name: "G32 External Sensor 1"
    service_uuid: 'dc0f41ea-b6ae-46a8-a19e-1a3bf4342bcb'
    characteristic_uuid: 'dc0f41e2-b6ae-46a8-a19e-1a3bf4342bcb'
    device_class: "temperature"
    unit_of_measurement: "°C"
    update_interval: 5s
    lambda: |-
      return (x[14]*100.0+x[15])/10.0;

  - platform: ble_client
    type: characteristic
    name: "G32 External Sensor 2"
    service_uuid: 'dc0f41ea-b6ae-46a8-a19e-1a3bf4342bcb'
    characteristic_uuid: 'dc0f41e2-b6ae-46a8-a19e-1a3bf4342bcb'
    device_class: "temperature"
    unit_of_measurement: "°C"
    update_interval: 5s
    lambda: |-
      return (x[16]*100.0+x[17])/10.0;

  - platform: ble_client
    type: characteristic
    name: "G32 External Sensor 3"
    service_uuid: 'dc0f41ea-b6ae-46a8-a19e-1a3bf4342bcb'
    characteristic_uuid: 'dc0f41e2-b6ae-46a8-a19e-1a3bf4342bcb'
    device_class: "temperature"
    unit_of_measurement: "°C"
    update_interval: 5s
    lambda: |-
      return (x[18]*100.0+x[19])/10.0;

  - platform: ble_client
    type: characteristic
    name: "G32 External Sensor 4"
    service_uuid: 'dc0f41ea-b6ae-46a8-a19e-1a3bf4342bcb'
    characteristic_uuid: 'dc0f41e2-b6ae-46a8-a19e-1a3bf4342bcb'
    device_class: "temperature"
    unit_of_measurement: "°C"
    update_interval: 5s
    lambda: |-
      return (x[20]*100.0+x[21])/10.0;

Anhang anzeigen 3320082
Großartig!
woher kommen die Service_uuid und characteristic_uuid?
Siehst du noch eine Möglichkeit den Gasfüllstand abzufragen?
 
Großartig! Siehst du noch eine Möglichkeit den Gasfüllstand abzufragen?
Ja klar, wenn er dann bei mir irgendwann mal wieder funktioniert ... :-(
Habe damit momentan wirklich Probleme. Ich bekomme die Gasflasche nicht angemeldet und es werden in den betreffenden Bytes dann auch nur Nullen übertragen.
 
Nein, die sind von OW im Bluetooth-Profil fest definiert.

Gute Arbeit. Ich werds es mir mal nachbasteln und versuchen den GasBuddy (bei mir läuft alles) zu integrieren. Wie findest du die potentiellen Values vom Gas Buddy ? Einfach mit der Lambda Funktion "herumspielen" oder gibt es dort Regelmäßigkeiten um die Adressen zu finden? Service UID / Characteristics UID scheinen ja bei allen Werten gleich zu sein
 
Wahnsinn, das geht in die richtige Richtung 👌🏻👌🏻👌🏻

Damit werden 2 Schwachstellen ausgehebelt, die Cloud-Anbindung und die Premium-App.

Kann man auch als Nicht-Programmierer irgendwie weiterhelfen? Würde so eine HomeBrew-Lösung echt geil finden. Damit kann man dann ja auch die Visualisierung der Temperaturen / des Gasverbrauches etc. lösen.
Dito. Wenn es eine API gäbe die man einfach anzapfen kann (bluetooth) könnte ich da eine ganz einfache App (iOS) bauen. Noch schöner wäre ein webapp die jeder ganz einfach installieren könnte, aber Bluetooth ist noch nicht komplett freigeben für Browser :(
 
Gute Arbeit. Ich werds es mir mal nachbasteln und versuchen den GasBuddy (bei mir läuft alles) zu integrieren. Wie findest du die potentiellen Values vom Gas Buddy ? Einfach mit der Lambda Funktion "herumspielen" oder gibt es dort Regelmäßigkeiten um die Adressen zu finden? Service UID / Characteristics UID scheinen ja bei allen Werten gleich zu sein
Die Adressen und Bedeutungen gibt es im Beitrag von @Sandorson (hier).
Ich könnte die Abfrage und Berechnung ohne Test einbauen, möchte aber gerne zuerst selber testen, bevor ich etwas veröffentliche. Mir ist aber noch vollkommen unklar, wie man aus den Daten an den genauen Füllstand kommt. Wäre interessant zu wissen, wie das der Grillbuddy macht. Eventuell gibt es noch ein anderes BT-Profil, mit dem man den Prozentwert bekommt?

Es wäre sehr schön, wenn Du (oder generell jemand) da mal selber etwas herumspielen könntest. Ich bin mir noch nicht sicher, dass mein Weg der richtige ist. Es wird scheinbar für jede einzelne Variable immer wieder der ganze Datensatz ausgelesen. So ist wohl die Funktion in ESP-Home gestrickt. Sinnvoll wäre es, einmal auszulesen und dann alle Werte zu berechnen.
EDIT: um das beschriebene, viel zu häufige Auslesen der Werte zu umgehen, kann man bei allen Werten außer einem (!) das Update-Intervall auf einen größeren Wert setzen. Es werden trotzdem bei jedem Auslesen alle Werte upgedated! Änderung habe ich oben im Quellcode vorgenommen.

Nach ein paar Stunden (?) ununterbrochener Abfrage 'hängt' scheinbar auch immer mal wieder die Kommunikation. Ich bekomme danach weder mit der OW App noch mit nRFconnect oder meiner Lösung Daten. G32 aus- und wieder einschalten und dann geht es wieder.
EDIT: läuft jetzt mit dieser Änderung seit mehr als 24 Stunden ohne Probleme.

(Seit ich mit BT auf den G32 zugreife, komme ich auch nicht mehr über Wifi an ihn heran. Die OW-App lässt mich einfach nicht! Hatte das Problem mit dem Xiaomi vorher schon einmal. Da ging es dann mit dem Tablet )
 
Dito. Wenn es eine API gäbe die man einfach anzapfen kann (bluetooth) könnte ich da eine ganz einfache App (iOS) bauen. Noch schöner wäre ein webapp die jeder ganz einfach installieren könnte, aber Bluetooth ist noch nicht komplett freigeben für Browser :(
Prinzipiell gute Idee. Ist dann aber wieder eine App (mit dem Vorteil, lokal über BT zu arbeiten).
Die Einbindung in HA hat den Vorteil, dass man nur noch die HA Companion App benötigt und damit alles unter einem Hut hat.
Ich habe da bei mir die Heizungssteuerung drin mit Gasverbrauch und allem, Lichter schalten und dimmen, Miele Hausgeräte, PV und Speicher mit Anzeige aller Batterieparameter, Panels usw, Mähroboter, Abfallkalender, Wetter usw. Das alles in einer App (anstatt 10 verschiedener ...). Das ist schon verlockend.
 
Hier noch ein Beispiel für eine ganz einfache (Text-)Darstellung in HA:
G32_HA.jpg

Externe Fühler werden nur angezeigt, wenn sie auch eingesteckt sind (dazu wird auf einen Messwert ungleich 1500°C abgeprüft):


Code:
type: vertical-stack
title: G32 El Grillo
cards:
  - type: tile
    entity: sensor.esphome_test_g32_sensor_1
    name: Temperatur 1
    hide_icon: true
  - type: tile
    entity: sensor.esphome_test_g32_sensor_2
    name: Temperatur 2
    hide_icon: true
  - type: tile
    entity: sensor.esphome_test_g32_sensor_3
    name: Temperatur 3
    hide_icon: true
  - type: tile
    entity: sensor.esphome_test_g32_sensor_4
    name: Temperatur 4
    hide_icon: true
  - type: conditional
    conditions:
      - condition: state
        entity: sensor.esp_g32_g32_sensor_ext_1
        state_not: '1500'
    card:
      type: tile
      entity: sensor.esp_g32_g32_sensor_ext_1
      name: externer Fühler 1
  - type: conditional
    conditions:
      - condition: state
        entity: sensor.esp_g32_g32_sensor_ext_2
        state_not: '1500'
    card:
      type: tile
      entity: sensor.esp_g32_g32_sensor_ext_2
      name: externer Fühler 2
  - type: conditional
    conditions:
      - condition: state
        entity: sensor.esp_g32_g32_sensor_ext_3
        state_not: '1500'
    card:
      type: tile
      entity: sensor.esp_g32_g32_sensor_ext_3
      name: externer Fühler 3
  - type: conditional
    conditions:
      - condition: state
        entity: sensor.esp_g32_g32_sensor_ext_4
        state_not: '1500'
    card:
      type: tile
      entity: sensor.esp_g32_g32_sensor_ext_4
      name: externer Fühler 4
 
Geil! Das ganze geht in die richtige Richtung ! Ich danke euch, ja ne extra App seh ich jetzt nicht als zwingend nötig an, Home Assistant ist optimal, zumal auch die Werte geloggt werden und man Langzeitcharts hat etc… hab mittlerweile meine PV Anlage, KNX Smarthome, Traeger Smoker, eAuto, alles zentral über HA :) fehlt nur noch der OW ! Man könnte das mit dem ESP weitertreiben, ähnlich wie bei OpenDTU und hoymiles Wechselrichter, da fungiert der ESP quasi auch als Proxy…
Wenn die Daten mal in HA sind kannst sie quasi auf fast jedem Endgerät anzeigen und somit nen eigenen Grillbuddy bauen! Stichwort Ulanzi/Awtrix zb …
 
Zurück
Oben Unten