Forum eSterownik.pl Biblioteka w Pythonie do obsługi sterownika Subskrybuj | ||||
Pierwsza stronaPoprzednia strona10 / 18Następna stronaOstatnia strona | ||||
|
||||
uzi18
|
Bruliego, wiem ze troche OT. python nie jest dla mnie wiekszym problemem.
Zastanawiam sie za to czy nie zrobic w koncu swojego sterownika do pieca, widzac ze jest tu troszke chetnych do uruchomienia wlasnych roziwazan ..., mozna by stworzyc jakas nowa platforme sprzetowo - programowa. Powiedzmy w postaci modulu zamiennego dla plytki bruliego. Tak jak widze to teraz to z tym wysylaniem zapytan do sterownika po ethernecie to jakas atrapa jest. |
|||
|
||||
Stan
|
Dokładnie tak, ale w temacie o TRK wyjaśniłem mój pogląd dlaczego uważam że puki co tak jest dobrze.
Do RPi łatwo jest dorobić końcówki wykonawcze tak więc po dopracowaniu oprogramowania droga jest otwarta. |
|||
|
||||
uzi18
|
Dla chętnych zaktualizowana wersja pliku sterownik.py: wklejka
Udostępnione na 24h. Może ktoś teraz przetestuje temat z przerwaniem połączenia w trakcie gdy jest uruchomiony podajnikiem/dmuchawa? Widziałem że były z tym jakieś problemy? |
|||
|
||||
Stan
|
A co tam konkretnie poprawiłeś (zmieniłeś) ?
|
|||
|
||||
uzi18
|
Troszke oczyscilem:
diff --git a/sterownik.py b/sterownik.py index 629565f..8c47674 100644 --- a/sterownik.py +++ b/sterownik.py @@ -23,10 +23,10 @@ from base64 import b64encode class sterownik: s_address = '127.0.0.'; - s_port = 80; s_user = 'admin'; s_password = 'admin'; s_statusdata = None; + h = httplib2.Http() def __init__(self, address, user, password): """Konstruktor. Podajemy adres sterownika (adres ip), login i hasło""" @@ -46,19 +46,14 @@ class sterownik: 254, 207,156, 173,58, 11, 88, 105,4, 53, 102, 87, 192, 241,162, 147,189, 140,223, 238, 121, 72, 27, 42, 193, 240,163, 146,5, 52, 103, 86, 120, 73, 26, 43, 188, 141,222, 239, 130, 179,224, 209,70, 119,36, 21, 59, 10, 89, 104,255, 206,157, 172]; + self.h.add_credentials(self.s_user, self.s_password) def getStatus(self): """Pobiera status ze sterownika i zapamiętuje go""" try: - #conn = httplib.HTTPConnection(self.s_address) - #userAndPass = b64encode(self.s_user + ":" + self.s_password).decode("ascii") - #headers = { 'Authorization' : 'Basic %s' % userAndPass } - #conn.request("GET","/?com=02010006000000006103", headers=headers) - #res = conn.getresponse(); - h = httplib2.Http() - h.add_credentials(self.s_user, self.s_password) - res, content = h.request("http://" + self.s_address + "/?com=02010006000000006103", "GET", headers={'Connection': 'close'} ) + res, content = self.h.request("http://" + self.s_address + "/?com=02010006000000006103", "GET") + if (res.status == 200): txt = str(content); txt = txt[txt.index('[' + 1:txt.index(']'] @@ -76,15 +71,10 @@ class sterownik: def _getRequest(self, req): try: - h = httplib2.Http() - h.add_credentials(self.s_user, self.s_password) - res, content = h.request("http://" + self.s_address + "/?com=" + req, "GET" , headers={'Connection': 'close'}) + #h = httplib2.Http() + #h.add_credentials(self.s_user, self.s_password) + res, content = self.h.request("http://" + self.s_address + "/?com=" + req, "GET") - #conn = httplib.HTTPConnection(self.s_address) - #userAndPass = b64encode(self.s_user + ":" + self.s_password).decode("ascii") - #headers = { 'Authorization' : 'Basic %s' % userAndPass } - #conn.request("GET","/?com=" + req, headers=headers) - #res = conn.getresponse(); if (res.status == 200): return ("Ok"); else: |
|||
|
||||
zagata
|
Proszę o dodanie do Biblioteki funkcji do odczytu czasu pracy podajnika.
|
|||
|
||||
uzi18
|
trzeba to wkleic na koncu pliku sterownik.py wynikiem jest czas w minutach (jesli ma byc w sekundach to trzeba skasowac "/60.0"):
def getCzasPodajnika(self): if (bool(self.s_statusdata)): return (self.s_statusdata[65] << 8 | self.s_statusdata[64]) / 60.0; dodane 2014-09-15 14:29Dla zainteresowanych update wklejka dodane metody: getCzasPodajnika() - zwraca ilosc minut pracy podajnika setTrybAuto(x) - ustawia tryb auto/manual , x = True lub False setIleProb(x) - podajemy ile razy probowac laczyc sie ze sterownikiem, x = ilosc (domyslnie 20) dodane funkcjonalnosci: kilukrotne laczenie sie do sterownika na wypadek bledu polaczenia lub braku poprawnej odpowiedzi sterownika skrypt nalezy podmienic z oryginalnym - wklejka wazna 7 dni. zapraszam do testow VERB: mozesz podeslac mi swoj skrypt do testow? |
|||
|
||||
konto usunięte
|
I ch bombki strzelił... wywala "odczyt statusu się nie powiódł, praca przerwana".
Nie da się używać po letnim postoju. Po jakiego diabła ES w ogóle udostępniało jakieś narzędzia, których nie ma zamiaru poprawiać ? Czas na przesiadkę. |
|||
|
||||
zagata
|
uzi18, dzięki, działa!
|
|||
|
||||
uzi18
|
Jakby cos jeszcze bylo potrzebne to daj znac poszukamy zobaczymy ...
dodane 2014-09-25 00:04VERB: zainwestuj w RPi na poczatek i polacz sie go ze sterownikiem adapterem RS232 - USB. Najstabilniejsze polaczenie jest przez biblioteke DarekB. Moze warto je polaczyc i rownolegle rozwijac. Teoretycznie roznia sie tylko sposobem polaczenia i rodzajem zapytan. |
|||
|
||||
konto usunięte
|
uzi18 napisał » 2014-09-25 00:04 Używam, a raczej używałem.. Najstabilniejsze polaczenie jest przez biblioteke DarekB. Nad RPI się zastanawiam, Stan ma poskładać do kupy coś samodzielnego. Jak mi wcześniej bezpiecznik strzeli, kupię inny, dobry, ciągle rozwijany ster. |
|||
|
||||
uzi18
|
Z Twoja pomocą mozemy cos dzialac. Wpierw dopracujemy sprawe tandemu RPi i sterownika
aktualnego, a równolegle bede szykował cos na boku sprzetowego. Cos na zasadzie modulu do Arduino aby bylo mozliwie proste, tanie i z przyszloscia. Plytka procka kosztuje ok 70 zl, modul ethernet z portem na karte mikro SD 35 zl. Pozniej przepisze sie sterownik.py aby obslugiwal nowy sprzet i wszystko bedzie grać bez ograniczeń jakie mamy teraz. |
|||
|
||||
konto usunięte
|
Ja się na sprzęcie nie znam.
Z algorytmem auto trza dać spokój, bo tak naprawdę nikogo to nie interesuje poza kilkoma zapaleńcami. A może wypłynie "samo" bo ktoś "myślał" i "wymyślił" ? Przy okazji pytanie do ES: dlaczego nie mogę usunąć konta ? Przeprowadziłem kilka prób i jedynie ster wyleciał. Proszę o usunięcie konta z forum, wraz z wpisami - tyle chyba możecie dla mnie zrobić. added 2014-09-25 12:58Jeszcze na koniec kawałek loga - temp min. 54,5 / zadana 55.0 / max 57 / moc w kagańcu 50-80%. Parametry auto "x". Kto kumaty, niech sobie działa. Moc: 80% czasPraca: x, dmuchawaMoc: x%, przedmuchPlus: x Thu Sep 25 12:22:29 2014. CO: 53.9°C. CWU: 52.6°C. Spaliny: 112.7°C. - Praca. Moc: 80% czasPraca: x, dmuchawaMoc: x%, przedmuchPlus: x Thu Sep 25 12:23:42 2014. CO: 54.2°C. CWU: 52.6°C. Spaliny: 113.7°C. - Praca. Moc: 80% czasPraca: x, dmuchawaMoc: x%, przedmuchPlus: x Thu Sep 25 12:24:55 2014. CO: 54.2°C. CWU: 52.6°C. Spaliny: 114.6°C. - Praca. Moc: 80% czasPraca: x, dmuchawaMoc: x%, przedmuchPlus: x Thu Sep 25 12:26:08 2014. CO: 54.5°C. CWU: 52.5°C. Spaliny: 114.9°C. - Praca. Moc: 80% czasPraca: x, dmuchawaMoc: x%, przedmuchPlus: x Thu Sep 25 12:27:21 2014. CO: 54.5°C. CWU: 52.5°C. Spaliny: 114.7°C. - Praca. Moc: 50% czasPraca: x, dmuchawaMoc: x%, przedmuchPlus: x Thu Sep 25 12:28:34 2014. CO: 54.9°C. CWU: 52.5°C. Spaliny: 114.2°C. - Praca. Moc: 60% czasPraca: x, dmuchawaMoc: x%, przedmuchPlus: x Thu Sep 25 12:29:35 2014. CO: 54.9°C. CWU: 52.5°C. Spaliny: 113.4°C. - Praca. Moc: 70% czasPraca: x, dmuchawaMoc: x%, przedmuchPlus: x Thu Sep 25 12:30:41 2014. CO: 54.9°C. CWU: 52.5°C. Spaliny: 110.2°C. - Praca. Moc: 50% czasPraca: x, dmuchawaMoc: x%, przedmuchPlus: x Thu Sep 25 12:31:50 2014. CO: 55.1°C. CWU: 52.5°C. Spaliny: 108.3°C. - Praca. Moc: 50% czasPraca: x, dmuchawaMoc: x%, przedmuchPlus: x Thu Sep 25 12:32:51 2014. CO: 55.3°C. CWU: 52.5°C. Spaliny: 107.7°C. - Praca. Moc: 50% czasPraca: x, dmuchawaMoc: x%, przedmuchPlus: x Thu Sep 25 12:33:52 2014. CO: 55.4°C. CWU: 52.5°C. Spaliny: 106.2°C. - Praca. Moc: 50% czasPraca: x, dmuchawaMoc: x%, przedmuchPlus: x Thu Sep 25 12:34:53 2014. CO: 55.4°C. CWU: 52.5°C. Spaliny: 105.0°C. - Praca. Moc: 50% czasPraca: x, dmuchawaMoc: x%, przedmuchPlus: x Thu Sep 25 12:35:54 2014. CO: 55.4°C. CWU: 52.5°C. Spaliny: 104.3°C. - Praca. |
|||
|
||||
mark3k
|
Rozumiem Twoje rozczarowanie brakiem zainteresowania wrzucenia dobrego algorytmu do sterownika przez ES. Gotowca podanego na tacy jak sądzę.
Sterowanie przez RPi czy cokolwiek innego ( u mnie router) zawsze będzie protezą. Wrzucenie lepszego algorytmu sterowania procesem spalania węgla w "starym" nie rozwojowym sterze nie jest w strefie zainteresowania ES. Bo kto kupi nowy wynalazek za kilka klocków. Nie rezygnuj jednak, bo może coś wspólnie wymyślimy. Pozdrawiam. Ps: logi które zapodałeś sugerują bardzo poprawne sterowanie spalaniem w kociołku. Gratuluję. Ja już także powoli skłaniam się do zakupu SPP. A może stanie się CUD ??? |
|||
|
||||
seba
|
VERB nie rozumiem Twojego rozgoryczenia. Zaprosiliśmy Was na spotkanie - testy, które miało potwierdzić działanie algorytmu - niestety nic z tego nie wyszło. Wspólnie ustaliliśmy, że przyjedziecie raz jeszcze. Niestety do kolejnego spotkania nie doszło.
Zaproszenie nadal jest aktualne. Jeśli tylko macie czas i ochotę zapraszam. Podtrzymuję również wcześniejsze ustalenia co do wprowadzenia działającego algorytmu do oficjalnej wersji softu. Będziecie widnieć jako autorzy algorytmu na stronie www oraz w instrukcji obsługi. |
|||
|
||||
uzi18
|
seba: czemu w trybie manualnym załącza się pompka CO? Jaki jest warunek do tego?
Myślałem, że w trybie manualnym, nic się samo nie dzieje. |
|||
|
||||
elezibi
|
uzi18 napisał » 2014-09-25 21:32 nie miałeś więcej niź 60 na kogle?seba: czemu w trybie manualnym załącza się pompka CO? Jaki jest warunek do tego? Myślałem, że w trybie manualnym, nic się samo nie dzieje. |
|||
|
||||
uzi18
|
Moze i mialem, a to nie mozna miec 60 stopni na kotle?
Przykladowo nastawa CO 55, na kotle 60, wiec po co sie pompka sama wlacza? Tryb Lato w dodatku. ... o CWU tak samo ... Ok teraz jest jasne ze pompy sa i tak sterowane automatycznie ze sterownika, wiec cała ta zabawa z pythonem o kant ... skoro nie mozna miec wladzy nad wszystkim. |
|||
|
||||
konto usunięte
|
seba napisał » 2014-09-25 20:23 Rozgoryczony jestem brakiem obiecanego wsparcia dla pythona. Algorytm działa, ale mam wątpliwości co do poprawnego działania w całym zakresie mocy - potrzeba auto-kalibracji, podobnie jak zrobiliście w grupowym. Niestety podpięcie trendów w pętli jest pozbawione sensu, a threading i multiprocessing nie działają. VERB nie rozumiem Twojego rozgoryczenia. Zaprosiliśmy Was na spotkanie - testy, które miało potwierdzić działanie algorytmu - niestety nic z tego nie wyszło. Wreszcie mam trochę czasu, i sprzyjające testom warunki - mógłbym spokojnie testować, ale pojawiły się kłopoty z komunikacją - trzeba siedzieć przy kompie, i obserwować, a aż tyle czasu nie mam. seba napisał » 2014-09-25 20:23 Żyję z pracy najemnej, dość specyficznej - nie mogę odmówić pracy na okrągło, jeśli pracodawca tak sobie zażyczy.Wspólnie ustaliliśmy, że przyjedziecie raz jeszcze. Niestety do kolejnego spotkania nie doszło. seba napisał » 2014-09-25 20:23 Pogadam z Rajmundem. Ale nie chcielibyśmy niespodzianek jak za pierwszym razem - kocioł ma być taki, jaki klient kupuje do domu. Zaproszenie nadal jest aktualne. Jeśli tylko macie czas i ochotę zapraszam. seba napisał » 2014-09-25 20:23 Zima zweryfikuje, czy pomysł miałem dobry czy nie. Podtrzymuję również wcześniejsze ustalenia co do wprowadzenia działającego algorytmu do oficjalnej wersji softu. seba napisał » 2014-09-25 20:23 To akurat jest najmniej ważne, i mogłoby być kłopotliwe.Będziecie widnieć jako autorzy algorytmu na stronie www oraz w instrukcji obsługi. |
|||
|
||||
kowal
|
uzi18 napisał » 2014-09-25 21:32 seba: czemu w trybie manualnym załącza się pompka CO? Jaki jest warunek do tego? Myślałem, że w trybie manualnym, nic się samo nie dzieje. W trybie ręcznym jak pojawi się temp powyżej 60stC to załączane są pompy aby rozładować nadmiar ciepła. Spowodowane jest to sygnałami że użytkownicy rozpalają w ręcznym i zapominają przełączyć w auto |
|||
Pierwsza stronaPoprzednia strona10 / 18Następna stronaOstatnia strona | ||||