Wetterstation erkennen, Einheiten nicht mehr ueberschreiben
Die Station haengt laengst am Websocket und wsMQTTbridge.py legt ihre Felder unter weatherStation/# ab - nur wusste die Automatikdatenbank nichts davon. Das neue Modul macht daraus ein Geraet mit elf Messwerten: Aussentemperatur, Taupunkt, Feuchte, Druck, Wind, Boe und die beiden Richtungen. Wie das Gartenwasser- und das SolarManager-Modul sucht es nichts, sondern schreibt ein festes Geraet hin; die Station meldet sich nicht per Home-Assistant-Discovery. Gebraucht wird sie fuer den Hitzeschutz: dafuer ist die Aussentemperatur die bessere Bedingung als die Raumtemperatur - ist es drinnen schon warm, ist es zum Verschatten zu spaet. Und Wind gab es hier bisher ueberhaupt nicht; ohne ihn laesst sich fuer Markise und Sonnensegel kein Sturmschutz bauen. Nicht dabei sind zwei Topics. IP ist keine Messung. Und QNH steht bei uns gut hundert Hektopascal neben qff (1133 gegen 1023) und ist offenbar nicht auf die Stationshoehe eingestellt - zwei Druecke nebeneinander, von denen einer falsch ist, waeren im Editor eine Falle. Dabei aufgefallen: der UPSERT schrieb unit = VALUES(unit) bedingungslos. Ein Modul, das keine Einheit mitliefert, meint aber "weiss ich nicht" und nicht "loesch die vorhandene" - am 10.09. hat ein Suchlauf den drei Sonnensensoren ihr "Lux" genommen, weil das Tahoma-Modul keine Einheiten kennt. Jetzt COALESCE, wie bei current_value schon laenger. config.ini liegt nicht im Git; der Abschnitt [wetterstation] muss dort von Hand stehen, sonst bleibt das Modul aus. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -21,6 +21,7 @@ from modules.mqtt_module import MQTTModule
|
||||
from modules.shelly_module import ShellyModule
|
||||
from modules.gartenwasser_module import GartenwasserModule
|
||||
from modules.solarmanager_module import SolarManagerModule
|
||||
from modules.wetterstation_module import WetterstationModule
|
||||
from modules.logic_module import LogicModule #nicht Vergessen neue Module auch unten in die Liste "modules" einzufügen!!
|
||||
|
||||
# Logging
|
||||
@@ -165,6 +166,13 @@ class Config:
|
||||
if not self.config.has_section('solarmanager'):
|
||||
return False
|
||||
return self._get_bool('solarmanager', 'enable', False)
|
||||
|
||||
# WETTERSTATION
|
||||
@property
|
||||
def wetterstation_enable(self) -> bool:
|
||||
if not self.config.has_section('wetterstation'):
|
||||
return False
|
||||
return self._get_bool('wetterstation', 'enable', False)
|
||||
|
||||
|
||||
# MQTT
|
||||
@@ -431,7 +439,14 @@ class DatabaseManager:
|
||||
-- Wert zufaellig einmal aenderte.
|
||||
current_value = COALESCE(VALUES(current_value), current_value),
|
||||
possible_values = VALUES(possible_values),
|
||||
unit = VALUES(unit),
|
||||
-- Dieselbe Ueberlegung wie bei current_value: ein Modul,
|
||||
-- das keine Einheit mitliefert, meint "weiss ich nicht"
|
||||
-- und nicht "loesch die vorhandene". Ohne COALESCE hat
|
||||
-- ein Suchlauf am 10.09.2026 den Sonnensensoren ihr
|
||||
-- "Lux" genommen, weil das Tahoma-Modul keine Einheiten
|
||||
-- kennt - im Automatik-Editor stand danach "877" ohne
|
||||
-- Angabe, wovon.
|
||||
unit = COALESCE(VALUES(unit), unit),
|
||||
url = VALUES(url),
|
||||
value_path = VALUES(value_path)
|
||||
"""
|
||||
@@ -504,7 +519,14 @@ class DatabaseManager:
|
||||
-- Siehe insert_actor: NULL heisst "kein Startwert",
|
||||
-- nicht "Messwert loeschen".
|
||||
current_value = COALESCE(VALUES(current_value), current_value),
|
||||
unit = VALUES(unit),
|
||||
-- Dieselbe Ueberlegung wie bei current_value: ein Modul,
|
||||
-- das keine Einheit mitliefert, meint "weiss ich nicht"
|
||||
-- und nicht "loesch die vorhandene". Ohne COALESCE hat
|
||||
-- ein Suchlauf am 10.09.2026 den Sonnensensoren ihr
|
||||
-- "Lux" genommen, weil das Tahoma-Modul keine Einheiten
|
||||
-- kennt - im Automatik-Editor stand danach "877" ohne
|
||||
-- Angabe, wovon.
|
||||
unit = COALESCE(VALUES(unit), unit),
|
||||
url = VALUES(url),
|
||||
value_path = VALUES(value_path),
|
||||
possible_values = VALUES(possible_values)
|
||||
@@ -589,7 +611,8 @@ def main():
|
||||
ShellyModule(config),
|
||||
LogicModule(config),
|
||||
GartenwasserModule(config),
|
||||
SolarManagerModule(config)
|
||||
SolarManagerModule(config),
|
||||
WetterstationModule(config)
|
||||
]
|
||||
|
||||
# Jedes Modul durchlaufen
|
||||
|
||||
Reference in New Issue
Block a user