RFXCom web UI and MQTT connector for DKNR app
870
dknr-rfxcom est un projet consacré à la récupération et à l'exploitation des données des appareils radio 433 MHz reçus par un émetteur-récepteur RFXCom RFXtrx433.
Ce projet ne pilote pas directement le RFXtrx : il s'appuie sur rfxcom2mqtt qui publie les trames reçues sur votre serveur MQTT. dknr-rfxcom les traduit dans l'arborescence MQTT commune aux projets DKNR et les déclare à Home Assistant.
Le matériel exact dépend de l'installation, mais l'utilisation du projet nécessite généralement :
rfxcom2mqtt/rfxcom2mqtt) connecté au RFXtrx et à votre serveur MQTT.Des images Docker prêtes à l'emploi sont disponibles. Utilisez le fichier docker-compose.yaml à la racine du dépôt en fournissant les variables d'environnement suivantes :
Le tableau de bord est disponible sur http://<ip du serveur docker>:1880/ et l'éditeur Node-RED sur http://<ip du serveur docker>:1880/admin.
rfxcom2mqtt peut être entièrement configuré par variables d'environnement, sans fichier config.yml :
services:
rfxcom2mqtt:
container_name: rfxcom2mqtt
image: rfxcom2mqtt/rfxcom2mqtt
restart: unless-stopped
volumes:
- rfxcom2mqtt:/app/data
environment:
- TZ=Europe/Paris
- MQTT_SERVER=mqtt://192.168.0.11:1883
- MQTT_USERNAME=${MQTT_USERNAME}
- MQTT_PASSWORD=${MQTT_PASSWORD}
- RFXCOM_USB_DEVICE=/dev/ttyUSB0
devices:
- /dev/ttyUSB0:/dev/ttyUSB0
logging:
driver: "json-file"
options:
max-size: "20m"
max-file: "5"
dknr_rfxcom:
container_name: dknr_rfxcom
image: jcpd/dknr-rfxcom:latest
restart: unless-stopped
deploy:
resources:
limits:
cpus: '1.0'
memory: 512M
environment:
TZ: Europe/Paris
DKNR_USERNAME: ${DKNR_USERNAME}
DKNR_PASSWORD: ${DKNR_PASSWORD}
DKNR_SECRET: ${DKNR_SECRET}
ports:
- 1880:1880
volumes:
- dknr_rfxcom:/data
healthcheck:
test: timeout 10s bash -c ':> /dev/tcp/127.0.0.1/1880' || exit 1
interval: 10s
timeout: 5s
retries: 3
start_period: 90s
logging:
driver: "json-file"
options:
max-size: "20m"
max-file: "5"
volumes:
rfxcom2mqtt:
dknr_rfxcom:
Les variables MQTT_USERNAME, MQTT_PASSWORD, DKNR_USERNAME, DKNR_PASSWORD et DKNR_SECRET sont à définir dans un fichier .env à côté du docker-compose.yaml. Attention, rfxcom2mqtt attend MQTT_USERNAME et non MQTT_USER.
Sans fichier config.yml, rfxcom2mqtt utilise ses réglages par défaut :
rfxcom2mqtt, à renseigner dans dknr-rfxcom ;temperaturehumidity1, homeconfort, lighting1 à lighting4, remote et security1. Les autres sondes (vent, pluie, énergie, volets...) nécessitent de compléter la liste rfxcom.receive dans un fichier config.yml placé dans le volume /app/data ;homeassistant.discovery: false dans un fichier config.yml de rfxcom2mqtt.Dans la page Configurer :
dknr par défaut).base_topic de rfxcom2mqtt.homeassistant par défaut, laisser vide pour désactiver.Les appareils apparaissent dans la page Voir dès leur première trame reçue.
Un RFXtrx reçoit aussi les sondes et télécommandes du voisinage. Dans la page Bloquer, ajoutez une clé et une valeur du message rfxcom2mqtt à ignorer, par exemple :
id = 0x5C02 pour ignorer un appareil précis.subTypeValue = RM174RF pour ignorer tout un modèle.type = security1 pour ignorer tout un protocole.Avec le topic dknr par défaut, l'identifiant d'un appareil est son identifiant RFXCom sans 0x (5C02 pour 0x5C02) :
dknr/get/rfxcom/<appareil>/<entité> : valeurs publiées à chaque changement.dknr/set/rfxcom/<appareil>/command<unité> : 1 ou 0 (ON et OFF sont aussi acceptés) pour piloter une prise ou un interrupteur. Les états binaires sont publiés en 1 ou 0.dknr/discovery/rfxcom/<appareil>/<entité> : description des entités.homeassistant/<type>/rfxcom/<appareil>_<entité>/config : Home Assistant Discovery.Principales entités : temperature, humidity, humidityStatus, barometer, forecast, rainfall, rainfallRate, windDirection, windSpeed, windGust, chillFactor, uv, co2, weight, power, energy, current, voltage, deviceStatus, motion, alarm, tampered, command<unité>, group, level<unité>, lastSeen, batteryLevel, rssi.
Les sondes à plusieurs mesures numérotent leurs entités (temperature1, temperature2, current1...).
Une prise ne répond pas par radio : dknr-rfxcom doit avoir reçu au moins une fois sa télécommande pour connaître son protocole et son code. Appuyez une fois sur la télécommande, l'entité command<unité> apparaît alors et devient pilotable, y compris après un redémarrage. La commande est transmise à rfxcom2mqtt sur rfxcom2mqtt/cmd/<type>/<subtype>/<id>/<unité>.
L'état affiché après une commande est l'état demandé : la prise ne confirme pas qu'elle l'a reçu.
Ce projet est open-source, vous pouvez participer en créant des tickets ou en proposant de requêtes sur le dépôt github du projet.
Content type
Image
Digest
sha256:00af98e1c…
Size
229.7 MB
Last updated
8 days ago
docker pull jcpd/dknr-rfxcom