color is a bit wack using bar chart, you could also try time series.
Time Series
I used the following query in microsoft sql, should be easy in mysql also
This approach seems a bit tedious but less tedious than pivots.
;with src as
(
select '2023-06-09' as datum, 'sungrow_daily' as device, 'taeglich_Daily_PV_Generation: 32.5' as junk, 'taeglich_Daily_PV_Generation' as reading, 32.5 value union
select '2023-06-09', 'sungrow_daily', 'taeglich_Direct_Energy_Consumption: 27.3', 'taeglich_Direct_Energy_Consumption', 27.3 union
select '2023-06-08', 'sungrow_daily', 'taeglich_Daily_PV_Generation: 32.5 ' , 'taeglich_Daily_PV_Generation', 32.5 union
select '2023-06-08', 'sungrow_daily', 'taeglich_Direct_Energy_Consumption: 26.8', 'taeglich_Direct_Energy_Consumption', 26.8 union
select '2023-06-07', 'sungrow_daily', 'taeglich_Daily_PV_Generation: 32.4 ' , 'taeglich_Daily_PV_Generation', 32.4 union
select '2023-06-07', 'sungrow_daily', 'taeglich_Direct_Energy_Consumption: 26.5', 'taeglich_Direct_Energy_Consumption', 26.5 union
select '2023-06-06', 'sungrow_daily', 'taeglich_Daily_PV_Generation: 31.2 ' , 'taeglich_Daily_PV_Generation', 31.2 union
select '2023-06-06', 'sungrow_daily', 'taeglich_Direct_Energy_Consumption: 26.7', 'taeglich_Direct_Energy_Consumption', 26.7
)
select gen.device, gen.datum, gen.value as generated, con.value as consumed, gen.value + con.value as total
from ( select * from src where reading = 'taeglich_Daily_PV_Generation') gen
join (select * from src where reading = 'taeglich_Direct_Energy_Consumption') con
on gen.datum = con.datum
and gen.device = con.device