QNAP / QVR Pro integracje

dotyczy:

Kilka razy podchodziłem do tych integracji i zawsze kończyło się tak samo - błędy w logach.
Wiem, że niektórzy korzystają z integracji QNAP, nie wiem jak z QVR Pro. Mam nadzieję, że uda się wspólnie rozwiązać mój i być może kogoś jeszcze problem.

QNAP:

Logger: homeassistant.components.qnap.sensor
Source: components/qnap/sensor.py:194
Integration: qnap (documentation, issues)
First occurred: 19:01:29 (22 occurrences)
Last logged: 19:57:00

Failed to fetch QNAP stats from the NAS
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 169, in _new_conn
    conn = connection.create_connection(
  File "/usr/local/lib/python3.8/site-packages/urllib3/util/connection.py", line 96, in create_connection
    raise err
  File "/usr/local/lib/python3.8/site-packages/urllib3/util/connection.py", line 86, 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 "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 699, in urlopen
    httplib_response = self._make_request(
  File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 394, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 234, in request
    super(HTTPConnection, self).request(method, url, body=body, headers=headers)
  File "/usr/local/lib/python3.8/http/client.py", line 1255, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/local/lib/python3.8/http/client.py", line 1301, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/local/lib/python3.8/http/client.py", line 1250, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/local/lib/python3.8/http/client.py", line 1010, in _send_output
    self.send(msg)
  File "/usr/local/lib/python3.8/http/client.py", line 950, in send
    self.connect()
  File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 200, in connect
    conn = self._new_conn()
  File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 181, in _new_conn
    raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 
0x7f4bb4855f70>: Failed to establish a new connection: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/requests/adapters.py", line 439, in send
    resp = conn.urlopen(
  File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 755, in urlopen
    retries = retries.increment(
  File "/usr/local/lib/python3.8/site-packages/urllib3/util/retry.py", line 573, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='192.168.1.10', port=8080): Max 
retries exceeded with url: /cgi-bin/authLogin.cgi (Caused by 
NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f4bb4855f70>: Failed to 
establish a new connection: [Errno 111] Connection refused'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
 File "/usr/src/homeassistant/homeassistant/components/qnap/sensor.py", line 194, in update
    self.data["system_stats"] = self._api.get_system_stats()
  File "/usr/local/lib/python3.8/site-packages/qnapstats/qnap_stats.py", line 205, in get_system_stats
    resp = self._get_url(
  File "/usr/local/lib/python3.8/site-packages/qnapstats/qnap_stats.py", line 67, in _get_url
    self._init_session()
  File "/usr/local/lib/python3.8/site-packages/qnapstats/qnap_stats.py", line 49, in _init_session
    if self._login() is False:
  File "/usr/local/lib/python3.8/site-packages/qnapstats/qnap_stats.py", line 57, in _login
    result = self._execute_post_url("authLogin.cgi", data, False)
  File "/usr/local/lib/python3.8/site-packages/qnapstats/qnap_stats.py", line 97, in _execute_post_url
    resp = self._session.post(url, data, timeout=self._timeout, verify=self._verify_ssl)
  File "/usr/local/lib/python3.8/site-packages/requests/sessions.py", line 590, in post
    return self.request('POST', url, data=data, json=json, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/requests/sessions.py", line 542, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python3.8/site-packages/requests/sessions.py", line 655, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/requests/adapters.py", line 516, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='192.168.1.10', port=8080): Max 
 retries exceeded with url: /cgi-bin/authLogin.cgi (Caused by 
NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f4bb4855f70>: Failed to 
establish a new connection: [Errno 111] Connection refused'))

QVR Pro:

Logger: homeassistant.setup
Source: components/qvr_pro/__init__.py:60
First occurred: 19:01:15 (1 occurrences)
Last logged: 19:01:15

Error during setup of component qvr_pro
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/xml/sax/expatreader.py", line 217, in feed
    self._parser.Parse(data, isFinal)
xml.parsers.expat.ExpatError: syntax error: line 1, column 49

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/setup.py", line 213, in _async_setup_component
    result = await task
  File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/src/homeassistant/homeassistant/components/qvr_pro/__init__.py", line 60, in setup
    qvrpro = Client(user, password, host, port=port)
  File "/usr/local/lib/python3.8/site-packages/pyqvrpro/client.py", line 20, in __init__
    self.connect()
  File "/usr/local/lib/python3.8/site-packages/pyqvrpro/client.py", line 35, in connect
    responseobj = untangle.parse(
  File "/usr/local/lib/python3.8/site-packages/untangle.py", line 182, in parse
    parser.parse(StringIO(filename))
  File "/usr/local/lib/python3.8/xml/sax/expatreader.py", line 111, in parse
    xmlreader.IncrementalParser.parse(self, source)
  File "/usr/local/lib/python3.8/xml/sax/xmlreader.py", line 125, in parse
    self.feed(buffer)
  File "/usr/local/lib/python3.8/xml/sax/expatreader.py", line 221, in feed
    self._err_handler.fatalError(exc)
  File "/usr/local/lib/python3.8/xml/sax/handler.py", line 38, in fatalError
    raise exception
xml.sax._exceptions.SAXParseException: <unknown>:1:49: syntax error

Na QNAP utworzone dedykowane konto - do testów uprawnienia na full
Port zmieniony - dodany w Configuration.yaml (reszta wpisu jak w dokumentacji)
2fa - wyłączone
Gdzie popełniam błąd?

Trudno mi diagnozować logi jak nie znam konfiguracji integracji, bez tego to jak wróżenie z fusów.
Z logów integracji QNAP jasno wynika, że jest problem z połączeniem do adresu IP 192.168.1.10 na porcie=8080 a to verify=self._verify_ssl może oznaczać, że próbujesz użyć polaczenia po https.

#QNAP 
sensor:
- platform: qnap
   host: xxx.xxx.xxx.xxx
   port: yyyy
   username: mojuser
   password: mojehaslo
   monitored_conditions:
     - status
     - cpu_usage
     - memory_percent_used
     - network_tx
     - volume_percentage_used
 
qvr_pro:
   host: xxx.xxx.xxx.xxx
   port: yyyy
   username: mojuser
   password: mojehaslo

Log QNAP:
wcześniej wrzuciłem log po zabawach z wywaleniem portu.

Logger: homeassistant.components.qnap.sensor
Source: components/qnap/sensor.py:194
Integration: qnap (documentation, issues)
First occurred: 8:18:59 (2 occurrences)
Last logged: 8:19:29

Failed to fetch QNAP stats from the NAS
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/qnap/sensor.py", line 194, in update
    self.data["system_stats"] = self._api.get_system_stats()
  File "/usr/local/lib/python3.8/site-packages/qnapstats/qnap_stats.py", line 205, in get_system_stats
    resp = self._get_url(
  File "/usr/local/lib/python3.8/site-packages/qnapstats/qnap_stats.py", line 69, in _get_url
    result = self._execute_get_url(url, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/qnapstats/qnap_stats.py", line 82, in _execute_get_url
    self._debuglog("Appending access_token (SID: " + self._sid + ") to url")
TypeError: can only concatenate str (not "NoneType") to str

Log QVR Pro:

Logger: homeassistant.setup
Source: components/qvr_pro/__init__.py:60
First occurred: 8:18:58 (1 occurrences)
Last logged: 8:18:58

Error during setup of component qvr_pro
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/xml/sax/expatreader.py", line 217, in feed
    self._parser.Parse(data, isFinal)
xml.parsers.expat.ExpatError: syntax error: line 1, column 49

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/setup.py", line 213, in _async_setup_component
    result = await task
  File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/src/homeassistant/homeassistant/components/qvr_pro/__init__.py", line 60, in setup
    qvrpro = Client(user, password, host, port=port)
  File "/usr/local/lib/python3.8/site-packages/pyqvrpro/client.py", line 20, in __init__
    self.connect()
  File "/usr/local/lib/python3.8/site-packages/pyqvrpro/client.py", line 35, in connect
    responseobj = untangle.parse(
  File "/usr/local/lib/python3.8/site-packages/untangle.py", line 182, in parse
    parser.parse(StringIO(filename))
  File "/usr/local/lib/python3.8/xml/sax/expatreader.py", line 111, in parse
    xmlreader.IncrementalParser.parse(self, source)
  File "/usr/local/lib/python3.8/xml/sax/xmlreader.py", line 125, in parse
    self.feed(buffer)
  File "/usr/local/lib/python3.8/xml/sax/expatreader.py", line 221, in feed
    self._err_handler.fatalError(exc)
  File "/usr/local/lib/python3.8/xml/sax/handler.py", line 38, in fatalError
    raise exception
xml.sax._exceptions.SAXParseException: <unknown>:1:49: syntax error

Co prawda nie korzystam z integracji qvr_pro ale mam u siebie integrację Qnap i nigdy nie miałem z nią problemu. W porównaniu z Twoim wpisem konfiguracji nie mam tylko wpisanego portu. Próbowałeś czy ruszy bez wpisywania portu?

Tak, czego efektem jest pierwszy wklejony w wątku log.

Pisałeś, że zmieniałeś port, zobacz czy zadziała na defaultowym

zerkniesz u siebie jaki port jest domyślny? 8080?

U siebie “port systemowy” mam zmieniony ale tak jak napisałeś domyślny to 8080.
A jaki adres wpisujesz do konfiguracji? - qnapa w Swojej lokalnej sieci?

Taki jak widnieje w polu adresu przeglądarki, czyli taki jaki przydzieliłem qnapowi na routerze.

Same cyfry bez tej “/cgi-bin/” końcówki?

tak, wpisuję samo IP

To może wpisz dane administratora - bo pisałeś, że utworzyłeś dedykowane konto.

@mWilQ zgodnie z dokumentacją:

Note: The user you connect with must be in the admin group.

Sprawdź uprawnienia tego konta do integracji.
@rafkan też to sugeruje.

ani konto w grupie administratorów (tak było), ani admin nie rozwiązują problemu…
porty to też nie są…

To sprawdź jeszcze czy przypadkiem qnap nie dodał adresu IP Twojego HA do listy blokowanych - Panel Sterowania/Lista dozwolonych/blokowanych

Mam przepuszczone wszystko.
Na community ha znalazłem kilka osób, które mają ten sam problem.
Ciekawostka, niektórzy wspominali, że mieli z hacs integrację HP przy aktualizacji której podnosila się jakaś biblioteka. Po zaktualizowaniu tej biblioteki ruszała integracja QNAPa. Na razie mam za mało czasu żeby się zagłębiać w ten wątek, ale to może być jakiś kierunek…

Tak jak Ci pisałem wcześniej ma tą integrację u siebie działa bez problemu (nigdy nie miałem z nią problemów). Co prawda nie mam integracji HP.

Ja też nie mam, ale skoro inni z tym problemem mieli i po aktualizacji im zaczęło działać, to spróbuję zainstalować integrację - może coś ruszy :slight_smile:

Hej
Ruszyło u Ciebie coś w/s integracji z QNAP?

QNAP - działa, integracja ruszyła po aktualizacji HA (niestety nie pamiętam której)
QVR Pro - nie działa, ale też dawno do niej nie zaglądałem