Elektroda.pl
Elektroda.pl
X
Sklep HeluKabel
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Sterownik Tech AG Lux (Defro) - Protokół komunikacyjny

squizzy 14 Gru 2016 22:32 30855 159
  • #31 14 Gru 2016 22:32
    rohdamn
    Poziom 12  

    kebrzyk napisał:
    ...u Ciebie komunikacja idzie na 1.5 bita stopu a u mnie na 1...


    kebrzyk wydaje mi się, że może to być kwestia różnych typów sterowników. Mój AG LUX (bez PID) jest dość stary i ma niewiele opcji komunikacji. Twój ST-730zPID wysyła dużo "bogatsze" ramki z większą liczbą parametrów, a nawet dzieli kolejne ramki na kontynuacje (parametr 16F9). Dlatego jest szansa, że na dużej próbie ramek z Twojego sterownika dojdziemy do pozostałych parametrów.

    Jeszcze pytanie, czy masz zainstalowany czujnik temperatury zewnętrznej? (podejrzewam że tak skoro to sterownik z PID). Spróbuj odczytać parametr (1681 Zmierzona temperatura zewnętrzna) i dopasować do wyświetlanej temperatury lub podeślij kilka parametrów HEX-odczyt np. ogrzewając czujnik podczas zapisywania ramek.
    Ja nie posiadam czujnika i ten parametr wskazuje wartość FC18 (-100stC), u Ciebie jest F830 ale nie wiem do jakiej temperatury.

  • Sklep HeluKabel
  • #32 15 Gru 2016 00:33
    kebrzyk
    Poziom 11  

    16B6 - praca pompa cyrkulacyjna - nie mam takiej fizycznie zamontowanej. Zauważyłem że po włączeniu jej skraca się długość ramki z 108 bajtów do 100.
    16B0 - dodatkowa pompa: 5-wyłączona, 3-włączona

    Jeśli chodzi o czujnik temperatury zewnętrznej, to nie mam go podłączonego, bo jest on wykorzystywany do sterowania zaworu 3 lub 4 drogowego w przypadku sterowania ogrzewaniem podłogowym. Ja mam zrealizowane sterowanie na PLC i elektrozaworach, więc hydraulicy nie montowali tego zaworu i czujnika temperatury zewnętrznej. Ale posiadam ten czujnik więc podłączę go i sprawdzę jak się to zachowuje.

    Tak jak mówiłeś alarmy są pod 157C:
    27-czujnik podłogi uszkodzony, 29-czujnik zaworu uszkodzony . To są wartości decymalne

    Dodano po 58 [minuty]:

    Tutaj ramki z podłączonym czujnikiem zewnętrznym. Przez chwilę trzymałem go w ręku a potem dołożyłem do osłony ślimaka (temperatura podajnika). Przepraszam że tak nie ładnie wyglądają te ramki ale już dość późno i nie mam siły ich formatować.

    Code:

    02 26 FF F4 16 9E 50 2D 16 9F 3C 28 15 7C 00 02 15 7D 01 E0 15 7E 00 32 16 6E 01 9A 16 16 00 28 16 81 00 DC 15 CD 00 02 16 20 17 34 16 21 00 03 15 89 00 01 15 8B 00 00 16 B6 00 00 16 B0 00 05 16 AE 00 00 15 AB 00 00 15 87 00 00 15 88 00 01 15 9B 00 45 01 F6 00 00 02 8E 00 00 02 98 00 00 02 99 00 00 02 45 00 00 02 18 1C 7D

    02 26 FF F4 16 F9 00 01 16 C2 FF F1 16 7F 00 1A 16 C3 32 0A 16 14 F8 30 16 24 00 02 15 AC 00 00 16 80 00 00 17 0A 00 00 03 71 00 00 02 F7 00 00 16 F9 0000 15A7 00 16 16 FF 00 05  16 F8 01 86 15 B7 02 EE 16 84 00 00 02 18 77 B8

    02 26 FF F4 16 F9 00 02 16 C2 00 00 16 F9 00 00 16 F9 00 03 16 C2 00 00 16 F9 00 00 02 18 38 58 

    02 26 FF F4 02 18 A1 DE
     
    02 26 FF F4 16 9E 50 2D  16 9F 3C 28 15 7C 00 02
    15 7D 01 E0 15 7E 00 32  16 6E 01 9A 16 16 00 28
    16 81 00 F0 15 CD 00 02  16 20 17 34 16 21 00 03
    15 89 00 01 15 8B 00 00  16 B6 00 00 16 B0 00 05
    16 AE 00 00 15 AB 00 00  15 87 00 00 15 88 00 01
    15 9B 00 47 01 F6 00 00  02 8E 00 00 02 98 00 00
    02 99 00 00 02 45 00 00  02 18 8F 69

    02 26 FF F4   
    16 F9 00 01 16 C2 FF F1  16 7F 00 1A 16 C3 32 0A   
    16 14 F8 30 16 24 00 02  15 AC 00 00 16 80 00 00   
    17 0A 00 00 03 71 00 00  02 F7 00 00 16 F9 00 00 
    15 A7 00 16 16 FF 00 05  16 F8 01 86 15 B7 02 EE   
    16 84 00 00 02 18 77 B8 

    02 26 FF F4 16 F9 00 02   
    16 C2 00 00 16 F9 00 00  16 F9 00 03 16 C2 00 00   
    16 F9 00 00 02 18 38 58 

    02 26 FF F4 02 18 A1 DE 

    02 26 FF F4 16 9E 50 2D  16 9F 3C 28 15 7C 00 02
    15 7D 01 E0 15 7E 00 32  16 6E 01 9A 16 16 00 28
    16 81 01 0E 15 CD 00 02  16 20 17 34 16 21 00 03 




    15 89 00 01 15 8B 00 00  16 B6 00 00 16 B0 00 05 
    16 AE 00 00 15 AB 00 00  15 87 00 00 15 88 00 01
    15 9B 00 48 01 F6 00 00  02 8E 00 00 02 98 00 00
    02 99 00 00 02 45 00 00  02 18 42 52

    02 26 FF F4   
    16 F9 00 01 16 C2 FF F1  16 7F 00 1A 16 C3 32 0A 
    16 14 F8 30 16 24 00 02  15 AC 00 00 16 80 00 00 
    17 0A 00 00 03 71 00 00  02 F7 00 00 16 F9 00 00 
    15 A7 00 16 16 FF 00 05  16 F8 01 86 15 B7 03 02 
    16 84 00 00 02 18 2F 45 

    02 26 FF F4 16 F9 00 02   
    16 C2 00 00 16 F9 00 00  16 F9 00 03 16 C2 00 00   
    16 F9 00 00 02 18 38 58 

    02 26 FF F4 02 18 A1 DE   

    02 26 FF F4 16 9E 50 2D  16 9F 3C 28 15 7C 00 02
    15 7D 01 E0 15 7E 00 32  16 6E 01 9A 16 16 00 28   
    16 81 01 18 15 CD 00 02  16 20 17 35 16 21 00 03 
    15 89 00 01 15 8B 00 00  16 B6 00 00 16 B0 00 05   
    16 AE 00 00 15 AB 00 00  15 87 00 00 15 88 00 01   
    15 9B 00 49 01 F6 00 00  02 8E 00 00 02 98 00 00   
    02 99 00 00 02 45 00 00  02 18 7C 64

    02 26 FF F4   
    16 F9 00 01 16 C2 FF F1  16 7F 00 1A 16 C3 32 0A 
    16 14 F8 30 16 24 00 02  15 AC 00 00 16 80 00 00   
    17 0A 00 00 03 71 00 00  02 F7 00 00 16 F9 00 00   
    15 A7 00 16 16 FF 00 05  16 F8 01 7C 15 B7 03 02   
    16 84 00 00 02 18 E1 6C 

    02 26 FF F4 16 F9 00 02   
    16 C2 00 00 16 F9 00 00  16 F9 00 03 16 C2 00 00   
    16 F9 00 00 02 18 38 58 

    02 26 FF F4 02 18 A1 DE   

    02 26 FF F4 16 9E 50 2D  16 9F 3C 28 15 7C 00 02
    15 7D 01 E0 15 7E 00 32  16 6E 01 9A 16 16 00 28
    16 81 01 22 15 CD 00 02  16 20 17 35 16 21 00 03
    15 89 00 01 15 8B 00 00  16 B6 00 00 16 B0 00 05
    16 AE 00 00 15 AB 00 00  15 87 00 00 15 88 00 01
    15 9B 00 46 01 F6 00 00  02 8E 00 00 02 98 00 00 
    02 99 00 00 02 45 00 00  02 18 C8 3B

    02 26 FF F4   
    16 F9 00 01 16 C2 FF F1  16 7F 00 1A 16 C3 32 0A   
    16 14 F8 30 16 24 00 02  15 AC 00 00 16 80 00 00   
    17 0A 00 00 03 71 00 00  02 F7 00 00 16 F9 00 00   
    15 A7 00 16 16 FF 00 05  16 F8 01 7C 15 B7 03 20   
    16 84 00 00 02 18 97 75 

    02 26 FF F4 16 F9 00 02   
    16 C2 00 00 16 F9 00 00  16 F9 00 03 16 C2 00 00   
    16 F9 00 00 02 18 38 58 

    02 26 FF F4 02 18 A1 DE   

    02 26 FF F4 16 9E 50 2D  16 9F 3C 28 15 7C 00 02   
    15 7D 01 E0 15 7E 00 32  16 6E 01 9A 16 16 00 28   
    16 81 01 22 15 CD 00 02  16 20 17 35 16 21 00 03   
    15 89 00 01 15 8B 00 00  16 B6 00 00 16 B0 00 05   
    16 AE 00 00 15 AB 00 00  15 87 00 00 15 88 00 01   
    15 9B 00 46 01 F6 00 00  02 8E 00 00 02 98 00 00   
    02 99 00 00 02 45 00 00  02 18 C8 3B

    02 26 FF F4   
    16 F9 00 01 16 C2 FF F1  16 7F 00 1A 16 C3 32 0A 
    16 14 F8 30 16 24 00 02  15 AC 00 00 16 80 00 00 
    17 0A 00 00 03 71 00 00  02 F7 00 00 16 F9 00 00 
    15 A7 00 16 16 FF 00 05  16 F8 01 7C 15 B7 03 2A   
    16 84 00 00 02 18 DB DD 

    02 26 FF F4 16 F9 00 02   
    16 C2 00 00 16 F9 00 00  16 F9 00 03 16 C2 00 00   
    16 F9 00 00 02 18 38 58 

    02 26 FF F4 02 18 A1 DE   

    02 26 FF F4 16 9E 50 2D  16 9F 3C 28 15 7C 00 02   
    15 7D 01 E0 15 7E 00 32  16 6E 01 9A 16 16 00 28   
    16 81 01 22 15 CD 00 02  16 20 17 35 16 21 00 03   
    15 89 00 01 15 8B 00 00  16 B6 00 00 16 B0 00 05   
    16 AE 00 00 15 AB 00 00  15 87 00 00 15 88 00 01   
    15 9B 00 43 01 F6 00 00  02 8E 00 00 02 98 00 00   
    02 99 00 00 02 45 00 00  02 18 22 E7

    02 26 FF F4   
    16 F9 00 01 16 C2 FF F1  16 7F 00 1A 16 C3 32 0A   
    16 14 F8 30 16 24 00 02  15 AC 00 00 16 80 00 00   
    17 0A 00 00 03 71 00 00  02 F7 00 00 16 F9 00 00   
    15 A7 00 16 16 FF 00 05  16 F8 01 7C 15 B7 03 2A   
    16 84 00 00 02 18 DB DD 

    02 26 FF F4 16 F9 00 02   
    16 C2 00 00 16 F9 00 00  16 F9 00 03 16 C2 00 00   
    16 F9 00 00 02 18 38 58 

    02 26 FF F4 02 18 A1 DE   

    02 26 FF F4 16 9E 50 2D  16 9F 3C 28 15 7C 00 02   
    15 7D 01 E0 15 7E 00 32  16 6E 01 9A 16 16 00 28   
    16 81 01 22 15 CD 00 02  16 20 17 36 16 21 00 03   
    15 89 00 01 15 8B 00 00  16 B6 00 00 16 B0 00 05   
    16 AE 00 00 15 AB 00 00  15 87 00 00 15 88 00 01   
    15 9B 00 41 01 F6 00 00  02 8E 00 00 02 98 00 00   
    02 99 00 00 02 45 00 00  02 18 D4 FB

    02 26 FF F4   
    16 F9 00 01 16 C2 FF F1  16 7F 00 1A 16 C3 32 0A   
    16 14 F8 30 16 24 00 02  15 AC 00 00 16 80 00 00   
    17 0A 00 00 03 71 00 00  02 F7 00 00 16 F9 00 00   
    15 A7 00 16 16 FF 00 05  16 F8 01 7C 15 B7 03 3E   
    16 84 00 00 02 18 42 8D  02 26 FF F4 16 F9 00 02   
    16 C2 00 00 16 F9 00 00  16 F9 00 03 16 C2 00 00   
    16 F9 00 00 02 18 38 58                             

  • Sklep HeluKabel
  • #33 15 Gru 2016 01:46
    rohdamn
    Poziom 12  

    Potwierdzam że na 1 bit stopu również u mnie odczyty są poprawne.
    Powyższe nowe parametry dodałem do bazy.
    W Twojej komunikacji leci jeszcze parametr 1614 Temperatura zaworu = F830, czyli to musi być parametr domyślny w ST-730 dla braku czujnika temperatury (takie -200stC). Dodaje do bazy wzór na obliczenie właściwej temp. w tym przypadku i zobaczymy czy się potwierdzą wskazania kiedy podepniesz czujniki.
    Lista opisanych parametrów: http://dzien.net/tech/?baza=slownik

    Dodano po 20 [minuty]:

    Twoje ramki:

    Code:


    0226FFF4169E502D169F3C28157C0002157D01E0157E0032166E019A16160028168100DC15CD0002162017341621000315890001158B000016B6000016B0000516AE000015AB00001587000015880001159B004501F60000028E000002980000029900000245000002181C7D

    0226FFF416F9000116C2FFF1167F001A16C3320A1614F8301624000215AC000016800000170A00000371000002F7000016F9000015A7001616FF000516F8018615B702EE16840000021877B8

    0226FFF416F9000216C2000016F9000016F9000316C2000016F9000002183858

    0226FFF40218A1DE

    0226FFF4169E502D169F3C28157C0002157D01E0157E0032166E019A16160028168100F015CD0002162017341621000315890001158B000016B6000016B0000516AE000015AB00001587000015880001159B004701F60000028E000002980000029900000245000002188F69

    0226FFF416F9000116C2FFF1167F001A16C3320A1614F8301624000215AC000016800000170A00000371000002F7000016F9000015A7001616FF000516F8018615B702EE16840000021877B8

    0226FFF416F9000216C2000016F9000016F9000316C2000016F9000002183858

    0226FFF40218A1DE

    0226FFF4169E502D169F3C28157C0002157D01E0157E0032166E019A161600281681010E15CD0002162017341621000315890001158B000016B6000016B0000516AE000015AB00001587000015880001159B004801F60000028E000002980000029900000245000002184252

    0226FFF416F9000116C2FFF1167F001A16C3320A1614F8301624000215AC000016800000170A00000371000002F7000016F9000015A7001616FF000516F8018615B703021684000002182F45

    0226FFF416F9000216C2000016F9000016F9000316C2000016F9000002183858

    0226FFF40218A1DE

    0226FFF4169E502D169F3C28157C0002157D01E0157E0032166E019A161600281681011815CD0002162017351621000315890001158B000016B6000016B0000516AE000015AB00001587000015880001159B004901F60000028E000002980000029900000245000002187C64

    0226FFF416F9000116C2FFF1167F001A16C3320A1614F8301624000215AC000016800000170A00000371000002F7000016F9000015A7001616FF000516F8017C15B70302168400000218E16C

    0226FFF416F9000216C2000016F9000016F9000316C2000016F9000002183858

    0226FFF40218A1DE

    0226FFF4169E502D169F3C28157C0002157D01E0157E0032166E019A161600281681012215CD0002162017351621000315890001158B000016B6000016B0000516AE000015AB00001587000015880001159B004601F60000028E00000298000002990000024500000218C83B

    0226FFF416F9000116C2FFF1167F001A16C3320A1614F8301624000215AC000016800000170A00000371000002F7000016F9000015A7001616FF000516F8017C15B703201684000002189775

    0226FFF416F9000216C2000016F9000016F9000316C2000016F9000002183858

    0226FFF40218A1DE

    0226FFF4169E502D169F3C28157C0002157D01E0157E0032166E019A161600281681012215CD0002162017351621000315890001158B000016B6000016B0000516AE000015AB00001587000015880001159B004601F60000028E00000298000002990000024500000218C83B

    0226FFF416F9000116C2FFF1167F001A16C3320A1614F8301624000215AC000016800000170A00000371000002F7000016F9000015A7001616FF000516F8017C15B7032A168400000218DBDD

    0226FFF416F9000216C2000016F9000016F9000316C2000016F9000002183858

    0226FFF40218A1DE

    0226FFF4169E502D169F3C28157C0002157D01E0157E0032166E019A161600281681012215CD0002162017351621000315890001158B000016B6000016B0000516AE000015AB00001587000015880001159B004301F60000028E0000029800000299000002450000021822E7

    0226FFF416F9000116C2FFF1167F001A16C3320A1614F8301624000215AC000016800000170A00000371000002F7000016F9000015A7001616FF000516F8017C15B7032A168400000218DBDD

    0226FFF416F9000216C2000016F9000016F9000316C2000016F9000002183858

    0226FFF40218A1DE

    0226FFF4169E502D169F3C28157C0002157D01E0157E0032166E019A161600281681012215CD0002162017361621000315890001158B000016B6000016B0000516AE000015AB00001587000015880001159B004101F60000028E00000298000002990000024500000218D4FB

    0226FFF416F9000116C2FFF1167F001A16C3320A1614F8301624000215AC000016800000170A00000371000002F7000016F9000015A7001616FF000516F8017C15B7033E168400000218428D

    0226FFF416F9000216C2000016F9000016F9000316C2000016F9000002183858

    w zasadzie zmienia się tylko parametr temperatury.
    Code:

    [1681] => Array
    (
    [nazwa] => Zmierzona temperatura zewnętrzna
    [hex] => 1681
    [0] => 22 °C
    [1] => 24 °C
    [2] => 27 °C
    [3] => 28 °C
    [4] => 29 °C
    [5] => 29 °C
    [6] => 29 °C
    [7] => 29 °C

    Wychodzi na to, że poprzednie wartości temperatury bez zainstalowanego czujnika, są wartościami domyślnymi.zależnymi od typu sterownika.

    Inne zmieniające się parametry:
    Code:

    [nazwa] => Bieg wentylatora nadmuchu
    [hex] => 159B
    [0] => 69%
    [1] => 71%
    [2] => 72%
    [3] => 73%
    [4] => 70%
    [5] => 70%
    [6] => 67%
    [7] => 65%

    albo
    Code:

    [15B7] => Array
    (
    [nazwa] => Temperatura spalin
    [hex] => 15B7
    [0] => 75
    [1] => 75
    [2] => 77
    [3] => 77
    [4] => 80
    [5] => 81
    [6] => 81
    [7] => 83


    Dodano po 37 [minuty]:

    kebrzyk napisał:
    nie ładnie wyglądają te ramki ale już dość późno i nie mam siły ich formatować


    Szkoda czasu na formatowanie. Teraz skrypt przyjmuje wszystko jak leci i sam rozpoznaje ramki.

  • #34 15 Gru 2016 08:37
    kebrzyk
    Poziom 11  

    Bardzo interesują mnie parametry:

    Code:
    [0322] => Array
    
            (
                [nazwa] => Jest Paliwo
                [] =>
            )

    [0369] => Array
            (
                [nazwa] => Poziom paliwa
                [] =>
            )

        [] => Array
            (
                [nazwa] => Poziom paliwa [%]
                [] =>
            )

        [036A] => Array
            (
                [nazwa] => Godziny paliwa
                [] =>
            )


    Posiadasz to u siebie? Na co masz piec? Ja na ekogroszek i nie widzę takich parametrów

  • #35 15 Gru 2016 13:44
    rohdamn
    Poziom 12  

    Mój piec również pracuje z ekogoszkiem (podajnik ślimakowy). Niestety nie mam w zasobniku żadnych czujników poza czujnikiem otwarcia klapy. Sterownik również nie wysyła żadnych parametrów z wspomnianych powyżej, a też liczyłem na ich odczyt. Wartości tych parametrów udało mi się odczytać ze skryptów na stronie www Defro do prezentacji i zdalnego sterowania podstawowymi funkcjami pieca (zadana temperatura CO i CWU). Ciekawe jaki czujnik oraz sterownik mógłby obsłużyć wskazanie tych wartości.

  • #37 15 Gru 2016 21:49
    Xpaweł
    Poziom 5  

    W odpowiedzi na pytanie rohdamn. Aby móc widzieć procentowy poziom paliwa w zasobniku musisz mieć taką funkcje w sterowniku. Przy każdym zasypywaniu wchodzisz w menu i zaznaczasz funkcje "zasobnik pełny". Zapytacie a skąd on wie kiedy jest pusty. A no stąd że na wstępie przechodzimy kalibrację. Wciskamy opcje zasobnik pusty, ładujemy do fulla, zaznaczamy zasobnik pełny i na podstawie zliczonych obrotów ślimaka sterownik przelicza "pełność" zasobnika na procenty

  • #38 15 Gru 2016 23:51
    rohdamn
    Poziom 12  

    Dzięki Xpaweł za wyjaśnienie. Sprytna metoda i chyba wystarczająco dokładna, żeby nie schodzić do pieca co 2 dni w celu sprawdzenia pozostałego paliwa. Wiesz może które sterowniki Tech-a posiadają wspominaną funkcję? Mój AG LUX (bez PID) niestety jej nie posiada.
    Inna sprawa, że parametru zliczającego obroty ślimaka próżno szukać w transmisji którą do tej pory udało się podsłuchać.

    Dodano po 1 [godziny]:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Powyżej pełne menu mojego sterownika. Występuje w nim funkcja kontrola zasobnika ale jest to raczej funkcja uruchamiająca alarm temperetury podajnika, niż kontrola ilości paliwa. Tymsamym włączenie jej nie skutkuje pojawieniem się funkcji kalibracji itp.

  • #39 16 Gru 2016 06:32
    Xpaweł
    Poziom 5  

    Pierwszy z brzegu jaki mi wpadł: http://www.defro.pl/download,pliki,217,217_instrukcja-defro-k1-v2.pdf


    Sam posiadam ST-48 zPID i on też nie posiada zliczania paliwa -_- mega mnie to irytuje... mam sterownik pokojowy a nie widzę ile zostało paliwa, po prostu ekstra...

    Co do samego sterownika to u mnie współpracuje z regulatorem ST-280 oraz sterownikiem zaworu mieszającego ST-61v4. Gdyby coś było potrzeba to piszcie, pomogę jak umiem. Chciałem kupić st-500 ale jego cena raz że za wysoka, a dwa bardzo ograniczona funkcjonalność

  • #40 16 Gru 2016 07:07
    uzi008
    Poziom 10  

    U mnie ST-450 zPID posiada tą funkcję , ale szczerze powiem nie jest za dokładna.

  • #41 16 Gru 2016 08:28
    kebrzyk
    Poziom 11  

    No u mnie w ST-730zPID też nie ma opcji dotyczącej zasypywanego zasobnika. Nie wiem dlaczego tylko "wybrańcy" to mają.
    Gdyby w transmisji udało się odnaleźć parametr mówiący o ilości obrotów ślimaka to można by spróbować to wyliczyć. Jak ktoś podał w postach przeze mnie dołączonych wyżej, na 1kg paliwa ślimak wykonuje 5 obrotów. Tylko nawet jeśliby się udało odnaleźć taki parametr to jak go resetować przy zasypie, żeby zawsze liczył od zera?

  • #42 27 Gru 2016 13:05
    szczukot
    Poziom 13  

    Witam

    Mam sterownik ST-480 PWM
    Chciałem się dołączyć do analizy sygnału, ale poległem już na samym początku :(
    wyjście mam RJ12, i zwarty pin 2-4 oraz 5-6.
    A ogólnie między pinami mam napięcia rzędu 6 lub 13 V ! Rozumiem, że jest to typowy RS232 ?
    1) Nie mam pojęcia jak zidentyfikować RX,TX,GND
    2) Do analizy mam tani saleae. A on chyba może brać maks 5V na wejściach. rozumiem, że musze dokupić konwerter rs232-TTL i wstawić między analizator a sterownik TECH ?

    pozdrawiam
    Fantom

  • #43 27 Gru 2016 17:03
    rohdamn
    Poziom 12  

    Udało mi sie podsłuchać transmisję powrotną pomiędzy ethernetowym ST-505 i sterownikiem AG-LUX. Wygląda na to że ST-505 wysyła jedynie potwierdzenie podstawowych parametrów sterownika AG-LUX. Cyklicznie wysyłana jest ta sama ramka:

    Code:

    0226FFF401F60034028E003002980F2D029900020218D8A5


    0226RAMKA: początek
    FFF4(65524)moduł ethernet
    01F6Ustawiona temperatura CO0034(52)52
    028EUstawiona temperatura CWU0030(48)48
    0298Godzina regulatora0F2D(3885)15:45
    0299Dzień tygodnia regulatora0002(2)wtorek
    0218RAMKA: koniec [suma kontrolna]D8A5(55461)CRC: #D8A5


    ...inna sprawa, że właśnie tylko wartości w ramce mogę edytować poprzez stronę internetową Defro, do sterowania kotłem przez internet.

    Nadal staram się rozgryźć obliczanie CRC16 w ramce, niestety topornie to idzie.
    Ramka jest bardzo podobna do MODBUS RTU, niestety wyliczane CRC zgodnie ze standardem nie pasuje w żaden sposób. Próbowałem zmienić standardową XOR-owaną wartość 0xA001 w całym zakresie od 0000-FFFF aby dopasować wynik CRC16 do właściwej sumy z ramki, niestety bez pozytywnego rezultatu. To samo z początkowym zapełnieniem rejestru wartością 0xFFFF.
    Tutaj link do ciekawego opracowania na temat standardu MODBUS http://eia.pg.edu.pl/documents/184139/30690935/PSI2015W4%20-%20Modbus.pdf Może znajdzie się ktoś kto pomoże w tej kwestii? Może reverse engineering CRC16?


    Dla wszystkich którzy chcą zacząć "podsłuchiwać" ramki, opiszę jak ja to robię. Uprzedzam, że robicie to na własną odpowiedzialność i nie odpowiadam za ewentualne uszkodzenia sprzętu:


    Potrzebne elementy:
    - komputer, najlepiej laptop przenośny z portem USB i Win XP
    - analizator stanów logicznych Saleae lub podobny link: http://allegro.pl/listing/listing.php?sg=0&order=p&string=saleae&bmatch=s0-ele-1-4-1018&price_to=50
    - program ze strony Saleae link: https://www.saleae.com/downloads
    - przewód RS (wtyk RJ12, 3 żyłowy przewód, 3 końcówki żeńskie, zaciskarka)

    Wykonuję przewód:
    zaciskam na końcówce przewód 3 żyłowy według schematu (patrząc od góry na złącza w RJ12 - przewód wchodzi od dołu)
    Code:

    123456
    ||||||
    R.TG..

    T-Tx-sterownika (ok 1V)
    G-Ground-masa
    R-Rx-sterownika (ok 8V)


    Instaluję program:
    Podłączam przewód (wtyk RJ12 do kotła, wolne końce do Saleae G-GND, Tx-kanał CH1, USB Saleae do kompa). Na Saleae zaświeca się dioda zielona i czerwona.
    Ustawiam na sterowniku kotła sterownik pokojowy TECH, oraz moduł ethernet.

    Odpalam program Saleae:
    Ustawienia transmisji:
    -klikam w strzałki obok Start i ustawiam 50 kS/s, Logic, ok
    -analyzers "+", Async Serial, 0 Channel, 9600 bit Rate, use autobaud, 8 bit per transfer, 1 stop bit, no parity bit, least significant bit send first, inverted, special none

    Klikam Start odczytu i czekam kilka chwil przełączając różne opcje na sterowniku. U mnie akurat do momentu wyjścia z menu sterownika do panelu podstawowego żadna nowa ramka nie wychodzi, więc za każdą zmianą opcji muszę wychodzić do ekranu podstawowego i odczekać kilka sekund.

    Notuję sobie w tym czasie np. uruchomienie podajnika, czy inne włączane opcje.

    Zatrzymuję zapisywanie i w oknie danych pojawiają mi się odczytane wartości.

    Eksportuję dane ramek: decoded protocols->export search results->untitled.csv
    Otworam untitled.csv np w EditPlus, Notepad++, zaznaczam wszystko ctrl+a, ctrl+c

    Wklejam ramki do skryptu dekodującego: strona www http://dzien.net/tech/index.php, start
    Wklejam wcześniej skopiowane dane ctrl+v do pola tekstowego, wpisuję nazwę sterownika, i klikam SPRAWDŹ.

    Jeżeli z moich notatek wynika zmiana jakiegoś parametru to szukam go w wynikach i jeżeli nie jest znany, dopisuję do bazy rozpoznane wartości.
    Każdy kolejny kto wprowadzi ramkę z podobnymi wartościami ujrzy znane już dane. Można sobie też wyświetlić słownik już znanych parametrów klikając w SŁOWNIK.

    To tyle :)

  • #44 27 Gru 2016 17:17
    szczukot
    Poziom 13  

    No z chęcią bym też tak zrobił, ale napięcia na sterowniku mam dużo wyższe :( Więc nie mogę podłączyć do Saleae.
    1) Czy u Ciebie też pin 2 i 4 oraz 5 i 6 są zwarte ?
    2) Podajesz te 8 V na wejście Saleae jak badasz nadawanie z st505 ?
    3) W jakiej postaci dokładnie trzeba wklejać ramki do Twojego skryptu ? Ma to być ciąg typu "0226FF1A5045CE..." ? Nie udaje mi się zrobić takiego ciągu w eksporcie. W każdej linii zawsze mam jakieś czasy, nazwę protokołu itp. A wartości mogą być hex, bin, ascii tip ale nie w postaci FF tylko 0xFF. Muszę ręcznie to przeklepać (w excelku pobawic sie formulami itp) ?

    Pierwsze ramki dają sporo danych, ale żaden z parametrów się nie powtarza u Ciebie- mam same nowe. Będę musiał posiedziec i je poanalizować. A na dodatek każda kolejna jest inna niż poprzednia (nawet dfługość).
    Co do CRC, to może trzeba będzie sprawdzić, czy bajty początkowe i końcowe są w to wogóle wliczane ?? Bo w Satelu np tylko dane w środku są liczone do CRC.

    Fantom

  • #45 27 Gru 2016 20:31
    rohdamn
    Poziom 12  

    szczukot napisał:

    1) Czy u Ciebie też pin 2 i 4 oraz 5 i 6 są zwarte ?

    Tak, potwierdzam. U mnie również te piny są zwarte po podłączeniu do kotła przewodu. Jak pisałem wcześniej mam również przewód RS oryginalny dostarczony z ST-505, w którym przewód jest cztero żyłowy.

    Code:

    Connector A (RJ12)
    123456
    ||||||
    y.gw.b

    Connector B (RJ12)
    123456
    ||||||
    y.gw.b



    y-yellow
    g-green
    w-white
    b-brown
    .-null


    szczukot napisał:

    2) Podajesz te 8 V na wejście Saleae jak badasz nadawanie z st505 ?

    No tak, podaje te 8V na CH1 i klon Saleae nie zwariował tylko odczytał ramki. W sumie to zaryzykowałem jego utratę :-)

    szczukot napisał:

    3) W jakiej postaci dokładnie trzeba wklejać ramki do Twojego skryptu ? Ma to być ciąg typu "0226FF1A5045CE..." ? Nie udaje mi się zrobić takiego ciągu w eksporcie. W każdej linii zawsze mam jakieś czasy, nazwę protokołu itp. A wartości mogą być hex, bin, ascii tip ale nie w postaci FF tylko 0xFF. Muszę ręcznie to przeklepać (w excelku pobawic sie formulami itp) ?

    Możesz śmiało wkleić to co wychodzi z eksportu do .csv. Skrypt powinien sobie poradzić z odfiltrowaniem właściwych wartości, a jeżeli nie, to napisz na priva z tym co wklejasz, a postaram się szybko uwzględnić poprawki.

    szczukot napisał:

    Co do CRC, to może trzeba będzie sprawdzić, czy bajty początkowe i końcowe są w to wogóle wliczane ?? Bo w Satelu np tylko dane w środku są liczone do CRC.

    To CRC to dla mnie nie lada zagadka, każda podpowiedź cenna. Można też samemu spróbować się pobawić w przestawianie wartości ramki i wyliczanie CRC16 MODBUS http://dzien.net/tech/index.php?baza=crc

  • #46 27 Gru 2016 20:45
    szczukot
    Poziom 13  

    No to co do podłączenia to jasne w takim razie.
    123456
    | | | | | |
    y. g w .b

    1- TX
    2,4- GND
    3 - RX
    5,6 - VCC

    Kilka ramek dla próby wstawiłem. Są w logach. Nie są krótkie i żadne dane z nich nie są w słowniku. Będę więc musiał posiedzieć i pobawić się.
    Co do crc to kilknaście minut zabawy nie dało żadnego rezultatu. Trzeba by znaleźć ramkę na maksa krótką do analizy. Najmniejszą jaką do tej pory widzę u Ciebie to 0226 FFF4 0218 A1DE

    Fantom

  • #47 28 Gru 2016 18:27
    rohdamn
    Poziom 12  

    Dzisiaj otrzymałem konwerter RS232-TTL i udało mi się podsłuchać całą transmisję pomiędzy AG-LUX i ST-505.

    Transmisja AG-LUX posiada zbyt niskie napięcie aby konwerter je wyłapał, więc podłączyłem Tx poza nim. Parametry transmisji podawałem wcześniej.
    Co do transmisji ST-505, to uwaga, w transmisji zmieniony musi być parametr na Not Inverted.

    Każdego kto chce przeanalizować te ramki zapraszam do pobrania programu Saleae https://www.saleae.com/downloads oraz podsłuchanych danych z załącznika.

  • #48 28 Gru 2016 18:39
    szczukot
    Poziom 13  

    Pytanko : po co kupiłeś teraz ten konverter ? Już wcześniej podłączałeś te 8V pod saleae chyba ?
    Ja o nim pisałem kilka dni temu, ale pisałeś, że podpiąłeś bez konwertera i chodziło bez uszkodzenia analizatora. Tak swoją drogą, znalazłem w dokumenacji, że analizuje do 5V, ale mozna podłączyć do 25V chyba. Więc te 8V to bezpieczne jest.

    Nie czaje nic z tej komunikacji. ST505 wysyła tylko co jakiś czas jeden bajt nic nie mówiący ?

    Fantom

  • #49 28 Gru 2016 20:00
    rohdamn
    Poziom 12  

    Konwerter zamówiłem jeszcze przed świetami, więc przed wpięciem analizatora bezpośrednio. Nie miałem pewności czy analizator nie zostanie uszkodzony. Podpinalem go wcześniej na dwa kanały bez konwertera i drugi kanał od ST505 nie działał, stąd pomysł, że byćmoże analizator ma zabezpieczenie odfiltrowujące sygnały powyżej wartości dla niego bezpiecznych. Później postanowiłem podłączyć sam kanał Rx do analizatora na Ch1 i zadziałał. Ten właśnie opisałem w poprzednim poście. Dzisiaj po dotarciu konwertera mogłem spokojnie podpiąć obydwa kanały Ch1 i Ch2 czytając wymianę informacji pomiędzy sterownikiem i ST505 w czasie. Nie wiem dlaczego sygnał Rx bez konwertera na Ch2 analizatora nie pokazywał wyników. Tak czy inaczej myśle ze parametry transmisji o których pisałem wcześniej zmienił konwerter i oryginalnie są tak samo ustawione na "Inwerted".

  • #50 28 Gru 2016 20:03
    tzok
    Moderator Samochody

    Saleae mają bufor, który chroni układ przed zniszczeniem, ale prawidłowe RS232 ma +9V dla stanu niskiego i -9V dla stanu wysokiego, stąd dla Saleae konieczna była inwersja stanów. Saleae 8 przyjmuje napięcia w zakresie 0..5V ale na jego wejścia bezpiecznie można podać napięcie z przedziału -25..25V.

  • #51 28 Gru 2016 20:46
    rohdamn
    Poziom 12  

    szczukot napisał:

    Nie czaje nic z tej komunikacji. ST505 wysyła tylko co jakiś czas jeden bajt nic nie mówiący ?


    Zmieniłem wersje oprogramowania i jeszcze raz zapisałem komunikację. Plik w poprzednim poście wymieniłem więc sprawdź teraz czy zaczytał się poprawnie. Komunikacja od ST505 to pełna ramka od 0226 do 0218+CRC - należy zmienić ustawienia w zakładce Analyzers dla kanału ST505 na Not Inverted aby ramki były poprawnie wyświetlane.

  • #52 31 Gru 2016 11:28
    uzi008
    Poziom 10  

    Witam
    W załączniku kilka ramek z st-450zPID
    W dwóch uaktywniłem funkcję mierzenia ilości groszku w podajniku(podajnik pełny) i w trakcie sczytywania zresetowałem na 0%(podajnik pusty).
    Nie wiem czy tylko u mnie tak jest , że jak uaktywnię regulator pokojowy tech (bez podłączania go , ze względu że go nie posiadam) aby sczytać ramki to na wyświetlaczu mruga temp.zadana CO na przemian ze wskazaniem -10 , tak jakby regulator pokojowy(którego niema) chciałby obniżyć temp.zadaną i sterownik wyłącza nadmuch i podawanie oraz przechodzi w stan nadzoru.

  • #53 01 Sty 2017 15:54
    rohdamn
    Poziom 12  

    Dzięki za dane. Przeanalizowałem je wszystkie. Kilka rzeczy wyjaśniły, a poprawki naniosłem do bazy.

    Wygląda na to że za stan napełnienia zasobnika odpowiada parametr 16F1. Wartość C800 (51200) oznaczałaby zasobnik pełny, natomiast wartość 0000 zasobnik pusty. Pytanie czy ta wartość zmiania się wraz ubywaniem opału w zasobniku, czy jednak otrzymuje wartość zerojedynkową? Prośba o ramki z informacją o aktualnym zapełnieniu zasobnika.
    Wraz z tym parametrem występuje 16F2 - trudno wyczuć czym może być, bo nie zmienia stanu o wartości 0. Czy możesz zrzucić ramkę podaczas pracy ślimaka doprowadzającego opał? (chociaż tutaj raczej sprawdza się parametr 1587)

    Pytanie jaka temperatura zewnętrzna panowała podczas pomiarów?
    Masz parametr 1681, który zmienia swoje wartości a więc jak sądzę masz czujnik temp. zewn. (potrzebny do pomiarów dla PID). Wartości jakie przyjmuje to FFEC, FFD8, FFE2. Pytanie jakie temp. zewnętrzne panowały podczas pomiaru? Ewentualnie jakie zmierzone wartości wskazywał sterownik?

    16EF - parametr występuje tylko w ramce komunikacji z regulatorem Tech i wydaje się że jest to kolejny numer zestawu danych wysyłanych ze sterownika Tech dla zaworów (brak regulatora dlatego są wartości zerowe).

    Co do zaworu mieszającego, którego pracę u Ciebie fajnie widać, ciekawę czego dotyczy parametr 1680 który u Ciebie ustawiony jest na 1. czy może to być praca siłownika lub coś podobnego związanego z tym zaworem? Wprowadzone ustawienie to 45%, a aktualne 52% sugerowałoby stan pracy. Dla potwierdzenia prośba o wysłanie ramki gdy wartość ustawiona i aktualna będą takie same.









    16C2Adres zaworuFFF1(65521)65521
    167FZawór ustawienie wprowadzone002D(45)45%
    16C3minMax zaworu630A(25354)10-99 °C
    1614Temperatura zaworu0190(400)40.0 °C
    1624Typ zaworu0001(1)zawór CO
    15ACProcent otwarcia zaworu0034(52)52%
    16800001(1)


    Parametr 1684 wskazuje cały czas FFF6. Nie mam pojęcia co to mogłoby być. Wygląda jak adres jakiegoś urządzenia gdyż jego wartość nie zmienia się w czasie.

    W jakim trybie pracuje Twój sterownik? Parametr 157C wskazuje 0052 a tego jeszcze nie mamy w bazie. Aktualnie mamy z ST-730zPID stan pracy jako 0002. Możliwe że nie jest to tan sterownika a regulatora/zaworu.


    uzi008 napisał:

    Nie wiem czy tylko u mnie tak jest , że jak uaktywnię regulator pokojowy tech (bez podłączania go , ze względu że go nie posiadam) aby sczytać ramki to na wyświetlaczu mruga temp.zadana CO na przemian ze wskazaniem -10 , tak jakby regulator pokojowy(którego niema) chciałby obniżyć temp.zadaną i sterownik wyłącza nadmuch i podawanie oraz przechodzi w stan nadzoru.

    U mnie nie ma takiej sytuacji. Sądzę, że taki stan rzeczy powoduje PID w Twoim sterowniku, który stara się dostosować do parametrów jakie otrzymuje od regulatora TECH - a tych brak. Włączając obsługę regulatora informujesz sterownik, że ma go brać pod uwagę w swoich obliczeniach, stąd jego zachowanie - ale to tylko moja teoria.



    Cały czas wracam do tego nieszczęsnego CRC:
    Poniżej zamieszczam najkrótsze ramki jakie do tej pory wspólnie udało się odczytać z różnych sterowników:

    Code:

    0226 FFFA           0218 48A0
    0226 FFF4           0218 A1DE
    0226 FFF4 0225 0000 0218 00C1
    0226 FFF4 1610 0001 0218 1F16
    0226 FFF4 1610 0000 0218 0E9F
    0226 0000 0225 0000 0218 4F5D
    0226 0000 029C 0000 0218 5901
    0226 3039 021F 0000 0218 F8EC   


    Ktoś? Coś?

  • #54 02 Sty 2017 06:37
    uzi008
    Poziom 10  

    Witam
    To może odpowiem na tyle ile się znam

    rohdamn napisał:
    Wygląda na to że za stan napełnienia zasobnika odpowiada parametr 16F1. Wartość C800 (51200) oznaczałaby zasobnik pełny, natomiast wartość 0000 zasobnik pusty. Pytanie czy ta wartość zmiania się wraz ubywaniem opału w zasobniku, czy jednak otrzymuje wartość zerojedynkową? Prośba o ramki z informacją o aktualnym zapełnieniu zasobnika.

    Na wyświetlaczu ta wartość zmienia się od 100% do 0% czyli prawdopodobnie jest wyliczana , tak jak tu już ktoś wspomniał z ilości obrotów ślimaka.
    Postaram się dać ramki z innymi wartościami niż tylko 0 i 100.
    rohdamn napisał:
    Pytanie jaka temperatura zewnętrzna panowała podczas pomiarów?
    Masz parametr 1681, który zmienia swoje wartości a więc jak sądzę masz czujnik temp. zewn. (potrzebny do pomiarów dla PID). Wartości jakie przyjmuje to FFEC, FFD8, FFE2. Pytanie jakie temp. zewnętrzne panowały podczas pomiaru? Ewentualnie jakie zmierzone wartości wskazywał sterownik?

    Parametr 1681 gdy przyjmował te trzy wartości , sterownik wskazywał temp. -6st. W późniejszym czasie gdy robiłem zrzut parametr 1981 wartość 0000 temp. zew. 0 st. Co do czujnika zewnętrznego to jest on podłączony , mierzy jak widać temp.zew, ale wyłączyłem tak zwaną przez producenta "pogodówkę" i sterownik nie bierze go pod uwagę przy ustawieniach.
    Gdy "pogodówka" jest włączona steruje zaworem 4-ro drogowym w zależności od tem zew.
    rohdamn napisał:
    Co do zaworu mieszającego, którego pracę u Ciebie fajnie widać, ciekawę czego dotyczy parametr 1680 który u Ciebie ustawiony jest na 1. czy może to być praca siłownika lub coś podobnego związanego z tym zaworem? Wprowadzone ustawienie to 45%, a aktualne 52% sugerowałoby stan pracy. Dla potwierdzenia prośba o wysłanie ramki gdy wartość ustawiona i aktualna będą takie same.

    Co do tych ustawień to raczej coś nie tak , moim zdaniem parametr 167F podaje nie wartość procentową a temp. na którą zawór jest ustawiony( właśnie ustawiony u mnie jest na 45st i do tego dąży). A parametr 1680 , może właśnie wskazywać na obrót siłownika(może akurat wtedy pracował)
    rohdamn napisał:
    Parametr 1684 wskazuje cały czas FFF6. Nie mam pojęcia co to mogłoby być. Wygląda jak adres jakiegoś urządzenia gdyż jego wartość nie zmienia się w czasie.

    Nie mam jakiś dodatkowych urządzeń , tylko podstawowe tj. dwie pompy , zawór mieszający z siłownikiem , trzy czujniki temp (za zaworem , powrotu , CWU) i czujni zewnętrzny.
    rohdamn napisał:
    W jakim trybie pracuje Twój sterownik? Parametr 157C wskazuje 0052 a tego jeszcze nie mamy w bazie. Aktualnie mamy z ST-730zPID stan pracy jako 0002. Możliwe że nie jest to tan sterownika a regulatora/zaworu.

    Tak jak pisałem wcześniej po włączeniu opcji reg.pok.TECH sterownik wchodzi w tryb nadzoru (i czeka aż temp spadnie o te 10st)

  • #55 02 Sty 2017 09:01
    szczukot
    Poziom 13  

    rohdamn, jesteś pewny co do tych ramek, że na pewno takie sa i sa prawidłowe :
    0226 FFFA 0218 48A0
    0226 FFF4 0218 A1DE
    0226 FFF4 0225 0000 0218 00C1
    0226 FFF4 1610 0001 0218 1F16
    0226 FFF4 1610 0000 0218 0E9F
    0226 0000 0225 0000 0218 4F5D
    0226 0000 029C 0000 0218 5901
    0226 3039 021F 0000 0218 F8EC
    ?

    Bo wybierając niektóre z nich modele istnieją, ale jak już z 4 się weźmie to lipa.

    Może są wykorzystane algorytmy sprzętowe ? Np z kontrolera ethernetowego (http://ww1.microchip.com/downloads/en/devicedoc/39662a.pdf) lub z ARMa (http://www.st.com/content/ccc/resource/technical/document/reference_manual/59/b9/ba/7f/11/af/43/d5/CD00171190.pdf/files/CD00171190.pdf/jcr:content/translations/en.CD00171190.pdf)
    Ale oba liczą 32 bitowe sumy więc to chyba tez nie tędy droga :(

    Fantom

  • #56 02 Sty 2017 11:41
    rohdamn
    Poziom 12  

    szczukot napisał:
    rohdamn, jesteś pewny co do tych ramek, że na pewno takie sa i sa prawidłowe

    Nie mam powodu wątpić w ich poprawny odczyt, ponieważ każda z nich w odczycie miała poprawny początek 0226 i koniec 0218.
    Dodatkowo można sprawdzić pozostałe odczytane do tej pory ramki: http://dzien.net/tech/index.php?baza=ramki

    Może warto w analizie skupić się na ramkach do siebie podobnych, różniących się jednym parametrem, jak:
    Code:

    0226 FFF4 1610 0001 0218   1F16
    0226 FFF4 1610 0000 0218   0E9F

    W tym przykładzie różnica w danych to tylko jeden bit, a wartość CRC jest znacząco różna....

    Code:

    0226 FFFA 0218   48A0
    0226 FFF4 0218   A1DE

    Tutaj podobnie, różnica to FA i F4.

    Code:

    0226 FFF4 0225 0000 0218   00C1
    0226 0000 0225 0000 0218   4F5D

    W tym przykładzie ciekawe jest, że wysoka wartość FFF4 daje niską wartość CRC 00C1 a ta sama wartość niska 0000 daje wysokie CRC 4F5D....


    Tutaj mam link do kalkulatora z możliwością konfiguracji http://www.zorc.breitbandkatze.de/crc.html
    Data sequence należy wpisywać w takiej formie: %02%26%FF%FA%02%18

    Typowe wartości polynominal dla CRC-16 mamy tutaj: https://en.wikipedia.org/wiki/Polynomial_representations_of_cyclic_redundancy_checks

  • #57 02 Sty 2017 11:48
    szczukot
    Poziom 13  

    No ja już te ramki pełnym reverse-crc robiłem. Czyli niby dla każdej kombinacji wartości początkowej i wszystkich mozliwych wielomianów - lipa. To nie będzie żaden CRC16 raczej :(

    Fantom

  • #58 11 Sty 2017 08:05
    Kedzierski
    Poziom 5  

    Może odejdę troszkę od wątku ale wrzucę garść może przydatnych informacji o st-500:
    Całość w wersji: ethernut 4.8.7.0
    Jeśli się nie mylę to może coś podobnego do MMNET01, ATmega 128A.

    Więcej informacji można znaleźć na www*.*propox.*com*/index.php?p118,minimoduly
    Instrukcja do płyty tutaj:
    www*.*propox.*com*/download/docs/MMnet01_en.pdf

    Odpytać ST-500 można np. zwykłym Linux'owym curl'em:

    curl "http*: //*192.168.0.100/user/cgi-bin/edition.cgi" -H "Authorization: Basic XXXX" -H "Origin: http*://*192.168.0.100*" --data "gt=501,742,502,764,654,511,510,500,581,761,664,665,513,515,546,547,531a,512a,880,559,874,873a,873b,826,652,760,668,548,759,898,790,791,827,531,873,"

    Oczywiście należy zmienić adres IP na swój oraz "Authorization: Basic XXXX". Dane autoryzacyjne uzyskać można z przeglądarki (analizuj element) lub wiresharkiem.

    W zwrocie dostaniemy coś takiego:
    501_690,742_430,502_68,654_46,511_0,500_2,581_1,761_20,664_3355,665_1,513_1,515_0,546_0,547_1,531_20,512_1,826p1_4581,652p1_260,760p1_1,668p1_2,548p1_17,759p1_28,790_20525,791_19240,827p1_14090,531_20,

    Można to zapisać do pliku obrobić grepem czy przez collected i najlepiej zapisać do bazy/rrd.
    Wykaz parametrów:
    500_2 // stan sterownika
    501_680 // temperatura co
    502_68 // zadana co
    511_0 // praca podajnika
    512_1 // praca wentylatora
    513_1 // praca pompy co
    515_0 // praca pompy cwu
    531_36 // bieg wentylatora
    543_5 // typ sterownika
    546_0 // praca pompa cyrkulacyjna
    547_1 // praca pompa podlogowa
    548p1_26 // procent otwarcia zaworu
    581_1 // tryb pracy pompy "Grzanie domu,Priorytet bojlera,Pompy równolegle,Tryb letni", '0,1,2,3'
    652p1_280 // temperatura zaworu
    654_46 // zadana cwu
    664_3371 // godzina
    665_2 // dzien tygodnia 'Niedziela,Poniedziałek,Wtorek,Środa,Czwartek,Piątek,Sobota', '0,1,2,3,4,5,6'
    668p1_2 // typ zaworu
    742_440 // temp cwu
    759p1_28 // zadana zaworu
    760p1_1 // funkcja zaworu
    761_10 // temperatura zewnetrzna
    790_20525 // minMAX CO
    791_19240 // minMAX cwu
    826p1_4581 // adres zaworu
    827p1_14090 // minMAX zaworu
    887_1
    903_0 // połaczenie moduł eth sterownik głowny "Brak,Sterownik główny jest odłączony", '0,1'

    Życzę owocnych zabaw :)
    Ps. skasujcie gwiazdki (*) bo nie mogę linków zamieszczać.

  • #59 13 Sty 2017 16:36
    rohdamn
    Poziom 12  

    W związku z tym, że chciałem ustawić powiadomienia o kończącym się węglu w zasobniku kotła, a mój sterownik nie wysyła ani informacji o obrotach ślimaka, ani o pozostałym zasypie, pomysł kolegi Kedzierski wydał się bardzo dobry do powyższego zastosowania.

    Poniżej przedstawię sposób w jaki udało się zrealizować cel powiadamiania o kończącym się opale (po prawdzie to o wygaszaniu pieca). Oczywiście każdy może przerobić sobie skrypt na powiadamianie o dowolnym parametrze otrzymywanym ze sterownika ST-500/ST-505.

    W kolejności:
    1. rejestracja na stronie ProwlApp - aplikacja odbierająca komunikaty i wyświetlająca je na ekranie urządzeń z iOS https://www.prowlapp.com/
    2. Wygenerowanie ApiKey w zakłądce KPI Keys
    3. Instalacja aplikacji na telefonie
    4. Zalogowanie się do RaspberryPi (ta sama sieć co ST-505)
    5. Wklejenie skryptu do pliku defro.sh

    Code:

    #!/bin/bash

    #parametry dla ST-500/ST-505
    ip="***IP od ST-505 lub ST-500***"
    auth="***zakodowane login:haslo w Base64***"
    parametry="1028,1029,1029a,1030,1030a,500,501,502,503,505,509,510,511,512,513,515,521,522,531,536,543,546,547,548,549,550,5500,5501,5502,5503,5511,5512,5513,5515,5531,5543,5547,5548,5559,5581,559,5648,5652,5654,5664,5665,5668,5742,5759,5760,5761,5790,5791,5806,5808,581,5814,5826,5827,5871,5880,5881,5887,648,652,654,664,665,668,742,759,760,761,764,769,785,786,790,791,802,806,808,817,826,827,835,867,869,871,873,873a,873b,874,880,887,898,899,903,"

    #prowl
    alarm="501_480" #ten parametr jeżeli jest równy odczytanemu następuje wysłanie powiadomienia
    apikey="***skopiuj ze strony Prowl***"
    komunikat="Spada temperatura CO! Dołóż węgla do zasobnika natychmiast!"

    #odczytywanie parametrów pieca Defro co 10 sek
    interwal=10


    a=0
    while [ "$a" == 0 ]; do

    #wszystkie znane parametry w dniu 13.01.2017
    echo >> defro
    curl "http://$ip/user/cgi-bin/edition.cgi" -H "Authorization: Basic $auth" --data "gt=$parametry" -s >> defro
    for i in $(tail -n 1 defro | sed "s/,/ /g")
    do
    echo "$i"
    #jeżeli temperatura spada tu wiadomość na telefon
    if [ $i = $alarm ];
    then
    curl "https://api.prowlapp.com/publicapi/add" --data "apikey=$apikey&application=kociol&event=Defro&priority=2&description=$komunikat" -s >> prowl
    perl -e 'sleep 120 - time % 120'
    echo
    echo "alarm niskiej temperatury"
    fi
    done
    echo ""

    perl -e 'sleep 10 - time % 10'
    done

    5. zmiana parametrów w skrypcie:
    IP-adres ip pod którym masz ST-505 lub ST-500,
    APIKEY-wygenerowany w Prowl apikey,
    AUTH-zakodowana nazwa i login do ST-505 w postaci Base64 (domyślnie jest 'user:' - bez hasła czyli dXNlcjo=) jeżeli zmieniałeś to skorzystaj z https://www.base64encode.org/ wpisując login:haslo i klikając w ENCODE
    6. zapisanie skryptu pod nazwą 'defro.sh' i uruchomienie komendą 'bash defro.sh'

    Skrypt co 10 sekund odczytuje parametry z ST-505 i wyświetla je na ekranie, jeżeli parametr alarm występuje w odczytanych wartościach następuje wysłanie powiadomienia na telefon o treści wpisanego komunikatu.
    Dodatkowo w pliku defro przechowuje wszystkie odczytane wartości, a w pliku prowl wszystkie komunikaty (odpowiedzi).

    To tyle.
    Podziękowania dla Kedzierski.

  • #60 20 Sty 2017 12:07
    Ntp
    Poziom 12  

    Panowie szkoda by było aby tak super zapowiadający się wątek umarł. Sam mam w kotle sterownik ST-480 zPID i chciałbym jakoś zdalnie odczytywać (a jeszcze lepiej móc zmieniać) jego parametry. Miałem kupić moduł ST-505 ale jak się dowiedziałem (od firmy Tech), że moja wersja sterownika nie będzie się komunikowała za pomocą nowej strony emodul.pl tylko ze starą (i archaiczną) zdalnie.technsterowniki.pl to mi się odechciało wydawać prawie pięć stów. Jakieś pojęcie o elektronice mam, ale oscyloskopu ani innego analizatora brak... Przejściówki usb/rs mam, jakieś maxy232 też mi się gdzieś walają. Jeśli mógłbym jakoś pomóc to tylko dajcie znać jak.