NEWS
Погода на три дня
-
не работает :oops: :? :cry: `
Выложи весь код, под спойлер только -
Понимаю что в последней строке ерунду написал..((
! createState('forecast.today','');
! createState('forecast.tomorrow','');
! createState('forecast.dayAfterTomorrow','');
! var request = require('request');
! function getForecast() {
! request ('http://meteoinfo.ru/rss/forecasts/26063', function (error, response, body) {
! // Получаем ответ
! if (!error && response.statusCode == 200) {
! // Парсим данные
! var desc = body.match(/<description>(.)</description>/g);
! var date = body.match(/<item><title>(.)</title>/g);
! // Если данные существуют, то обрабатываем
! if (desc && date) {
! // Удаляем лишнюю строку из desc
! desc.splice(0, 1);
! var result = [];
! for(var t = 0; t < date.length; t++) {
! // Окончательно формируем строку с прогнозом (удаляем теги и не нужную информацию)
! result.push({date: date[t].replace("<title>", "").replace("</title>", ""), desc: desc[t].replace("<description>", "").replace("</description>", "").replace(/м/c/g, "м в секунду").replace(/Атмосферное давление ночью (.) мм рт.ст. /g, "").replace(/Вероятность осадков (.)%/g, "") });
! }
! // Сохраняем данные
! for(var t = 0; t < result.length; t++) {
! switch (t) {
! case 0:
! // Прогноз на сегодня
! setState('forecast.today', result[0].desc);
! break;
! case 1:
! // Прогноз на завтра
! setState('forecast.tomorrow', result[1].desc);
! break;
! case 2:
! // Прогноз на послезавтра
! setState('forecast.dayAfterTomorrow', result[2].desc);
! break;
! }
! log(result[t].date + " => " + result[t].desc);
! }
! }
! }
! });
! }
! // Запускаем в 45 минут через 2 часа
! on({time: "* * * * "}, getForecast);
! setState ({time: " * * * *"},idSayIt, 'Прогноз погоды на сегодня: '+getState("forecast.today").val);</title></item></description>
7614_screenshot_20181109-163635_samsung_internet.jpg
7614_inked20181108_062959_li.jpg
7614_20181109_162551.jpg -
Наметился прогресс
! filename="777.JPG" index="0">~~
я подозреваю, что что бы проговаривал, нужно еще что то в скрипт писать? `
Ну вот, сам скрипт то теперь работает.Добавь к нему эти строки
on({id: 'javascript.0.forecast.today', change: 'any'}, function (obj) { setState('sayit.0.tts.text', obj.newState.val); });А вообще скрипт для проговаривания времени выкладывали тут на форуме http://forum.iobroker.net/viewtopic.php?f=26&t=495
-
пишет такую ошибку -
sayit.0 2015-12-18 21:15:01 error sayit.0 Cannot get file: received file is too short
sayit.0 2015-12-18 21:15:01 info sayit.0 saying: Облачно, небольшой дождь. Температура ночью 2°, днём 6°. Ветер западный, 5 м/с.
sayit.0 2015-12-18 21:15:00 warn sayit.0 Same text in less than half a second.. Strange. Ignore it.
-
пишет такую ошибку -
sayit.0 2015-12-18 21:15:01 error sayit.0 Cannot get file: received file is too short
sayit.0 2015-12-18 21:15:01 info sayit.0 saying: Облачно, небольшой дождь. Температура ночью 2°, днём 6°. Ветер западный, 5 м/с.
sayit.0 2015-12-18 21:15:00 warn sayit.0 Same text in less than half a second.. Strange. Ignore it. `
У тебя скрипт случайно не каждую секунду отрабатывает? -
по логам, каждую минуту. но проигрывает только "динь дон" (предварительный сигнал прописанный в настройках драйвера. `
А драйвер syit настраивал?Для Ivona регистрация тут https://www.ivona.com/us/for-business/speech-cloud/
266___________.png -
У меня гугл стоял..
зарегистрировал ивону, теперь пишет -
sayit-0 2015-12-18 21:46:01 warn Received file is too short: {"Message":"Authentication failed"} `
Видимо не может авторизоваться -
Почему Танька всё проговаривает красиво а ветер говорит "четыре метра флеш с" ? `
result.push({date: date[t].replace("<title>", "").replace("</title>", ""), desc: desc[t].replace("<description>", "").replace("</description>", "").replace(/м\/с\./g, "м в секунду.").replace(/Атмосферное давление ночью (.*) мм рт.ст. /g, "").replace(/Вероятность осадков (.*)\%/g, "") }); -
Почему Танька всё проговаривает красиво а ветер говорит "четыре метра флеш с" ? `
result.push({date: date[t].replace("<title>", "").replace("</title>", ""), desc: desc[t].replace("<description>", "").replace("</description>", "").replace(/м\/с\./g, "м в секунду.").replace(/Атмосферное давление ночью (.*) мм рт.ст. /g, "").replace(/Вероятность осадков (.*)\%/g, "") }); ```` `Спасибо а то как нерусская :o
-
Может кому пригодится.
Парсер текущей погоды с сайта realmeteo.ru
! ````
createState('forecast.curr_temp',''); // Текущая температура
createState('forecast.curr_humidity',''); // Текущая влажность
createState('forecast.curr_wind_speed',''); // Текущая скорость ветра
! var request = require('request');
! function getWeatherOutside() {
request ('http://www.realmeteo.ru/krasnodar/1/current', function (error, response, body) {
// Получаем ответ
if (!error && response.statusCode == 200) {
// Парсим данные
var current = body.match(/(-?[\d.+-]+)([^рт]+?)</span>/g);
// Если данные существуют, то обрабатываем
if (current) {
current.splice(4, current.length - 4); // Удаляем лишние повторы
current.splice(1, 1); // Удаляем лишнюю строку (ощущаемая температура)
var result = [];
for(var t = 0; t < current.length; t++) {
current[t] = current[t].replace("", "").replace("", ""); //удаляем теги
}
//Сохраняем результат
setState('forecast.curr_temp', current[0]);
setState('forecast.curr_humidity', current[1]);
setState('forecast.curr_wind_speed', current[2]);
}
}
});
}
! // Запускаем каждые 20 мин
on({time: "*/20 * * * *"}, getWeatherOutside);
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
