
Автоматизация:
{
"actions": [
{
"command": "DATA=$(curl -s \"https://api.weatherapi.com/v1/current.json?key=your_api_token&q=your_location\") && echo $DATA | jq > /dev/null 2>&1 && mosquitto_pub -t \"weather\" -m \"$DATA\" -r &",
"type": "shell"
}
],
"restart": false,
"triggers": [
{
"interval": 5,
"type": "interval"
}
]
}
Custom-устройство:
{
"exposes": [
"condition",
"temperature",
"humidity",
"feelsLike",
"dewPoint",
"pressure",
"windSpeed",
"windDirection",
"precipitation",
"uvIndex"
],
"real": true,
"options": {
"pressure": {
"unit": "mmHg"
},
"windSpeed": {
"round": 1
}
},
"bindings": {
"condition": {
"inPattern": "{{ json.current.condition.text }}",
"inTopic": "weather"
},
"dewPoint": {
"inPattern": "{{ json.current.dewpoint_c }}",
"inTopic": "weather"
},
"feelsLike": {
"inPattern": "{{ json.current.feelslike_c }}",
"inTopic": "weather"
},
"humidity": {
"inPattern": "{{ json.current.humidity }}",
"inTopic": "weather"
},
"precipitation": {
"inPattern": "{{ json.current.precip_mm }}",
"inTopic": "weather"
},
"pressure": {
"inPattern": "{{ json.current.pressure_mb / 1.33322 }}",
"inTopic": "weather"
},
"temperature": {
"inPattern": "{{ json.current.temp_c }}",
"inTopic": "weather"
},
"uvIndex": {
"inPattern": "{{ json.current.uv }}",
"inTopic": "weather"
},
"windDirection": {
"inPattern": "{{ json.current.wind_dir }}",
"inTopic": "weather"
},
"windSpeed": {
"inPattern": "{{ json.current.wind_kph / 3.6 }}",
"inTopic": "weather"
}
}
}
Сервис, помимо прочего, позволяет получать данные по качеству воздуха, но мне они не нужны, поэтому я их не добавлял, информацию о том как это сделать можно поискать в документации на weatherapi.com.
Для работы автоматизации необходимо наличие пакетов jq
и mosquitto-client-nossl
. Не забудьте указать токен и координаты, а так же поменять топик, если нужно.
Дополнительные параметры для mosquitto_pub
:
-h
- адрес брокера
-p
- порт брокера
-u
- имя пользователя
-P
- пароль
Файлы для импорта: