Пожелание по доработке Сетевых соединений

Приветствую.

Контроллер 8.5.1 с аккумулятором внутри стоит в квартире и подключен к домашней сети кабелем в eth0. На случай пропадания интернета или электричества (питания роутера\свича) хочется, чтобы он подключался к СОСЕДСКОМУ Wi-Fi как к резервному(экстренному) каналу хотя бы для передачи информации об обесточивании.

Сейчас, если я правильно понял, настройка сетевых соединений подразумевает, что все активированные каналы используются (контроллер подключается к ним и получает IP адрес по DHCP), просто передает данные он лишь по самому приоритетному.

Можно ли добавить штатную настройку, чтобы канал активировался и происходило подключение к сети лишь в момент недоступности предыдущего более приоритетного канала? То есть, в моем случае, чтобы WB подключался к Wi-Fi сети соседа лишь при пропадании проводного коннекта.

Добрый день.

Да, соединения с галочкой «Подключаться автоматически» остаются активными постоянно, менеджер соединений только выбирает, через какое пойдёт трафик.

Это можно настроить уже сейчас в разделе Настройки → Конфигурационные файлы → Сетевые соединения. В Wi-Fi-соединении с резервной сетью снимите галочку «Подключаться автоматически», а на вкладке «Автоматическое переключение соединений» добавьте его в соединения со средним приоритетом, wb-eth0 оставьте в высоком. Тогда к Wi-Fi будет подключаться только менеджер соединений и только когда через кабель пропадёт интернет. Если контроллер уже подключён к сети соседа, после сохранения перезагрузите его.

Обратно Wi-Fi сам не отключится. Когда кабель вернётся, трафик пойдёт через eth0, а Wi-Fi останется подключённым до перезагрузки. Отключение автоматом можно сделать через правила. Если сами не умеете - воспользуйтесь помощью ИИ-бота здесь на портале кнопкой - «Спросить ИИ»:

image

Удалось ли мне разрешить ваш вопрос?

На версии trixie.testing.latest с вчерашним обновлением пакетов по apt у меня в сетевых соединениях есть лишь вкладка “сетевые соединения”, где я активирую и настраиваю соединения, и вкладка “приоритеты содеинений”, где я выставляю из приоритеты и задаю параметры проверки доступности интернета. Вкладки “автоматическое переключение соединений” у меня нет.

Но если имеется ввиду вкладка Приоритеты соединений, то wifi интерфейс там появляется лишь когда у него активна галочка “подключаться автоматически” в соседней вкладке “сетевые соединения”, то есть конструкция “снять галочку автоматического подключения и настроить средний приоритет” технически невозможна

Добрый день.

Вы правы, приоритетами управляются только соединения с автоподключением, а вкладка называется «Приоритеты соединений». Прошу прощения за неверный совет, писал по памяти

Сделать можно так. Верните в Wi-Fi-соединении галочку «Подключаться автоматически», оно встанет в средний приоритет. И добавьте в разделе Правила, которое отключает Wi-Fi, когда через eth0 минуту стабильно есть интернет. После такого отключения Network Manager сам к сети не подключается до перезагрузки, а менеджер соединений включит Wi-Fi при пропадании интернета через кабель. UUID соединений для правила видно в разделе Устройства у устройств «Network Connection …».

// Отключает резервное Wi-Fi-соединение, когда через eth0 снова стабильно есть интернет.
// UUID соединений видны в разделе «Устройства» (устройства «Network Connection ...»)
// или в выводе команды: nmcli -f NAME,UUID connection show

var ETH = "system__networks__" + "UUID_СОЕДИНЕНИЯ_wb-eth0";
var WIFI = "system__networks__" + "UUID_WI-FI_СОСЕДА";
var HOLD_MS = 60000; // сколько eth0 должен работать без сбоев перед отключением Wi-Fi

var okSince = null; // с какого момента eth0 с интернетом, а Wi-Fi активен

defineRule("backup_wifi_off", {
  when: cron("@every 20s"),
  then: function () {
    // Connectivity и Active публикует wb-mqtt-nm-helper, при отключении соединения они сбрасываются в 0
    if (!(dev[ETH + "/Connectivity"] && dev[WIFI + "/Active"])) {
      okSince = null;
      return;
    }
    if (okSince === null) {
      okSince = Date.now();
      return;
    }
    if (Date.now() - okSince >= HOLD_MS) {
      log("Через eth0 снова есть интернет, отключаю резервный Wi-Fi");
      dev[WIFI + "/UpDown"] = true; // кнопка Up/Down отключает активное соединение
      okSince = null;
    }
  }
});

На скриншоте у wb-eth0 статус «Без доступа в интернет». Если это не тест, проверьте командой curl -s --interface eth0 http://network-test.debian.org/nm, должна прийти строка NetworkManager is online. Иначе контроллер будет постоянно работать через Wi-Fi.

Жду обратной связи

Да, про возможность создания правила я понял, суть темы была именно про пожелание доработки, мне кажется, это будет полезно и для других пользователей для повышения надежности работы WB.
Спасибо, тему можно закрывать, надеюсь, что с внесением пожелания в беклог

Добрый день! Да, передали ваше пожелание разработчикам. Если они возьмутся и сделают, то мы оповестим вас в этой теме.