Outils pour utilisateurs

Outils du site


hardware:shelly_ht:mise_en_service

Ceci est une ancienne révision du document !


Mise en service des capteurs Shelly H&T

Lors de l'insertion de la pile de batterie, le capteur démarre et passe automatiquement en mode AP (Point d'accès autonome). On se connecte alors au réseau Wifi présenté par le capteur (SSID de la forme shellyht-XXXXXX ou XXXXXX sont les dernières valeurs hexadécimale de l'adresse MAC du périphérique).

Pour le paramétrage, on utilise le navigateur web. Par défaut l'IP du capteur est 192.168.33.1. L'URL à taper pour accéder à la page de configuration est donc:

http://192.168.33.1

Pour intégrer le capteur dans un réseau wifi existant:

  • Internet & Security > WiFi mode - Client
  • Cocher l'option “Connect the Shelly device to an existing WiFi Network”
  • Compléter le SSID et le mot de passe
  • De préférence cocher “Set static IP address” et définir une IP statique.
  • Valider en cliquant sur SAVE
Si le capteur doit s'intégrer à un réseau sans fil avec filtrage par adresses MAC attention: le capteur présente une adresse MAC différente quand il est configuré en mode AP (c6:5b:be:xx:xx:xx) et quand il est configuré en client (c4:5b:be:xx:xx:xx). Ce sera donc l'adresse MAC c4:5b:be:xx:xx:xx qu'il faudra autoriser à joindre le réseau sans fil.

Désactiver la connexion du capteur au cloud constructeur:

  • Internet & Security > Cloud : cliquer sur le bouton “DISABLE CLOUD” et confirmer.

Restreindre l'accès à la page de configuration:

  • Internet & Security > RESTRICT LOGIN
  • Settings > Device name : définir un nom pour le capteur

Mise en service du Broker

L'idée générale est de paramétrer puis d'instancier le Broker MQTT et de vérifier que les messages émis depuis le LAN sont bien réceptionnés.

Configuration d'une conteneur simple pour le Broker MQTT Mosquitto

docker-compose.yml
version: '3.3'

services:
  mosquitto:
    environment: {}
    image: eclipse-mosquitto:2.0.14
    labels:
      phobos.app.category: monitoring,domotic
      phobos.app.description: broker receiver for home sensors
    ports:
    - published: 1883
      target: 1883
    restart: unless-stopped
    volumes:
    - ${PWD}/mosquitto.conf:/mosquitto/config/mosquitto.conf:ro
    - mosquitto_data:/mosquitto/data:rw
    - mosquitto_log:/mosquitto/log:rw
volumes:
  mosquitto_data: {}
  mosquitto_log: {}

Création du conteneur:

docker-compose up -d mosquitto

Sur le serveur, autoriser les connexions sur le port 1883

# Ajoute une regle netfilter via UFW
ufw allow proto tcp from any to any port 1883 comment 'Broker MQTT'

Pour afficher les messages réceptionnés, on souscrit a tous les messages:

# ouvrir un shell interactif dans le conteneur
docker-compose exec mosquitto /bin/sh
 
# souscription à tous les canaux
mosquitto_sub --id root_observer --topic '#' --verbose

Depuis une machine du LAN, on crée un conteneur temporaire et on utilise le client mosquitto pour envoyer un message au Broker. Si tout se passe bien on le voit s'afficher

docker container run --rm --name mqtt_sender --interactive --tty eclipse-mosquitto:2.0.14 /bin/sh

Menu Internet & Security > Advanced - Developer Settings

  • décocher l'option “Enable CoIoT” puis cliquer sur le bouton SAVE
  • cocher l'option “Enable MQTT”
  • Entrer l'adresse du Broker, cocher l'option “Retain” et laisser la QoS à 0, cliquer sur le bouton SAVE
Lorsque la connexion au Broker MQTT réussi, la diode d'état rouge passe de clignotant à fixe.

L'API HTTP

Le firmware propose une API HTTP permettant d'obtenir des informations et de paramétrer le capteur via le navigateur ou via un client en ligne de commande tel que cURL:

Si l'authentification est active l'accès est restreint sauf pour la ressource /shelly

# Afficher les informations du périphérique
curl http://shelly-device.lan/shelly
{"type":"SHHT-1","mac":"C45BBEXXXXXX","auth":true,"fw":"20210710-130145/v1.11.0-g12a9327-master","sleep_mode":true}
 
# tentative de lecture des paramétrages sans authentification
curl http://shelly-device.lan/settings
401 Unauthorized

Références

hardware/shelly_ht/mise_en_service.1650399845.txt.gz · Dernière modification : 2022/04/19 20:24 de yoann