Cześć
Jako że minął sezon grzewczy, chciałbym przebudować system którego używałem do tej pory.
Ogrzewanie swojego warsztatu mam zrealizowane za pomocą nagrzewnicy wodnej i osobnej pompy obiegowej do niej. Na chwilę obecną I bieg dmuchawy nagrzewnicy był połączony równolegle z zasilaniem pompy co przy ogrzewaniu warsztatu sprawdzało się w 100 procentach. Poniżej kod z którego korzystam.
climate:
- platform: thermostat
name: "Warsztat"
sensor: Tmp
min_heating_off_time: 30s
min_heating_run_time: 30s
min_idle_time: 30s
heat_deadband: 0.2
heat_overrun: 0.2
heat_action:
- switch.turn_on: pk30a1
idle_action:
- switch.turn_off: pk30a1
default_preset: Grzanie
preset:
- name: Grzanie
default_target_temperature_low: 23 °C
- name: Noc
default_target_temperature_low: 16 °C
W ramach przebudowy chcę dołożyć kilka funkcji ale nie wiem jak to ogarnąć programowo:
- Dołożyłem 3 kolejne przekaźniki (razem są 4) gdzie jeden ma włączać pompę a 3 kolejne sterować prędkością wentylatora nagrzewnicy. Ma to na celu użycie samego wentylatora do chłodzenia warsztatu bez włączania pompy.
- Pomiędzy pompą a nagrzewnicą zamontowałem zawór przełączający (ręczny z możliwością założenia siłownika) który umożliwia mi użycie pompy albo do zasilania nagrzewnicy, albo do ogrzewania wody w basenie przez wymiennik płytowy.
Przechodzimy do sedna sprawy.
Szukałem ale nie znalazłem odpowiedzi jak w module Climate obsłużyć 3 biegi wentylatora i osobno chłodzenie czyli praca bez pompy.
Jednocześnie muszę mieć możliwość włączenia samej pompy w trybie grzania basenu (beż żadnej automatyki temperaturowej). Podejrzewam że przyda się tu jakiś przełącznik w stylu “Grzanie warsztatu / grzanie basenu”
Hydraulika i elektryka jest zrobiona ale brakuje mi sporo wiedzy programistycznej.
Czy ktoś z Was może mi w tym pomóc?
Edit:
Zmodyfikowałem kod do obsługi grzania i chłodzenia oraz prędkości wentylatora.
Problem pojawia się kiedy próbuję uzależnić prędkość w zależności od temperatury (błąd kompilacji).
Gdzie popełniam błąd?
climate:
- platform: thermostat
name: "Warsztat"
id: termostat
sensor: Tmp
visual:
min_temperature: 15
max_temperature: 40
min_cooling_off_time: 1s
min_cooling_run_time: 1s
min_heating_off_time: 1s
min_heating_run_time: 1s
min_idle_time: 1s
heat_deadband: 0.2
heat_overrun: 0.2
heat_action:
- switch.turn_on: pompawent
- fan.turn_on:
id: flowair
speed: 1
cool_action:
- fan.turn_on:
id: flowair
speed:
value: !lambda |-
if (id(termostat).current_temperature > id(termostat).target_temperature_high +6) {
return "3";
}
if (id(termostat).current_temperature > id(termostat).target_temperature_high +3) {
return "2";
} else {
return "1";
}
idle_action:
- fan.turn_off: flowair
- switch.turn_off: pompawent
default_preset: Warsztat
preset:
- name: Warsztat
default_target_temperature_low: 18.0
default_target_temperature_high: 25.0