Pool Solarsteuerung
Verfasst: 25. Jul 2020 18:26
Hallo,
ich bin ein aufmerksamer Leser des Forums und habe auch schon viel nützliches für mein OpenHab gefunden. Mein neues Projekt gilt der Poolsteurung. Ich habe dazu eine Steuerung über einen ESP8266 (ESP Easy Mega) gebaut. Dort habe ich ein Relay. Ein Anschluss für die Poolfilter Pumpe und einen für die Solarpumpe sowie Temperaturfühler (DS18b20) verbunden. Einen Fühler für den Pool und einen für die Solar Anlage.
Ich möchte gerne das die Solarpumpe anläuft, wenn die Pooltemperatur weniger als 7C° der Solarfühler misst. Zwei Erweiterungen gibt es noch der Solarfühler muss mindestens 31C° haben und der Pool darf nicht mehr als 29C° haben. Diese Mindes und Maximalwerte setze ich über Set Points (Infos hier im Forum gefunden)
Dazu habe ich im OpenHAB Switche und Numbers Items angelegt.
Switche:
PowerPool : Relay für die Poolpumpe
PowerSolar: Relay für die Solarpumpe
Thermostate:
Number: „Thermostat_Pool_Thermostat_Pool“ das Thermostat für das Poolwasser
Number: „Thermostat_Solar_“ das Thermostat für den Solarkollektor
Ich bin soweit, dass die Steuerung mit der Differenz klappt.
if (TempPool < (TempSolar – Differenz))
Power_Solar.sendCommand(ON)
Wenn ich das aber wie unten beschreiben erweitere komme ich nicht weiter. Dann schaltet die Solarpumpe sich bei jedem Wechsel der Temperatur ein und aus. Woran kann das liegen? Ich komme einfach nicht weiter.
//------------------------------------------------------------------------
// Steuert die Solarpumpe.
//------------------------------------------------------------------------
rule "Solarheizung einschalten"
when
Item Thermostat_Solar_ changed or
Item Thermostat_Pool_Thermostat_Pool changed
then
if (Power_Solar.state == OFF) {
var Number TempPool = Thermostat_Pool_Termostat_Pool.state as Number
var Number TempSolar = Thermostat_Solar_.state as Number
var Number Differenz = Wassertemperatur_Soll_Differenz.state as Number
var Number PoolMax = Wassertemperatur_Max.state as Number
var Number SolarMin = Solar_Min.state as Number
if ((TempPool < (TempSolar - Differenz)) && (TempPool > PoolMax))
Power_Solar.sendCommand(ON)
}
end
rule "Solarheizung ausschalten"
when
Item Thermostat_Solar_ changed or
Item Thermostat_Pool_Thermostat_Pool changed
then
if (Power_Solar.state == ON) {
var Number TempPool = Thermostat_Pool_Termostat_Pool.state as Number
var Number TempSolar = Thermostat_Solar_.state as Number
var Number Differenz = Wassertemperatur_Soll_Differenz.state as Number
var Number PoolMax = Wassertemperatur_Max.state as Number
var Number SolarMin = Solar_Min.state as Number
if ((TempPool > (TempSolar - Differenz)) && (SolarMin > TempSolar))
Power_Solar.sendCommand(OFF)
}
end
LG
Marcus
ich bin ein aufmerksamer Leser des Forums und habe auch schon viel nützliches für mein OpenHab gefunden. Mein neues Projekt gilt der Poolsteurung. Ich habe dazu eine Steuerung über einen ESP8266 (ESP Easy Mega) gebaut. Dort habe ich ein Relay. Ein Anschluss für die Poolfilter Pumpe und einen für die Solarpumpe sowie Temperaturfühler (DS18b20) verbunden. Einen Fühler für den Pool und einen für die Solar Anlage.
Ich möchte gerne das die Solarpumpe anläuft, wenn die Pooltemperatur weniger als 7C° der Solarfühler misst. Zwei Erweiterungen gibt es noch der Solarfühler muss mindestens 31C° haben und der Pool darf nicht mehr als 29C° haben. Diese Mindes und Maximalwerte setze ich über Set Points (Infos hier im Forum gefunden)
Dazu habe ich im OpenHAB Switche und Numbers Items angelegt.
Switche:
PowerPool : Relay für die Poolpumpe
PowerSolar: Relay für die Solarpumpe
Thermostate:
Number: „Thermostat_Pool_Thermostat_Pool“ das Thermostat für das Poolwasser
Number: „Thermostat_Solar_“ das Thermostat für den Solarkollektor
Ich bin soweit, dass die Steuerung mit der Differenz klappt.
if (TempPool < (TempSolar – Differenz))
Power_Solar.sendCommand(ON)
Wenn ich das aber wie unten beschreiben erweitere komme ich nicht weiter. Dann schaltet die Solarpumpe sich bei jedem Wechsel der Temperatur ein und aus. Woran kann das liegen? Ich komme einfach nicht weiter.
//------------------------------------------------------------------------
// Steuert die Solarpumpe.
//------------------------------------------------------------------------
rule "Solarheizung einschalten"
when
Item Thermostat_Solar_ changed or
Item Thermostat_Pool_Thermostat_Pool changed
then
if (Power_Solar.state == OFF) {
var Number TempPool = Thermostat_Pool_Termostat_Pool.state as Number
var Number TempSolar = Thermostat_Solar_.state as Number
var Number Differenz = Wassertemperatur_Soll_Differenz.state as Number
var Number PoolMax = Wassertemperatur_Max.state as Number
var Number SolarMin = Solar_Min.state as Number
if ((TempPool < (TempSolar - Differenz)) && (TempPool > PoolMax))
Power_Solar.sendCommand(ON)
}
end
rule "Solarheizung ausschalten"
when
Item Thermostat_Solar_ changed or
Item Thermostat_Pool_Thermostat_Pool changed
then
if (Power_Solar.state == ON) {
var Number TempPool = Thermostat_Pool_Termostat_Pool.state as Number
var Number TempSolar = Thermostat_Solar_.state as Number
var Number Differenz = Wassertemperatur_Soll_Differenz.state as Number
var Number PoolMax = Wassertemperatur_Max.state as Number
var Number SolarMin = Solar_Min.state as Number
if ((TempPool > (TempSolar - Differenz)) && (SolarMin > TempSolar))
Power_Solar.sendCommand(OFF)
}
end
LG
Marcus