Connect your GE appliances to Home Assistant — no cloud, fully local
Hi everyone! I’ve been working on an ESPHome external component that lets you
monitor and control GE appliances (dishwasher, washer, dryer, oven) via the GEA3 serial bus — the built-in service port found on most modern GE/GE Profile
appliances. No SmartHQ account, no cloud dependency, 100% local.
How it works
Wire a cheap ESP32 into your appliance’s service port. The component reads and
writes every data point on the bus — door state, cycle name, water temperature,
time remaining, error codes, and more — and exposes them to Home Assistant as
standard entities.
Each piece of data is identified by a 16-bit ERD (Entity Reference
Designator). The component automatically logs every ERD it sees on boot, so
reverse-engineering a new appliance is straightforward.
I’ve got a FirstBuild GEA adapter on my dishwasher, and using their HACS integration, but will definitely check out your component. Could help me avoid getting buried with ALL the entities – there are a BUNCH showing up in HA on dishwasher.
I will certainly consider plugging your ESP into one or more of my three GE appliances that are already factory-built “smart” --but cloud-based. Will be interesting to see what info they’re putting on the GEA3 bus but not surfacing in the mobile app, and/or what appears in current HACS “SmartHQ” integration. Certainly would be nice to keep all local.
One question: any chance you can do something similar for GEA2 ? My fridge is the only GE appliance I’ve got for which I can’t get data. I’d certainly be willing to test.
My PCB has the hardware needed to support GEA2. I’ve been using it for a GEA2 dryer with esphome (external component for GEA2 in same repo as the PCB).
I’ve procured 5 of the mulcmu adapters and I also have 1 of the firstbuild adapters. I have 5 appliances that are all GEA2. The 1 firstbuild adapter I have working, but haven’t yet been successful getting any of the mulcmu adapters to work. So far I have only tried the geappliances fork that works for GEA2, and haven’t tried your ESPHome code. Hopefully will get a chance to mess with it more next weekend.
Washer & dryer which are about 8 years old, and then fridge, dishwasher, and oven which were left by the previous homeowner but looked relatively new at the time so probably 10 years old. There is a GE microwave too which I haven’t checked to see if it can be connected, but I don’t really have much interest in any data from it either.
Just looking through your docs, noticed that you don’t specify the pins for GEA2. Under wiring and also in the hub doc, the GEA2 wiring should be 10 & 9 (Rx&Tx) for the firstbuild adapter.
Since I haven’t got the mulcmu adapter working yet I can’t confirm but per the schematic it is set up for 10 & 5 (Rx&Tx) with a solder bridge jumper that can connect 9 to the Tx.
Another suggestion is for GEA2 you could do what the GEA2 fork of the home assistant adapter software will do on first connect: It will find out what appliance type it is connected to, and then poll every ERD that appliance could potentially use. After about 30-45 minutes, it will have run through every potential ERD and it stores the the ones that responded in flash memory. From that point forward, it just continually polls the ones in memory.
Hello, I got a firstbuild adapter last week and I am trying to integrate with a US-specific GE 50 gallon water heater. My model is PF50S10FPY but from my understanding, all the latest generation models are identical and speak GEA3 natively. This model is listed as compatible
I wanted to try the esphome method first since the official integration looks very heavy. I uploaded this config to try out:
Looks like both 6F and C0 are sending status updates to two addresses you tried for the adapter E4 and BE. The E4 address was used in the example docs but it is close to the E0 to E3 control bytes used for the protocol. The wifi adapters seem to use addresses that start with 0xB_
Did you get anything in the logs for ERDS from 0xC0? Did the 0x6F get auto identified by the esphome code, I didn't see it in the yaml. Try adding dest_address: 0xC0 to the GEA hub.
Thank you. This was the missing link.
I am getting back ERDs that definitely belong to a water heater. The model and serial are blank, but I see several non-empty values that I can play with. Thanks! Let me see if I can get a good enough template and I'll submit the changes back to the repo.
[13:03:55.486][D][gea:713]: RX: STX — frame started
[13:03:55.490][D][gea:779]: Valid packet: src=0xC0 cmd=0xA6 len=14
[13:03:55.491][I][app:154]: ESPHome version 2026.4.4 compiled on 2026-05-08 12:56:30 -0700
[13:03:55.491][I][app:156]: Project GE.PF50S10FPY01 version 1.0.0
[13:03:55.502][I][app:161]: ESP32 Chip: ESP32-C3 rev0.4, 1 core(s)
[13:03:55.503][C][logger:219]: Logger:
[13:03:55.503][C][logger:219]: Max Level: DEBUG
[13:03:55.503][C][logger:219]: Initial Level: DEBUG
[13:03:55.503][C][logger:226]: Log Baud Rate: 115200
[13:03:55.503][C][logger:226]: Hardware UART: USB_SERIAL_JTAG
[13:03:55.503][C][logger:235]: Task Log Buffer Size: 768 bytes
[13:03:55.531][C][uart.idf:254]: UART Bus 0:
[13:03:55.533][C][uart.idf:152]: TX Pin: GPIO21
[13:03:55.534][C][uart.idf:152]: RX Pin: GPIO20
[13:03:55.534][C][uart.idf:259]: RX Buffer Size: 512
[13:03:55.534][C][uart.idf:259]: RX Full Threshold: 120
[13:03:55.534][C][uart.idf:259]: RX Timeout: 2
[13:03:55.534][C][uart.idf:268]: Baud Rate: 230400 baud
[13:03:55.534][C][uart.idf:268]: Data Bits: 8
[13:03:55.534][C][uart.idf:268]: Parity: NONE
[13:03:55.534][C][uart.idf:268]: Stop bits: 1
[13:03:55.534][C][uart.idf:268]: Wake on data RX: ENABLED
[13:03:55.534][C][gea:316]: GEA Component:
[13:03:55.534][C][gea:317]: Protocol: GEA3
[13:03:55.534][C][gea:321]: Dest address: 0xC0
[13:03:55.534][C][gea:323]: Src address: 0xE4
[13:03:55.534][C][gea:327]: Registered entities: 1
[13:03:55.535][C][gea:329]: ERD 0x0001
[13:03:55.535][C][gea:344]: Discovered ERDs (142):
[13:03:55.535][C][gea:361]: 0x0001 Model Number [string] raw=0000000000000000000000000000000000000000000000000000000000000000 val=""
[13:03:55.535][C][gea:361]: 0x0002 Serial Number [string] raw=0000000000000000000000000000000000000000000000000000000000000000 val=""
[13:03:55.536][C][gea:361]: 0x0005 Clock Time [u8/u8/u8] raw=0D033A val=13/3/58
[13:03:55.536][C][gea:361]: 0x0007 Temperature Display Units [enum] raw=00 val=0
[13:03:55.544][C][gea:361]: 0x0008 Appliance Type [enum] raw=00 val=0
[13:03:55.545][C][gea:361]: 0x000A Sound Level [enum] raw=03 val=3
[13:03:55.545][C][gea:361]: 0x0032 Reset Board [u8] raw=00 val=0
[13:03:55.547][C][gea:355]: 0x0033 (unknown) raw=00000000000000000000000000000000000000000000
[13:03:55.553][C][gea:361]: 0x0035 Personality (32-bit) [u32] raw=00000011 val=17
[13:03:55.554][C][gea:361]: 0x0036 Service Mode State Request [enum] raw=00 val=0
[13:03:55.554][C][gea:361]: 0x0037 Service Mode State [enum] raw=00 val=0
[13:03:55.558][C][gea:361]: 0x0038 Supported Image Types [enum/enum/enum/enum/u8] raw=07 val=7////
[13:03:55.570][C][gea:361]: 0x0039 Boot Loader Version [u8/u8/u8/u8] raw=0100010A val=1/0/1/10
[13:03:55.571][C][gea:361]: 0x003A Application Version [u8/u8/u8/u8] raw=08010126 val=8/1/1/38
[13:03:55.571][C][gea:361]: 0x003B Parametric Version [u8/u8/u8/u8] raw=FFFFFFFF val=255/255/255/255
[13:03:55.571][C][gea:361]: 0x003C Auxiliary Version [u8/u8/u8/u8] raw=00000000 val=0/0/0/0
[13:03:55.575][C][gea:355]: 0x003D (unknown) raw=0000270F
[13:03:55.576][C][gea:355]: 0x003E (unknown) raw=270F
[13:03:55.576][C][gea:355]: 0x003F (unknown) raw=000F423F
[13:03:55.576][C][gea:355]: 0x0041 (unknown) raw=00
[13:03:55.581][C][gea:355]: 0x004E (unknown) raw=01
[13:03:55.582][C][gea:361]: 0x004F Enhanced Sabbath Mode Status [enum] raw=00 val=0
[13:03:55.582][C][gea:355]: 0x0052 (unknown) raw=00
[13:03:55.591][C][gea:355]: 0x0053 (unknown) raw=00
[13:03:55.595][C][gea:355]: 0x007F (unknown) raw=28814B333932F21D1724F966181C3C74A6F771F0
[13:03:55.596][C][gea:355]: 0x008F (unknown) raw=0300
[13:03:55.596][C][gea:355]: 0x0090 (unknown) raw=E0000100
[13:03:55.596][C][gea:355]: 0x0092 (unknown) raw=0000000100000357
[13:03:55.600][C][gea:355]: 0x0093 (unknown) raw=000000010039CE37
[13:03:55.601][C][gea:355]: 0x0094 (unknown) raw=0302000100001FC0
[13:03:55.601][C][gea:355]: 0x4000 (unknown) raw=0000
[13:03:55.601][C][gea:355]: 0x4001 (unknown) raw=00000000
[13:03:55.606][C][gea:355]: 0x4007 (unknown) raw=02
[13:03:55.607][C][gea:361]: 0x4008 Mixing valve home state request [enum] raw=00 val=0
[13:03:55.609][C][gea:361]: 0x4009 Mixing valve home state [enum] raw=00 val=0
[13:03:55.610][C][gea:361]: 0x400A Mixing valve step offset [i16] raw=0000 val=0
[13:03:55.631][C][gea:361]: 0x400B Mixing valve absolute position [i16] raw=0E10 val=3600
[13:03:55.631][C][gea:361]: 0x400C Mixing valve park position [i16] raw=07D0 val=2000
[13:03:55.631][C][gea:361]: 0x4020 Water Heater User Mode [enum] raw=02 val=2
[13:03:55.631][C][gea:355]: 0x4021 (unknown) raw=02
[13:03:55.632][C][gea:355]: 0x4022 (unknown) raw=00
[13:03:55.632][C][gea:361]: 0x4023 Vacation Fallback Mode [enum] raw=02 val=2
[13:03:55.632][C][gea:361]: 0x4024 User Setpoint Temperature [i16] raw=04E2 val=1250
[13:03:55.632][C][gea:361]: 0x4025 Vacation Setpoint Temperature [i16] raw=01F4 val=500
[13:03:55.636][C][gea:361]: 0x4026 Actual Setpoint Temperature [i16] raw=04E2 val=1250
[13:03:55.637][C][gea:361]: 0x4028 Timed Mode Hours Remaining [u16] raw=0000 val=0
[13:03:55.637][C][gea:361]: 0x402A Water Heater Mixing Valve Tank Capacity [enum] raw=00 val=0
[13:03:55.637][C][gea:361]: 0x402B Water Heater Mixing Valve Available Tank Capacities [bool/bool/bool/bool] raw=07 val=true///
[13:03:55.643][C][gea:355]: 0x402F (unknown) raw=04E2
[13:03:55.644][C][gea:361]: 0x4040 Available Modes [bool/bool/bool/bool/bool/u8] raw=1F val=true/////
[13:03:55.644][C][gea:361]: 0x4041 Tank size [u8] raw=32 val=50
[13:03:55.644][C][gea:361]: 0x4047 Min/max allowed setpoint [u16/u16] raw=03B605DC val=950/1500
[13:03:55.650][C][gea:361]: 0x4048 Min/max allowed vacation setpoint [u16/u16] raw=01F40578 val=500/1400
[13:03:55.651][C][gea:361]: 0x4049 Max allowed vacation hours [u16] raw=12A8 val=4776
[13:03:55.651][C][gea:361]: 0x404A Max allowed standard electric hours [u16] raw=0870 val=2160
[13:03:55.651][C][gea:355]: 0x404B (unknown) raw=00000000
[13:03:55.660][C][gea:361]: 0x404C Anode depleted mass [u32/u32] raw=000000000E5E01E5 val=0/241041893
[13:03:55.661][C][gea:361]: 0x404D Anode hours of service [u32] raw=000008B5 val=2229
[13:03:55.661][C][gea:355]: 0x404E (unknown) raw=01
[13:03:55.661][C][gea:361]: 0x4056 Diagnostic Failure counts [u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8] raw=0000000000000000000000000000000000000000000000000000000000000000 val=0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0
[13:03:55.666][C][gea:361]: 0x4058 Heating Issues [bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool/bool] raw=0000000000000000 val=false/false/false/false/false/false/false/false////////////////////////////////////////////
[13:03:55.667][C][gea:361]: 0x405F T1 Temperature [i16] raw=046C val=1132
[13:03:55.667][C][gea:361]: 0x4060 T2 Temperature [i16] raw=04C6 val=1222
[13:03:55.670][C][gea:361]: 0x4061 T3a Temperature [i16] raw=02B8 val=696
[13:03:55.676][C][gea:361]: 0x4062 T3b Temperature [i16] raw=02DA val=730
[13:03:55.677][C][gea:361]: 0x4063 T4 Temperature [i16] raw=030A val=778
[13:03:55.677][C][gea:361]: 0x4064 T5 Temperature [i16] raw=02C3 val=707
[13:03:55.682][C][gea:361]: 0x4065 Measured current [u16] raw=0000 val=0
[13:03:55.695][C][gea:361]: 0x4066 Measured voltage [u16] raw=007E val=126
[13:03:55.696][C][gea:355]: 0x4067 (unknown) raw=01C2
[13:03:55.696][C][gea:361]: 0x4068 Relay status [u8/bool/bool/bool/bool/bool/u8] raw=0000 val=0/false/////
[13:03:55.696][C][gea:361]: 0x4069 Flow state [enum] raw=00 val=0
[13:03:55.697][C][gea:361]: 0x406E T6 Temperature [u16] raw=0458 val=1112
[13:03:55.698][C][gea:355]: 0x406F (unknown) raw=006D
[13:03:55.698][C][gea:355]: 0x4072 (unknown) raw=00000003
[13:03:55.698][C][gea:355]: 0x4074 (unknown) raw=00018AC0
[13:03:55.707][C][gea:355]: 0x4080 (unknown) raw=00
[13:03:55.708][C][gea:361]: 0x4081 Anode alarm active [enum] raw=00 val=0
[13:03:55.708][C][gea:361]: 0x4082 Accessory low battery alarm active [enum] raw=00 val=0
[13:03:55.708][C][gea:361]: 0x4083 Accessory leak detected alarm active [enum] raw=00 val=0
[13:03:55.733][C][gea:355]: 0x4085 (unknown) raw=03FE
[13:03:55.734][C][gea:355]: 0x40B6 (unknown) raw=0000
[13:03:55.734][C][gea:355]: 0x40B7 (unknown) raw=0000
[13:03:55.734][C][gea:361]: 0x40B8 Groundwater Temperature [i16] raw=0250 val=592
[13:03:55.734][C][gea:361]: 0x40B9 T7 Temperature [i16] raw=0332 val=818
[13:03:55.735][C][gea:361]: 0x40BA MC CPU Temperature [i16] raw=033C val=828
[13:03:55.735][C][gea:361]: 0x40BB MC Circuit Board Temperature [i16] raw=03A9 val=937
[13:03:55.735][C][gea:361]: 0x40BC MC Power Connector Temperature [i16] raw=FA3A val=-1478
[13:03:55.735][C][gea:355]: 0x40BD (unknown) raw=005F
[13:03:55.736][C][gea:361]: 0x40C0 Number of resets [u16] raw=021E val=542
[13:03:55.736][C][gea:361]: 0x40C2 Percentage of anode remaining [u8] raw=5F val=95
[13:03:55.736][C][gea:361]: 0x40C3 Missed flow off state [enum] raw=00 val=0
[13:03:55.736][C][gea:361]: 0x40C6 Service requested [enum] raw=00 val=0
[13:03:55.736][C][gea:361]: 0x40CB Depletion state [enum] raw=00 val=0
[13:03:55.736][C][gea:355]: 0x40CD (unknown) raw=000000
[13:03:55.737][C][gea:361]: 0x40CE Minutes until recharged [u16] raw=0076 val=118
[13:03:55.749][C][gea:355]: 0x40CF (unknown) raw=01AD
[13:03:55.749][C][gea:361]: 0x40D0 Usable hot water in gallons [u8] raw=16 val=22
[13:03:55.749][C][gea:355]: 0x4100 (unknown) raw=7171717171717171717171717171717171717171717171717171717171717A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A4545454545454545454545454545454545454545454545454545454545454949494949494949494949494949494949494949494949494949494949494D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F0000000000000000000000000000007E7E7E7E7E7E7E7E7E7E7E7E7E7E7E00000000463B
[13:03:55.749][C][gea:361]: 0x4101 Missed flow off counter [u16] raw=0000 val=0
[13:03:55.755][C][gea:361]: 0x4102 Heating cycle satisfied [u8] raw=0C val=12
[13:03:55.756][C][gea:361]: 0x4103 Heating cycle started [u8] raw=0C val=12
[13:03:55.756][C][gea:355]: 0x4104 (unknown) raw=63
[13:03:55.756][C][gea:361]: 0x4105 Missed flow off fault counter [u16] raw=0000 val=0
[13:03:55.764][C][gea:355]: 0x4106 (unknown) raw=A4000000FFA670A0
[13:03:55.765][C][gea:361]: 0x4107 Water Heater Reset Information [raw] raw=12121212 val=raw
[13:03:55.765][C][gea:355]: 0x411C (unknown) raw=64
[13:03:55.765][C][gea:361]: 0x411D Water Heater Dad Mode Delay In Minutes [u8] raw=00 val=0
[13:03:55.770][C][gea:355]: 0x411E (unknown) raw=1E
[13:03:55.771][C][gea:355]: 0x411F (unknown) raw=00000384
[13:03:55.771][C][gea:355]: 0x4120 (unknown) raw=00000384
[13:03:55.771][C][gea:355]: 0x4121 (unknown) raw=00
[13:03:55.776][C][gea:355]: 0x4124 (unknown) raw=00
[13:03:55.777][C][gea:361]: 0x4125 Water Heater Current Cost Of Power [enum] raw=02 val=2
[13:03:55.777][C][gea:355]: 0x4126 (unknown) raw=000000000000
[13:03:55.777][C][gea:355]: 0x4127 (unknown) raw=00000000
[13:03:55.786][C][gea:361]: 0x4220 Water Heater Boost Mode State - Status/Actual [bool] raw=00 val=false
[13:03:55.787][C][gea:361]: 0x4221 Water Heater Boost Mode State - Requested/Desired [bool] raw=00 val=false
[13:03:55.797][C][gea:361]: 0x4222 Shutoff Water Valve Position/State [enum] raw=01 val=1
[13:03:55.798][C][gea:361]: 0x4223 Requested Water Valve Position [enum] raw=00 val=0
[13:03:55.798][C][gea:361]: 0xD001 DSM Override Status [u8] raw=00 val=0
[13:03:55.798][C][gea:361]: 0xD002 DSM Override Allowed [u8] raw=01 val=1
[13:03:55.798][C][gea:355]: 0xD009 (unknown) raw=00000000
[13:03:55.798][C][gea:361]: 0xD00E Cost of power cost/comfort slider request [u8] raw=80 val=128
[13:03:55.803][C][gea:361]: 0xD00F Cost of power cost/comfort slider status [u8] raw=80 val=128
[13:03:55.804][C][gea:355]: 0xD012 (unknown) raw=00000000
[13:03:55.804][C][gea:355]: 0xD013 (unknown) raw=00000000
[13:03:55.805][C][gea:361]: 0xD014 Appliance Energy Usage Update Period in Minutes [u8] raw=0F val=15
[13:03:55.813][C][gea:361]: 0xD015 Appliance Energy Usage Estimated or Measured Flag [enum] raw=01 val=1
[13:03:55.814][C][gea:361]: 0xD022 Electrical Pricing Structure Selection Status [enum/bool/bool/bool/bool/bool/u8/u8/u16] raw=000003000000 val=0/false/true/false/false/false///
[13:03:55.838][C][gea:361]: 0xD023 Electrical Pricing Structure Selection Request [enum/u16] raw=00000000 val=0/0
[13:03:55.838][C][gea:361]: 0xD024 Electrical Time of Use Pricing Schedule Request - Season 1 [u8/u8/u8/bool/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16] raw=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
[13:03:55.838][C][gea:361]: 0xD025 Electrical Pricing Time of Use Schedule Hash Status - Season 1 [u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8] raw=5279515BC1C4E9CB343FBC4724D8F934096DE7095A9058EA54FBE7EF9A2D9115 val=82/121/81/91/193/196/233/203/52/63/188/71/36/216/249/52/9/109/231/9/90/144/88/234/84/251/231/239/154/45/145/21
[13:03:55.838][C][gea:361]: 0xD026 Electrical Time of Use Pricing Schedule Request - Season 2 [u8/u8/u8/bool/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16] raw=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
[13:03:55.838][C][gea:361]: 0xD027 Electrical Pricing Time of Use Schedule Hash Status - Season 2 [u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8] raw=5279515BC1C4E9CB343FBC4724D8F934096DE7095A9058EA54FBE7EF9A2D9115 val=82/121/81/91/193/196/233/203/52/63/188/71/36/216/249/52/9/109/231/9/90/144/88/234/84/251/231/239/154/45/145/21
[13:03:55.838][C][gea:361]: 0xD028 Electrical Time of Use Pricing Schedule Request - Season 3 [u8/u8/u8/bool/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16] raw=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
[13:03:55.843][C][gea:361]: 0xD029 Electrical Pricing Time of Use Schedule Hash Status - Season 3 [u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8] raw=5279515BC1C4E9CB343FBC4724D8F934096DE7095A9058EA54FBE7EF9A2D9115 val=82/121/81/91/193/196/233/203/52/63/188/71/36/216/249/52/9/109/231/9/90/144/88/234/84/251/231/239/154/45/145/21
[13:03:55.844][C][gea:361]: 0xD02A Electrical Time of Use Pricing Schedule Request - Season 4 [u8/u8/u8/bool/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16/u8/u8/u8/u8/u8/u8/u16/u16/u16/u16/u16] raw=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
[13:03:55.844][C][gea:361]: 0xD02B Electrical Pricing Time of Use Schedule Hash Status - Season 4 [u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8/u8] raw=5279515BC1C4E9CB343FBC4724D8F934096DE7095A9058EA54FBE7EF9A2D9115 val=82/121/81/91/193/196/233/203/52/63/188/71/36/216/249/52/9/109/231/9/90/144/88/234/84/251/231/239/154/45/145/21
[13:03:55.844][C][gea:361]: 0xD02C Requested Appliance Energy Usage Update Period in Minutes [u8] raw=0F val=15
[13:03:55.849][C][gea:361]: 0xD030 Appliance Cumulative Energy [u32] raw=0001F13B val=127291
[13:03:55.850][C][gea:355]: 0xF200 (unknown) raw=B403
I am to blame for that. I got that value from the repo's sample configs and I copy pasted 0x6F without knowing what I am doing. Thank you and mulcmu for troubleshooting my config.