Profruit banner

Умен звънец в openHAB

16 декември 2023

Телефонът е винаги с мен и сега, където и да се намирам получавам известие от openHAB, че някой е позвънил и чака пред вратата. А ако ме няма вкъщи става ясно часа и датата на последното позвъняване.

Tasmota Multipress

30 септември 2023

Идеята е Sonoff Touch T1 US 2 в салона, да управлява освен своето осветление и това в кухнята, а още вентилатора.

DIY 12V 1A WiFi Router UPS

22 април 2023

При поредно прекъсване на захранването вкъщи, батерията на нoтбука и двата UPS автоматично превключват на аварийно захранване и едновременно полита съобщение за конфуза

Zigbee2MQTT клониране

21 януари 2023

... как да клонираме съществуваща настройка на Zigbee2MQTT без да се налага последвало интервю на zigbee-устройствата.

LD2410 - бюджетен датчик присъствие в openHAB

11 февруари 2023

Цената на HLK-LD2410 зададе име на поредната тема в моя блог. С негова помощ се постига "народен" датчик присъствие в домашната автоматизация. . ...


openHAB 2 идва с вграден binding NTP Binding. С негова помощ се визуализира текущи: час, ден и дата от календара. По подразбиране името на деня е на английски. Идеята е да се преведе на български.

Календар, ден и час в  openHAB 2

Инсталация на NTP Binding в Paper UI на openHAB 2.

Инсталация на NTP Binding

Настройка на NTP Thing.

Настройка на NTP Thing

Настройката задава зона, часови пояс, време на опресняване и конкретен адрес на NTP сървър (pool).

Превода се базира на карта и трансформация. Последната се постига, чрез инсталиране на Map Transformation.

Инсталация на Map Transformation

Създадената карта за превод на дните на български качете в $OPENHAB_CONF/transform.

weekday.map
Sunday=Неделя
Monday=Понеделник
Tuesday=Вторник
Wednesday=Сряда
Thursday=Четвъртък
Friday=Петък
Saturday=Събота

Самия превод е правило зададено в раздел $OPENHAB_CONF/rules, като се спазва синтаксиса на JAVA.

weekday.rules
/*
* BG превод именa на дните в openHAB
* 2020 (C) Profruit blog
*/
rule "translate_day_of_the_week_in_BG"
 when
  Item Day_ENG changed
 then
  Day_BG.postUpdate(transform("MAP","weekday.map",now.toString("EEEE")))
  //var vDay = transform("MAP","weekday.map",now.toString("EEEE"))
  //logInfo("Day","Day is: {}",vDay)
 end

Коментираната променлива vDay е активна само по време на настройка. Веднъж постигнато, я изключваме, за да не пълне логовете излишно.

Финал. Традиционните три файла.

weekday.sitemap
sitemap weekday label="Profruit_Home"
{
 Frame label=""
  {
   Text item=Time
   Text item=Day_BG
   Text item=Date
  }
}

weekday.items
// time
DateTime Time "Час [%1$tH:%1$tM]" <time> { channel="ntp:ntp:local:dateTime" }

// translation day in BG
DateTime Day_ENG  "[%1$tA]" {channel="ntp:ntp:local:dateTime"}
String   Day_BG   "Ден [%s]"  <day7>    

// date
DateTime Date "Календар [%1$td.%1$tm.%1$tY ]" <calendar> { channel="ntp:ntp:local:dateTime" }

weekday.things
// NTP Binding add as Thingh ( NTP Server )
ntp:ntp:local  [ hostname="nl.pool.ntp.org", refreshInterval=60, refreshNtp=30, locale="Europe/Sofia" timeZone="Europe/Sofia" ]

Поглед в weekday.things показва, че настройка на NTP Server може да се задава в този файл, освен в Paper UI.

Update 06.06.2020

Колкото и странно да звучи забравете превода с правило и карта. Нека остане като пример. Нещата са по-прости и само липсата на документация стимулира горния начин. Пример на руснак споделил своите конфигурационни файлове ме озадачи. Никакви трансформации и функции, а деня изписан на руски. Отново прерових форума на openHAB и попаднах на куриози на норвежец, настояващ дните му, да се изписват на английски, а не на родния му език. И така по следата и поредна порция загубено време ето как.

Задаваме език, страна и часова зона в PaperUI на български.

local в PaperUI

Рестарт на сървъра. Резултатът е с изход 50/50. Честито, ако деня в вашия openHAB се изпише на български. В моя случай не излезе.

Търсим файл /etc/default/openhab2 . Той е с права 644. Спускаме по средата на файла и търсим израз EXTRA_JAVA_OPTS="".

Между кавичките добавяме израз -Duser.country=BG -Duser.language=bg.

EXTRA_JAVA_OPTS

Проба-грешка от моя страна и заработи. Съхраняваме измененията и рестарт на сървъра. Кеш на браузъра също.

мобилна версия

Така изглежда в мобилната адаптация на openHAB.

Час, ден на български, ден-месец-година. Денят сложих в средата, че от толкова цифри мозъкът се взривява. Можете да ги подредите по ваш вкус и дори съкратите.

Краен резултат на традиционните три файла.

weekday.sitemap
Text item=dateTimeNTP

weekday.items
DateTime dateTimeNTP "Време [%1$tR %1$tA %1$td.%1$tm.%1$tYг]" <time> { channel="ntp:ntp:pool:dateTime" }

weekday.things
ntp:ntp:pool  [ hostname="nl.pool.ntp.org", refreshInterval=60, refreshNtp=30 ]

weekday.rules и weekday.map в кошчето.





до нови срещи   ^.^
16.05.2020 profruit 

0 Response to "Календар, ден и час в openHAB 2"

Публикуване на коментар

Този блог е реинкарнация на първите ми опити за споделяне в нета. На времето започнах с къси разкази на преживяното. После се обезсмисли и превърнах блога си в системно радио. Пиша единствено неща, които карат душата ми да живее: openHAB, Ubuntu, Споделено и т.н. Това е моето системно радио, разбирате ли? Моята вълна и вие сте на нея сега.

Архив на блога