<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Копытов Иван: заметки с тегом троллейбус</title>
<link>https://kini24.ru/tags/trolleybus/</link>
<description>Блог ленивого сисадмина</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.3 (v4134)</generator>

<itunes:subtitle>Блог ленивого сисадмина</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Движение автобусов в Home Assistant</title>
<guid isPermaLink="false">273</guid>
<link>https://kini24.ru/all/dvizhenie-avtobusov-v-home-assistant/</link>
<pubDate>Wed, 17 Jan 2024 23:26:21 +0700</pubDate>
<author></author>
<comments>https://kini24.ru/all/dvizhenie-avtobusov-v-home-assistant/</comments>
<description>
&lt;h3&gt;Добавление движения общественного транспорта в Home Assistant&lt;/h3&gt;
&lt;p&gt;Наконец-то у меня получилось. Как обычно, делал всё сильно неспешно при наличии свободного времени и желания. «Воды» не будет, поэтому поехали.&lt;br /&gt;
Сейчас не вспомню как, но как-то я вышел на адрес сайта, который отдает данные в формате JSON. Так как меня интересовал в первую очередь конкретный маршрут трамвая, то я получил вот такой вот адрес:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;https://mu-kgt.ru/informing/wap/marsh/?m=6%F2%F0&amp;amp;action=getMarshData&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Что здесь интересного?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;m=6%F2%F0&lt;/i&gt; — номер маршрута и обозначение типа транспорта. В данном случае часть «%F2%F0» — это всего лишь русские буквы «тр», то есть трамвай. Для троллейбуса это будет просто «т» или «%F2», для автобуса это либо «а», либо вообще без буквы — если честно, не пробовал, да и лень было.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;action=getMarshData&lt;/i&gt; — вызывает одноименную функцию в скрипте.&lt;br /&gt;
Переходим в Home Assistant. Здесь я создал новый сенсор в configuration.yaml такого вида:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sensor:
  - platform: rest
    resource: https://mu-kgt.ru/informing/wap/marsh/?m=6%F2%F0&amp;amp;action=getMarshData
    name: Трамвай 6 прибытие
    unique_id: tram6_arrival
    value_template: &amp;quot;{{ value_json.ts_line.A[-1].st_arrive }}&amp;quot;
    scan_interval: 120&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Самое важное здесь — value_template, в котором содержится путь до нужной остановки, по которой получаем информацию о времени прибытия. Буквой «А» закодировано направление движения транспорта, которое вы видите в левой части экрана, а буквой «В» — в правой части экрана.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://kini24.ru/pictures/Snimok-ekrana-ot-2024-01-17-23-04-37@2x.png" width="656" height="329" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Такие же буквы присутствуют на самом сайте и в приложении.&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Я сделал два сенсора: прибытие и убытие, чтобы ориентироваться когда придет следующий трамвай на конечную остановку. Можно оформить и получше, но это — не главное.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://kini24.ru/pictures/Snimok-ekrana-ot-2024-01-17-21-16-28@2x.png" width="243" height="85" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Вид сенсоров в Home Assistant&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Ах да, чуть не забыл. Как посмотреть номер нужной остановки? Открываем страницу по &lt;a href="https://mu-kgt.ru/informing/wap/online/"&gt;ссылке&lt;/a&gt;, выбираем тип транспорта, маршрут и направление движения. Затем щелкаем на нужной остановке, чтобы открыть прогноз движения транспорта. Среди прочей информации будет строка вида:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;Остановка: Детский кинотеатр «Мечта» (код 336)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;В скобках мы и увидим код остановки. В данных, которые нам отдает скрипт по запросу, это код содержится в поле &lt;i&gt;st_regnum&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;И еще небольшое дополнение. Значения «0» и «-1», конечно, хороши для выбора конечных остановок при условии, что мы не знаем количество остановок на маршруте, который может измениться, например, из-за ремонта дороги или аварии. Следующий шаблон выбирает остановку с заданным кодом:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;value_template: &amp;gt;-
  {% set stops = value_json.ts_line.A %}
  {% for stop in stops %}
    {% if stop.st_regnum == 1989 %} {{ stop.st_arrive }} {% endif %}
  {% endfor %}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Обновлено. Автобусы маркируются без буквы в URL, только номер маршрута.&lt;/p&gt;
</description>
</item>


</channel>
</rss>