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