Econet300 i Kostrzewa

Cześć.
Mam piec na pellet Kostrzewa ze sterownikiem ecoMAX860P3-S LITE
Podłączyłem moduł internetowy i z poziomu strony 4pellet.pl mogę sterować piecem.
Jeśli chodzi o HA to znalazłem integrację econet300 którą zainstalowałem i wykryło piec.
Problem jest tylko taki że jedyne czym mogę sterować to temperaturą zadaną CWU, reszta to tylko informacje.

Czy ktoś z Was walczył już z tym tematem i udało się sterować z poziomu HA?
Chciałbym docelowo zrobić np automatyzacje które uruchamiają piec (tryb zimowy) tylko w momencie spadku temperatury na czujniku do określonej wartości.

W issues w tej integracji masz podane rozwiązanie:

https://github.com/jontofront/ecoNET-300-Home-Assistant-Integration/issues/58

Możesz poczekać na poprawkę do integracji lub dodać linki jako shell_command w configuration.yaml

shell_command:
  piec_on: "curl -H http://x.x.x.x/econet/newParam?newParamName=BOILER_CONTROL&newParamValue=1"
  piec_off: "curl -H http://x.x.x.x/econet/newParam?newParamName=BOILER_CONTROL&newParamValue=0"

Mam zrobione sterowanie pieca przez komendy restful czyli wszystko idzie przez twoją sieć domowa. Robiłem to jeszcze przed powstaniem integracji więc jest to tzw. “rzeźba” ale działa bez problemów już od paru lat. Jeśli nie boisz się yamla i template to mogę ci podesłać instrukcję

Jeśli tylko możesz to bardzo chętnie zapoznam się z instrukcją.

Skorzystam już z instrukcji którą kiedyś pisałem dla pewnej osoby :wink:

  1. Ustaw stałe IP dla swojego pieca + restart routera
  2. Sprawdź czy działa ci strona: http://192.168.0.100/econet/regParams (wpisz swoje IP)
    Nazwa użytkownika: admin
    Hasło: admin
  3. Jeśli wchodzi to robisz krok 4
  4. W sensor.yaml dodajesz wpisy (zastępujesz to swoim IP i zrób jeden na próbę):
###tryb pieca###
  - platform: rest
    name: mode
    resource: http://192.168.0.100/econet/regParams
    authentication: basic
    username: admin
    password: admin
    value_template: '{{ value_json["curr"]["mode"] }}'
    scan_interval: 30
    headers:
      User-Agent: Mozilla/5.0
      Content-Type: application/json

  - platform: template
    sensors:
      tryb_pracy_pieca:
        friendly_name: "Tryb"
        value_template: >-
         {% if is_state('sensor.mode', '0') %}
         Wyłączony
         {% elif is_state('sensor.mode','2') %}
         Rozpalanie
         {% elif is_state('sensor.mode','3') %}
         Praca
         {% elif is_state('sensor.mode','5') %}
         Postój
         {% elif is_state('sensor.mode','6') %}
         Czyszczenie
         {% elif is_state('sensor.mode','7') %}
         Wygaszanie
         {% else %}
         Nieznany
         {% endif %}

###temperatura wody###
  - platform: rest
    name: tempCWU
    resource: http://192.168.0.100/econet/regParams
    authentication: basic
    username: admin
    password: admin
    value_template: '{{ value_json["curr"]["tempCWU"]|round(1) }}'
    scan_interval: 60
    unit_of_measurement: '°C'
    headers:
      User-Agent: Mozilla/5.0
      Content-Type: application/json

###ustawiona temperatura wody###
  - platform: rest
    name: tempCWU_set
    resource: http://192.168.0.100/econet/regParams
    authentication: basic
    username: admin
    password: admin
    value_template: '{{ value_json["curr"]["tempCWUSet"]|round(0) }}'
    scan_interval: 60
    unit_of_measurement: '°C'
    headers:
      User-Agent: Mozilla/5.0
      Content-Type: application/json

###temperatura pieca###
  - platform: rest
    name: tempCO
    resource: http://192.168.0.100/econet/regParams
    authentication: basic
    username: admin
    password: admin
    value_template: '{{ value_json["curr"]["tempCO"]|round(1) }}'
    scan_interval: 60
    unit_of_measurement: '°C'
    headers:
      User-Agent: Mozilla/5.0
      Content-Type: application/json

###ustawiona temperatura pieca ###
  - platform: rest
    name: tempCO_set
    resource: http://192.168.0.100/econet/regParams
    authentication: basic
    username: admin
    password: admin
    value_template: '{{ value_json["curr"]["tempCOSet"]|round(0) }}'
    scan_interval: 60
    unit_of_measurement: '°C'
    headers:
      User-Agent: Mozilla/5.0
      Content-Type: application/json

###temperatura mieszacza###
  - platform: rest
    name: mixerTemp1
    resource: http://192.168.0.100/econet/regParams
    authentication: basic
    username: admin
    password: admin
    value_template: '{{ value_json["curr"]["mixerTemp1"]|round(1) }}'
    scan_interval: 60
    unit_of_measurement: '°C'
    headers:
      User-Agent: Mozilla/5.0
      Content-Type: application/json

###temperatura podajnika###
  - platform: rest
    name: tempFeeder
    resource: http://192.168.0.100/econet/regParams
    authentication: basic
    username: admin
    password: admin
    value_template: '{{ value_json["curr"]["tempFeeder"]|round(1) }}'
    scan_interval: 60
    unit_of_measurement: '°C'
    headers:
      User-Agent: Mozilla/5.0
      Content-Type: application/json

###moc pieca###
  - platform: rest
    name: boilerPowerKW
    resource: http://192.168.0.100/econet/regParams
    authentication: basic
    username: admin
    password: admin
    value_template: '{{ value_json["curr"]["boilerPowerKW"]|round(1) }}'
    scan_interval: 30
    unit_of_measurement: 'kW'
    headers:
      User-Agent: Mozilla/5.0
      Content-Type: application/json

###poziom pelletu###
  - platform: rest
    name: fuelLevel
    resource: http://192.168.0.100/econet/regParams
    authentication: basic
    username: admin
    password: admin
    value_template: '{{ value_json["curr"]["fuelLevel"] -1| round(0) }}'
    scan_interval: 60
    unit_of_measurement: '%'
    headers:
      User-Agent: Mozilla/5.0
      Content-Type: application/json

###Zuzycie pelletu###
  - platform: rest
    name: pellet_stream
    resource: http://192.168.0.100/econet/regParams
    authentication: basic
    username: admin
    password: admin
    value_template: '{{ value_json["curr"]["fuelStream"]|round(4) }}'
    scan_interval: 60
    unit_of_measurement: 'kg/h'
    headers:
      User-Agent: Mozilla/5.0
      Content-Type: application/json

###Moc wentylatora###
  - platform: rest
    name: fanPower
    resource: http://192.168.0.100/econet/regParams
    authentication: basic
    username: admin
    password: admin
    value_template: '{{ value_json["curr"]["fanPower"]|round(0) }}'
    scan_interval: 60
    unit_of_measurement: '%'
    headers:
      User-Agent: Mozilla/5.0
      Content-Type: application/json

###pompa CO###
  - platform: rest
    name: pumpCOWorks
    resource: http://192.168.0.100/econet/regParams
    authentication: basic
    username: admin
    password: admin
    value_template: '{{ value_json["curr"]["pumpCOWorks"] }}'
    scan_interval: 30
    headers:
      User-Agent: Mozilla/5.0
      Content-Type: application/json

  - platform: template
    sensors:
      pompa_co:
        friendly_name: "Grzejniki"
        value_template: >-
         {% if is_state('sensor.pumpCOWorks', 'False') %}
         OFF
         {% else %}
         ON
         {% endif %}

###pompa CWU###
  - platform: rest
    name: pumpCWUWorks
    resource: http://192.168.0.100/econet/regParams
    authentication: basic
    username: admin
    password: admin
    value_template: '{{ value_json["curr"]["pumpCWUWorks"] }}'
    scan_interval: 30
    headers:
      User-Agent: Mozilla/5.0
      Content-Type: application/json

  - platform: template
    sensors:
      pompa_cwu:
        friendly_name: "Boiler"
        value_template: >
         {% if is_state('sensor.pumpCWUWorks', 'False') %}
         OFF
         {% else %}
         ON
         {% endif %}

###tryb lato/zima###
  - platform: rest
    name: piec_lato_zima
    resource: http://192.168.0.100/econet/regParams
    authentication: basic
    username: admin
    password: admin
    value_template: '{{ value_json["curr"]["mixerPumpWorks1"] }}'
    scan_interval: 20
    headers:
      User-Agent: Mozilla/5.0
      Content-Type: application/json

  - platform: template
    sensors:
      piec_tryb:
        friendly_name: "Tryb pieca lato zima"
        value_template: >-
         {% if is_state('sensor.piec_lato_zima', 'True') %}
         ZIMA
         {% else %}
         LATO
         {% endif %}

###praca podajnika###
  - platform: rest
    name: feederWorks
    resource: http://192.168.0.100/econet/regParams
    authentication: basic
    username: admin
    password: admin
    value_template: '{{ value_json["curr"]["feederWorks"] }}'
    scan_interval: 2
    headers:
      User-Agent: Mozilla/5.0
      Content-Type: application/json
  1. Do dodaniu sprawdź poprawność konfiguracji i zrób restart HA
  2. Jeśli pojawił ci się sensor to możesz spokojnie dodać resztę sensorów.

Powyższe sensory służą tylko do odczytów parametrów. Żeby sterować ustawieniami które Cię interesują musisz sprawdzić ruch w sieci jaki się tworzy po kliknięciu danego polecenia np. przez stronę econet24. Poniższego yamla wklejasz do configuration.yaml (po wcześniejszym sprawdzeniu numeru stwojego numeru sterowika i wysłanej komendy czy jest podobna). Na zdjęciu widać jak odczytać dane komendy i musisz je później podmienić swoim numerem:

###   ECONET komendy   ###

rest_command:
  piec_tryb_zima:
    method: GET
    url: http://192.168.0.100/econet/rmNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamIndex=61&newParamValue=0
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_tryb_lato:
    method: GET
    url: http://192.168.0.100/econet/rmNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamIndex=61&newParamValue=1
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_wylacz:
    method: GET
    url: http://192.168.0.100/econet/newParam?uid=A1U1PB0PJ2D1J286G0100&newParamName=BOILER_CONTROL&newParamValue=0
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_wlacz:
    method: GET
    url: http://192.168.0.100/econet/newParam?uid=A1U1PB0PJ2D1J286G0100&newParamName=BOILER_CONTROL&newParamValue=1
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_pogodynka_wlacz:
    method: GET
    url: http://192.168.0.100/econet/rmNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamIndex=130&newParamValue=1
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_pogodynka_wylacz:
    method: GET
    url: http://192.168.0.100/econet/rmNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamIndex=130&newParamValue=0
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_pogodynka_grzejniki_wlacz:
    method: GET
    url: http://192.168.0.100/econet/rmNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamIndex=91&newParamValue=1
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_pogodynka_grzejniki_wylacz:
    method: GET
    url: http://192.168.0.100/econet/rmNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamIndex=91&newParamValue=0
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  # Temperatura pieca

  piec_temp_co_60:
    method: GET
    url: http://192.168.0.100/econet/rmCurrNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamKey=1280&newParamValue=60
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_temp_co_61:
    method: GET
    url: http://192.168.0.100/econet/rmCurrNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamKey=1280&newParamValue=61
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_temp_co_62:
    method: GET
    url: http://192.168.0.100/econet/rmCurrNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamKey=1280&newParamValue=62
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_temp_co_63:
    method: GET
    url: http://192.168.0.100/econet/rmCurrNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamKey=1280&newParamValue=63
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_temp_co_64:
    method: GET
    url: http://192.168.0.100/econet/rmCurrNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamKey=1280&newParamValue=64
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_temp_co_65:
    method: GET
    url: http://192.168.0.100/econet/rmCurrNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamKey=1280&newParamValue=65
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_temp_co_66:
    method: GET
    url: http://192.168.0.100/econet/rmCurrNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamKey=1280&newParamValue=66
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_temp_co_67:
    method: GET
    url: http://192.168.0.100/econet/rmCurrNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamKey=1280&newParamValue=67
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_temp_co_68:
    method: GET
    url: http://192.168.0.100/econet/rmCurrNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamKey=1280&newParamValue=68
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_temp_co_69:
    method: GET
    url: http://192.168.0.100/econet/rmCurrNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamKey=1280&newParamValue=69
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_temp_co_70:
    method: GET
    url: http://192.168.0.100/econet/rmCurrNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamKey=1280&newParamValue=70
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  # Temperatura wody

  piec_temp_cwu_50:
    method: GET
    url: http://192.168.0.100/econet/rmCurrNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamKey=1281&newParamValue=50
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_temp_cwu_51:
    method: GET
    url: http://192.168.0.100/econet/rmCurrNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamKey=1281&newParamValue=51
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_temp_cwu_52:
    method: GET
    url: http://192.168.0.100/econet/rmCurrNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamKey=1281&newParamValue=52
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_temp_cwu_53:
    method: GET
    url: http://192.168.0.100/econet/rmCurrNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamKey=1281&newParamValue=53
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_temp_cwu_54:
    method: GET
    url: http://192.168.0.100/econet/rmCurrNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamKey=1281&newParamValue=54
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_temp_cwu_55:
    method: GET
    url: http://192.168.0.100/econet/rmCurrNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamKey=1281&newParamValue=55
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_temp_cwu_56:
    method: GET
    url: http://192.168.0.100/econet/rmCurrNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamKey=1281&newParamValue=56
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_temp_cwu_57:
    method: GET
    url: http://192.168.0.100/econet/rmCurrNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamKey=1281&newParamValue=57
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_temp_cwu_58:
    method: GET
    url: http://192.168.0.100/econet/rmCurrNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamKey=1281&newParamValue=58
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_temp_cwu_59:
    method: GET
    url: http://192.168.0.100/econet/rmCurrNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamKey=1281&newParamValue=59
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

  piec_temp_cwu_60:
    method: GET
    url: http://192.168.0.100/econet/rmCurrNewParam?uid=A1U1PB0PJ2D1J286G0100&newParamKey=1281&newParamValue=60
    username: admin
    password: admin
    headers:
      User-Agent: Home Assistant
      Content-Type: application/json

Tu akurat możesz stworzyć takie jakie Cię konkretnie interesują. Ja akurat sterowanie mam w NR ale zasada jest ta sama czyli: musisz wywołać akcję (usługę) z daną komendą RESTful żeby ją do sterownika. Na pierwszy rzut oka jest to dosyć skomplikowane ale jak poznasz metodę działania to pójdzie z górki :smiley:

2 Likes

Super! Trochę z tym powalczyłem i udało się wyciągnąć informację z pieca, włączenie/wyłączenie kotła też działa tylko sprawdzałem to przez wpisanie adresu w przeglądarkę i podmianę na własne UID i adres IP.
Podpowiedz mi jeszcze tylko proszę jak wywołać np wyłączenie pieca z HA bezpośrednio lub z ND, jakiej kontrolki użyć?

Utwórz sobie pomocnika input.boolean i przełączenie stanów będzie włączało: call service. Serwisem będzie komenda która już stworzyłeś. Jak nie ogarniesz to wieczorem Ci wyśle jak to u mnie wygląda

1 Like

A nie lepiej zintegrować kocioł za pomocą tej integracji? GitHub - denpamusic/homeassistant-plum-ecomax: Plum ecoMAX boiler controller integration for Home Assistant.
Taniej, stabilnie i bez chmury.

1 Like

Też jest opcja ale nie wiem dlaczego twierdzisz że taniej skoro tam musisz mieć konwerter modbus a moim sposobem nic nie jest potrzebne :wink:

Pisząc taniej miałem na myśli stan wyjściowy. Czyli masz kocioł i chcesz nim sterować zdalnie. To musisz kupić konwerter RS 485/LAN - koszt 100 zł lub moduł ecoNET 300 - koszt 750 zł. no to różnica jest znacząca. Dodatkowo kupując konwerter jesteś niezależny od jakichkolwiek chmur i ich kaprysów. Integracji używam już ponad rok i mogę potwierdzić że jest mega stabilna. To znaczy nigdy nie zawiodła a autor jest bardzo pomocny i chętnie dodaje nowe funkcje jeżeli o to poprosisz. Ty zawsze możesz sprzedać swój ecoNET 300 (bo nie każdy użytkownik kotła używa HA) i zapewne odzyskasz spokojnie 500 zł. Wiec i w twoim przypadku będzie taniej.

Zaznaczam przy tym że to bardzo dojrzała integracja która dostarcza wiele przydatnych encji na potrzeby sterowania i monitorowania kotła.


2 Likes

mam tak samo jak Ty Jarek_S , jak zapas do econeta bo juz pare razy się zawiesił a ten mod działał i miałem podglad :slight_smile:

1 Like

Znałem wcześniej ta integrację ale trochę się obawiałem podpinać obcymi urządzeniami do sterownika. Teraz już trochę więcej nabrałem doświadczenia więc może i ja dołączę do waszego grona modbus :smile:

Na podstawie ponad sezonu użytkowania mogę rozwiać twoje obawy. Integracja nic nie psuje a co najważniejsze w przypadku ważnego systemu jak CO jest mega stabilna.

Wrzuć tu jeszcze z jakiego konwertera korzystasz i będzie kompletny post :wink:

Jaki konkretnie masz ten moduł?

Ja mam akurat USR-TCP232-304. Konwerter wpięty równolegle do kotła i sterownika pokojowego. Konfiguracja poniżej.

ewentualnie możesz też taki użyć, ja mam Elfin -EW11

Ogólnie nie miałem zmysłu zmieniać swojej integracji ale @Jarek_S podrzucił mi pewien pomysł. Faktycznie mogę pozbyć się modułu econet 300, ale nie będę go sprzedawać tylko zamontuje rodzicom żeby mogli chociaż sterować aplikacją :wink:
I pod tym względem miał rację że będzie taniej :smile:

Jeden problem został:
Dodałem sobie wszystkie parametry pieca oraz pomocnika input.boolean którym włączam i wyłączam kocioł. Tylko że jak wyłączę piec np z aplikacji 4pellet to przełącznik w HA o tym nie wie i nadal jest na “ON”.
Jak zrobić sprawdzenie, np kiedy “Tryb pracy pieca”=Wyłączony to przełącznik “2_test_piec” zmienia status na “OFF” ?
image

Nie używam oryginalnej aplikacji więc nie mam nawet jak tego sprawdzić. Nie wyłączam też kotła całkowicie. Jak nie ma nas dłużej to zmieniam mu tryb na przeciwazmarzanie.
Autor udostępnił mi kiedyś skrypt przy pomocy którego można zbierać dane z kotła jak chce cie się bawić to mogę go odszukać. Ewentualnie możesz to zrobić samemu przeszukując githuba.