# https://github.com/IAsDoubleYou/homeassistant-mysql_query
# This addon supports INSERT per service. BUT unfortunately no SELECT.
mysql_query:
mysql_host: core-mariadb
mysql_username: homeassistant
mysql_password: homeassistant
mysql_db: solarprognosen_vergleich
mysql_port: 3306 # Optional, Standard ist 3306
mysql_autocommit: true # Optional, Standard ist true
mysql_charset: utf8mb4 # Optional, Standard ist oft utf8mb4
mysql_collation: utf8mb4_unicode_ci # Optional
!!!! MY !!!!! EXAMPLE
automation:
- alias: "Solarwerte in DB eintragen (mit Differenzen, Prozentanzeige und Peakwerte)"
trigger:
#platform: time_pattern
#seconds: "/10"
platform: time
at: "23:59:00"
action:
- service: mysql_query.query
data:
query: >
INSERT INTO solarprognosen_vergleich
(datum, Solcast_Solar, Solcast_Solar_PEAK, solarprognose, solarprognose_peak, erreichte_tages_kWh, erreichter_tagesPEAK,
differenz1_kWh, differenz2_kWh, differenz1_percent, differenz2_percent,
differenz1_PEAK_kWh, differenz2_PEAK_kWh, differenz1_PEAK_percent, differenz2_PEAK_percent)
VALUES (
'{{ now().strftime("%d.%m.%Y") }}',
'{{ states("sensor.solcast_pv_forecast_prognose_heute") }}',
'{{ "{:.2f}".format(states("sensor.solcast_pv_forecast_prognose_spitzenleistung_heute")|float / 1000) }}',
'{{ states("sensor.solarprognose_werte_heute") }}',
'{{ states("sensor.solarprognose_werte_heutiger_peak") }}',
'{{ states("sensor.pv_erzeugung_heute") }}',
'{{ "{:.2f}".format(states("input_number.daily_pv_peak")|float / 1000) }}',
'{{ "{:+.2f}".format(states("sensor.solcast_pv_forecast_prognose_heute")|float - states("sensor.pv_erzeugung_heute")|float) }}',
'{{ "{:+.2f}".format(states("sensor.solarprognose_werte_heute")|float - states("sensor.pv_erzeugung_heute")|float) }}',
'{{ "{:+.2f}%".format((states("sensor.solcast_pv_forecast_prognose_heute")|float - states("sensor.pv_erzeugung_heute")|float) / states("sensor.solcast_pv_forecast_prognose_heute")|float * 100) }}',
'{{ "{:+.2f}%".format((states("sensor.solarprognose_werte_heute")|float - states("sensor.pv_erzeugung_heute")|float) / states("sensor.solarprognose_werte_heute")|float * 100) }}',
'{{ "{:+.2f}".format((states("sensor.solcast_pv_forecast_prognose_spitzenleistung_heute")|float / 1000) - (states("input_number.daily_pv_peak")|float / 1000)) }}',
'{{ "{:+.2f}".format((states("sensor.solarprognose_werte_heutiger_peak")|float) - (states("input_number.daily_pv_peak")|float / 1000)) }}',
'{{ "{:+.2f}%".format(((states("sensor.solcast_pv_forecast_prognose_spitzenleistung_heute")|float / 1000) - (states("input_number.daily_pv_peak")|float / 1000)) / (states("sensor.solcast_pv_forecast_prognose_spitzenleistung_heute")|float / 1000) * 100) }}',
'{{ "{:+.2f}%".format(((states("sensor.solarprognose_werte_heutiger_peak")|float) - (states("input_number.daily_pv_peak")|float / 1000)) / (states("sensor.solarprognose_werte_heutiger_peak")|float) * 100) }}'
);
response_variable: query_response
and then as the 2nd one:
#https://github.com/IAsDoubleYou/ha_mysql
#This addon supports SELECT per sensor. BUT unfortunately no INSERT.
ha_mysql:
host: core-mariadb
port: 3306
username: homeassistant
password: homeassistant
database: solarprognosen_vergleich
!!!! MY !!!!! EXAMPLE
script:
sende_solarprognose_email:
sequence:
- service: mysql_query.query
data:
query: >
SELECT JSON_ARRAYAGG(
JSON_OBJECT(
'datum', datum,
'Solcast_Solar', Solcast_Solar,
'solarprognose', solarprognose,
'erreichte_tages_kWh', erreichte_tages_kWh,
'differenz1_kWh', differenz1_kWh,
'differenz1_percent', differenz1_percent,
'differenz2_kWh', differenz2_kWh,
'differenz2_percent', differenz2_percent,
'erreichter_tagesPEAK', erreichter_tagesPEAK,
'Solcast_Solar_PEAK', Solcast_Solar_PEAK,
'solarprognose_peak', solarprognose_peak,
'differenz1_PEAK_kWh', differenz1_PEAK_kWh,
'differenz1_PEAK_percent', differenz1_PEAK_percent,
'differenz2_PEAK_kWh', differenz2_PEAK_kWh,
'differenz2_PEAK_percent', differenz2_PEAK_percent
)
) AS data
FROM solarprognosen_vergleich
WHERE STR_TO_DATE(datum, '%d.%m.%Y')
BETWEEN DATE_FORMAT(NOW(), '%Y-%m-01') AND NOW()
ORDER BY STR_TO_DATE(datum, '%d.%m.%Y') ASC;
response_variable: query_result
- service: notify.email_prognosedaten
data:
title: >
Solarprognose Bericht für {{ now().strftime('%B %Y') }} – Stand {{ now().strftime('%d.%m.%Y') }}
message: "Solarprognose Tagesbericht"
data:
html: >