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

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

squizzy 15 Nov 2013 09:28 107562 335
Buderus
  • #31
    rohdamn
    Level 12  
    kebrzyk wrote:
    ...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.
  • Buderus
  • #32
    kebrzyk
    Level 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ć.

    
    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                              
    
  • #33
    rohdamn
    Level 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:
    
    
    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.
    
    [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:
    
    [nazwa] => Bieg wentylatora nadmuchu
    [hex] => 159B
    [0] => 69%
    [1] => 71%
    [2] => 72%
    [3] => 73%
    [4] => 70%
    [5] => 70%
    [6] => 67%
    [7] => 65%
    

    albo
    
    [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 wrote:
    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.
  • Buderus
  • #34
    kebrzyk
    Level 11  
    Bardzo interesują mnie parametry:
    [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
    rohdamn
    Level 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
    Xpaweł
    Level 6  
    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
    rohdamn
    Level 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]:

    Code: text
    Log in, to see the code


    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
    Xpaweł
    Level 6  
    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
    uzi008
    Level 11  
    U mnie ST-450 zPID posiada tą funkcję , ale szczerze powiem nie jest za dokładna.
  • #41
    kebrzyk
    Level 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
    szczukot
    Level 14  
    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
    rohdamn
    Level 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:

    
    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)
    
    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
    szczukot
    Level 14  
    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
    rohdamn
    Level 12  
    szczukot wrote:

    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.

    
    Connector A (RJ12)
    123456
    ||||||
    y.gw.b
    
    Connector B (RJ12)
    123456
    ||||||
    y.gw.b
    
    
    
    y-yellow 
    g-green 
    w-white 
    b-brown 
    .-null 
    


    szczukot wrote:

    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 wrote:

    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 wrote:

    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
    szczukot
    Level 14  
    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
    rohdamn
    Level 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
    szczukot
    Level 14  
    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
    rohdamn
    Level 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
    tzok
    Moderator of Cars
    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
    rohdamn
    Level 12  
    szczukot wrote:

    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
    uzi008
    Level 11  
    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
    rohdamn
    Level 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 wrote:

    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:

    
    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
    uzi008
    Level 11  
    Witam
    To może odpowiem na tyle ile się znam
    rohdamn wrote:
    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 wrote:
    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 wrote:
    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 wrote:
    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 wrote:
    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
    szczukot
    Level 14  
    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
    rohdamn
    Level 12  
    szczukot wrote:
    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:
    
    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....

    
    0226 FFFA 0218   48A0
    0226 FFF4 0218   A1DE

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

    
    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
    szczukot
    Level 14  
    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
    Kedzierski
    Level 8  
    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
    rohdamn
    Level 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
    
    #!/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
    Ntp
    Level 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.