[gelöst] fhempy: Update klappt nicht

Begonnen von RockFan, 14 Februar 2021, 13:55:22

Vorheriges Thema - Nächstes Thema

RockFan

Hallo Dominik,

Ich wollte nach einer Weile mal wieder auf eine aktuellere Version von fhempy aktualisieren. Leider klappt das nicht.

Letztes Wochenende habe ich fhem aktualisiert, fhempy blieb aber auf Version 0.1.37. Ich habe mir nicht viel dabei gedacht, habe zwar mal auf allen Bindings "set xxx update" versucht, was aber im Gegensatz zu früheren Versuchen gar nichts bewirkt hat. Ich kenne das eigentlich so, dass ein Disconnect und die Aktualisierung im Bindings-Device in der FHEM-Weboberfläche sichtbar ist.

Vorhin habe ich das Ganze nochmals ohne Erfolg versucht. Dann habe ich mich an den Post https://forum.fhem.de/index.php/topic,117689.msg1125046.html#msg1125046 erinnert, als ich schon mal Probleme mit dem Update - aber nur auf der FHEM-Instanz - hatte und habe es ausprobiert.
Tatsächlich aktualisierte sich nun fhempy:

Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting fhempy
  Downloading https://files.pythonhosted.org/packages/aa/b7/9a71d053335616b949c26849c95f1f9543e8bb3787ef2c42d1d73d132fb7/fhempy-0.1.48-py3-none-any.whl (4.3MB)
    100% |████████████████████████████████| 4.3MB 106kB/s
Requirement already satisfied, skipping upgrade: cryptography>=3.3.1 in /opt/fhem/.local/lib/python3.7/site-packages (from fhempy) (3.3.1)
Requirement already satisfied, skipping upgrade: websockets>=8.1 in /opt/fhem/.local/lib/python3.7/site-packages (from fhempy) (8.1)
Requirement already satisfied, skipping upgrade: importlib-metadata>=3.3.0 in /opt/fhem/.local/lib/python3.7/site-packages (from fhempy) (3.3.0)
Requirement already satisfied, skipping upgrade: zeroconf>=0.28.6 in /opt/fhem/.local/lib/python3.7/site-packages (from fhempy) (0.28.7)
Requirement already satisfied, skipping upgrade: cffi>=1.12 in /opt/fhem/.local/lib/python3.7/site-packages (from cryptography>=3.3.1->fhempy) (1.14.4)
Requirement already satisfied, skipping upgrade: six>=1.4.1 in /usr/lib/python3/dist-packages (from cryptography>=3.3.1->fhempy) (1.12.0)
Requirement already satisfied, skipping upgrade: zipp>=0.5 in /opt/fhem/.local/lib/python3.7/site-packages (from importlib-metadata>=3.3.0->fhempy) (3.4.0)
Requirement already satisfied, skipping upgrade: typing-extensions>=3.6.4; python_version < "3.8" in /opt/fhem/.local/lib/python3.7/site-packages (from importlib-metadata>=3.3.0->fhempy) (3.7.4.3)
Requirement already satisfied, skipping upgrade: ifaddr>=0.1.7 in /opt/fhem/.local/lib/python3.7/site-packages (from zeroconf>=0.28.6->fhempy) (0.1.7)
Requirement already satisfied, skipping upgrade: pycparser in /opt/fhem/.local/lib/python3.7/site-packages (from cffi>=1.12->cryptography>=3.3.1->fhempy) (2.20)
Installing collected packages: fhempy
  Found existing installation: fhempy 0.1.37
    Uninstalling fhempy-0.1.37:
      Successfully uninstalled fhempy-0.1.37
Successfully installed fhempy-0.1.48


Allerdings bleibt in FHEM die Version trotz FHEM-Neustart und sogar einem kompletten reboot bei 0.1.37.
Ich kann weder im FHEM-Log noch im Bindings-Log irgendetwas ungewöhnliches erkennen.

Aufgefallen ist mir allerdings folgende Fehlermeldung in meinem xiaomi_tokens Device:

Failed to execute function Define: Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.7/site-packages/cryptography/fernet.py", line 113, in _verify_signature
    h.verify(data[-32:])
  File "/opt/fhem/.local/lib/python3.7/site-packages/cryptography/hazmat/primitives/hmac.py", line 70, in verify
    ctx.verify(signature)
  File "/opt/fhem/.local/lib/python3.7/site-packages/cryptography/hazmat/backends/openssl/hmac.py", line 76, in verify
    raise InvalidSignature("Signature did not match digest.")
cryptography.exceptions.InvalidSignature: Signature did not match digest.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/fhem_pythonbinding.py", line 348, in _onMessage
    fct_timeout,
  File "/usr/lib/python3.7/asyncio/tasks.py", line 416, in wait_for
    return fut.result()
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/xiaomi_tokens/xiaomi_tokens.py", line 35, in Define
    self._username = utils.decrypt_string(self._enc_username, self._uniqueid)
  File "/opt/fhem/.local/lib/python3.7/site-packages/fhempy/lib/utils.py", line 26, in decrypt_string
    return cipher_suite.decrypt(uncompressed_text).decode("utf-8")
  File "/opt/fhem/.local/lib/python3.7/site-packages/cryptography/fernet.py", line 76, in decrypt
    return self._decrypt_data(data, timestamp, ttl, int(time.time()))
  File "/opt/fhem/.local/lib/python3.7/site-packages/cryptography/fernet.py", line 125, in _decrypt_data
    self._verify_signature(data)
  File "/opt/fhem/.local/lib/python3.7/site-packages/cryptography/fernet.py", line 115, in _verify_signature
    raise InvalidToken
cryptography.fernet.InvalidToken


Das Thema ist für mich momentan nicht dringend, da ich aus Neugier nur damit etwas rumspiele und selber nur wenig Zeit habe :)

EDIT:
Ich habe etwas gefunden:
Ich glaube, dass ich seit meiner Bluetoothproblematik und den Installationsveruchen von bluepy folgende Meldung bei Kommandos mit sudo auf der FHEM-Instanz bekomme:

sudo: Hostname raspberry4 kann nicht aufgelöst werden: Der Name oder der Dienst ist nicht bekannt


Allerdings sind eigentlich alle Einträge in der host und in hostname korrekt.
Jetzt habe ich den Computernamen mit seiner IP-Adresse in die hosts eingetragen und siehe da der Update funktioniert. Auf meinen anderen Instanzen hatte und habe ich die Meldung zum Hostname nicht, aber Update geht trotzdem nicht.

 


Viele Grüße
Dieter
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...

RockFan

Ich antworte mir mal selber:
Habe vorhin meine beiden Peers manuell aktualisiert und dann neu gestartet.

pip3 install --upgrade fhempy


Zufällig wurde währendessen wieder eine neue Version veröffentlicht. Als ich den zweiten Peer aktualisierte, bekam er schon die neue Version.
Jedenfalls habe ich dann die Fhem-Instanz und den ersten Peer wieder über das Update der Devices in FHEM aktualisieren können.

Update funktioniert also wieder wie es soll. Da muss sich beim letzten Mal wohl etwas verschluckt haben.

Die Fehlermeldung im xiaomi_tokens Device ist nach einem Neustart von FHEM auch wieder weg. Das hatte ich allerdings auch erwartet, da es ja von Dominik eine Korrektur in Version 0.1.49 gab  :)
Raspbian (Buster) auf Raspberry Pi 4 /  CUL + RFXTRX + TCM / FS20, FHT 80B, S300TH, Intertechno, DMX, Milight, EnOcean, Homematic, AMAD, Home Connect, MiSmartHome, Yeelight, ...