Rfxcom2Mqtt avec Mqtt discovery

Bonjour à tous,

j’ai ré-écrit le projet rfxcom2mqtt en typescript avec l’intégration du MQTT discovery (sur la base du projet GitHub - Legobas/rfxcom2mqtt: RFXCOM to MQTT bridge).

vous pouvez retrouver la documentation et les sources :

Les entités suivantes sont automatiquement ajouter à Home-assistant:

  • La version du firmware
    sensor.bridge_rfxcom2mqtt_coordinator_version
    
  • L’état de connexion du composant rfxcom2mqtt
    binary_sensor.bridge_rfxcom2mqtt_connection_state
    
  • La version du composant rfxcom2mqtt
    sensor.bridge_rfxcom2mqtt_version
    
  • Modification du niveau de log du composant rfxcom2mqtt
    select.bridge_rfxcom2mqtt_log_level
    

Pour l’instant seul les devices et entités du protocole rfxcom « lightingX » permettent l’ajout d’une entité homeassistant de type « switch » pour mermettre de changer l’état. ( ce qui correspond a mon besoin)

Pour les autres type de devices, les entitées homeassistant de type « sensor » sont automatiquement ajoutées en fonction des événements reçus par rfxcom.
par exemples (device_class):

  • signal_strength
  • battery
  • voltage
  • humidity
  • temperature
  • carbon_dioxide
  • power
  • energy
  • pressure
  • weight
  • (uv)

Si vous avez besoin d’utiliser d’autres protocoles rfxcom, je vous laisse contribuer au projet.

En espérant que ça puisse servir a d’autre personne.

1 « J'aime »

Super intéressant !!! Je vais tester ca !!!
Juste une petite question, comment tu fait le lien entre un id et un type de sensor et son nom ?
Par exemple ici MQTT Topics and Messages | Rfxcom2Mqtt Documentation, comment sont defini/choisi le title, type, subtype en fonction de l’id ?

J’ai pas trouvé dans la doc comment faire cette association, et je ne vois pas comment ca peut-être automatique :wink:

Merci !

depuis l’évènement rfxcom on recoit les informations « type »,« subtype »
voici un exemple :

{"seqnbr":1,"subtype":0,"id":"0x01A4F9BE","unitCode":1,"commandNumber":1,"command":"On","level":15,"rssi":4,"type":"lighting2"}

a partir de ces informations il faut déterminé les entités homeassistant a ajouter sur les topics de discovery

par exemple:
pour le type=« lighting2 », on ajoute une entrée sur le topic

homeassistant/switch/AC_01A4F9BE_1/config
homeassistant/switch/{subtypeName}_{deviceId}_{unitCode}/config

et lorsqu’il y a la présence de l’attribut « rssi », on ajoute une entrée sur le topic

homeassistant/sensor/AC_01A4F9BE/linkquality/config
homeassistant/sensor/{subtypeName}_{deviceId}/linkquality/config

pour le moment, il y a un mapping que pour les types « lightingX ».

pour les autres type il faut faire l’implémentation ici rfxcom2mqtt/src/libs/Discovery.ts at 8dba0b3d75314ee1d163eac05135b15729e7d7c3 · sguernion/rfxcom2mqtt · GitHub

Les projets ont été déplacé.
Les liens ont été mis à jours dans le premier post.
Une grandes partie des sensors sont maintenant automatiquement ajoutées.

Une ihm est en cours de developmement :

  • affichage des informations du bridge rfxcom
  • affichage et modification de la configuration
  • affichage de la liste des devices

Bonjour

Merci pour ce développement qui va me permettre d’avoir une machine de production et une machine de test via mqtt.

L’installation se passe bien.
J’ai une commande multiple chacon qui commande des commutateurs DIO 54755 qui remontent bien dans Home Assistant avec le switch on/off pour chaque bouton de la télécommande

J’ai des sondes de température Oregon

  • une sonde avec thermomètre hygrometre qui remonte dans mqtt et est partiellement reconnue dans HA : les sensors temperature, humidity et battery sont créés mais déclarés comme unknown
  • une sonde avec uniquement thermomètre qui n’est pas reconnue

de plus dans HA, l’onglet avec l’accès aux données de rfxcom2qtt (web ui) est vide. il y bien les menus : informations, devices, settings, …mais ceux-ci sont vides

add-on version 1.2.0
Voici ma configuration:

mqtt:
  server: mqtt://192.168.xx.xx
  username: xxxxxxxxx
  password: xxxxxxxxx
rfxcom:
  usb_device: /dev/serial/by-id/usb-RFXCOM_RFXtrx433_A1YHOH6X-if00-port0
  debug: true
  transmit:
    repeat: 4
    lighting1:
      - X10
      - ARC
    thermostathumidity1:
      - Oregon
public_url: http://192.168.XX.YY:8123/3bff5a27_rfxcom2mqtt/ingress

Comment résoudre ce problème et faire reconnaître les sondes de température ?
Tout le matériel est bien reconnue avec l’intégration rfxcom

Merci d’avance pour l’aide

Bonjour @Merangle @sguernion

Je suis dans la même situation avec mes sondes Oregon, j’ai l’impression que je devrais avoir des topics avec discovery_device/devices/id de la sonde/ … soit chez moi : <rfxcom2mqtt/devices/0x8904//>
Mais le topic est rfxcom2mqtt/devices/ et ensuite chaque sonde écrase la publication précédente

Je ne sais pas comment faire pour modifier cela
Aviez vous trouvé une solution ?

Merci Sylvain pour ce projet.

J’ai repris ton code et modifié 2-3 trucs (Controler.ts et HomeAssistantDiscovery.ts), je pense que la partie remontée des températures et autres capteurs fonctionnent désormais.

Si vous avez envie de tester, j’ai produit les images docker. Voici un docker compose pour les charger :

version: "3.8"
services:
  rfxcom2mqtt:
    container_name: rfxcom2mqtt
    image: laurentlemercier/rfxcom2mqtt:dev
    restart: unless-stopped
    volumes:
      - /opt/rfxcom2mqtt/data:/app/data
    environment:
      - TZ=Europe/Paris
    devices:
      # Make sure this matched your adapter location
      - /dev/serial/by-id/usb-RFXCOM_RFXtrx433_A1YVHRPZ-if00-port0:/dev/ttyUSB0
    network_mode: bridge
    ports:
      - 8891:8891
networks: {}

Je bute encore sur l’intégration des volets somfy (protocole rfy), j’ai l’impression que cela n’est pas gérée de la même façon que les autres protocoles au niveau évènements.

Question : au niveau code, il est fait mention du package frontend (@rfxcom2mqtt/frontend/-/frontend-0.2.1.tgz), c’est encore utile ? J’ai l’impression que tu as tout repris dans ton code…

Merci

Laurent

Bonjour,
Merci pour ta contribution.
J’essaierai ça quand je trouverais un peu de temps.

le package front est bien utile.
il y a une partie front qui permet d’afficher les infos du contrôleur rfxcom, ainsi que les infos des différents capteur

Je ne sais pas si cela était volontaire de ta part, mais la partie frontend n’est plus accessible sur le site github (visibilité private ?). Je voulais regarder si certains comportements « erratiques » de l’interface étaient « facilement » modifiables.