Forum  eSterownik.pl  Biblioteka w Pythonie do obsługi sterownika Subskrybuj
First pagePrevious page12 / 18Next pageLast page
2014-09-29 21:55
  mark3k Posts: 484 Ostrzeżenie: 0
I tego się trzymaj.
Nie mam serca do programowania, ale jeśli będę umiał to pomogę.
2014-10-03 08:35
  Stan Posts: 2564 Ostrzeżenie: 0
Posty dotyczące TRK zostały przeniesione do jego wątku.
2014-10-03 10:57
  uzi18 Posts: 1346 Ostrzeżenie: 0
Miło. usun tez skrypt z 1 postu w TRK. wystarczy ze jest na serwerze, jeszcze ktos gotow uzywac starej wersji ;D
2014-10-03 11:25
  Stan Posts: 2564 Ostrzeżenie: 0
Racja, ponieważ w zasadzie jest po testach Twoich modyfikacji to można już to zrobić.
2014-10-05 14:32
  mark3k Posts: 484 Ostrzeżenie: 0
Nie pokazuj nam tych wykresów. Kociołek na algorytmie pracuje super . Nic dodać, nic ująć.
Szkoda, że możemy sobie tylko taki algorytm życzyć w sterowniku ecoal. Naprawdę szkoda.
Jesteś tym szczęśliwcem, który dostał od Verb-a skrypt. Gratuluję.
2014-10-29 01:37
  uzi18 Posts: 1346 Ostrzeżenie: 0
energotop: tylko nie daje to nam wartosci dodanej, ot mozemy sobie popatrzec

dodane 2014-10-29 00:37Do ES: kiedy doczekamy sie aktualizacji z tym zabezpieczeniem, które obiecaliscie?
2014-10-30 20:00
  waski4 Posts: 74 Ostrzeżenie: 0
Panowie czy dobrze sobie wymyśliłem, że moc chwilowa jest proporcjonalna do różnicy temp co i powrotu przy działającej pompie CO ? Jak tak to jak odczytać te temperatury z archiwum
2014-10-30 20:42
  krzy Posts: 800 Ostrzeżenie: 0
Q = m * cw * ( tz - tp )
Czyli masa, ciepło właściwe (4189,9J/kgK), temperatura zasilania i powrotu. Obliczasz ciepło czyli energię odnosząc ją do czasu w którym przepływa dana masa wody masz moc.
2014-10-30 21:39
  waski4 Posts: 74 Ostrzeżenie: 0
Dokładnej mocy nie potrzebuję chcę tylko mieć porównanie, że kocioł teraz produkuje moc ileś tam razy większą/mniejszą niż poprzednio, proszę więc o info jak mogę odczytać temperatury z archiwum
2014-10-30 22:01
  Stan Posts: 2564 Ostrzeżenie: 0
To nie takie proste, jeśli nie masz termostatów i pompa pracuje ze stałą wydajnością to są to wartości proporcjonalne, ale termostaty i pompa typu alpha pracująca w trybie auto uniemożliwi jakiekolwiek sensowne porównania, musiałbyś zainstalować ciepłomierz.
2014-10-31 00:08
  uzi18 Posts: 1346 Ostrzeżenie: 0
Aby cokolwiek liczyc musisz miec licznik wody np. wracajacej do kotła i temp. zasilania i powrotu.
2014-10-31 16:58
  waski4 Posts: 74 Ostrzeżenie: 0
U mnie jest stały przepływ wody przez kocioł, więc będzie proporcjonalnie tylko jak odczytać te temperatury z archiwum?
2014-10-31 19:46
  uzi18 Posts: 1346 Ostrzeżenie: 0
tu jest wszystko napisane
2014-11-04 20:59
  waski4 Posts: 74 Ostrzeżenie: 0
uzi18 napisał » 2014-10-31 18:46
No tak, dzięki.
2014-12-12 00:33
  uzi18 Posts: 1346 Ostrzeżenie: 0
ven: czy mozemy liczyc na dodanie zapytan pozwalajacych na uruchomienie dmuchawy i podajnika na okreslony czas? Niestestety ale python wytwarza pewne opoznienia.
Czy mozemy liczyc na dodanie zapytania ktore bedzie watchdogiem dla sterownika? - jesli w okreslonym czasie od jego wywolania nie zostanie ono ponownie wywolane to sterownik przejdzie w automat.

dodane 2014-12-11 23:33Prosze o odpowiedz, temat wisi już prawie rok.
2015-01-05 13:58
  majkels Posts: 4 Ostrzeżenie: 0
DarekB napisał » 2014-02-28 16:17
mateuszm napisał » 2014-02-27 11:51
A co z możliwością połączenia przez esterownik?



Nie wiem czy można takie rzeczy robić ale dodałem do tej biblioteki parę linii kodu i zrobiłem możliwość łączenia się ze sterownikiem przez platformę esterownik. 
Można też skrypt wywołać z linii komend podając id sterownika, opcjonalnie można podać login i hasło żeby połączyć się w trybie do odczyt - zapis.


skrypt do pobrania z  https://drive.google.com/file/d/0B1rjRhAXEGUoN3hTV2xHWXFpaGs/edit?usp=sharing

 


cześć,

próbuję zrobić port tej biblioteki do C#
i nie mogę rozgryźć logowania do platformy e-sterownik.
Dla urządzeń publicznych - ładnie pobiera mi się status.
Dla mojego kotła, dostaję error 400 - bad request - wynikający z braku zalogowania.
Grzebię w tym kodzie już parę godzin i nie kumam w jaki sposób przekazac login i hasło.

Czy ktoś może mi to trochę przybliżyć?
pozdrawiam,
Michał
-------------------------------------
aktualizacja: 14:30

w końcu skumałem
gdyby ktoś potrzebował wiedzieć:
żeby dostać się do urządzenia przez esterownik.pl trzeba
1. zalogować się do platformy
post na https://esterownik.pl/?p=get_modal
z 4 parametrami:
                values["cmd"] = "do_login";
                values["login"] = sUser;
                values["password"] = sPassword;
                values["redirect"] = "";

2. z powstałej odpowiedzi pobrać cookie o nazwie PHPSESSID
3. przekazać to session id w parametrze POST o nazwie sessid na adres
https://device.esterownik.pl/device/{device_id}/
zwrotnie powinien ustawić się cookie z id sesji dla tego połączenia
4. i wtedy można odczytać status urządzenia
https://device.esterownik.pl/device/{device_id}/?com=02010006000000006103


p.s. czy jest dostępna dokumentacja poszczególnych liczb zwracanych w statusie?

2015-01-05 16:59
  adkwapniewski Posts: 328 Ostrzeżenie: 0
rozgrzeb sobie updater masz tam ecoalbase.dll ze wszystkim ...
2015-01-06 00:08
  majkels Posts: 4 Ostrzeżenie: 0
adkwapniewski napisał » 2015-01-05 15:59
rozgrzeb sobie updater masz tam ecoalbase.dll ze wszystkim ...

grzebię, grzebię i nigdzie nie widzę ani DLLa, ani opisu komunikacji.
Jeśli możesz wrzuć gdzieś na sieć.

dzięki,
Michał
2015-01-06 13:05
  janusz Posts: 540 Ostrzeżenie: 0
majkels napisał » 2015-01-05 12:58

p.s. czy jest dostępna dokumentacja poszczególnych liczb zwracanych w statusie?

Nic mi nie wiadomo o dokumentacji
Jeżeli będziesz potrafił zaadoptować kod Visual Basic do C# 
to podam ci jak to odczytuję w VB
Te "poszczególne liczby" przypisujesz do tablicy "arr"  (86 elementów) licząc 1-szy element jako zerowy
i teraz odczytujesz
 TempPodlogowa = Format(CDbl(((arr(16) + 256 * arr(17)) / 10)), "0.0")
TempWew = Format(CDbl(((arr(18) + 256 * arr(19)) / 10)), "0.0")
TempCWU = Format(CDbl(((arr(22) + 256 * arr(23)) / 10)), "0.0")
TempPowrotu = Format(CDbl(((arr(24) + 256 * arr(25)) / 10)), "0.0")
TempPodajnika = Format(CDbl((arr(26) + 256 * arr(27)) / 10), "0.0")
TempSpalin = CDbl((arr(30) + ((arr(31) * 256))) / 10)
TempCo = Format(CDbl((arr(28) + 256 * arr(29)) / 10), "0.0")
Można jeszcze odczytać datę zasypu , datę następnego zasypu lecz to jest bardziej zawiłe

Janusz

2015-01-06 19:55
  majkels Posts: 4 Ostrzeżenie: 0
wrzucam to co mi się udało na razie poskładać:
        public double GetTempPodloga() { return (Int16)(aStatus[17] << 8 | aStatus[16]) / 10.0; }
        public double GetTempWew() { return (Int16)(aStatus[19] << 8 | aStatus[18]) / 10.0; }
        public double GetTempZadanaWew() { return (Int16)(aStatus[58] << 8 | aStatus[57]) / 10.0; }
        public double GetTempObnizonaWew() { return (Int16)(aStatus[56] << 8 | aStatus[55]) / 10.0; }
        public double GetTempZew() { return (Int16)(aStatus[21] << 8 | aStatus[20]) / 10.0; }
        public double GetTempCWU() { return (Int16)(aStatus[23] << 8 | aStatus[22]) / 10.0; }
        public int GetZadanaCWU() { return aStatus[38]; }
        public int GetObnizonaCWU() { return aStatus[60]; }
        public double GetTempPowrot() { return (Int16)(aStatus[25] << 8 | aStatus[24]) / 10.0; }
        public double GetTempPodajnik() { return (Int16)(aStatus[27] << 8 | aStatus[26]) / 10.0; }
        public double GetTempCO() { return (Int16)(aStatus[29] << 8 | aStatus[28]) / 10.0; }
        public int GetZadanaCO() { return aStatus[37]; }
        public int GetObnizonaCO() { return aStatus[59]; }
        public double GetTempSpaliny() { return (Int16)(aStatus[31] << 8 | aStatus[30]) / 10.0; }
        public int GetDmuchawa() { return ((aStatus[32] & (1 << 0)) >> 0); }
        public int GetMocDmuchawy() { return aStatus[39]; } //zakres 0-100 %
        public int GetPodajnik() { return ((aStatus[32] & (1 << 1)) >> 1); }
        public int GetPompaCO() { return ((aStatus[32] & (1 << 2)) >> 2); }
        public int GetPompaCWU() { return ((aStatus[32] & (1 << 3)) >> 3); }
        public int GetPompaMieszajaca() { return ((aStatus[32] & (1 << 4)) >> 4); }
        public int GetTrybAuto() { return ((aStatus[34] & (1 << 0)) >> 0); }
        public int GetCzasPodajnika() { return (Int16)(aStatus[65] << 8 | aStatus[64]); } //czas w sekundach
        public double GetTempPodlogowkaDzien() { return (Int16)(aStatus[79] << 8 | aStatus[78]) / 10.0; }
        public double GetTempPodlogowkaNoc() { return (Int16)(aStatus[81] << 8 | aStatus[80]) / 10.0; }


Jeśli macie coś więcej - wrzucajcie.

pozdrawiam,
Michał
First pagePrevious page12 / 18Next pageLast page
Users on-line: ajerkuch, antek, faco, luxus, Marcelgod666, mfifi, micro82, Ogniwoo2020, Olek85, piec-piec, pitr, walerio1