Погода

В общем все заработало, вывод такой, как надо, показывает достаточно точно)

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 удалил.

2 лайка