Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Kocioł Kospel EKCO L2 - Sterowanie przez modbus rtu/ascii

tos18 30 Dec 2015 13:28 4104 21
SterControl
  • #1
    tos18
    Level 40  
    Kocioł elektryczny firmy KOSPEL typ EKCO L2-12p

    Czy jest możliwe sterowanie przez modbus RTU/ASCII ?
    Sterownik posiada wyjście magistrali zgodnej z RS485 ale nie mam żadnych informacji o protokole.
    Chciał bym uniknąć stosowania centralki C.PS i do jednej magistrali podłączyć jeszcze inne urządzenia a całość sterować z panela HMI.
  • SterControl
  • #2
    kulon12345
    Level 11  
    Jeżeli ten kocioł obsługuje protokół sieciowy MODBUS i ma złącze RJ485 tak jak pisałeś, to da się go sterować po modbusie bez problemu. Musisz spełnić jedyne kilka warunków. Musisz znać adresy rejestrów sterownika w tym kotle, twój panel HMI musi być masterem w sieci, musisz ustawić taki sam baud rate (standardowo 9600 bps albo 19200 bps), parzystość bitów lub nie oraz ilość stop bitów.
    Dodatkowo musisz znać adres urządzenia Slave (Twojego kotła) żeby rozpocząć z nim komunikacje. Wszystko jest do zrobienia. Powiedz jakie dane posiadasz i zobaczymy co da się zrobić :)

    Pozdrawiam
    Maciek
  • #3
    tos18
    Level 40  
    Dzięki za odzew.
    Niestety wiem tyle co podałem w pierwszym poście. Modbus jako taki nie jest dla mnie problemem (pisałem własne programy na avr z obsługą modbus rtu)
    Producent kotła nie przyznaje się do implementacji modbusa i nie udostępnia żadnych danych.
    Pytam czy ktoś próbował dogadać się z tym kotłem ?
    Może ktoś ma jakieś informacje o protokole ?
    Może ktoś ma na zbyciu używany panel PSK.P5 ?
  • SterControl
  • #4
    IscreaMan
    Level 9  
    Odgrzebię temat, ale może udało się Tobie rozgryźć sposób sterowania w tych kotłach Kospela po RS-485 albo w inny sposób?

    Ja mam kocioł Kospel EKCO.MN3/M3 (Link), do RS-485 podpina się ich tzw. "moduł interenetowy C.MI" (Link), który łączy się przez Wifi i umożliwia sterowanie przez stronę https://ha.kospel.pl.

    Można albo przeanalizować komunikację po RS-485 pomiędzy modułem C.MI a kotłem, albo ew. (pewnie łatwiej) komunikację po HTTPS pomiędzy routerem Wifi a ha.kospel.pl i zrobić sobie "prywatne" API.

    Pozdrawiam.
  • #5
    MartyBBA
    Level 1  
    Mam podobny problem - mam centralkę Kospela (C.PS.02), która regularnie ulega awarii (już wymieniali mi ją z 7 razy) i raczej nie ma nadzei, że się coś poprawi. Chciałbym ją zastąpić czymś ale brak info jw. Jak sprawuje się moduł internetowy? Jak długo pracuje bez awarii?
  • Helpful post
    #6
    IscreaMan
    Level 9  
    tos18 wrote:
    Dzięki za odzew.
    Niestety wiem tyle co podałem w pierwszym poście. Modbus jako taki nie jest dla mnie problemem (pisałem własne programy na avr z obsługą modbus rtu)
    Producent kotła nie przyznaje się do implementacji modbusa i nie udostępnia żadnych danych.
    Pytam czy ktoś próbował dogadać się z tym kotłem ?
    Może ktoś ma jakieś informacje o protokole ?
    Może ktoś ma na zbyciu używany panel PSK.P5 ?


    Zapewne nie jesteś już zainteresowany, ale interfejs webowy modułu internetowego Kospela (C.MI) jest tak skontruowany, że jeśli wywołujesz go po lokalnym IP to on nie służy tylko jako frontend, lecz komunikacja z nim i operacje są przeprowadzane na "niskim" poziomie z wykorzystaniem rejestrów. Myślałem, że ten moduł tylko podaje i przyjmuje przez HTTP proste wartości, a funkcje do operowania na rejetrach są zaszyte w samym urządzeniu i niewidzialne dla użytkownika.

    A tu niespodzianka - całe kodowanie, operacje na rejestrach, zapisywanie, weryfikacja itp. odbywa się w przeglądarce przez JavaScript. Po wywyłaniu w przeglądarce modułu wyświetla się cały kod źródłowy:

    Przykładowe funkcje zapisywania wartości modułu konfiguracji obiegu CO

    Code: javascript
    Log in, to see the code


    oraz funkcje przekształacające rejestry na Int i Hex.

    Code: javascript
    Log in, to see the code


    Łącznie z chwilą wywołania interfejsu webowego do przeglądarki zwala się ponad 5.000 linii kodu JS. Dlatego cały ten interfejsc chodzi dość wolno np. na starszych telefonach. Oparte jest to na Web Frameworku "jQuery Mobile".

    Aby poznać dostępne rejestry i wartości wystarczy wywołać http://lokalne_IP_modułu/api/dev/identyfikator_kotła (np. http://192.168.2.131/api/dev/49) i otrzymujemy całą tablicę JSON. W środku siedzi serwer HTTP nginx.

    Code: json
    Log in, to see the code

    itd. (w przypadku kotła MN.3 w liczbie 598 rejestrów).

    Powyższe czyni bardzo prostą integrację tego kotła z wykorzystaniem modułu C.MI. Nie znam się kompletnie na modbusach, ale jeżeli rejestry wskazane w kodzie JavaScript są adresami rejestrów sterownika kotła, to również można je wykorzystać do zapisu/odczytu wartości bezpośrednio z pominięciem modułu interetowego, który jest bardzo drogi (ok. 550 - 600 zł).

    Moduł C.MI ze sterownikiem kotła podłącza się przez 2-żyłowy przewód (A-B). Jeżeli komuś bardzo zależy i chciałby z tego zrobić jakiś projekt, mogę spróbować otworzyć moduł żeby ujawnić jego konstrukcję, choć wolałby się od tego powstrzymać ze względu na gwarancję.

    Dodano po 2 [minuty]:

    MartyBBA wrote:
    Mam podobny problem - mam centralkę Kospela (C.PS.02), która regularnie ulega awarii (już wymieniali mi ją z 7 razy) i raczej nie ma nadzei, że się coś poprawi. Chciałbym ją zastąpić czymś ale brak info jw. Jak sprawuje się moduł internetowy? Jak długo pracuje bez awarii?


    Pracuje ok. roku. Nie było żdanej awarii. Sprawuje się ok, choć jest bardzo toporny w obsłudze (moim zdaniem oczywiście) i zamula bo operuje lokalnie w przeglądarce przez JS. Na starszych telefonach tragedia, cały czas się zawiesza.
  • #7
    tos18
    Level 40  
    Czy możesz opublikować całe źródło strony wyświetlanej - lub wysłać mi na priv ?
    To co podesłałeś sporo wyjaśnia.
    Być może da się zrobić coś ciekawego. Jeśli chcesz to konwerter RS485-usb kosztuje paręnście złotych a konsolowy program modpoll jest niezłym narzędziem do odczytu/zapisu rejestrów modbus. Jest jeszcze okienkowy modbusmastertoolpc.
  • Helpful post
    #8
    IscreaMan
    Level 9  
    tos18 wrote:
    Czy możesz opublikować całe źródło strony wyświetlanej - lub wysłać mi na priv ?
    To co podesłałeś sporo wyjaśnia.
    Być może da się zrobić coś ciekawego. Jeśli chcesz to konwerter RS485-usb kosztuje paręnście złotych a konsolowy program modpoll jest niezłym narzędziem do odczytu/zapisu rejestrów modbus. Jest jeszcze okienkowy modbusmastertoolpc.


    https://pastebin.com/ABgX6DqS

    Dodano po 3 [minuty]:

    IscreaMan wrote:
    tos18 wrote:
    Czy możesz opublikować całe źródło strony wyświetlanej - lub wysłać mi na priv ?
    To co podesłałeś sporo wyjaśnia.
    Być może da się zrobić coś ciekawego. Jeśli chcesz to konwerter RS485-usb kosztuje paręnście złotych a konsolowy program modpoll jest niezłym narzędziem do odczytu/zapisu rejestrów modbus. Jest jeszcze okienkowy modbusmastertoolpc.


    https://pastebin.com/ABgX6DqS


    A tu rejestry zwracane przez API: https://pastebin.com/LURqHLjN
  • #9
    pgno1
    Level 10  
    Odświerzam temat, z załączonego kodu możemy sporo wywnioskować, jedno pytanie tylko:
    czy ktomuś z Was udało się określić parametry połączenia: baudrate, parity itd, oraz adres na którym kocioł nasłuchuje i przeprowadzić najprostszą komunikację jakąkolwiek?

    Przymierzam się do tego tematu, 600zł to dużo i nie , ale robie własną automatykę, więc gotowy interfejs mi niezbyt po drodze
  • Helpful post
    #10
    marpi822
    Level 9  
    Hej, odgrzewam trochę temat.

    Mam PC Kospel HPI-4, do tego nie mam żadnych modułów internetowych ani dodatkowych paneli sterujących i innych urządzeń.

    Z czystej ciekawości zabrałem się za jej modbusa celem podglądu parametrów i integracji z Home Assistant. Z sukcesem (częściowym). Poprzez konwerter modbus RTU -> TCP

    Co udało mi się ustalić.

    Transmisja 9600 8N1 Modbus RTU, kodowanie uint16BA (int bez znaku z zamienionymi bajtami)

    Pompa ciepłą HPI-4 ma unit id na modbusie = 88

    unit id udało mi się przez przypadek odszyfrować w dokumentacji:
    https://kospel.pl/img/cms/download/C-PS-02_f-873_.pdf
    strona 38, w nagłówku zdjęcia okienka (inne urządzenia wyżej) :)

    wg.tego samego schematu...
    sterownik wył/wł 2 ma adres 65
    obieg grzewczy 1 ma adres 32
    obieg grzewczy 3 ma adres 34
    obieg grzewczy 16 ma adres 47
    kocioł EKCO 1 ma adres 8

    Dostępne rejestry szukałem programem "Modbus Viewer" dla Androida, później szukanie gdzie co jest...


    Parametry pompy ciepła (parametr/holding register/mnożnik):
    P01/170/0.1; P02/171/0.1; P03/172/0.1; P04/174/0.1; P05/175/0.1; P06/176/0.1; P07/177/0.1; P08/178/0.1; P09/179/0.01; P10/185/0.1 (bit 3)

    Niestety natknąłem się na problem. Mianowicie tak długo jak jest aktywna transmisja, pompa ciepła się nie uruchamia, co jest dla mnie bez sensu - może trzeba ustawić jakiś rejestr aby działała z aktywną transmisją. Ale nie mam jak tego dojść/sprawdzić. Jeśli nie odpytuję jej przez dłuższą chwilę, PC działa normalnie jak wcześniej. Nie udało mi się także zapisać wartości nastaw do rejestrów N01/202/0.1 i N02/203/0.1

    Być może, jest tak, że w przypadku gdy jest wykryta transmisja sterowanie PC odbywa się przez urządzenie nadrzędne na podstawie odczytów parametrów - zgaduje, ale po zachowaniu się jej jest to prawdopodobne więc nie wiem co dalej...

    Marek
  • #11
    marpi822
    Level 9  
    Czy ktoś działa jeszcze coś w tym temacie lub jest w stanie jakoś pomóc?

    Ktoś może już nie używa swojego panelu sterującego C.PS lub modułu internetowego i jest w stanie pożyczyć lub odsprzedać w celach rozwojowych? :)

    @IscreaMan @MartyBBA @tos18 @pgno1
  • #13
    piotrwadolowski
    Level 1  
    Z pompą HPI-4 walczyłem jak marpi822.
    Aktywna transmisja MODBUS wyłącza pompę, dostęp tylko do odczytu.

    Podłączyłem nawet C.MI i moduł nie dogadał się z pompą. Ogólnie sterownik C.MI odpytuje urządzenia kolejnych ID i przy ID=88 następuje próba komunikacji, ale nie ma dodanego urządzenia.

    Serwis nie chce udostępnić danych.

    Pozdrawiam
    Piotr
  • #14
    marpi822
    Level 9  
    piotrwadolowski wrote:
    Serwis nie chce udostępnić danych.


    Wiem, robiłem dwa podejścia. Kiedyś dawno mnie spławili, a ostatnio myślę sobie, że PC już wycofana ze sprzedaży to może coś podpowiedzą, ale nie ugięci są :)
  • #16
    marpi822
    Level 9  
    tos18 wrote:
    Niestety - też to przerabiałem. Jakby nie rozumieli że możliwość integracji systemów jest atutem.


    Niestety, ale to głównie z naszego punktu widzenia jest atutem. Dla firmy jest to potencjalna strata, ponieważ inny producent może zrobić urządzenie współpracujące z ich systemem, które będzie tańsze i wtedy swoich produktów nie sprzedadzą.

    Dla przykładu Haiztechnik działa teraz na sprzęcie firmy Brager, ale protokół dla Haiztechnik jest lekko zmodyfikowany (chyba nawet tylko prędkość transmisji) i nie współpracuje z urządzeniami oryginalnymi Brager (tylko z brandowanymi). I teraz, HT ma analizator spalin za 1200, a Brager za 700 sprzedaje najnowszą wersję, ale nie kompatybilna z HT bo HT sobie tego nie życzy :)
  • #17
    tos18
    Level 40  
    marpi822 wrote:
    Niestety, ale to głównie z naszego punktu widzenia jest atutem. Dla firmy jest to potencjalna strata, ponieważ inny producent może zrobić urządzenie współpracujące z ich systemem, które będzie tańsze i wtedy swoich produktów nie sprzedadzą.

    Nie zgodzę się.
    Sytuacja odwrotna: klient nie kupi kotła kospela bo nie wspiera opentherm i nie da się zintegrować z czymśtam co już ma
  • #18
    marpi822
    Level 9  
    tos18 wrote:
    marpi822 wrote:
    Niestety, ale to głównie z naszego punktu widzenia jest atutem. Dla firmy jest to potencjalna strata, ponieważ inny producent może zrobić urządzenie współpracujące z ich systemem, które będzie tańsze i wtedy swoich produktów nie sprzedadzą.

    Nie zgodzę się.
    Sytuacja odwrotna: klient nie kupi kotła kospela bo nie wspiera opentherm i nie da się zintegrować z czymśtam co już ma


    OAle opentherm jest otwartym standardem/protokołem, udokumentowanym. W kotłach elektrycznych i na paliwa stałe nie ma żadnego otwartego standardu - chyba że się mylę. Wszyscy producenci mają swój standard komunikacji, czasem zdążą się, że aplikują w sofcie obsługę urządzeń innych producentów, ale ogólnie w tych grupach jest wolna amerykanka.
  • #19
    dymekkk
    Level 10  
    Cześć, z tego co widzę, to temat utknął. Mam model MN.3 i chciałbym podłączyć do niego zawór trójdrożny mieszający. Bez modułu C.MI to ponoć bez sensu. Czy ktoś ma opracowaną deltę i może podzielić się nią? Mam Home assistant i ESP, a do niego podłączony zawór mieszający. Przed sezonem grzewczym chciałbym spróbować uruchomić to na ESP..
  • #20
    dymekkk
    Level 10  
    Z pomocą przyjaciela zintegrowałem wartości do odczytu z kotła do Home Assistanta. Poniższy kod należy wkleić do configuration.yaml i zrestartować HA:

    Code: yaml
    Log in, to see the code


    Przykładowy dashboard wygląda tak:

    Kocioł Kospel EKCO L2 - Sterowanie przez modbus rtu/ascii

    Mam nadzieję, że to się komuś przyda. W następnym kroku chcę wykorzystac opcję manualnego/party/wakacje aby z poziomu HA wymuszać pracę pieca. Z tego co widzę, kalendarz też idzie zintegrować. Moduł CMI w niczym nie przeszkadza, odczyty z niego są natychmiastowe, a praca kotła jest nieprzerwana.
  • #21
    woojtekk
    Level 1  
    Witam

    rozwijam temat i dorzucam wsad do HA do odczytu:
    1. temperatury zadanej,
    2. trybu pracy,
    3. błędów kotła,
    4. sumowania zużycia prądu.

    Kocioł Kospel EKCO L2 - Sterowanie przez modbus rtu/ascii

    Code: yaml
    Log in, to see the code
  • #22
    errellion
    Level 1  
    Chłopaki @dymekkk i @woojtekk super robota! Właśnie uruchmiłem swoją instalację z EKCO.M3 i zabierałem się za jakąś integrację z Home Assistantem (a, że jestem bardziej sysadminem niż programistą, chciałem pobierać curlem wartości z lokalnego IP i wycinąc co potrzebne sed/awk/cut a tu zonk z JS :), a tu prawie gotowiec! :D

    Mała wrzutka odemnie, mój kocioł/CM.I raportuje w tryb pracy jako ERROR, po sprawdzeniu w API, wartość rejestru 0b55 dla pracy automatycznej u mnie to "21d9". Być może literówka, a być może mam inną płytkę od Kospela.