Jeszcze patrzę na ten zapis
python3 multical402-4domoticz.py /dev/ttyUSB1 42:60:2:44,43:60:1:44,44:60:0
jest różnica w końcowym zapisaniu idx. Wczoraj zrobiłem na wzór tego :
*/20 * * * * /usr/bin/python3 /path/to/your/script/multical402-4-domoticz.py -d /dev/ttyUSB1 88:60:0 89:80:0
Nie rozumiem ostatniej cyfry -myślałem ,że ma być 0 (czyli wartość z ciepłomierza).Jest jeszcze kwestia przecinków oraz tego 42:60:2:44 (po co 44 ?)
Skoro komenda nie powoduje uaktualnienia czujnika w domoticzu , to wpisanie jej w crona również tego nie spowoduje. Najpierw trzeba znaleźć poprawną komendę , która to wykona. (cron wysyła tą komendę regularnie , zamiast ty miałbś to robić ręcznie z konsoli, wysyłanie przez crona błędnej komendy nic nie da).
Najpierw jakie masz idxy utworzonych czujników ? Pisałeś coś ,że 109 ?
Jeśli tak , i CommandNr 74 to jest Flow ( przepływ) , to 109:74:0 miałoby uaktualnić idx 109 o wartość komendy 74 ,przepływ.
Wg opisu z gita :
opt=0 writes the value from "CommandNr" to Domoticz device "idx". opt=1 takes the value from "CommandNr", subtracts the value of Domoticz "idx2", and stores this in "idx". opt=2 takes the value from "CommandNr", adds the value of Domoticz device "idx2", and stores this in "idx".
czyli 0 to uaktualnienie wartości , a to 42:60:2:44 spowodowałoby ,że wartość z komendy 60 Heat Energy (E1) zostałaby dodana do wartości z idx:44 i ta dodana wartość zostałaby uaktualniona pod idx:42 (Nie pytaj po co , być może taką funkcjonalność autor projektu chciał mieć : )
Migu,
to znaczy ,że mam zapis ok -a problem jest w 20min odczytu. Zmienię na 1 minutę i zobaczymy.
Potrzebuję tylko przepisanie wartości z danych komórek czyli zapis idx : nr rejestru : 0
Dzięki. Powinno banglać.
python3 multical402-4domoticz.py /dev/ttyUSB1 42:60:2:44,43:60:1:44,44:60:0
Jeszcze jedno , tam przecinków ma nie być ! ma być idx:CommandNr:0 i spacja i następny.
Czyli zapis wadliwy-ok jasne.
U mnie jest prawidłowo , jak wczoraj zapodałeś.
A jak rozumieć np z tego linku https://github.com/ronaldvdmeer/multical402-4-domoticz
ostatni zapis dot aktualizacji
To tylko oznacza ,że ostatnio był modyfikowany/aktualizowany 8miesięcy temu , masz aktualną wersję. A w tym linku widać te ostatnie dokonane zmiany.
To jestem po próbach , i tak :
1.wrzuciłem do crontab to
*/1 * * * * /usr/bin/python3 /path/to/your/script/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
było jednak co minutę
wtedy pokazało to (po wyjściu z zapisem)
pi@smarticz:~ $ sudo crontab -e
crontab: installing new crontab
pi@smarticz:~ $ crontab -e
no crontab for pi - using an empty one
crontab: installing new crontab
czyli tak samo jak przez sudo , reboot robiłem
test działa , natomiast nie wykonuje zapisu w domoticzu
2. zrobiłem test i wrzuciłem pojedynczą komendę do zapisu idxów
Jak widać komunikacja jest , ale na końcu jest błąd i dlatego nie zapisuje mi do domoticza
Niestety nie wiem co z tym zrobić...
Ratujcie
Coś nie halo z biblioteką ?
Spróbuj zrobić --test_domoticz
/usr/bin/python3 ~/domoticz/plugins/multical402-4-domoticz/multical402-4-domoticz.py -d /dev/ttyUSB0 --debug --test_domoticz
Może coś więcej to powie.
po teście
W ostatniej linijce jest coś o odrzuconym połączeniu...ale co i jak -to Panie nie mam zielonego pojęcia 😮
Tu już secjalista od domoticza potrzebny 🙂
Jest takie coś:
--ip IP Domoticz ip address. Defaults to localhost --port PORT Domoticz port. Defaults to 8080
Ale zakładam ,że domoticza masz zainstalowanego na tej samej malinie ( więc localhost jest ok ) , i tak samo port 8080 też jest niezmieniony. A jak ten skrypt to uaktualnia w domoticzu ....
/usr/bin/python3 ~/domoticz/plugins/multical402-4-domoticz/multical402-4-domoticz.py -d /dev/ttyUSB0 --verbose --debug --test_domoticz
pi@smarticz:~ $ /usr/bin/python3 ~/domoticz/plugins/multical402-4-domoticz/multi cal402-4-domoticz.py -d /dev/ttyUSB0 --verbose --debug --test_domoticz
Traceback (most recent call last):
File "/usr/lib/python3.7/urllib/request.py", line 1324, in do_open
encode_chunked=req.has_header('Transfer-encoding'))
File "/usr/lib/python3.7/http/client.py", line 1260, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/lib/python3.7/http/client.py", line 1306, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/lib/python3.7/http/client.py", line 1255, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/lib/python3.7/http/client.py", line 1030, in _send_output
self.send(msg)
File "/usr/lib/python3.7/http/client.py", line 970, in send
self.connect()
File "/usr/lib/python3.7/http/client.py", line 942, in connect
(self.host,self.port), self.timeout, self.source_address)
File "/usr/lib/python3.7/socket.py", line 727, in create_connection
raise err
File "/usr/lib/python3.7/socket.py", line 716, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/pi/domoticz/plugins/multical402-4-domoticz/multical402-4-domoticz. py", line 340, in <module>
domo_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 525, in open
response = self._open(req, data)
File "/usr/lib/python3.7/urllib/request.py", line 543, in _open
'_open', req)
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 1352, in http_open
return self.do_open(http.client.HTTPConnection, req)
File "/usr/lib/python3.7/urllib/request.py", line 1326, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [Errno 111] Connection refused>
pi@smarticz:~ $
to chyba coś z pythonem 3.7...jest linijka ,że się łączy-niby ok , a na końcu rozłączenie...
Ale w opisie tego kodu tj multical402 jest wymóg python 3 i jego serie
ten fragment jest o zakłóceniach
File "/usr/lib/python3.7/socket.py", line 727, in create_connection
raise err
File "/usr/lib/python3.7/socket.py", line 716, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused
Domoticza masz zabezpieczonego loginem i hasłem ? Jak wchodzisz przez stronę to podajesz login i hasło ? wchodzisz na stronę domoticza przez port 8080 ?
Bo wnioskuję ,że update sensorów odbywa się w ten sposób: https://www.domoticz.com/wiki/Domoticz_API/JSON_UR L's#Format
W tym całym skrypcie nie widzę ,żeby ten port na sztywno był ustawiony , to może jeszcze spróbuj go ustawić:
/usr/bin/python3 ~/domoticz/plugins/multical402-4-domoticz/multical402-4-domoticz.py -d /dev/ttyUSB0 --ip 127.0.0.1 --port 8080 --verbose --debug --test_domoticz
albo
/usr/bin/python3 ~/domoticz/plugins/multical402-4-domoticz/multical402-4-domoticz.py -d /dev/ttyUSB0 --ip localhost --port 8080 --verbose --debug --test_domoticz
Zaraz ,zaraz-to miałem tam wpisywać IP mojej maliny ? Co to za adres
127.0.0.1