Yesterday had some time over… Managed to get the Esphome component from rawsludge working. So far only temperature inside and temperature outside, but a start. Using a Seeed Studio XIAO ESP32-S3 Plus micro controller board.
Hi tomjeppis,
great news that you got it working! I also have a Hobby caravan and just scanned with nRF Connect - found my caravan as “MyHobby Data” with MAC DE:00:12:20:68:06.
I have an ESP32 on order and would love to get started as well. Which ESPHome branch from rawsludge are you using exactly? And did you have to do anything special to get it paired/connected?
Looking forward to hearing from you!
Below is my esphome code at the moment… not clean… but working for temp in and out.
esphome:
name: hobby-ble
friendly_name: Hobby BLE
esp32:
board: seeed_xiao_esp32s3
framework:
type: esp-idf
psram:
mode: octal
speed: 80MHz
# Enable logging
logger:
hardware_uart: USB_SERIAL_JTAG
level: VERY_VERBOSE #Turns on very chatty logs
#level: VERBOSE
# Enable Home Assistant API
api:
encryption:
key: "hQ9NsS SOME DATA WITHELD mI2jzskSltjM="
ota:
- platform: esphome
password: "30ccff SOME DATA WITHELD 322c76fe"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Hobby-Ble Fallback Hotspot"
password: "3wqJZm7iGI1U"
captive_portal:
# BLE scanning (tunable for debugging)
esp32_ble_tracker:
scan_parameters:
interval: 320ms
window: 120ms
active: true
continuous: true
ble_client:
- mac_address: DE:00:14:00:61:46 # Your Hobbys BLE MAC address
id: my_ble_client
auto_connect: true
on_connect:
then:
- logger.log:
level: INFO
format: "BLE: Connected to caravan (%s)"
args: ['"DE:00:14:00:61:46"']
on_disconnect:
then:
- logger.log:
level: WARN
format: "BLE: Disconnected from caravan (%s)"
args: ['"DE:00:14:00:61:46"']
external_components:
- source:
type: git
url: https://github.com/rawsludge/esphome
ref: fendt_caravan
path: esphome/components
components: [ fendt_caravan ]
# Root device (owns BLE client etc.)
fendt_caravan:
id: my_caravan
ble_client_id: my_ble_client
sensor:
# This creates the CaravanDeviceComponent "child" under the root
- platform: fendt_caravan
type: mcu_device
id: my_device
name: "Caravan MCU Device"
parent_id: my_caravan
# These sensors must reference the CaravanDeviceComponent (my_device)
- platform: fendt_caravan
type: temp_in
name: "Temperature inside"
parent_id: my_device
- platform: fendt_caravan
type: temp_out
name: "Temperature outside"
parent_id: my_device
switch:
- platform: template
id: include_switch_component
name: "Include switch component"
internal: true
optimistic: true
turn_on_action: []
turn_off_action: []
text_sensor:
- platform: template
id: include_text_sensor_component
name: "Include text_sensor component"
internal: true
Hi rawsludge,
great work on the ESPHome component! I have a Hobby caravan with a Truma Combi heater and I got your component running successfully - temperatures inside and outside are working perfectly.
My main goal is to control the caravan remotely from home - turning the heating on/off and setting the target temperature. Is Truma heater control something you are planning to implement? I would love to help with testing as I have the exact setup (Hobby caravan + Truma Combi) and an XIAO ESP32-S3 already flashed and ready.
Looking forward to hearing from you!
Could not get the ESPHome stuff from rawsludge doing what I want, so tried a different path: Using Arduino IDE to program the Xiao ESP32S3. Got it talking to the Hobby, can now see all data my motorhome is sending (all the same as I can see with nrfconnect)… Next is parsing all the received raw data, test sending data (lights, fridge, Truman) to the motorhome and finally setup MQTT comms to HA.
Hi, i have an Hobby Caravan too. I will test the connection in the next couple of days. In my case i have an ALDE Heater onboard. Any hints for the first connection? Anything i can provide?
Subject: MyHobby BLE reverse engineering - progress update & Truma heater control
Hi everyone,
I’ve been working on integrating my Hobby caravan’s MyHobby BLE system with Home Assistant via ESPHome on a Seeed Studio XIAO ESP32-S3. Here’s what I’ve discovered so far through reverse engineering with nRF Connect and analyzing the fendt_caravan ESPHome component from @rawsludge.
What’s working:
- XIAO connects successfully to MyHobby Data (MAC: DE:00:12:20:68:06)
- Receiving live data via BLE Notify: inside/outside temperature, battery voltage (IBS0_UBAT: 13.7V), battery current (IBS0_IBAT), state of charge (IBS0_SOC2: 100%), remaining time (IBS0_REMAINING_TIME)
- All data flowing through MQTT to Home Assistant
BLE Protocol discovered:
- Service UUID:
c7841029-fe7c-4894-8532-f97908ef1ae4 - Characteristic:
0x0001(NOTIFY + WRITE) - On connect, device expects:
net-BT_ID-<mac>thennet-BT_VARS - Without correct BT_ID → device responds with
BT_STOP:and disconnects - Notify data format:
KEY:VALUE(e.g.TH_A_T:21^C,IBS0_UBAT:13,7 V) - Write command format for temperature:
net-TH_A_T-210(temp × 10) - Toggle command format:
cmd-tgl:KEY
Current problem: The Truma heater is powered on but we only receive IBS0 (battery) data — no TH_A_T (heater) data in the Notify stream. When we send net-TH_A_T-210 the write is acknowledged (ESP_GATTC_WRITE_CHAR_EVT) but the heater doesn’t respond.
Questions:
- Does the heater require a specific initialization sequence beyond
net-BT_ID+net-BT_VARS? - Is there a separate command to request Truma data specifically?
- The hardcoded BT_ID in the component is
c0:ee:fb:90:b0:a7— is this a fixed/universal ID or device-specific?
Any help appreciated! ![]()
Using rawsludge's esphome BLE based implementation and adding more code for switches, (dimmable) lights, my Truma Combi 6 and my Dometic fridge, I managed to have full remote control of my Hobby 2023 Excellent Edition caravan including heating, hot water and my dometic fridge.
I currently only have my Smartphone available so here's a quick log output while switching on heating and setting temperature. If you need any more BLE notify outputs, just let me know and I'll get them once I get my computer out.
Time Level Tag Message
20:53:44 [D] [fendt_caravan:038]
Command sent: cmd-tgl:TH_A_EN, 15
20:53:44 [D] [fendt_caravan:100]
Notified value: TH_A_EN:On
20:53:44 [D] [fendt_caravan:100]
Notified value: TH_A_T:20^C
20:53:47 [D] [fendt_caravan:038]
Command sent: cmd-set:TH_A_T=29, 17
20:53:47 [D] [fendt_caravan:100]
Notified value: TH_A_T:29^C
20:53:50 [D] [fendt_caravan:038]
Command sent: cmd-set:TH_A_T=22, 17
20:53:50 [D] [fendt_caravan:100]
Notified value: TH_A_T:22^C
20:53:51 [D] [fendt_caravan:038]
Command sent: cmd-set:TH_A_T=13, 17
20:53:51 [D] [fendt_caravan:100]
Notified value: TH_A_T:13^C
20:53:52 [D] [fendt_caravan:038]
Command sent: cmd-set:TH_A_T=19, 17
20:53:52 [D] [fendt_caravan:100]
Notified value: TH_A_T:19^C
20:53:54 [D] [fendt_caravan:038]
Command sent: cmd-set:TH_A_T=27, 17
20:53:54 [D] [fendt_caravan:100]
Notified value: TH_A_T:27^C
20:53:55 [D] [fendt_caravan:038]
Command sent: cmd-set:TH_A_T=20, 17
20:53:55 [D] [fendt_caravan:100]
Notified value: TH_A_T:20^C
Hi, that sound excelent, I have a Hobby 2024 Excellent Edition caravan. Could you please post your complete code set, so that I can give my one a test.
hello @md726 , would you be so kind to share your code on github, possibly as a Pull Request against Rawsludge's repository?
Sorry for stupid question but do I need additional hardware to do this?
Thanks ind advance
Nick
Hi @nick16
As far as I can tell, this runs on EspHome on any supported Device, so Esp32 should be enough.
Jak to uzyskać na mojej przyczepie kempingowej hobby
It got it done from bigtomi - but sensors seems different in Fendt tendenza 550..
Is there any whay i can findt my sensors/lamp etc…
Hi, could anyone help me with extra code for lights, heating etc as all I can get working is internal and external temperatures? Any help would be much appreciated I have been trying to get this working for months and is driving me crazy
