Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. ioBroker
    4. Скрипты
    5. ioBroker скрипты
    6. Контроль онлайн состояния устройств

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Контроль онлайн состояния устройств

    This topic has been deleted. Only users with topic management privileges can see it.
    • I
      instalator last edited by

      Организовывал кто нибудь контроль актуальности данных?

      Что бы отлавливать отвалившееся оборудование.

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

      1 Reply Last reply Reply Quote 0
      • I
        instalator last edited by

        Пока сделал так:

        Все устройства Ethernet'овские, настроил драйвер пинг.

        В скрипте по крону проверяю переменные пинга и если кто то не пингуется отправляю на pushover сообщение, какой контроллер отвалился.

        1 Reply Last reply Reply Quote 0
        • V
          vtec last edited by

          Почему по крону? Есть же по событию. Там меняется состояние с true на false. Если память не изменяет.

          Единственное, что мы Bluefox'у писали, чтобы можно было как то все состояния получать типа списком что ли. А то получается, что я должен каждое устройство описывать, а логичнее было бы взять список устройств и проверить их состояния.

          1 Reply Last reply Reply Quote 0
          • I
            instalator last edited by

            По крону код короче)

            1 Reply Last reply Reply Quote 0
            • V
              vtec last edited by

              набросал, представляю общественности

              ! var idSayIt = "sayit.0.tts.text"; // Проверяем наличие интернета on('ping.0.cubieboard2.213_180_204_3', function (obj) { if(obj.newState.val === 'true' || obj.newState.val === true){ setState (idSayIt, 'Соединение с интернетом восстановлено.'); }else{ setState (idSayIt, 'Пропало соединение с интернетом.'); } }); ! // Проверяем работу медиацентра (OpenELEC) on('ping.0.cubieboard2.192_168_0_105', function (obj) { if(obj.newState.val === 'true' || obj.newState.val === true){ setState (idSayIt, 'Соединение с медиацентром восстановлено.'); }else{ setState (idSayIt, 'Пропало соединение с медиацентром.'); } }); !
              Подставить свои переменные в место: ping.0.cubieboard2.213_180_204_3 и ping.0.cubieboard2.192_168_0_105

              Если будете скриптом проверять наличие интернета, то для нормального функционирования нужно проделать следующее: я зашел во вкладку "Состояния" и ручками изменил значение переменной ping.0.cubieboard2.213_180_204_3 с true на false и обратно(изменение подтверждается enter'ом). Это нужно чтобы пока интернет есть создался кеш с голосом, а то когда интернета не будет, голос не отработает.

              1 Reply Last reply Reply Quote 0
              • S
                spectrekr last edited by

                А кэш сколько хранится? Получается он как в базе накапливается и потом только сопоставляется?

                1 Reply Last reply Reply Quote 0
                • Bluefox
                  Bluefox last edited by

                  @spectrekr:

                  А кэш сколько хранится? Получается он как в базе накапливается и потом только сопоставляется? `
                  Кеш чего?

                  1 Reply Last reply Reply Quote 0
                  • V
                    vtec last edited by

                    Верхний скрипт больше не актуален, убрал под спойлер. Оставлю как пример, может что из него и пригодится.

                    На много универсальней:

                    //список
                    var listStatePing = $('ping.0.cubieboard2.*');
                    //подписываемся на изменения списка
                    listStatePing.on(function(obj) 
                    {
                        var message;
                        var sayItId = "sayit.0.tts.text";
                        //если старое значение было true, стало false и наоборот
                        if(obj.oldState.val === "true" || obj.oldState.val === true){
                            //obj.name - имя устройства
                            message = obj.name+'. Пропала связь!';
                        }else{
                            message = obj.name+'. Связь восстановлена!';
                        }
                        setState(sayItId, message);
                        log(message);
                    });
                    
                    

                    Условия те же.

                    Подставить свое значение в место <u>cubieboard2</u>.

                    Названия устройств в драйвере пинг я написал на русском (например: Шлюз, Роутер, Мега1, Медиацентр, Рабочий компьютер, Телефон, Сетевое хранилище и т.д.) и чтобы названия сочетались с фразой: Ваше устройство. Связь восстановлена!

                    P.S. Если кто придумает фразу по интересней, сообщите.

                    Сколько бы вы устройств в настройки драйвера пинг не добавляли, все они должны будут проговориться данным скриптом.

                    Если будете скриптом проверять наличие интернета, то для нормального функционирования нужно проделать следующее: я зашел во вкладку "Состояния" и ручками изменил значение переменной ping.0.cubieboard2.213_180_204_3 с true на false и обратно(изменение подтверждается enter'ом). Это нужно чтобы пока интернет есть создался кеш с голосом, а то когда интернета не будет, голос не отработает.

                    Скрипт протестирован, разным устройствам выдергивал сетевой кабель, все работает 🙂

                    1 Reply Last reply Reply Quote 0
                    • S
                      spectrekr last edited by

                      @Bluefox:

                      @spectrekr:

                      А кэш сколько хранится? Получается он как в базе накапливается и потом только сопоставляется? Кеш чего?
                      Кэш sayit, тех фраз которые он озвучивает. Вот эта фраза смущает.
                      @vtec:

                      Это нужно чтобы пока интернет есть создался кеш с голосом, а то когда интернета не будет, голос не отработает. `

                      1 Reply Last reply Reply Quote 0
                      • S
                        spectrekr last edited by

                        @vtec:

                        Если будете скриптом проверять наличие интернета, то для нормального функционирования нужно проделать следующее: я зашел во вкладку "Состояния" и ручками изменил значение переменной ping.0.cubieboard2.213_180_204_3 с true на false и обратно(изменение подтверждается enter'ом). Это нужно чтобы пока интернет есть создался кеш с голосом, а то когда интернета не будет, голос не отработает. `
                        А у вас интернет нормально отрабатывает, ложных срабатываний нет? А то у меня интернет с непостоянной, но периодичностью то пропадал, то появляется, если верить сообщению, а на самом деле все ровно, сижу в это же время на большом брате и потоковое вещание с интернета работает.

                        1 Reply Last reply Reply Quote 0
                        • E
                          electric69 last edited by

                          @spectrekr:

                          А у вас интернет нормально отрабатывает, ложных срабатываний нет? А то у меня интернет с непостоянной, но периодичностью то пропадал, то появляется, если верить сообщению, а на самом деле все ровно, сижу в это же время на большом брате и потоковое вещание с интернета работает. `
                          Попробуй пинговать сразу несколько сайтов - гугл, яндекс, майл. Если хотя бы один не вернет пинг - это не значит что инета нет, если все три не пингуются - значитт что то не так…

                          У меня скрипт именно так отрабатывает, только он для CCU.IO

                          1 Reply Last reply Reply Quote 0
                          • S
                            spectrekr last edited by

                            @electric69:

                            @spectrekr:

                            А у вас интернет нормально отрабатывает, ложных срабатываний нет? А то у меня интернет с непостоянной, но периодичностью то пропадал, то появляется, если верить сообщению, а на самом деле все ровно, сижу в это же время на большом брате и потоковое вещание с интернета работает. `
                            Попробуй пинговать сразу несколько сайтов - гугл, яндекс, майл. Если хотя бы один не вернет пинг - это не значит что инета нет, если все три не пингуются - значитт что то не так…

                            У меня скрипт именно так отрабатывает, только он для CCU.IO `
                            У вас отдельный скрипт? Просто хотелось реализовать драйвером ping, т.к. для него уже скрипт написан и работает, с оповещением если что-то критичное отключится. А вот интернет "обманывает".

                            1 Reply Last reply Reply Quote 0
                            • E
                              electric69 last edited by

                              @spectrekr:

                              У вас отдельный скрипт? Просто хотелось реализовать драйвером ping, т.к. для него уже скрипт написан и работает, с оповещением если что-то критичное отключится. А вот интернет "обманывает". `
                              Да, у меня отдельный скрипт, который мониторит состояние всего оборудования умного дома - включая сервер, контроллеры, инет, состояние роутера (микротик) и прочее. Если что - ругается через sayit, отправляет смс и пишет в отдельный лог.

                              1 Reply Last reply Reply Quote 0
                              • V
                                vtec last edited by

                                @spectrekr:

                                Кэш sayit, тех фраз которые он озвучивает. Вот эта фраза смущает. `
                                Кеш хранится сколько угодно, все фразы если они статичны берутся из кеша. Только первый раз фраза генерится через инет и складывается в кеш.
                                1518_unbenannt.png

                                1 Reply Last reply Reply Quote 0
                                • V
                                  vtec last edited by

                                  @spectrekr:

                                  А у вас интернет нормально отрабатывает, ложных срабатываний нет? А то у меня интернет с непостоянной, но периодичностью то пропадал, то появляется, если верить сообщению, а на самом деле все ровно, сижу в это же время на большом брате и потоковое вещание с интернета работает. `
                                  У меня нормально, по сто раз не срабатывает, пингую ip адрес ya.ru

                                  При проигрывании потока, плеер может кешировать, поэтому и не заметно.

                                  1 Reply Last reply Reply Quote 0
                                  • V
                                    vtec last edited by

                                    @electric69:

                                    @spectrekr:

                                    У вас отдельный скрипт? Просто хотелось реализовать драйвером ping, т.к. для него уже скрипт написан и работает, с оповещением если что-то критичное отключится. А вот интернет "обманывает". Да, у меня отдельный скрипт, который мониторит состояние всего оборудования умного дома - включая сервер, контроллеры, инет, состояние роутера (микротик) и прочее. Если что - ругается через sayit, отправляет смс и пишет в отдельный лог.
                                    В данном скрипте не составит труда дописать отдельный лог, и др. оповещания 🙂

                                    1 Reply Last reply Reply Quote 0
                                    • S
                                      spectrekr last edited by

                                      Видать проблемы были у провайдера, за выходные ни одного обрыва не произошло.

                                      1 Reply Last reply Reply Quote 0
                                      • First post
                                        Last post

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      657
                                      Online

                                      31.7k
                                      Users

                                      79.7k
                                      Topics

                                      1.3m
                                      Posts

                                      5
                                      17
                                      3743
                                      Loading More Posts
                                      • Oldest to Newest
                                      • Newest to Oldest
                                      • Most Votes
                                      Reply
                                      • Reply as topic
                                      Log in to reply
                                      Community
                                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                      The ioBroker Community 2014-2023
                                      logo