Nouveau : le pare-feu IA surveille toute la plateforme et explique chaque incident en termes simples. Découvrez comment ça marche

Passerelle Pi qui bascule entre le WiFi de la maison et le point d'accès du téléphone au jardin partagé

Passerelle Pi qui bascule entre le WiFi de la maison et le point d'accès du téléphone au jardin partagé

Résolu 5 5

Traduit de English par IA ·

Bonjour à tous. J’ai un Pi 4 qui relève l’humidité du sol et quelques DS18B20 dans notre jardin partagé le samedi, et le reste de la semaine il reste à la maison sur l’établi pour lire les capteurs de la serre. Il publie vers Hermetry avec paho-mqtt.Problème : il ne se connecte jamais qu’à mon WiFi domestique. Au jardin, j’active le point d’accès de mon téléphone, mais le Pi ne le rejoint pas, et je rentre donc sans aucune donnée dans Hermetry pour cette journée. J’ai suivi un guide et ajouté les deux réseaux dans /etc/wpa_supplicant/wpa_supplicant.conf avec priority=, mais le fichier semble ignoré.

$ cat /etc/os-release | head -1
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
$ nmcli -t -f NAME,TYPE con show
preconfigured:802-11-wireless
lo:loopback

Deuxième point, lié : si le Pi est hors ligne un moment, puis-je garder les relevés et les envoyer plus tard ? Actuellement, le script les abandonne simplement quand la publication échoue.

♥ 0

Traduit de English par IA ·

Bookworm utilise désormais NetworkManager, donc wpa_supplicant.conf n’est plus lu. La solution passe par nmcli.

Measure twice, poll once.
♥ 0

Traduit de English par IA ·

Kevin a raison, et la connexion « preconfigured » est celle que l’imageur a créée à partir de ton WiFi domestique. Ajoute le point d’accès comme seconde connexion NetworkManager et donne une priorité à chacune. Je transporte un Pi entre deux usines exactement avec ce montage.

sudo nmcli con add type wifi ifname wlan0 con-name allotment 
     ssid "Aisha-phone" wifi-sec.key-mgmt wpa-psk wifi-sec.psk "********"
sudo nmcli con modify allotment connection.autoconnect yes connection.autoconnect-priority 10
sudo nmcli con modify preconfigured connection.autoconnect-priority 20
nmcli -f NAME,AUTOCONNECT,AUTOCONNECT-PRIORITY con show

Quand les deux sont à portée, la priorité la plus élevée l’emporte, donc le réseau domestique d’abord. Active le point d’accès avant d’alimenter le Pi ; s’il démarre en premier, patiente une minute, NetworkManager relance la recherche.Pour la mise en mémoire tampon : conserve les relevés dans une petite table SQLite, voire dans un fichier JSONL, et quand la connexion revient, envoie-les avec leurs propres horodatages, par lots :

[{"ts": 1762668000000, "values": {"soil.bed3": 31.5, "air.temp": 12.1}},
 {"ts": 1762668300000, "values": {"soil.bed3": 31.2, "air.temp": 12.6}}]

ts est exprimé en millisecondes UTC. Ne supprime une ligne qu’après confirmation de la publication (QoS 1, attends le PUBACK dans paho avec wait_for_publish()).Un piège avec un Pi : il n’a pas d’horloge sauvegardée par batterie. S’il démarre au jardin partagé et ne reçoit aucun réseau pendant un moment, l’horloge est fausse jusqu’à la synchronisation NTP ; les relevés horodatés avec cette horloge se retrouvent à la mauvaise heure ou sont rejetés (plus de 10 minutes dans le futur, c’est refusé). N’horodate les relevés qu’après que timedatectl show -p NTPSynchronized indique yes ; sinon, envoie-les sans ts et laisse Hermetry utiliser l’heure d’arrivée.

Ground loops are my cardio.
Solution acceptée♥ 3

Traduit de English par IA ·

J’ai acheté une carte RTC HAT bon marché pour cette raison précise, une DS3231, pour quelques livres. Ainsi l’heure reste juste même hors ligne.

Ask me about 4–20 mA.
♥ 0

Traduit de English par IA ·

Et gardez des lots raisonnables : la valeur par défaut est de 10 messages par seconde et par appareil. Un gros arriéré envoyé d’un coup est abandonné.

QoS 1 and a lot of patience.
♥ 0

Traduit de English par IA ·

Réglé. J’ai ajouté le point d’accès avec nmcli comme l’a écrit tsmith, priorités 20/10. Samedi il s’est connecté au téléphone environ 40 s après le démarrage. Les relevés étaient enregistrés dans un fichier JSONL pendant que le téléphone n’avait pas de signal au fond des parcelles, puis envoyés par lots de 50 dès son retour. La première semaine, les horodatages étaient décalés d’une heure sur les premières lectures, exactement le problème NTP, donc j’ai commandé un DS3231 comme Michael. En attendant, le script vérifie NTPSynchronized avant d’horodater.

♥ 0
6 sujets de 1 à 6 (sur un total de 6)
  • Vous devez être connecté pour répondre à ce sujet.

Rejoignez la discussion

Connectez-vous pour poser et répondre à des questions, aimer les messages utiles et marquer la réponse qui a résolu votre problème. Chaque contribution rapporte des points et des niveaux.

Partager