Domoticz ciepłomier...
 
Powiadomienia
Wyczyść wszystko

Domoticz ciepłomierz Kamstrup Multical 402

242 Wpisów
3 Użytkownicy
1 Likes
11.3 K Wyświetleń
(@bobrow)
Wpisów: 387
Weteran
Autor tematu
 

Znalazłem taki sposób :

komenda do odczytu danych podpiętych urządzeń po USB

ls -l /dev/serial/by-id total 0

u mnie pokazało to 

lrwxrwxrwx 1 root root 13 Jan 20 20:22 usb-Silicon_Labs_CP2102_USB_to_UART_Bridg e_Controller_0001-if00-port0 -> ../../ttyUSB0

 trzeba dołoźyć w miejsce usb0 w starym zapisie

serial/by-id

oraz ściągnięty adres

usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0

finalnie wygląda to tak w cronie

*/1 * * * * /usr/bin/python3 ~/domoticz/plugins/multical402-4-domoticz/multical402-4-domoticz.py -d /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 115:74:0 114:89:0 113:87:0 112:86:0 111:60:0 110:80:0

dla komendy jednorazowego wykonania będzie analogicznie

 

 
Dodane : 20/01/2022 9:07 pm
(@bobrow)
Wpisów: 387
Weteran
Autor tematu
 

Wszystko działa , sprawdziłem po wyłączeniu zasilania maliny i zamieniły się nr portów USB

10.712705] usb 1-1.1.2: cp210x converter now attached to ttyUSB1
[ 10.713936] usb 1-1.2: FTDI USB Serial Device converter now attached to ttyUS B0

 

 
Dodane : 20/01/2022 9:24 pm
(@bobrow)
Wpisów: 387
Weteran
Autor tematu
 

Mam jeszcze taką mini teorię - a może autor tego git 

https://github.com/ronaldvdmeer/multical402-4-domoticz

nie wyrzucił komentarza do formuły ?

*/20 * * * * /usr/bin/python3 /path/to/your/script/multical402-4-domoticz.py -d /dev/ttyUSB1 88:60:0 89:80:0

tj to czerwone zaznaczenie

 

PS

To jest mój brak doświadczenia w korzystaniu z opisów na Github oraz w ogóle w linuxem. Autor oczywiście pokazał tylko ścieżkę pliku

 
Dodane : 20/01/2022 9:31 pm
(@bobrow)
Wpisów: 387
Weteran
Autor tematu
 

Pora finiszować...

zostawiam jednak domoticza bez logowania-nikt w chałupie nie odkryje tajnego/poufne adresu 😀

Dłuższy czas już to działa -podłączę na sztywno głowicę optyczną i dam znać czy jest to gotowe rozwiązanie.

Pora odpocząć po tym maratonie... 😱 

Serdecznie dziękuję Migu i Szeryfie

PozdrawlaYou

PS

Isom-postaram się trochę tu posprzątać w tych moich wypocinach , aby było czytelnie  

 
Dodane : 20/01/2022 9:41 pm
isom
 isom
(@isom)
Wpisów: 5079
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

Autor rozsądnie wstawił zadanie do crona wykonywane co 20 minut , bo raz bateria w urządzeniu dwa malina może to łatwo ogarnąć , a to co jest na czerwono to wskazówka co ma być wstawione w tym miejscu , innymi słowy autor mówi wstaw tu lokalizację swojego skryptu. Jeżeli ktoś sobie zapisze ten skrypt np w home/robert/scripts , to na bank nie zadziała mu to /domoticz/plugins/

Swoją drogą wykorzystanie do tego crona to średni pomysł , bo gdy domoticz będzie offline z jakiegoś powodu to dalej ten biedny cron będzie próbował uruchomić ten skrypt obciążając procesor.

Ale to już inna historia . Najważniejsze , że działa 

 
Dodane : 20/01/2022 9:48 pm
(@bobrow)
Wpisów: 387
Weteran
Autor tematu
 

Oj Mistrzunio- a co mi wrzucałeś 😉 ? ...

Też nie zauważyłeś 🤣 

A odświeżanie mam co minutę i cpu usage 2,5%. Co do baterii , to mi to lotto-bo idzie po kablu-ale po bateryjce ok.

No i GIT !

Cześć (do następnego razu 😉 )

 
Dodane : 20/01/2022 9:57 pm
(@bobrow)
Wpisów: 387
Weteran
Autor tematu
 

Witam ,

to może podsumuję to wszystko.

Sprzęt :

-ciepłomierz ultradźwiękowy Kamstrup Multical 402 z portem IR obsługiwanym przez protokół firmowy KMP oraz IEC 61107

-głowica optyczna do liczników Orno OR-WE-518 połączona przewodowo z maliną po USB

IR IEC  IEC 62056-21 (dawniej IEC 61107 / IEC 1107)

(W 1997 roku IEC 1107 został przemianowany na IEC 61107 , kiedy wprowadzono nazwy IEC „serii 60000”. I wreszcie IEC 61107 stał się IEC 62056-21 , kiedy kilka norm związanych z inteligentną siecią zostało skonsolidowanych pod parasolem IEC 62056)

-Raspberry 3b+ , SmarticzN ,python 3.7 (seria 3 wymagana dla wtyczki Kamstrupa)

Najpierw należy przetestować komunikację głowicy z ciepłomierzem.

Ściągamy program np RealTerm serial capture program 3.0.1.44 (uwaga inne wersje mogą nie mieć wymaganej obsługi) i konfigurujemy z głowicą.

Zakładka display : zaznaczamy hex+( ) oraz half duplex

zakładka port : burd 1200 , com USB z wpiętą głowicą (z menadżera urządzeń) ,paryti none ,data bits 8 ,stop bits 2 , wciśnięty przycisk open

zakładka send : okno górne np taki zapis testowy 80 3F 10 01 00 3C B2 5F 0D , wciskamy as hex

Głowica musi być zamontowana bardzo dokładnie do portu IR , należy sprawdzić rozstaw diod czy jest podobny, głowica ustawiona dioda ciemna na przeciw diody jasnej (czyli nadajnik do odbiornika). W sieci sa opisy ,że nie które głowice mają zbyt "silny" sygnał IR-cienki papierek między urządzeniami podobno pomaga w tym problemie.

Po wciśnięciu przycisku as hex następuje wyświetlenie na zielono wysłanej informacji , a informacja zwrotna (odpowiedź z ciepłomierza) w kolorze żółtym.

Teraz należy przystąpić do konfiguracji w Domoticzu i malinie.

Najpierw należy pobrać wykaz rejestrów ciepłomierza z poszczególnymi parametrami , poniżej rejestry ściągnięte z mojego ciepłomierza (od 60 do 1004)

CommandNr 60: Heat Energy (E1) 270.96 Gj
CommandNr 80: Power 6.300000000000001 kW
CommandNr 86: Temp1 46.07 C
CommandNr 87: Temp2 42.67 C
CommandNr 89: Tempdiff 3.4 K
CommandNr 74: Flow 1729.0 l/h
CommandNr 68: Volume 19690.79 m3
CommandNr 141: MinFlow_M 0.0 l/h
CommandNr 139: MaxFlow_M 1698.0 l/h
CommandNr 140: MinFlowDate_M 220101.0 yy:mm:dd
CommandNr 138: MaxFlowDate_M 220113.0 yy:mm:dd
CommandNr 145: MinPower_M 0.0 kW
CommandNr 143: MaxPower_M 9.600000000000001 kW
CommandNr 149: AvgTemp1_M 44.0 C
CommandNr 150: AvgTemp2_M 40.0 C
CommandNr 144: MinPowerDate_M 220101.0 yy:mm:dd
CommandNr 142: MaxPowerDate_M 220106.0 yy:mm:dd
CommandNr 126: MinFlow_Y 0.0 l/h
CommandNr 124: MaxFlow_Y 1698.0 l/h
CommandNr 125: MinFlowDate_Y 220101.0 yy:mm:dd
CommandNr 123: MaxFlowDate_Y 220113.0 yy:mm:dd
CommandNr 130: MinPower_Y 0.0 kW
CommandNr 128: MaxPower_Y 9.600000000000001 kW
CommandNr 146: AvgTemp1_Y 44.0 C
CommandNr 147: AvgTemp2_Y 40.0 C
CommandNr 129: MinPowerDate_Y 220101.0 yy:mm:dd
CommandNr 127: MaxPowerDate_Y 220106.0 yy:mm:dd
CommandNr 97: Temp1xm3 850417.0 m3xC
CommandNr 110: Temp2xm3 786411.0 m3xC
CommandNr 113: Infoevent 653.0
CommandNr 1004: HourCounter 72224.0 h

Teraz wrzucamy wtyczkę z github https://github.com/ronaldvdmeer/multical402-4-domoticz

w konsoli maliny wpisujemy 

cd domoticz/plugins

następnie git clone https://github.com/ronaldvdmeer/multical402-4-domoticz.git

następnie restart maliny

Można teraz sobie utworzyć  wirtualne czujniki w domoticzu z wymaganymi parametrami z ciepłomierza (należy zwrócić uwagę na jednostki z ciepłomierza w etykiecie czujnika) , muszą być aktywne idxy w domoticzu.

Teraz należy skonfigurować skrypt do naszego systemu. W domoticzu nie może być dodatkowego uwierzytelniania do logowania po www (brak loginu i hasła).

Wchodzimy w edycję nano z naszą wtyczką

nano ~/domoticz/plugins/multical402-4-domoticz/multical402-4-domoticz.py
teraz musimy zmienić localhost ( o ile mamy inny niż standard) czyli na nasze IP logowania po www. Skrypt ma wpisany domyślny port 8080- u mnie jest 8082 , dlatego należy to zmienić.
linijka z portem
parser.add_argument("--port", type=int, help="Domoticz port. Defaults to 8082", default=8082)
linijka z IP , tam gdzie jest localhost należy wpisać nasz adres IP
parser.add_argument("--ip", type=str, help="Domoticz ip address. Defaults to localhost", default="localhost") 
 
Teraz należy sprawdzić nr portu USB z głowicą 
wpisujemy do konsoli 
 
sudo dmesg
 
i odczytujemy nr tty USB
 
Jeśli ktoś ma kilka urządzeń wpiętych do maliny może być problem z losową adresacją nr portów na poszczególnych urządzeniach (u mnie tek było).
Problem rozwiązuje przyporządkowanie portu do nazwy urządzenia.
 
wpisujemy w konsoli
 
ls -l /dev/serial/by-id total 0
 
na moim przykładzie np pokaże się to
 
lrwxrwxrwx 1 root root 13 Jan 20 20:22 usb-Silicon_Labs_CP2102_USB_to_UART_Bridg e_Controller_0001-if00-port0 -> ../../ttyUSB0
 
Teraz należy zrobić test ciepłomierza. W tym celu należy wcisnąć dwa przyciski i trzymać tak długo ,aż pojawi się napis CALL.
Uwaga-w tym urządzeniu jeśli przez 30 min nie będzie żadnego zapytania z głowicy , to port IR zostanie zablokowany (wtedy ponownie należy uruchomić tryb CALL)
 
Teraz wklejamy komendę testu ciepłomierza (przykładowo USB1)
/usr/bin/python3 ~/domoticz/plugins/multical402-4-domoticz/multical402-4-domoticz.py -d /dev/ttyUSB1 --debug --test_kamstrup
jeśli chcemy z identyfikacją urządzenia zamiast nr portu to doklejamy serial/by-id i na moim przykładzie będzie tak
 
serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0               w miejsce ttyUSB1 , reszta w/w zapisu bez zmian
 
Kiedy już mamy prawidłowo wykonany test i pojawiły się wartości z ciepłomierza możemy wykonać komendę do przepisania wartości do domoticza np tak
 
/usr/bin/python3 ~/domoticz/plugins/multical402-4-domoticz/multical402-4-domoticz.py -d /dev/ttyUSB0 115:74:0 114:89:0 113:87:0 112:86:0 111:60:0 110:80:0

ostatnie wartości to idx : nr rejestru w ciepłomierzu :0 (wartość-zostaje 0). 

Kiedy już mamy odczytane wartości , to możemy ustawić cykliczne powtarzanie komendy zapisu poniżej 30min

Wchodzimy do crona (opis tu https://linuxhint.com/cron_jobs_complete_beginners_tutorial/ )

crontab -e

wpisujemy żądany okres powtórek oraz komendę

Ja ustawiłem do prób co minutę i był np taki zapis

*/1 * * * * /usr/bin/python3 ~/domoticz/plugins/multical402-4-domoticz/multical402-4-domoticz.py -d /dev/ttyUSB0 115:74:0 114:89:0 113:87:0 112:86:0 111:60:0 110:80:0

To chyba wszystko w tym momencie, aby nie zaśmiecać tematu-będę na bieżąco modyfikował ten post. 

 

Tymczasem 

PS

Starałem się to wytłumaczyć , tak jak sam rozumiem na ten moment-nie wszyscy w końcu są informatykami... 

 
Dodane : 21/01/2022 11:37 am
isom reacted
isom
 isom
(@isom)
Wpisów: 5079
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

Jedna mała uwaga do tego opisu , login i hasło do domoticz może być jak najbardziej aktywne  i nawet powinno bo to zabezpiecza wasz system przed atakami z zewnątrz , aby uzyskać ten sam efekt co skasowanie uwierzytelniania, wystarczy w Ustawieniach domoticza zezwolić na logowanie w sieci lokalnej bez hasła. 

 
Dodane : 21/01/2022 12:12 pm
(@bobrow)
Wpisów: 387
Weteran
Autor tematu
 

A jak to fizycznie wygląda-możesz wrzucić sreen ?

Nie jestem pewien , że dobrze zrozumiałem-chodzi tylko o zakładkę ustawienia w domoticzu gdzie trzeba usunąć wpisane dane login i hasło ?

Bo nie mogłem nic innego tam znaleźć , a kiedy wymazałem w/w dane -to wszystko poszło.

O to chodzi ?

 
Dodane : 21/01/2022 12:25 pm
(@bobrow)
Wpisów: 387
Weteran
Autor tematu
 

Cześć,

sprzętowo wygląda ,że jest ok z tym ciepłomierzem-teraz zastanawiam się nad "obróbką" danych.

Przemyślałem sprawę i rzeczywiście nie ma sensu odświeżać danych ciepłomierza co min-nie znalazłem sposobu ,aby moduł IR ciepłomierza się nie blokował powyżej 30min bezczynności. Aby oszczędzić w nim baterię mogę np ustawić sczytywanie jednego parametru np mocy cieplnej co 28 min.

Dla celów kontrolno-statystycznych chciałbym mieć takie funkcje w domoticzu :

1.chwilowe sprawdzenie COP (tj sprawność pompy ciepła , czyli ilość energii wytworzonej/ilość energii elektrycznej zużytej)

czyli przycisk uruchamia komendę  z tego topicu -nie wiem jak to fizycznie zrobić (czy jest funkcja w domoticzu , czy trzeba pisać skrypt ?)

2.regularne sczytywanie w tym samym momencie :

-moc cieplna i moc elektryczna (z mod RTU) na początku każdego miesiąca. I tu wstępnie myślałem o jakiejś tabelce w domoticzu-niestety nic nie znalazłem co by mi pasowało. Pomyślałem zatem o wysłaniu do siebie emaila z tymi danymi- wtedy na piechotę bym te dane notował w exelu. Pytanie jak to fizycznie wykonać ? 

Jeśli natomiast udało by się to zautomatyzować w domoticzu w zwartej czytelnej tabelce np  rok/miesiąc/SCOP/zużycie energii -to bym był bardzo szczęśliwy.

Z góry dziękuję za pomoc 

 
Dodane : 22/01/2022 10:55 am
(@bobrow)
Wpisów: 387
Weteran
Autor tematu
 

Cd zmagań...

W topicu o skryptach dzvents jest opis jak zrobić przelicznik COP (Isom).

Teraz chciałbym zrealizować pkt 1 z poprzedniego postu-niestety nie działa mi zasterowanie przełącznikiem (na 1s) odpytania ciepłomierza o moc (dla kontroli COP).Odczyt mocy jest co 28 min ze względu na oszczędność baterii i aby ciepłomierz nie wyszedł z trybu call.

Mam taki błąd po wciśnięciu przycisku

2022-01-29 22:23:10.821 Error: Error parsing http request address: ::ffff:192.168.1.50
2022-01-29 22:23:10.822 Error: Error opening url: http://192.168.1.50:8082/usr/bin/python3 ~/domoticz/plugins/multical402-4-domoticz/multical402-4-domoticz.py -d /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 --ip 192.168.1.50 --port 8082 110:80:0
 
Dodane : 29/01/2022 10:31 pm
(@bobrow)
Wpisów: 387
Weteran
Autor tematu
 

Witam,

zauważyłem ,że od 2 tyg nie odczytują mi się dane z ciepłomierza. Sprawdziłem odczyt wg testu kamstrup-jest ok.

Problem mam z zapisem danych do idx dopmoticza. Co ciekawe tego samego dnia tj 27.08 wrzuciłem u siebie Airly-nie wiem czy to ma związek z tym problemem ,ale zbieżność dat jest wyjątkowa...

Oto dwie komendy z konsoli -test (ok) i zapis do idx (torba) :

pi@smarticz:~ $ /usr/bin/python3 ~/domoticz/plugins/multical402-4-domoticz/multical402-4-domoticz.py -d /dev/ttyUSB1 --debug --test_kamstrup
CommandNr 60: Heat Energy (E1) 310.43 Gj
CommandNr 80: Power 7.800000000000001 kW
CommandNr 86: Temp1 44.53 C
CommandNr 87: Temp2 38.87 C
CommandNr 89: Tempdiff 5.66 K
CommandNr 74: Flow 1219.0 l/h
CommandNr 68: Volume 22107.99 m3
CommandNr 141: MinFlow_M 0.0 l/h
CommandNr 139: MaxFlow_M 1361.0 l/h
CommandNr 140: MinFlowDate_M 220901.0 yy:mm:dd
CommandNr 138: MaxFlowDate_M 220915.0 yy:mm:dd
CommandNr 145: MinPower_M 0.0 kW
CommandNr 143: MaxPower_M 10.4 kW
CommandNr 149: AvgTemp1_M 44.0 C
CommandNr 150: AvgTemp2_M 39.0 C
CommandNr 144: MinPowerDate_M 220901.0 yy:mm:dd
CommandNr 142: MaxPowerDate_M 220915.0 yy:mm:dd
CommandNr 126: MinFlow_Y 0.0 l/h
CommandNr 124: MaxFlow_Y 1783.0 l/h
CommandNr 125: MinFlowDate_Y 220101.0 yy:mm:dd
CommandNr 123: MaxFlowDate_Y 220312.0 yy:mm:dd
CommandNr 130: MinPower_Y 0.0 kW
CommandNr 128: MaxPower_Y 10.5 kW
CommandNr 146: AvgTemp1_Y 43.0 C
CommandNr 147: AvgTemp2_Y 39.0 C
CommandNr 129: MinPowerDate_Y 220101.0 yy:mm:dd
CommandNr 127: MaxPowerDate_Y 220605.0 yy:mm:dd
CommandNr 97: Temp1xm3 955951.0 m3xC
CommandNr 110: Temp2xm3 882593.0 m3xC
CommandNr 113: Infoevent 751.0
CommandNr 1004: HourCounter 78053.0 h
pi@smarticz:~ $ /usr/bin/python3 ~/domoticz/plugins/multical402-4-domoticz/multi cal402-4-domoticz.py -d /dev/ttyUSB1 115:74:0 114:89:0 113:87:0 112:86:0 111:60:0 110:80:0
================================================================================ =======
Kamstrup Multical 402 serial optical data received: 2022-09-19 17:42:52
Meter vendor/type: Kamstrup M402
-------------------------------------------------------------------------------- -------
Heat Energy (E1) 310.43 Gj
Traceback (most recent call last):
File "/home/pi/domoticz/plugins/multical402-4-domoticz/multical402-4-domoticz. py", line 381, in <module>
device_data = json.load(reader(urllib.request.urlopen(requestGet)))
File "/usr/lib/python3.7/urllib/request.py", line 222, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python3.7/urllib/request.py", line 531, in open
response = meth(req, response)
File "/usr/lib/python3.7/urllib/request.py", line 641, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python3.7/urllib/request.py", line 569, in error
return self._call_chain(*args)
File "/usr/lib/python3.7/urllib/request.py", line 503, in _call_chain
result = func(*args)
File "/usr/lib/python3.7/urllib/request.py", line 649, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 401: Unauthorized
pi@smarticz:~ $

 

Nie wiem co z tym zrobić , a nie chciałbym wysadzić systemu-uprzejmie proszę o pomoc.

Pzdr 

PS

dodam jeszcze ,że nie mam błędów w logach domoticza

 
Dodane : 19/09/2022 4:49 pm
(@bobrow)
Wpisów: 387
Weteran
Autor tematu
 

Jest jeszcze kwestia nazwy użytkownika i hasła-wg naszych ustaleń należy mieć logowanie w lokalnej sieci bez hasła.

Czy to oznacza ,że wystarczy w zakładce ustawienia wpisać "prefix" swojej sieci ( u mnie to 192.168.1.*) ?

Ale zabezpieczenie WWW pozostaje z użytkownikiem, hasłem i uwierzytelnieniem ze strony logowania ?

 
Dodane : 19/09/2022 6:40 pm
isom
 isom
(@isom)
Wpisów: 5079
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

Wyłącz airly to się przekonasz , a odpowiedz na pytanie o  zabezpieczenie www już w tym wątku padła 

 
Dodane : 19/09/2022 6:44 pm
(@bobrow)
Wpisów: 387
Weteran
Autor tematu
 
Dodane przez: @isom

Wyłącz airly to się przekonasz , a odpowiedz na pytanie o  zabezpieczenie www już w tym wątku padła 

Już to robiłem-nie pomaga ...

Odnośnie hasła , to tylko dla pewności dopytywałem-czyli tak jak ostatnio napisałem jest ok ?

 
Dodane : 19/09/2022 6:47 pm
(@bobrow)
Wpisów: 387
Weteran
Autor tematu
 

A co ciekawe cron chyba wykonuje komunikację z ciepłomierzem , bo po prawie godzinie jak puszczę test to sczytuje dane.

Tylko zapis do idx nie działa...coś musiałem zrobić , pewnie jakaś "oczywista oczywistość" (lub czeski błąd)

 
Dodane : 19/09/2022 6:51 pm
isom
 isom
(@isom)
Wpisów: 5079
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

Nie pomaga , bo nie ma związku , tu chodzi o zabezpieczenia , uprawnienia , widać to przecież

Dodane przez: @bobrow

urllib.error.HTTPError: HTTP Error 401: Unauthorized

 

 
Dodane : 19/09/2022 6:52 pm
(@bobrow)
Wpisów: 387
Weteran
Autor tematu
 
Dodane przez: @isom

Nie pomaga , bo nie ma związku , tu chodzi o zabezpieczenia , uprawnienia , widać to przecież

Dodane przez: @bobrow

urllib.error.HTTPError: HTTP Error 401: Unauthorized

 

To co może być nie tak-reszta system pracuje prawidłowo

 
Dodane : 19/09/2022 6:54 pm
(@bobrow)
Wpisów: 387
Weteran
Autor tematu
 

Błąd HTTP 401 Unauthorized (Nieautoryzowany dostęp) oznacza, że strumień danych przesłanych przez klienta (np. przeglądarkę internetową) jest prawidłowy i serwer odczytał go poprawnie, lecz źródło URL wymaga autoryzacji danych użytkownika.

No to gdzie mogą być wpisane dane logowania w sieci lokalnej ? 

 
Dodane : 19/09/2022 6:57 pm
isom
 isom
(@isom)
Wpisów: 5079
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

Chciałeś, żeby Cię nakierować i tak jest , teraz zastanów się co zmieniłeś w systemie w tym czasie od kiedy skrypt przestał poprawnie pracować , dane do logowania są tylko w jednym miejscu i dotyczą ogólnego zabezpieczenia www

 

 
Dodane : 19/09/2022 7:30 pm
Strona 12 / 13
Udostępnij: