Странно, написал вчера вечером ответ, но он куда-то пропал. Пишу заново.
На странице Инструменты маршруты такие:
172.16.0.0/16 dev tun2 proto kernel scope link src 172.16.0.1
192.168.10.0/24 via 172.16.54.35 dev tun2
192.168.20.0/24 via 172.16.54.31 dev tun2
Пингуются ip-адреса:
172.16.54.31, 192.168.20.1, 192.168.20.58 (это датчик, который должен видеть Home Assistant)
172.16.54.35, 192.168.10.1, 192.168.10.11 (сервер Home Assistant)
Из сети 192.168.20.0 проходит трассировка до 192.168.10.11
tracert 192.168.10.11
Трассировка маршрута к 192.168.10.11 с максимальным числом прыжков 30
1 1 ms <1 мс 13 ms WT3020 [192.168.20.1]
2 30 ms 52 ms 8 ms 172.16.0.1
3 85 ms 72 ms 56 ms 172.16.54.35
4 150 ms 65 ms 72 ms 192.168.10.11
Трассировка завершена.
C Raspberry, на котором развернут Home Assistant пингуется датчик
ping 192.168.20.58
PING 192.168.20.58 (192.168.20.58) 56(84) bytes of data.
64 bytes from 192.168.20.58: icmp_seq=1 ttl=252 time=62.3 ms
64 bytes from 192.168.20.58: icmp_seq=2 ttl=252 time=58.6 ms
64 bytes from 192.168.20.58: icmp_seq=3 ttl=252 time=49.3 ms
64 bytes from 192.168.20.58: icmp_seq=4 ttl=252 time=57.2 ms
64 bytes from 192.168.20.58: icmp_seq=5 ttl=252 time=154 ms
64 bytes from 192.168.20.58: icmp_seq=6 ttl=252 time=91.8 ms
64 bytes from 192.168.20.58: icmp_seq=7 ttl=252 time=37.9 ms
64 bytes from 192.168.20.58: icmp_seq=8 ttl=252 time=59.9 ms
64 bytes from 192.168.20.58: icmp_seq=9 ttl=252 time=80.0 ms
^C
--- 192.168.20.58 ping statistics ---
9 packets transmitted, 9 received, 0% packet loss, time 19ms
rtt min/avg/max/mdev = 37.854/72.330/154.145/32.531 ms
и проходит трассировка
traceroute 192.168.20.58
traceroute to 192.168.20.58 (192.168.20.58), 30 hops max, 60 byte packets
1 RT-N56U_B1 (192.168.10.1) 0.311 ms 0.201 ms 0.163 ms
2 172.16.0.1 (172.16.0.1) 76.043 ms 117.010 ms 116.968 ms
3 172.16.54.31 (172.16.54.31) 116.971 ms 116.932 ms 116.898 ms
4 192.168.20.58 (192.168.20.58) 117.034 ms 116.986 ms 116.936 ms
Но так и нет главного, ради чего все это затевалось - сервер Home Assistant (192.168.10.11) не видит датчик (192.168.20.58).
Что и чем можно еще протестировать чтобы понять причины?
Последнее редактирование: 2 года 3 нед. назад пользователем nahznahz.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Как я понял сетевая связность есть. Но если не работает само приложение, то тут мне сложно понять причину.
Тогда несколько вопросов:
А если бы этот датчик находился в одной сети с Распберри, то все бы работало корректно?
Что это за датчик и каков обмен между Хомеассистантом и датчиком? Кто кого вызывает и по какому протоколу?
Возможно, вы можете включить дебаг пакетов на распберри и увидеть попытки общения с датчиком. И тогда понять причину.
А если бы этот датчик находился в одной сети с Распберри, то все бы работало корректно?
Да, он так и работал в одной сети с Home Assistant, сейчас пытаюсь его подключить к Home Assistant через другую сеть
Что это за датчик и каков обмен между Хомеассистантом и датчиком?
Это вот такой датчик - esphome.io/components/sensor/sgp30.html, подключается к сети он по WiFi - esphome.io/components/wifi.html. Необходимая конфигурация компилируется в прошивку и записывается в память микроконтроллера ESP8266. Контроллер обеспечивает передачу данных с самого датчика через WiFi в Home Assistant.
Кто кого вызывает и по какому протоколу?
Вот это пока самый сложный вопрос, пытаюсь сам найти эту информацию.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Есть несколько вариантов.
1. Я где-то слышал, что некоторые датчики (не факт что именно ваш) имеют ограничение на доступ к ним из чужой сети. То есть не из локальной сети, а вот как сейчас. Это было где-то в форуме недавно, но найти я не смог. С другой стороны. Ваш датчик пингуется и вроде бы кажется, что сетевое соединение работает правильно. Хотя это не обязательно говорит о том, что и на уровне приложения все работает хорошо. В любом случае погуглите - нет ли ограничений на доступ к датчику из "чужой подсети". Возможно есть такая настройка в целях безопасности и она мешает получить доступ.
2. Сделайте на распберии команду sudo tcpdump -i any host 192.168.20.58 -w esphome.pcap
И обратитесь к датчику из своей программы. Tcpdump запишет этот трафик в файл и потом его можно будет проанализировать. Если tcpdump не установлен, то поставьте его sudo apt-get tcpdump