Товарищи здравствуйте! Подскажите пожалуйста, взял код на отображение погоды с сервака с вики, но выдает ошибки, подскажете что не так? Брал отсюда Погода с OpenWeatherMap
defineVirtualDevice("weather", { //Виртуальное устройство для записи данных и отправки их в MQTT
title: "weather",
cells: {
temperature: {
type: "temperature",
value: -12.0,
},
humidity: {
type: "temperature",
value: 75,
},
wind: {
type: "temperature",
value: 3,
}
}
});
defineRule("weather_call", { // регулярный запрос к серверу погоды
when: cron("@every 1m"),
then: function() {
runShellCommand("wget -qO /usr/weather/data.json https://api.openweathermap.org/data/2.5/weather?lat=59.7937&lon=30.1534&appid=802a2************b0de491ae57b64");
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"] = format(weather_data.main.temp);
dev["weather"]["humidity"] = format(weather_data.main.humidity);
dev["weather"]["wind"] = format(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!");
сервер на запрос отвечает
{“coord”:{“lon”:30.1534,“lat”:59.7937},“weather”:[{“id”:800,“main”:“Clear”,“description”:“clear sky”,“icon”:“01d”}],“base”:“stations”,“main”:{“temp”:291.02,“feels_like”:290.64,“temp_min”:290.91,“temp_max”:291.4,“pressure”:1011,“humidity”:68},“visibility”:10000,“wind”:{“speed”:4.02,“deg”:100,“gust”:0},“clouds”:{“all”:0},“dt”:1693208659,“sys”:{“type”:1,“id”:8926,“country”:“RU”,“sunrise”:1693190672,“sunset”:1693243048},“timezone”:10800,“id”:517512,“name”:“Novoye Koyrovo”,“cod”:200}
wb-rules_20230828T104318.log (4,9 КБ)