Home Assistant Solar Info Panel
Purpose
The purpose of the Home Assistant (HA) Solar Info Panel (SIP) is to display in regular intervals, the house power data on TFT or OLED displays.
The CYD has 3 pages, which can be selected via touch:
Concept
There are 3 components interacting with each other being Home Assistant (HA), Node-RED (NR) and B4R.
CSV string with HA entities data:
Hardware
Note: There are more flows to built the power data.
Purpose
The purpose of the Home Assistant (HA) Solar Info Panel (SIP) is to display in regular intervals, the house power data on TFT or OLED displays.
- Solar - production (W) [PowerFromGrid]
- House - power usage (W) [PowerToHouse]
- Grid - supply or load [PowerTo/PowerFromGrid]
- Battery - charging level (%) [BatteryChargeState] & state charge or discharge (W) [PowerToBattery/PowerFromBattery]
- Date & Time shown on the top of each page
(unit)[Home Assistant Entity]
The CYD has 3 pages, which can be selected via touch:
- Main - Solar Info Panel with the 4 textboxes Solar Production [SOLAR], House Usage [HOUSE], Grid Import & Export [GRID], Battery Charging State & Usage [BATTERY].
- Battery - Charging state & usage (positive battery is charged, negative battery is discharged).
- Settings - Set display brightness (0-100) or level (0-255) of the CYD backlight RGB LED white.
- DIY MORE ESP32 0.96" OLED, w128xh64 - Purpose: display the battery charge state direct at the battery.
This display has 4 pages Solar > House > Grid > Battery selected via red push-button. The top area w128xh16 has yellow text (default) and the area below blue text. - M5 StickC-Plus2 ESP32-PICO-V3-02 1.14” TFT, w135xh240 - Purpose: display the battery charge state direct at the battery.
This display has 4 pages Dashboard > Battery > Solar > Information selected via big M5 push-button.
At present this is my favorite display - robust, easy to use.
- can handle many clients and the data is immediate published.
- is custom made and developed for personal use only.
- is running since month without issues.
Concept
There are 3 components interacting with each other being Home Assistant (HA), Node-RED (NR) and B4R.
- B4R to connect to the WiFi network and sent HTTP GET request to the HA NR RESTful server.
- NR RESTful server to get the relevant HA entities data, create HTTP response content CSV string and sent the HTTP response to B4R.
- B4R to parse the HTTP response CSV string and updates the display. The display is controlled using the B4R library URL rLovyanGFXEx.
CSV string with HA entities data:
B4X:
powerfromsolar, powerfromgrid, powertogrid, powertohouse, powertobattery, powerfrombattery, batterychargestate, powerdatestamp, powertimestamp
Data Example:
774,0,506,268,0,0,100,20250422,1207
Hardware
- Sunton ESP32 2.8" TFT, w320xh240, touch, driver ILI9341.
- DIY MORE ESP32 0.96" OLED, w128xh64, no touch, driver SSD1306.
- M5 StickC-Plus2 ESP32-PICO-V3-02 1.14” TFT, w135xh240
- B4R 4.00 (64 bit) for the ESP32 with external library rLovyanGFXEx 1.0 (requires the ESP32 library 3.1.3 and LovyanGFX 1.2.0).
- Home Assistant 2025.x with Node-RED Add-on 19.x.
- Built proper cases for the devices (3-D printing).
- HTTP response byte array instead CSV string.
- HTTP RESTful server listening to GET requests http://ip-ha:1880/endpoint/solarinfo?data=all.
- Receiving the request, the current state of the HA entities are obtained and the date/time stamp is set.
- HTTP response is a CSV string: 774,0,506,268,0,0,100,20250422,1207
Note: There are more flows to built the power data.
Attachments
Last edited: