logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Specyfikacja protokołu RS-485 dla sterownika G422-P07 Hewalex - komendy, kodowanie danych

chilo 18 Lut 2015 13:12 10815 30
  • #1 14451363
    chilo
    Poziom 2  
    Posty: 2
    Witam
    Poszukuje specyfikacji technicznej protokołu komunikacyjnego ( komendy, ewentualnie jak kodowane są dane etc )do złącza rs-485 w sterowniku G422-P07
    Cudo te jest sterownikiem do zestawu solarnego firmy Hewalex.

    Pytałem u źródła ale odmawiają.

    Mają własną platformę akwizycji danych, wraz z dedykowanym urządzeniem i nie chcą się dzielić z innymi.

    Dodam że firma GECO ma GH19SA i GH20SB. GH20SB jest podobny do G422-P07 pod względem grafiki i trybów, podejrzewam że GECO może być producentem. więc może ktoś pomoże i ma ewentualnie od GH20SB.

    Pracuje nad własnym alternatywnym urządzeniem do akwizycji danych.
    Z góry dziękuję za wszelką pomoc.
  • #2 14854403
    qwazi8977
    Poziom 9  
    Posty: 22
    Pomógł: 1
    Ocena: 3
    Mam sterownik G422 P07.
    też chciałbym się podpiąć. mam panel moeler xv-102-d6 70 twrc. WIN CE
    Ma toto canbusa, rs-485, rs232.
    Mam zamiar wyciągnąć komendy z tego sterownika tylko jak?
    Za tydzień będę miał zamontowany za free moduł eco-lan "ekontrol" hewalexa.
    Jest na czym eksperymentować.
    Mogę być laboratorium, tylko potrzebuję wytycznych...
    Dodatkowo pod w/w panel, chciałbym podpiąć sterownik pieca C.O. Tech 850.... jako odpowiednik panela st-280
  • #3 14880680
    wiesiek6191
    Poziom 8  
    Posty: 5
    Ok. zamontowali mi interfejs ECO-LAN G927. Mam dostęp do wszystkich danych sterownika, przez stronę http://www.ekontrol.pl. Jak przechwycić komendy po rs-485 pomiędzy sterownikiem a modemem?
  • #4 15028169
    emcom5
    Poziom 11  
    Posty: 38
    Ocena: 4
    Witam,

    do przechwycenia rami RS485 wystarczy podpiąć pod szynę komputer z aplikacja monitorująca (oczywiście prze port RS485, może to być adapter USB-RS485). I zalogować całą transmisję.
    Następnie wyciągnąć z niego rozkazy sterujące i odbierane dane.

    Tak w wielkim skrócie.
  • #5 15075304
    djsway
    Poziom 18  
    Posty: 193
    Pomógł: 28
    Ocena: 16
    Witam Serdecznie,

    Również borykam się z problemem protokołu transmisji danych w Hwalexie.
    Czy udało się coś rozszyfrować?
    Ustawienia komunikacji w sterowniku przypominają konfigurację MODBUS-a, ale nie wiem czy to dobry kierunek?
  • #6 15075565
    emcom5
    Poziom 11  
    Posty: 38
    Ocena: 4
    Witam.

    Nie wiem czy sterownik sam coś nadaje sam z siebie, czy czeka na sygnał z routera. Do tego jest najlepiej posiadać ten modem Hwalexa.
  • #7 15075610
    djsway
    Poziom 18  
    Posty: 193
    Pomógł: 28
    Ocena: 16
    Witam,

    Sterownik działa w trybie slave - sam bez pytania nie nadaje.
    Przy wysyłaniu losowej ramki MODBUS lub jakiego kolwiek znaku zwraca wartość 00 (NUL).

    Modem do sterownika, fajna sprawa jednak kosztuje swoje (najtaniej znalazłem 199PLN) i korzysta z obcego serwera. Aby zintegrować dane z resztą systemu musiał bym pobierać te dane z internetu i zapisywać do swojej bazy danych. Takie rozwiązanie średnio mi pasuje :/
  • #8 15084736
    zeks
    Poziom 1  
    Posty: 1
    Witam,

    Udało się posiadaczom modemu przechwycić transmisję pomiędzy sterownikiem, a modemem?

    Jeżeli przejrzymy inne urządzenia firmy Geco, to mają zaimplementowany protokół modbus slave rtu.

    W takim przypadku kluczowe dane które należy wyciągnąć to ilość danych ("Data Bits"), bity parzystości, oraz bity stopu.

    Pozostałe informacje to oczywiście z których bloków pamięci należy czytać.
  • #9 15088993
    emcom5
    Poziom 11  
    Posty: 38
    Ocena: 4
    Hej,

    Jest prosty sposób na otrzymanie tegoż routera za małe pieniądze :)

    Na sprzęt zmówiony z neta jest 14 dni na zwrot i to może być rozwiązaniem na przetestowanie i przechwycenie sygnałów sterujących. Obecnie nie mam czasu na taki zagranie i przeprowadzanie testów.
  • #10 15089782
    djsway
    Poziom 18  
    Posty: 193
    Pomógł: 28
    Ocena: 16
    Witam,

    Wczoraj próbowałem połączyć się ze sterownikiem po RS485.
    W sterowniku opcje odnoście portu ustawiłem na Buad rate 9600, adres fizyczny 1 i logiczny 1.
    Za pomocą skanera MODBUS odpytywałem sterownik o Read Holding Registers od adresu 01 do 10. Wypróbowałem wszystkie możliwe kombinacje ustawień portu odnośnie bitów parzystości, stopu, i długości ramki. Niestety sterownik nie odpowiedział ani razu.

    Mam jeszcze tylko jedną wątpliwość odnośnie samego podłączenia konwertera USB/RS485 (z terminatorem) ze sterownikiem, wykorzystałem około 50cm przewodu 1mm2 bez terminatora na sterowniku. Czy taka konfiguracja ma prawo zadziałać? Gdy podpiąłem pod zaciski sterownika rezystor 120ohm jako terminator mam chyba odbicia sygnału na lini bo dioda RX na konwerterze miga idealnie w takt diody TX. Jest sens próbować jeszcze raz z wykorzystaniem 10m skrętki komputerowej zamiast lgy 1mm?
  • #11 15093133
    emcom5
    Poziom 11  
    Posty: 38
    Ocena: 4
    Witam,

    Długość kabla nie powinna mieć znaczenia.

    Można jedynie stwierdzić iż sterownik odpowiada tylko na zapytanie modemu.
  • #12 15499087
    adamkorski
    Poziom 10  
    Posty: 11
    Ocena: 2
    Specyfikacja protokołu RS-485 dla sterownika G422-P07 Hewalex - komendy, kodowanie danych

    To nie Modbus, ale po RS485 możesz odczytać komunikację. Komunikacja 38400/8N1. Od bajtu 166 masz datę i godzinę, od 174 temperatury (Lo/Hi), 8-9 otwarcie zaworu.
    Podobny projekt na Raspi zrobiłem dla pieca Junkers, ale tu miałem gotowca.
    Podłączyłem teraz Raspi z przejściówką RS485/GIPIO, prosty programik w pythonie i odczytuję te dane. Muszę się jeszcze pobawić aby odszyfrować inne dane, zrobić gui, ale brak czasu.
  • #13 15602621
    adamkorski
    Poziom 10  
    Posty: 11
    Ocena: 2
    Specyfikacja protokołu RS-485 dla sterownika G422-P07 Hewalex - komendy, kodowanie danych

    Informacje ze sterownika Geco pompy ciepła Hewalex na Raspberry. U mnie czujnik T3 jest w kanale wylotowym powietrza do klimatyzowania salonu.
    Z innych sterowników powinno podobnie dać się odczytać dane.
  • #14 15685962
    mureklop
    Poziom 2  
    Posty: 3
    @adamkorski jesli moge zapytac jaki kod mu poslales ze odpowiedzial
    dziekuje
  • #15 15686903
    adamkorski
    Poziom 10  
    Posty: 11
    Ocena: 2
    Nie podawałem mu żadnego kodu, nawet nie próbowałem. Przechwytuję transmisję między sterownikiem a wyświetlaczem.
  • #16 15689074
    mureklop
    Poziom 2  
    Posty: 3
    BARDZO DZIEKUJE za bardzo szybka odpowied bede probowal podobnego sposobu
    dziekuje
  • #17 15895030
    Dawid424
    Poziom 11  
    Posty: 7
    Witam.
    Odczytałem dane z komunikacji między sterownikiem a wyświetlaczem pompy Hewalex. Dodam, że wystarczy się podpiąć do magistrali przy samym wyświetlaczu. Niepotrzebnie wpinałem się w wolny port RS 485 w sterowniku, który i tak nie przechwycił tej transmisji.
    @adamkorski możesz przybliżyć, jak odczytać w tych danych konkretne wartości i ewentualnie udostępnić kod w phytonie?
    Dzięki i pozdrawiam.
    Załączniki:
    • Specyfikacja protokołu RS-485 dla sterownika G422-P07 Hewalex - komendy, kodowanie danych transmisja RS 485.JPG (198.57 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #18 15908495
    adamkorski
    Poziom 10  
    Posty: 11
    Ocena: 2
    Dawid, jesteś na dobrej drodze.
    Ja używam:

    def Lokalezeit(self):
    response = ''
    sys.stdout.flush()
    ser = serial.Serial("/dev/ttyAMA0", baudrate=38400, timeout=2, xonxoff=False)


    print("connected ")
    #print("connected to: " + ser.portstr)
    response = ser.read(250)
    ser.close()

    rok=str(response[78])
    mies=str(response[79])
    dzien=str(response[80])
    godz=str(response[82])
    minut=str(response[83])
    sek=str(response[84])

    I w ten sposób próbuj wyśledzić wszystkie stany. Ja też nie mam rozpoznanych wszystkich możliwych wartości, które zależą też od konfiguracji układu grzewczego.
  • #19 15910777
    Dawid424
    Poziom 11  
    Posty: 7
    Zrobiłem to trochę inaczej:

    ser = serial.Serial(
    port='/dev/ttyUSB0',\
    baudrate=38400,\
    parity=serial.PARITY_NONE,\
    stopbits=serial.STOPBITS_ONE,\
    bytesize=serial.EIGHTBITS,\
    timeout=2)

    print("connected to: " + ser.portstr)

    line = ser.read(500)
    ser.close()

    x1 = 255
    indeks = line.index(chr(x1))

    czyli znalazłem index bajtu adresu, a potem odczytuje konkretne bajty i wartości zapisuje do SQL.
    Co 30-ty odczyt jest z błędem, chyba jakieś zakłócenia. Ale ok.

    Interesowałyby mnie jeszcze:
    - bajt pracy pompy;
    - bajt załączenia grzałki elekt i pompy cyrkulacyjnej.;
    - HP;
    - LP;

    @adamkorski dzięki za włożoną pracę.
    Pozdrawiam
  • #20 15912320
    adamkorski
    Poziom 10  
    Posty: 11
    Ocena: 2
    Dawid,

    moje bajty posłałem na priv.
    Indeks bajtu to dobry pomysł. Ja nie jestem zawodowym programistą.
    Ja też co któryś odczyt mam błędy. Próbowałem nawet podłączyć rezystory końcowe na RS485 - nie pomogło.
    Na jakiej grupie czytałem, ze polecenie ser.read funkcjonuje nie do końca poprawnie. Dlatego też sprawdzam, czy rok to 16 i jak nie to odrzucam odczyt (w nowym roku muszę poprawić kod).
    Pozdro.
  • #21 17288116
    djsway
    Poziom 18  
    Posty: 193
    Pomógł: 28
    Ocena: 16
    Cześć,
    Posiadam sterownik do kolektorów słonecznych Hewalex/Geco GH26-P09, próbowałem się z nim skomunikować po RS485 i Modbusie ale bezskutecznie.
    Zainteresował mnie pomysł wyciągnięcia informacji o aktualnym stanie sterownika z komunikacji pomiędzy MCU a wyświetlaczem. Oglądając PCB niestety nie byłem w stanie odnaleźć magistrali po której dane są przesyłane do wyświetlacza.
    Czy koledzy mogliby mnie nakierować w którym miejscu szukać magistrali?
    Jakby ktoś miał zdjęcie jak robiliście wpięcie w PCB było by super.

    Pozdrawiam, Paweł.
  • #22 17418706
    jacekmr
    Poziom 2  
    Posty: 2
    Ocena: 1
    Witam,
    chciałbym zaktualizować oprogramowanie w sterowniku G-422-P07 czy ktoś posiada program i plik. Bardzo byłbym wdzięczny.
  • #23 17445492
    elakota
    Poziom 13  
    Posty: 239
    Ocena: 21
    Witam,

    W wątku
    https://www.elektroda.pl/rtvforum/topic3499254.html
    próbuję zrozumieć komunikację sterownika solarów Hewalexa poprzez modem Eco-kontrol.
    Proszę o informację od jakiego miejsca czytać bajty by otrzymać datę i aktualne temperatury ze sterownika pompy ciepła - może przez analogię otrzymam rozwiązanie. Z tego co wiem modem eco-lan może być podłączony też do pompy ciepła.
  • #24 17445630
    adamkorski
    Poziom 10  
    Posty: 11
    Ocena: 2
    Musisz zamienić aktualna datę na postać hex i znaleźć w ciągu, np ( z moich poszukiwań):
    hex dec
    10 16 rok
    09 09 miesiąc
    19 25 dzień
    06 dzień tygodnia (0 do 6)
    13 19 godz
    33 51 min
    3B 59 sek
    Jeden bajt dalej i powinny być temperatury w postaci lo/hi (dwa bajty).
  • #25 18207376
    mitny
    Poziom 13  
    Posty: 153
    Ocena: 8
    Witam,
    Od niedawna posiadam sterownik gh26-p09 i chcę się podłączyć pod niego po RS. Niestety nie mam ich modułu Ekolan by móc podsłuchać transmisję więc proszę o pomoc. Na podstawie wątku założonego przez "elakota" udało mi się zweryfikować, że wysyłając do sterownika 69 02 01 84 00 00 0C F6 02 00 01 00 40 80 00 32 64 00 BD B2 otrzymuję ramkę w której jest data godzina, termometry od T1 do T4 i aktualnie wytwarzana moc kolektorów słonecznych. Niestety nie znalazłem tam informacji temperaturach T5 i wyższych czy też o pracy aktualnej pracy pomp itp. Sterownik posiada też fajną sekcję ze statystykami gdzie można zerknąć na produkcję z ostatnich dni, tygodni i miesięcy.

    Czy ktoś z was ma moduł Ekolan i mógłby podsłuchać polecenia jakimi odpytuje on sterownik? Podejrzewam, że w ciągu 1 doby odpyta sterownik o wszystkie dostępne na nim wartości łącznie ze statystykami.

    Ewentualnie osoby które wpięły w transmisję przy samym wyświetlaczu również mogły by podesłać co tam lata ponieważ na powyższych screenach widzę, że jest to ta sama lub podobna transmisja.

    Wydaje się, że polecenia zaczynają się od 69 02 01 84 natomiast odpowiedzi mają zamieniony 2 z 3 bajtem czyli zaczynają się od 69 01 02 84. Nie wiem czy jest tak zawsze ale z zebranych informacji wydaj się, że tak właśnie jest.
    Potrzebował bym zestawu takich poleceń by móc odpytywać mój sterownik i próbować dopasować odpowiedzi do jakichś wartości dostępnych w sterowniku. Ewentualnie jeśli ktoś z was już posiada jakiś dopasowanie bajtów do konkretnych wartości to również taka wiedza by się przydała.
  • #26 18543423
    teslanet
    Poziom 10  
    Posty: 12
    Dzień dobry,
    Panowie czy komunikacja RS-485 to typowy Modbus RTU ??
  • #27 18574680
    Chibald
    Poziom 2  
    Posty: 2
    mitny napisał:
    Witam,
    Od niedawna posiadam sterownik gh26-p09 i chcę się podłączyć pod niego po RS. Niestety nie mam ich modułu Ekolan by móc podsłuchać transmisję więc proszę o pomoc. Na podstawie wątku założonego przez "elakota" udało mi się zweryfikować, że wysyłając do sterownika 69 02 01 84 00 00 0C F6 02 00 01 00 40 80 00 32 64 00 BD B2 otrzymuję ramkę w której jest data godzina, termometry od T1 do T4 i aktualnie wytwarzana moc kolektorów słonecznych. Niestety nie znalazłem tam informacji temperaturach T5 i wyższych czy też o pracy aktualnej pracy pomp itp. Sterownik posiada też fajną sekcję ze statystykami gdzie można zerknąć na produkcję z ostatnich dni, tygodni i miesięcy.

    Czy ktoś z was ma moduł Ekolan i mógłby podsłuchać polecenia jakimi odpytuje on sterownik? Podejrzewam, że w ciągu 1 doby odpyta sterownik o wszystkie dostępne na nim wartości łącznie ze statystykami.

    Ewentualnie osoby które wpięły w transmisję przy samym wyświetlaczu również mogły by podesłać co tam lata ponieważ na powyższych screenach widzę, że jest to ta sama lub podobna transmisja.

    Wydaje się, że polecenia zaczynają się od 69 02 01 84 natomiast odpowiedzi mają zamieniony 2 z 3 bajtem czyli zaczynają się od 69 01 02 84. Nie wiem czy jest tak zawsze ale z zebranych informacji wydaj się, że tak właśnie jest.
    Potrzebował bym zestawu takich poleceń by móc odpytywać mój sterownik i próbować dopasować odpowiedzi do jakichś wartości dostępnych w sterowniku. Ewentualnie jeśli ktoś z was już posiada jakiś dopasowanie bajtów do konkretnych wartości to również taka wiedza by się przydała.


    Witam,
    Did you ever figure out the other commands? Are you willing to share you code with us maybe? Would love tot integrate my the geco controller data in my HA system!
  • #29 18575415
    Chibald
    Poziom 2  
    Posty: 2
    Oh yes, that's great! How did you implement this? On a RaspBerry using python?
    If you're willing to share your code it would be great. I'm trying to create a python script for raspberry pi communication but i have not achieved this.

    If it works i'll try to make esp8266 arduino implementationion for this for adding wifi to this controller.

    But first I have to figure out what to send / recieve!
  • #30 18681523
    mihal.dp
    Poziom 1  
    Posty: 1
    Udało mi się przyjechać później. Załączam kod dla Nodemcu, po prostu nie wiem co wysłać :( Jestem Słowakiem, przepraszam za google polski :)


    #include <SoftwareSerial.h>

    #define RX D3 // Soft Serial RS485 Receive pin
    #define TX D4 // Soft Serial RS485 Transmit pin
    #define RTS D8 // RS485 Direction control DE a RE SPOLU
    #define RS485Transmit HIGH
    #define RS485Receive LOW

    SoftwareSerial RS485Serial(RX, TX); // additional serial port for RS485

    void setup() {

    pinMode(RTS, OUTPUT);
    Serial.begin(9600);

    RS485Serial.begin(9600);
    delay(100);
    }


    void loop() {

    byte Solar_buf[8];
    Solar_buf[1] = 0;
    while( Solar_buf[1] != 0x03 ) { // if received message has an error (???)

    digitalWrite(RTS, RS485Transmit);

    byte Solar_request[] = {0x69,0x02,0x01,0x84,0x00,0x00,0x0C,0xF6,0x02,0x00,0x01,0x00,0x40,0x80,0x00,0x14,0x64,0x00,0x89,0xD4};

    RS485Serial.write(Solar_request, sizeof(Solar_request));
    RS485Serial.flush();

    digitalWrite(RTS, RS485Receive); // init Receive
    RS485Serial.readBytes(Solar_buf, 20);

    for( byte i=0; i<19; i++ ) {
    Serial.print(Solar_buf[i], HEX);
    Serial.print(" ");
    }

    Serial.println();
    delay(5000);
    }
    }

Podsumowanie tematu

✨ W dyskusji poruszono temat specyfikacji protokołu RS-485 dla sterownika G422-P07 firmy Hewalex, w kontekście komunikacji z urządzeniami oraz przechwytywania danych. Użytkownicy dzielili się doświadczeniami związanymi z podłączeniem do magistrali RS-485, próbując odczytać dane z urządzenia. Wskazano, że sterownik działa w trybie slave i nie nadaje danych samodzielnie, co sugeruje konieczność wysyłania zapytań. Uczestnicy dyskusji sugerowali użycie adapterów USB-RS485 oraz monitorujących aplikacji do przechwytywania komunikacji. Wspomniano również o podobieństwie do protokołu MODBUS, a także o możliwościach integracji z systemami domowymi. Pojawiły się pytania o konkretne komendy oraz o możliwość aktualizacji oprogramowania.
Wygenerowane przez model językowy.
REKLAMA