Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Русский
  3. ioBroker
  4. Скрипты
  5. ioBroker скрипты
  6. Погода на три дня

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.6k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.0k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Погода на три дня

Scheduled Pinned Locked Moved ioBroker скрипты
weather forecast
45 Posts 9 Posters 14.6k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • V Offline
    V Offline
    vtec
    wrote on last edited by vtec
    #1

    Заменить цифры на свой город в данной строке: http://meteoinfo.ru/rss/forecasts/29430

    Создаются 3-и переменные (сегодня, завтра, послезавтра), берем нужную переменную и проговариваем по времени

    forecast.today

    forecast.tomorrow

    forecast.dayAfterTomorrow

    Воспроизводим

    setState (idSayIt, 'Прогноз погоды на сегодня: '+getState("forecast.today").val);

    У меня прогноз проговаривается утром (7:00) на сегодня и вечером (21:30) на завтра.

    Предложения и пожелания?

    createState('weather_forecast.today','');
    createState('weather_forecast.tomorrow','');
    createState('weather_forecast.dayAfterTomorrow','');
     
    
    var request = require('request');
     
    function getWeatherForecast() {
        request ('http://meteoinfo.ru/rss/forecasts/29430', 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(/<item><title>(.*)<\/title>/g, ""), desc: desc[t].replace("<description>", "").replace("</description>", "").replace(/м\/с/g, "м в секунду").replace(/Атмосферное давление ночью (.*) мм рт.ст./g, "").replace(/Вероятность осадков (.*)\%/g, "") });
                    }
     
                    // Сохраняем данные
                    for(var t = 0; t < result.length; t++) {
                        switch (t) {
                            case 0:
                                // Прогноз на сегодня
                                setState('weather_forecast.today', result[0].desc);
                                break;
                            case 1:
                                // Прогноз на завтра
                                setState('weather_forecast.tomorrow', result[1].desc);
                                break;
                            case 2:
                                // Прогноз на послезавтра
                                setState('weather_forecast.dayAfterTomorrow', result[2].desc);
                                break;
                        }
                        log(result[t].date + " => " + result[t].desc);
                    }
                }
            }
        });
    }
    
    // Запускаем через 2 часа 45 минут
    on({time: "45 */2 * * *"}, getWeatherForecast);
    
    
    1 Reply Last reply
    0
    • aurodionovA Offline
      aurodionovA Offline
      aurodionov
      wrote on last edited by
      #2

      vtec, спасибо за скрипт, работает замечательно.

      Правда я пока не голосом пользую а отображаю в виз.
      2665_ical_log.txt

      Пишу с пульта….

      1 Reply Last reply
      0
      • V Offline
        V Offline
        vtec
        wrote on last edited by
        #3

        Да тут половина Bluefox написал :)

        Я допилил и протестировал.

        А в виз я вообще полный ноль, пару раз открывал смотрел, так дальше и не ушел :oops:

        Если бы кто объяснил с самых низов, как например хотя бы создать кнопку, которая изменяла бы свое состояние от выключателя, был бы благодарен ;)

        1 Reply Last reply
        0
        • S Offline
          S Offline
          spectrekr
          wrote on last edited by
          #4

          А может стоит задуматься о создании драйвера, на подобии yr.no было бы удобно. А то все скриптами, да скриптами :-)

          1 Reply Last reply
          0
          • aurodionovA Offline
            aurodionovA Offline
            aurodionov
            wrote on last edited by
            #5

            Так оно и так работает, спарсили скриптом , получили на выходе три переменные. Потом хоть проговаривай ,хоть отображай в виз.

            Пишу с пульта….

            Пишу с пульта….

            1 Reply Last reply
            0
            • I Offline
              I Offline
              instalator
              wrote on last edited by
              #6

              У всех с такой ошибкой работает?
              266_zx.png

              Высокий уровень Децибел вреден для здоровья!

              http://blog.instalator.ru/

              1 Reply Last reply
              0
              • BluefoxB Offline
                BluefoxB Offline
                Bluefox
                wrote on last edited by
                #7

                Символы "<" и ">" не обязательно писать с эскейпом.

                1 Reply Last reply
                0
                • aurodionovA Offline
                  aurodionovA Offline
                  aurodionov
                  wrote on last edited by
                  #8

                  У кого работает,подскажите что исправить. Вторые сутки рублюсь в игру поставь и настрой, уже туплю помаленьку.

                  Пишу с пульта….

                  1 Reply Last reply
                  0
                  • I Offline
                    I Offline
                    instalator
                    wrote on last edited by
                    #9

                    @aurodionov:

                    У кого работает,подскажите что исправить. Вторые сутки рублюсь в игру поставь и настрой, уже туплю помаленьку. `
                    Работает. а вчем проблема?

                    У меня такой код

                    ! ````
                    createState('forecast.today','');
                    createState('forecast.tomorrow','');
                    createState('forecast.dayAfterTomorrow','');
                    ! var request = require('request');
                    ! function getForecast() {
                    request ('http://meteoinfo.ru/rss/forecasts/29838', function (error, response, body) { //29838 - Барнеаполь
                    // Получаем ответ
                    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: "45 */2 * * *"}, getForecast);</title></item></description>

                    Высокий уровень Децибел вреден для здоровья!

                    http://blog.instalator.ru/

                    1 Reply Last reply
                    0
                    • aurodionovA Offline
                      aurodionovA Offline
                      aurodionov
                      wrote on last edited by
                      #10

                      instalator, ругается как у Вас на скрине.

                      Пишу с пульта….

                      1 Reply Last reply
                      0
                      • I Offline
                        I Offline
                        instalator
                        wrote on last edited by
                        #11

                        @aurodionov:

                        instalator, ругается как у Вас на скрине. `
                        Да, это он на экранирование символов, но работает.

                        Высокий уровень Децибел вреден для здоровья!

                        http://blog.instalator.ru/

                        1 Reply Last reply
                        0
                        • S Offline
                          S Offline
                          Securbond
                          wrote on last edited by
                          #12

                          Извините, но пока разбираюсь будут очень глупые вопросы.

                          А куда прописывать этот скрипт что бы он работал ?

                          Спасибо.

                          1 Reply Last reply
                          0
                          • S Offline
                            S Offline
                            spectrekr
                            wrote on last edited by
                            #13

                            @Securbond:

                            Извините, но пока разбираюсь будут очень глупые вопросы.

                            А куда прописывать этот скрипт что бы он работал ?

                            Спасибо. `
                            Установить драйвер "Javascript/Coffescript Script Engine". http://www.iobroker.net/?page_id=560&lang=ruНа вкладке скрипты создать новый и туда вставить код.

                            1 Reply Last reply
                            0
                            • S Offline
                              S Offline
                              Securbond
                              wrote on last edited by
                              #14

                              @spectrekr:

                              @Securbond:

                              Извините, но пока разбираюсь будут очень глупые вопросы.

                              А куда прописывать этот скрипт что бы он работал ?

                              Спасибо. Установить драйвер "Javascript/Coffescript Script Engine". [http://www.iobroker.net/?page_id=560&amp;lang=ru](http://www.iobroker.net/?page_id=560&amp;lang=ru)На вкладке скрипты создать новый и туда вставить код.

                              Спасибо, вроде добавил. Может еще подскажешь как проверить вообще работает драйвер голоса или нет? (драйвер установлен).

                              Молчит как рыба. пробовал да же интервал менять… Молчит...((

                              1 Reply Last reply
                              0
                              • I Offline
                                I Offline
                                instalator
                                wrote on last edited by
                                #15

                                @Securbond:

                                @spectrekr:

                                @Securbond:

                                Извините, но пока разбираюсь будут очень глупые вопросы.

                                А куда прописывать этот скрипт что бы он работал ?

                                Спасибо. Установить драйвер "Javascript/Coffescript Script Engine". [http://www.iobroker.net/?page_id=560&amp;lang=ru](http://www.iobroker.net/?page_id=560&amp;lang=ru)На вкладке скрипты создать новый и туда вставить код.

                                Спасибо, вроде добавил. Может еще подскажешь как проверить вообще работает драйвер голоса или нет? (драйвер установлен). `
                                266_121212121.png

                                Высокий уровень Децибел вреден для здоровья!

                                http://blog.instalator.ru/

                                1 Reply Last reply
                                0
                                • S Offline
                                  S Offline
                                  Securbond
                                  wrote on last edited by
                                  #16

                                  @instalator:

                                  @Securbond:

                                  @spectrekr:

                                  Установить драйвер "Javascript/Coffescript Script Engine". http://www.iobroker.net/?page_id=560&lang=ruНа вкладке скрипты создать новый и туда вставить код. `

                                  Спасибо, вроде добавил. Может еще подскажешь как проверить вообще работает драйвер голоса или нет? (драйвер установлен). filename="121212121.png" index="0">~~

                                  Я правильно понимаю что если я напишу в конце скрипта - on({time: "37 */1 * * *"}, getForecast);

                                  то он должен говорить погоду каждый час в 37 минут (11:37, 12:37 ….. и т.п.)

                                  1 Reply Last reply
                                  0
                                  • I Offline
                                    I Offline
                                    instalator
                                    wrote on last edited by
                                    #17

                                    @Securbond:

                                    @instalator:

                                    @Securbond:

                                    Спасибо, вроде добавил. Может еще подскажешь как проверить вообще работает драйвер голоса или нет? (драйвер установлен). filename="121212121.png" index="0">~~

                                    Я правильно понимаю что если я напишу в конце скрипта - on({time: "37 */1 * * *"}, getForecast);

                                    то он должен говорить погоду каждый час в 37 минут (11:37, 12:37 ….. и т.п.) `
                                    "37 * * * *"

                                    Высокий уровень Децибел вреден для здоровья!

                                    http://blog.instalator.ru/

                                    1 Reply Last reply
                                    0
                                    • S Offline
                                      S Offline
                                      Securbond
                                      wrote on last edited by
                                      #18

                                      Видимо я туго соображаю, но скрипт у меня молчит.

                                      Может нужно эти переменные где то создавать ? - forecast.today / forecast.tomorrow / forecast.dayAfterTomorrow

                                      1 Reply Last reply
                                      0
                                      • I Offline
                                        I Offline
                                        instalator
                                        wrote on last edited by
                                        #19

                                        @Securbond:

                                        Видимо я туго соображаю, но скрипт у меня молчит `
                                        А он включен?

                                        В лог что нибудь пишет?
                                        266___________.png

                                        Высокий уровень Децибел вреден для здоровья!

                                        http://blog.instalator.ru/

                                        1 Reply Last reply
                                        0
                                        • I Offline
                                          I Offline
                                          instalator
                                          wrote on last edited by
                                          #20

                                          @Securbond:

                                          Может нужно эти переменные где то создавать ? - forecast.today / forecast.tomorrow / forecast.dayAfterTomorrow `
                                          Они и создаются этими строками :

                                          createState('forecast.today','');
                                          createState('forecast.tomorrow','');
                                          createState('forecast.dayAfterTomorrow','');
                                          

                                          Высокий уровень Децибел вреден для здоровья!

                                          http://blog.instalator.ru/

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          670

                                          Online

                                          32.6k

                                          Users

                                          82.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe