Bonjour,
Je travaille sur un RP4 pour un petit projet perso d'enceinte vocale "maison". Je me sers de HomeAssistant pour la partie interaction et Rhasspy pour la gestion vocale.
Tout ceci fonctionne à merveille, enfin presque : les containers communiquent via MQTT qui nécessite une adresse IP.
J'ai assigné une IP fixe au RPI à cet effet. Pas de soucis quand je suis connecté à mon réseau domestique.
Sauf, que j'ai voulu faire une démo récemment à l'extérieur de chez moi, sans réseau wifi ou ethernet (j'ai le RPI branché au 220V et c'est tout)… et là c'est le drame, le MQTT est en rade et plus rien ne fonctionne.
J'ai lu qu'il y avait deux fichiers pour gérer les IP fixes : dhcpcd.conf et interfaces.
Les forums conseillent d'utiliser dhcpcd.conf, mais je bute sur un os, et n'arrive toujours pas à faire fonctionner mon système sans wifi.
Voici un extrait du dhcpcd.conf :
# It is possible to fall back to a static IP if DHCP fails:
# define static profile
profile static_wlan0
static ip_address=192.168.1.6/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
# fallback to static profile on eth0
interface wlan0
fallback static_wlan0
interface eth0
static ip_address=192.168.1.6/24
static routers=192.168.1.2
Je pensais forcer l'IP dans le fichier interfaces… mais certain du résultat. Quels sont vos conseils ?
Merci d'avance
Damien
# Pas de réponse mais une question et deux piste
Posté par TheBreton . Évalué à 3.
Bonjour, ton broker mqtt ne pourrait il pas tourner en local (127.0.0.1) et tes containers de faire des publish et subscribe sur cette adresse la ?
Car je suppose qu'ils utilisent actuellement l'adresse ip fourni sur ton pi par le dhcp de ton réseau local qui "fail" quand il ne trouve pas de serveur dhcp à l'exterieur de chez toi.
Solutions autres, passe ton raspberry sur une adresse ip fixe quoi qu'il arrive (bail permanent à mettre dans ton router/box) et assigne cette adresse a ton pi.
https://pimylifeup.com/raspberry-pi-static-ip-address/
Mais dans mon cas il as fallu que j'arrete dhcpd du pi pour que le setting soit bien respecté (lors de déco du wifi chez moi dhcpd mettait une adresse bidon aléatoirement dans certains cas)
[^] # Re: Pas de réponse mais une question et deux piste
Posté par Damien_38 . Évalué à 1.
Bonjour,
Sauf erreur, j'ai déjà une IP fixe sur le RPi… Est-ce que le fichier dhcpd.conf est bien renseigné ? En particulier, définir un "static router" sans connexion internet peut-il être la source de mon problème ?
profile static_wlan0
static ip_address=192.168.1.6/24
static routers=192.168.1.1
Pour les containers, voici ma config…
Texte du lien
[^] # Re: Pas de réponse mais une question et deux piste
Posté par TheBreton . Évalué à 1.
Bonjour, je ne suis pas du tout un expert en gestion des conteneurs, ma propositions consistait à ce que ton broker mqtt et tes clients utilise l'adresse 127.0.0.1 qui est utilisée uniquement en local sur ton pi (c'est une adresse qui ne circule pas sur le wifi/ethernet) pour communiquer entre eux via des topics mqtt.
Voici un lien qui me semble t-il traite de la configuration des adresses des containeurs
https://stackoverflow.com/questions/24319662/from-inside-of-a-docker-container-how-do-i-connect-to-the-localhost-of-the-mach
# autre idée
Posté par NeoX . Évalué à 4.
utiliser le protocole zeroconf/mdns
tu donnes alors un nom à la machine, et peut importe le reseau ou elle sera, elle ecoutera sur tamachine.local
tu pourras alors faire pointer les MQTT vers tamachine.local plutot que vers l'IP
à toi ensuite d'activer par exemple le wifi en mode "hotspot" quand tu es en deplacement,
ainsi un smartphone brancher sur ce wifi sera directement lié à ton RPi
[^] # Re: autre idée
Posté par Damien_38 . Évalué à 1.
Bonjour,
L'idée est séduisante, mais Homeassistant est capricieux avec les adresses… Pas certain que l'astuce suffise.
Merci quand-même.
[^] # Re: autre idée
Posté par NeoX . Évalué à 3.
suffit peut-etre de lui mettre le FQDN zeroconf des equipements plutot que l'IP ?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.