Seit gestern habe ich eine zweite PV Anlage hinzugefügt. Heute dann habe ich die configuration.yaml so angepasst, dass der Gesamtstromverbrauch wieder richtig berechnet wird.
Wenn es an der Änderung läge, verstehe ich nicht, weshalb auch alle anderen Daten von Einzelsteckdosen und Wasserverbrauch nicht mehr da sind.
Der Teil des Yaml
sensor:
- platform: template
sensors:
# Template sensor for current power comsumption
power_current:
friendly_name: "Power Current"
unit_of_measurement: 'W'
value_template: >-
{{ states('sensor.shellypro3em_0cb815fd745c_phase_a_active_power')|float + states('sensor.shellypro3em_0cb815fd745c_phase_b_active_power')|float + states('sensor.shellypro3em_0cb815fd745c_phase_c_active_power')|float }}
availability_template: "{{
[ states('sensor.shellypro3em_0cb815fd745c_phase_a_active_power'),
states('sensor.shellypro3em_0cb815fd745c_phase_b_active_power'),
states('sensor.shellypro3em_0cb815fd745c_phase_c_active_power')
] | map('is_number') | min
}}"
# Template sensor for values of power import (active_power > 0)
power_import:
friendly_name: "Power Import"
unit_of_measurement: 'W'
value_template: >-
{% if (states('sensor.shellypro3em_0cb815fd745c_phase_a_active_power')|float + states('sensor.shellypro3em_0cb815fd745c_phase_b_active_power')|float + states('sensor.shellypro3em_0cb815fd745c_phase_c_active_power')|float) > 0 %}
{{ states('sensor.shellypro3em_0cb815fd745c_phase_a_active_power')|float + states('sensor.shellypro3em_0cb815fd745c_phase_b_active_power')|float + states('sensor.shellypro3em_0cb815fd745c_phase_c_active_power')|float }}
{% else %}
{{ 0 }}
{% endif %}
availability_template: "{{
[ states('sensor.shellypro3em_0cb815fd745c_phase_a_active_power'),
states('sensor.shellypro3em_0cb815fd745c_phase_b_active_power'),
states('sensor.shellypro3em_0cb815fd745c_phase_c_active_power')
] | map('is_number') | min
}}"
# Template sensor for values of power export (active_power < 0)
power_export:
friendly_name: "Power Export"
unit_of_measurement: 'W'
value_template: >-
{% if (states('sensor.shellypro3em_0cb815fd745c_phase_a_active_power')|float + states('sensor.shellypro3em_0cb815fd745c_phase_b_active_power')|float + states('sensor.shellypro3em_0cb815fd745c_phase_c_active_power')|float) < 0 %}
{{ (states('sensor.shellypro3em_0cb815fd745c_phase_a_active_power')|float + states('sensor.shellypro3em_0cb815fd745c_phase_b_active_power')|float + states('sensor.shellypro3em_0cb815fd745c_phase_c_active_power')|float) * -1 }}
{% else %}
{{ 0 }}
{% endif %}
availability_template: "{{
[ states('sensor.shellypro3em_0cb815fd745c_phase_a_active_power'),
states('sensor.shellypro3em_0cb815fd745c_phase_b_active_power'),
states('sensor.shellypro3em_0cb815fd745c_phase_c_active_power')
] | map('is_number') | min
}}"
# Template sensor for values of power consumption
power_consumption:
friendly_name: "Power Consumption"
unit_of_measurement: 'W'
value_template: >-
{% if (states('sensor.power_export')|float(0)) > 0 and (states('sensor.power_solargen')|float(0) - states('sensor.power_export')|float(0)) < 0 %}
{{ 0 }}
{% elif (states('sensor.power_export')|float(0)) > 0 and (states('sensor.power_solargen')|float(0) - states('sensor.power_export')|float(0)) > 0 %}
{{ (states('sensor.power_solargen')|float(0)) - states('sensor.power_export')|float(0) }}
{% else %}
{{ states('sensor.power_import')|float(0) + states('sensor.power_solargen')|float(0) }}
{% endif %}
# Template sensor for values of energy Solar generation (solar_power > 0)
power_solargen:
friendly_name: "Power Solar Generation"
unit_of_measurement: 'W'
value_template: >-
{% set pv_schuppen = states('sensor.pv_schuppen_total_power')|float(0) %}
{% set pv_donato = states('sensor.pv_donato_total_power')|float(0) %}
{% set total_power = pv_schuppen + pv_donato %}
{% if total_power > 0 %}
{{ total_power }}
{% else %}
{{ 0 }}
{% endif %}
# Sensor for Riemann sum of energy import (W -> Wh)
- platform: integration
source: sensor.power_import
name: energy_import_sum
unit_prefix: k
round: 2
method: left
# Sensor for Riemann sum of energy export (W -> Wh)
- platform: integration
source: sensor.power_export
name: energy_export_sum
unit_prefix: k
round: 2
method: left
# Sensor for Riemann sum of energy consumption (W -> Wh)
- platform: integration
source: sensor.power_consumption
name: energy_consumption_sum
unit_prefix: k
round: 2
method: left
utility_meter:
energy_import_daily:
source: sensor.energy_import_sum
name: Energy Import Daily
cycle: daily
energy_import_monthly:
source: sensor.energy_import_sum
name: Energy Import Monthly
cycle: monthly
energy_export_daily:
source: sensor.energy_export_sum
name: Energy Export Daily
cycle: daily
energy_export_monthly:
source: sensor.energy_export_sum
name: Energy Export Monthly
cycle: monthly
energy_consumption_daily:
source: sensor.energy_consumption_sum
name: Energy Consumption Daily
cycle: daily
energy_consumption_monthly:
source: sensor.energy_consumption_sum
name: Energy Consumption Monthly
cycle: monthly
Ich habe noch ein bisschen weiter recherchiert, es scheint als hätten alle Entitäten alle was vor heute früh kurz nach 4 nachts passierte “vergessen” es hat scheinbar also nichts mit dem Energie Dashboard zutun. So tappe ich noch mehr im Dunkeln.
das scheint auf eine korrumpierte Datenbank hinzuweisen.
Dummerweise haben beide Backups “versagt” sowohl das Plugin in Unraid, das regelmäßig die VMs sichern soll hat ohne mein wissen nicht mehr funktioniert, als auch das Backup in HASS selbst. Hier habe ich nur Backups von Core und nicht complete baclups… Mir war nicht bewusst, dass man die manuell machen muss.
Das sieht so aus als ob das zum 2. mal in ~6monaten passiert ist?
Wodrauf hast du HA am laufen?
Vielleicht solltest du dir mal ne neue Festplatte zulegen, da so etwas anscheinend bei dir öfters passiert.
Oder ziehst du dein HA einfach so vom Strom? Das ist auch nicht gut für die Datenbank.
HASS läuft als VM auf Unraid als Hypervisor. Die Festplatte ist eine .qcow2 Virtual Disk, diese liegt auf dem Unraui Array. Die VM hat 2 Kerne fest zugewiesen, 8 gb RAM . Ich nehme nicht an, dass es an der Hardware liegt. In der Regel gibt es keine sudden power outs, es gab aber neulich ein Problem am Server, da musste ich ihn vom Strom nehmen. Das korreliert aber nicht mit dem Datum und der Uhrzeit, da schliefen alle.
Gibt es eine Möglichkeit die Datenbank zu fixen, oder zumindest die Energie-Dashboard Daten wieder zu bekommen?
Im Core Backup ist die Datenbank mit drin.
habe eben mal in das Core Backup von update auf 2024.6.4 geguckt:
Das würde ich mal versuchen, davor zur Sicherheit vielleicht ein Fullbackup machen und runterladen Falls deine Backups nicht extern von HA liegen (Netzwerkspeicher).
Wie man eine korrupte Datenbank fixt weiß ich nicht, damit kenne ich mich nicht aus.
Oder du probierst es selber:
Recorder stoppen service: recorder.disable Datenbank aus dem Backup rein Kopieren Recorder starten service: recorder.enable, würde aber das Backup empfehlen.
Danke für den Tipp es noch mal zu probieren, ich habe tatsächlich in einem noch älteren Backup (von vor zwei Wochen) die Daten gefunden! Ich war skeptisch, da die Datenbankdatei viel größer war als das Backup aber das wird ja komprimiert…
Weißt du, oder natürlich auch sonst jemand, ob und wie man die Daten zweier Datenbanken zusammenführen kann? Dann wäre das Loch kleiner.
Das hängt davon ab, wie Deine Datenbank und SQL Skill sind!
Die Datei home-assistant_v2.db sind von SQlite und können, wenn sie auf deiner Platte, deines PCs liegen, mit SQL Tools, z. B. DBeaver, gelesen werden.
Ohne es getestet zu haben, kann das so aussehen:
aktuelle Datenbank herunterladen, z.B. als aktuell_home-assistant_v2.db
HA stoppen
aus dem Backup die Datei extrahieren, z.B. old_home-assistant_v2.db`
SQL Tool, z.B. DBeaver installieren und aufrufen
eine neue Verbindung zum ersten File erstellen
eine zweite Verbindung zum zweiten File erstellen
mittels SQL die Daten aus old_... extrahieren und in die aktuell_... schreiben
So in groben Zügen, es gibt auch Tools zum Replizieren von einer in eine andere Datenbank, mir sind aus dieser Kategorie aber nur kostenpflichtige Tools bekannt.
Oder man macht den Zwischenschritt über mariadb
Schau mal, ob es hier was für dich gibt!
Mein Datenbank Skills sind bisher bis auf getoolte Postgres und mariaDB Docker auf dem Server nicht wirklich vorhanden.
Ich habe es geschafft ein Backup zum Laufen zu bekommen (klappte beim ersten mal nicht und setzte HSS komplett zurück) das “nur” drei Tage alt ist. So werde ich aus Zeitmangel auf die zwischenliegenden Daten verzichten.
Dennoch interessiert mich, kann ich HASS eine andere, verlässlichere DB zugrunde legen? also für die “normalen” Daten, wie jene im Energie-Dashboard. InfluxDB und Grafana nutze ich schon länger für einzelne Steckdosen, aber das läuft ja meines Wissens eher parallel. Zudem habe ich bisher nicht die Grafana skills, sowas wie das Energie Dashboard nachzubauen mit kombinierten Graphen und so…
Einige sind vor geraumer Zeit von SQlite zu mariaDB gewechselt und nachdem in HA einiges an der SQlite Implementation verbessert wurde, sind auch viele wieder zurück zu SQlite gewechselt.
Ok, eine andere, meine, HA Installation ist nicht der Maßstab, da ich es auch erst seit 6 - 7 Monate am Laufen habe, als VM unter Proxmox, ich hatte, schnell auf Holz klopfen, noch keine Probleme mit der SQlite Datenbank.
Ja, die läuft parallel zur SQlite, ich schiebe aber auch meine Daten da hin, sicher ist sicher
Wenn man dann einen Sensor für die Energiedaten anlegt, der sich die Daten aus der influxdb holt, dann kann man auch das Energiedashboard weiter nutzen, so die Theorie
ich möchte irgendwann einmal die schönen Grafana Canvas Dashboards nutzen, bin aber ein Grafiklegastheniker
das sieht ziemlich nice aus. Ich nutze auch Teslamate und derern Grafana Dashboards können auch ne Menge… Ich habe leider einfach zu wenig Zeit (und zu wenig Kkill bisher ) zB stimmen die Daten nicht 100% überein pro tag… naja anderes Thema.
ok dann bleibe ich bei SQL lite und versuche noch regelmäßiger Backups zu machen.
Ich kenne mich mit UNRAID nicht aus, aber Du solltest mal schauen, ob Du etwas findest, um die Discs zu überprüfen, sowohl die physischen, als auch die virtuellen.
Nein, keine USV vorhanden. Die Logs am Server zeigen keine Besonderheiten.
Kann es an der Größe der Datenbank liegen? Ich habe mich noch nicht beschäftigt mit “bereinigen”. Aber zumindest die Energiedashboard-relevanten Daten will ich ja auch behalten
Kann ich nicht sagen, denn in den Posts habe ich nichts gefunden, wie groß Dein SQLite DB File ist!
Du kannst ja mal schauen, was da für ulimits eingerichtet sind.
Kannst Du da noch genauer hineinschauen, ob es defekte Sektoren/Blöcke gibt?