telemetry
Quoi de neuf

Fhem

  • Forum Electricité - Domotique
  • Auteur du sujet Auteur du sujet jcoenen
  • Date de début Date de début
  • #641
Au fait, quelle est la référence de ton moteur.
Je pense que c'est celui-là, mais pas 100% sûr. Faudra que je démonte le truc pour regarder (quand il en gèlera plus).
 
  • #642
J'attend le retour d'essai ...

Je n'avais pas de bougie sous la main, j'espère que c'est pas l'absence de bougie qui a tout fait foirer.

Après avoir défini le mgw, j'ai ceci dans le module dans FHEM:
Code:
Failed to load module motiongw: Traceback (most recent call last):
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/fhempy/lib/fhem_pythonbinding.py", line 336, in handle_function
    module_object = await self.import_module(hash)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/fhempy/lib/fhem_pythonbinding.py", line 573, in import_module
    module_object = await utils.run_blocking(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/fhempy/lib/utils.py", line 72, in run_blocking
    return await asyncio.get_event_loop().run_in_executor(pool, function)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/fhempy/lib/motiongw/motiongw.py", line 2, in <module>
    from motionblinds import MotionGateway, MotionBlind
ImportError: cannot import name 'MotionBlind' from 'motionblinds' (/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/motionblinds/__init__.py)

C'est sûrement une bêtise, mais je ne vois pas.
 
  • #643
J'ai donc installé le premier truc dans:
/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/fhempy/lib/motionblinds

et le nouveau dans:
/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/fhempy/lib/motiongw

J'ai fait un petit chown -R fhem:dialout ./* pour que tout le monde ait le bon owner:group

Seul changement: j'ai synchronisé ces folders dans github avec git, donc j'ai un nouveau dossier .git
 
  • #644
Ok bonne installation, pas grave le dossier git

pour le problème, je vois, as tu modifié le __init__.py dans la libraire qu’on installe avec pip ?

Code:
sudo nano /opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/motionblinds/__init__.py

Ajouter

Code:
 from .motion_blinds import MotionBlind

C’est indiqué dans la notice d’installation … mais oublié de te le signaler.

Fais l’édit, ensuite redémarre le fhempy serveur pour reloaded les librairies.

Il vaut mieux supprimer les ancien device fhem et partir de zéro

Avec une bougie ça marche mieux !
 
Dernière édition:
  • #645
OK, c'est réglé. Mon fils est à côté de moi, il fait office de bougie.

Mais, après avoir encodé les bons paramètres (IP et key), quand je lance le scan, il me répond:
"
Define key attribute first
"

Est-ce un bug ?
 
  • #646
Non non, tu dois mettre la clef du hub pour pouvoir lui causer, c’est normal.

Tu as du la trouver pour faire les premiers essais avec la librairie.

par contre ne pas définir l’adresse ip il va la trouver tout seul (si tout fonctionne)

Bonjour au fils !!!
 
Dernière édition:
  • #647
Il faut juste définir

define mgw fhempy motiongw

et ensuite définir la clé via le set dans la page du mgw

C’est un vrai jeu de piste mon bazaaar, on ne s’ennuie pas en tout cas :D:D:D
 
  • #648
marche à suivre
  1. Définir un gateway define mgw fhempy motiongw (sans aucun paramètres)
  2. si Hub présent mettre en mode live et allumer une bougie.
  3. Définir la clé d'accès au Hub (set mgw key 12ab345c-d67e-8f, voir la clé via l'app brel)
  4. lancer le scan (set mgw scan sur la page du mgw)
  5. Le scanneur devrait trouver les blind attachés au hub et les créer automatiquement.
  6. Aller sur la page fhempy et essayer un up/down sur le blind.
 
  • #649
marche à suivre
  1. Définir un gateway define mgw fhempy motiongw (sans aucun paramètres)
  2. si Hub présent mettre en mode live et allumer une bougie.
  3. Définir la clé d'accès au Hub (set mgw key 12ab345c-d67e-8f, voir la clé via l'app brel)
  4. lancer le scan (set mgw scan sur la page du mgw)
Voilà, jusque là, ça marche.
Le scan ne retourne rien.
J'ai essayé en sim et j'ai vu tes deux screens. Mais en live, rien.
Mon HUB a une IP en 172.19.3.x (car je travaille en classe B :blush:) - peut-être est-ce ça le problème pour le scan ?

Je n'avais pas capté au début, et j'avais mis les données en attributs - maintenant, je le fais via le bouton SET et je pense que c'est ça. Mais donc, je ne donne pas l'IP du HUB avant le scan.
 
  • #650
Oui c’est bien juste, j’utilise la routine discover pour laquelle j’ai une bonne doc.

Je me demande si ce n’est pas un problème de connexion, ce truc utilisé de l’UDP et doit faire un broadcast sur une adresse 238.0.0.1 ou quelque chose du genre pour découvrir les hub, ta VM autorise-t-elle ce traffic ???

Bon demain je vais essayer d’encoder le getDevice via l’adresse IP.

Mais tu n’as pas de messages d’erreur ce qui est un bon signe …


Watch this space !
 
  • #651
Bjr,

J'ai mis le GetDeviceList dans le module gw,

Il faut réinstaller les 2 modules
ensuite
Code:
define mgw fhempy motiongw adresse_IP Clé_d'accès

Et réessayer le scan qui en cas d'adresse IP et de clé définies, fait un GetDeviceList

sinon c'est un Discover via UDP

La communication est en UDP, quand tu as essayé la librairie python en interactif, c'était sur la même VM que FHEM ?

As tu trouvé une bougie ?


PS. j'ai activé les messages (verbose = 5) qui doivent se trouver dans fhempy-2025-01-19.log accessible via fhem
 
Dernière édition:
  • #652
C'est quelle langue qu'ils parlent ?? :p
 
  • #653
define mgw fhempy motiongw adresse_IP Clé_d'accès
Le define ne marche pas à 100%: il l'accepte, je passe en live et il demande la key quand je veut démarrer un scan.

Je la rentre manuellement via le bouton set, et là, elle apparaît dans les internals.

Je lance alors un scan et après 10s il revient comme avant, sans avoir rien ajouté.

Voilà le log
Code:
2025-01-19 12:44:52,934 - ERROR    - fhempy.lib.fhem_pythonbinding: Failed to execute function Set: Traceback (most recent call last):
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/fhempy/lib/fhem_pythonbinding.py", line 385, in handle_function
    ret = await self.execute_function(hash, fhem_reply_done, nmInstance)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/fhempy/lib/fhem_pythonbinding.py", line 484, in execute_function
    ret = await asyncio.wait_for(
          ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/tasks.py", line 479, in wait_for
    return fut.result()
           ^^^^^^^^^^^^
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/fhempy/lib/generic.py", line 208, in Set
    return await utils.handle_set(self._conf_set, self, hash, args, argsh)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/fhempy/lib/utils.py", line 340, in handle_set
    return await fct_call(hash, final_params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/fhempy/lib/motiongw/motiongw.py", line 135, in set_scan
    # normally mesg holds the complete configuration of the discovered gateway/hub
               ^^^^^^^^^
AttributeError: 'MotionDiscovery' object has no attribute 'keys'
 with hash: {'PYTHONTYPE': 'motiongw', 'NAME': 'mgw', 'function': 'Set', 'args': ['mgw', 'scan'], 'msgtype': 'function', 'defargsh': {}, 'argsh': {}, 'defargs': ['mgw', 'fhempy', 'motiongw', '172.19.3.22', 'XXXXXXX-XX-4c'], 'FHEMPYTYPE': 'motiongw', 'id': 30444304}
2025-01-19 12:44:52,935 - ERROR    - fhempy.lib.fhem_pythonbinding: <<< 30444304 10024.98ms: {'PYTHONTYPE': 'motiongw', 'NAME': 'mgw', 'function': 'Set', 'args': ['mgw', 'scan'], 'msgtype': 'function', 'defargsh': {}, 'argsh': {}, 'defargs': ['mgw', 'fhempy', 'motiongw', '172.19.3.22', 'XXXXX-XX-4c'], 'FHEMPYTYPE': 'motiongw', 'id': 30444304, 'finished': 1, 'error': 'Failed to execute function Set: Traceback (most recent call last):\n  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/fhempy/lib/fhem_pythonbinding.py", line 385, in handle_function\n    ret = await self.execute_function(hash, fhem_reply_done, nmInstance)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/fhempy/lib/fhem_pythonbinding.py", line 484, in execute_function\n    ret = await asyncio.wait_for(\n          ^^^^^^^^^^^^^^^^^^^^^^^\n  File "/usr/lib/python3.11/asyncio/tasks.py", line 479, in wait_for\n    return fut.result()\n           ^^^^^^^^^^^^\n  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/fhempy/lib/generic.py", line 208, in Set\n    return await utils.handle_set(self._conf_set, self, hash, args, argsh)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/fhempy/lib/utils.py", line 340, in handle_set\n    return await fct_call(hash, final_params)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File "/opt/fhem/.fhempy/fhempy_venv/lib/python3.11/site-packages/fhempy/lib/motiongw/motiongw.py", line 135, in set_scan\n    # normally mesg holds the complete configuration of the discovered gateway/hub\n               ^^^^^^^^^\nAttributeError: \'MotionDiscovery\' object has no attribute \'keys\'\n'}
2025-01-19 12:44:52,936 - WARNING  - fhempy.lib.fhem_pythonbinding: fhempy took 10026ms for {"PYTHONTYPE":"motiongw","NAME":"mgw","function":"Set","args":["mgw","scan"],"msgtype":"function","defargsh":{},"argsh":{},"defargs":["mgw","fhempy","motiongw","172.19.3.22","XXXXX-XXXX-4c"],"FHEMPYTYPE":"motiongw","id":30444304}
 
  • #654
J'ai fait un git pull origin main pour les deux scripts, je n'ai pas encore de bougie.
 
  • #655
Je regarde ça à mon retour à la maison …
 
  • #656
Curieux, l'erreur indique un appel à la classe discovery alors que normalement il ne devrait pas.

Il plante dans set_scan qui ne voit pas d'adresse IP et fait un discovery

Juste pour être certain le gw est bien définit avec une adresse IP et une clé
du genre

Code:
define mgw fhempy motiongw 192.168.1.100 12ab345c-d67e-8f

Ne pas définir et ensuite entrer l'adresse IP

être certain d'avoir redémarré fhem serveur après le GitHub pull

Lancer en mode simulateur pour voir ce qu'il donne, il devrait définir les deux blinds

comme ceci (il n'ont pas la même Mac address qu'avec sim Discover)

Screenshot 2025-01-19 at 14.12.42.png
 
Dernière édition:
  • #657
Voilà ce que j'avais:
upload_2025-1-19_14-9-32.png
 
  • #660
Je vais rechercher mon fils, retour d'ici 30 minutes
 

Sujet semblables

Réponses
5
Affichages
3K
@lex
Réponses
21
Affichages
3K
RobBZ
Réponses
2K
Affichages
208K
jcoenen
Réponses
3
Affichages
7K
pidgin

Nos articles

On a aimé dans le forum

Retour
Haut