В общем все заработало, вывод такой, как надо, показывает достаточно точно)
defineVirtualDevice("weather", { //Виртуальное устройство для записи данных и отправки их в MQTT
title: "weather",
cells: {
temperature: {
type: "temperature",
value: -12.0,
},
humidity: {
type: "rel_humidity",
value: 75,
},
wind: {
type: "wind_speed",
value: 3,
}
}
});
defineRule("weather_call", { // регулярный запрос к серверу погоды
when: cron("@every 5m"),
then: function() {
runShellCommand("wget -qO /usr/weather/data.json 'https://api.openweathermap.org/data/2.5/weather?lat=59.7937&lon=30.1534&appid=b1ff*******************a45fe794a&units=metric'");
startTimer("wait_weather", 5 * 1000); // запустили таймер на задержку для получения данных погоды
log("Request sent");
}
});
defineRule("parse_weather", { // чтение полученных от сервера данных погоды
when: function() {
return timers.wait_weather.firing;
},
then: function() {
var weather_data = readConfig("/usr/weather/data.json");
dev["weather"]["temperature"] = Number(weather_data.main.temp);
dev["weather"]["humidity"] = Number(weather_data.main.humidity);
dev["weather"]["wind"] = Number(weather_data.wind.speed);
log("Time: {}".format(weather_data.dt));
log("Temperature is: {}".format(weather_data.main.temp));
log("Humidity is: {}".format(weather_data.main.humidity));
log("Wind speed is: {}".format(weather_data.wind.speed));
}
});
log("Weather script updated!");
@brainroot UPD: appid удалил.