Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. ioBroker
    4. Скрипты
    5. node-red Скрипты (flows)
    6. Node-RED примеры, решения и и вопросы. Общая тема по Node-RED

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Node-RED примеры, решения и и вопросы. Общая тема по Node-RED

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

      Арифметические операции в NODE-RED, сложение, умножение, вычитание, деление,.. Округление, и т.д.

      Есть у меня сенсоры под таким длинным названием "XIAOMI AQARA SMART HOME TEMPERATURE HUMIDITY PRESSURE SENSOR ZIGBEE". Это беспроводной датчик, работающий по протоколу ZigBee
      5574_temper.png
      Он отправляет следующие данные в систему iobroker:

      1. Влажность, %

      2. Температура, °C

      ****3. Давление, гПа *****

      4. Заряд батареи, %

      5. Напряжение батареи, V

      6. Также на этом сенсоре есть кнопка, и её состояние отображается как false или true, при не нажатом и нажатом состоянии соответственно.

      ********* Гектопаскаль. Вся неудобность в том, что у нас, в России, принято измерять давление в миллиметрах ртутного столба ( мм.рт.ст.) А датчик даёт в Гектопаскалях.

      ! Гектопаскаль (гПа) — единица измерения давления, механического напряжения и модуля Юнга (модуля упругости) в Международной системе единиц (СИ), кратная паскалю. Паскаль равен давлению (механическому напряжению), вызываемому силой, равной одному ньютону, равномерно распределённой по перпендикулярной к ней поверхности площадью один квадратный метр.
      Значит нужно конвертировать одно значение в другое. Для этого сначала создадим переменную, в которой будет храниться значение в мм.рт.ст. Я решил создать её в той же папке датчика, где другие его переменные. Для этого идём в меню "Объекты", выбираем mihome.0, далее devices и выбираем папку weather_v1_158d0002271cea. В верхней панели жмём плюс - "добавить объект к выделенному элементу"

      Имя вводим "Pressure_mm_rt_st", далее "состояние" далее "логическая переменная".

      Если заглянуть в настройки, то у меня выглядит так:

      ! 5574_vv.png
      5574_mm.png
      И наконец-то мы готовы идти в Node-RED.

      Тут вся наша конвертация сводится к двум операциям, умножению и округлению, которые выполняются в блоке function

      Код такой:

      msg.payload = Number((msg.payload * 0.750062).toFixed(1));
      return msg;
      
      

      1. Number - указываем функцию "force-number", для работы с числами.

      Подробнее: https://www.npmjs.com/package/force-number

      2. Число полученное из msg.payload умножаем на константу 0.750062,

      тем самым преобразовав величину давления "гПа" в "мм.рт.ст"

      3. К результату умножения применяем округление до 1 знака

      в дробной части - функция .toFixed(1) , Для округления до целых - .toFixed()

      Сам не знал как, подсказали ссылки

      1. https://community.openenergymonitor.org … -help/2939

      2. https://stackoverflow.com/questions/398 … tion-block

      Ну и код:

      ! [ { "id": "c03c9ab1.dac5c8", "type": "debug", "z": "5c8c6088.754b2", "name": "Давление гПа (1cea)", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "x": 380, "y": 60, "wires": [] }, { "id": "72319ea.5b38e6", "type": "ioBroker in", "z": "5c8c6088.754b2", "name": "Pressure Pa (1cea)", "topic": "mihome.0.devices.weather_v1_158d0002271cea.pressure", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "x": 110, "y": 120, "wires": [ [ "55984769.8246b8", "c03c9ab1.dac5c8" ] ] }, { "id": "391cd606.2d382a", "type": "ioBroker out", "z": "5c8c6088.754b2", "name": "Pressure_mm_rt_st", "topic": "mihome.0.devices.weather_v1_158d0002271cea.Pressure_mm_rt_st", "ack": "true", "autoCreate": "false", "x": 670, "y": 120, "wires": [] }, { "id": "55984769.8246b8", "type": "function", "z": "5c8c6088.754b2", "name": "х 0.750062", "func": "msg.payload = Number((msg.payload * 0.750062).toFixed(1));\nreturn msg;\n\n/*\n1.\nNumber - указываем функцию \"force-number\", для работы с числами.\nПодробнее: https://www.npmjs.com/package/force-number\n\n2.\nЧисло полученное из msg.payload умножаем на константу 0.750062,\nтем самым преобразовав величину давления \"гПа\" в \"мм.рт.ст\"\n\n3.\nК результату умножения применяем округление до 1 знака\nв дробной части - функция .toFixed(1)\nДля округления до целых - .toFixed()\n*/\n", "outputs": 1, "noerr": 0, "x": 350, "y": 120, "wires": [ [ "391cd606.2d382a", "8b093ee8.87f8" ] ] }, { "id": "8b093ee8.87f8", "type": "debug", "z": "5c8c6088.754b2", "name": "Давление мм.рт.ст (1cea)", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "x": 700, "y": 60, "wires": [] } ] !
      5574_fun.png

      Вот и всё, теперь в переменой mihome.0.devices.weather_v1_158d0002271cea.Pressure_mm_rt_st мы видим давление в мм.рт.ст.

      1 Reply Last reply Reply Quote 0
      • O
        OlegJktu last edited by

        1. Sergey777 За математику спасибо. Как всегда оформлено все на 5+ .

        2. я добавил новые "интересные материалы по nod-red" в первый пост этой темы. Если кто еще что интересное знает пишите - добавлю. Что бы всем было легче осваивать Nod-red.

        1 Reply Last reply Reply Quote 0
        • B
          Beer100 last edited by

          Помогите, плиз. Пока изучаю Ноде с нуля.

          После установки НодеРед - день поработал, поучился, все было норм. На следующий день комп с утра стал грузить проц на 100 с лишним процентов. Закрытие Нода в браузере не помогло. Проблема решилась только после полной деинсталляции программы.

          Что я делаю не так?

          1 Reply Last reply Reply Quote 0
          • O
            OlegJktu last edited by

            Скорее всего сделали цикл где-нибудь бесконечный.

            Я так один раз написал в один поток который включал-выключал лампы по кругу. Вот тогда 90% проца и выжрало. Выжрало-бы и все, но у меня УД в контейнере. В его ограничения аппетит nod-red и уперся.

            1 Reply Last reply Reply Quote 0
            • O
              OlegJktu last edited by

              Сломал Nod-red при попытке установить node-red-contrib-xiaomi-miio.

              В драйверах горел зеленным, правила неработали, вебморду Nod-red не открывал.

              Перезапуск/Удаление/установка не помогли.

              Я раскатал бекап всего IoBroker.

              Нужно сделать скрипт на бекапа IoBroker или разобраться с новым драйвером для бекапа.

              И разобраться где flow лежат в файлах.

              1 Reply Last reply Reply Quote 0
              • A
                ap2017 last edited by

                Что лучше для тех кто не пишет скрипты: Нод Ред или Блокли?

                Sent from my SM-N920V using Tapatalk

                1 Reply Last reply Reply Quote 0
                • O
                  OlegJktu last edited by

                  Без разницы. Фунционал по логике аналогичен.

                  Есть небольшие плюшки node-red можно взять нормально написанный кусок, допусти bigtimer

                  https://tech.scargill.net/big-timer/

                  и там куча проблемм за вас уже решили. Но если очень хочется, то такое можно и в блокли собрать.

                  Дополнительная плюшка node-red можно втянуть оборудование которое в iobroker еще нет, а в node-red уже есть. Но и там можно скриптами на js или blokly вкарачиться.

                  1 Reply Last reply Reply Quote 0
                  • A
                    ap2017 last edited by

                    Спасибо. А по надёжности работы в среде IOB они одинаковы?

                    Sent from my SM-N920V using Tapatalk

                    1 Reply Last reply Reply Quote 0
                    • O
                      OlegJktu last edited by

                      По надёжности одинаково.

                      Но в русскоязычное ветке js и блокли более распространена

                      1 Reply Last reply Reply Quote 0
                      • A
                        ap2017 last edited by

                        @OlegJktu:

                        По надёжности одинаково.

                        Но в русскоязычное ветке js и блокли более распространена ` Спасибо

                        Sent from my SM-N920V using Tapatalk

                        1 Reply Last reply Reply Quote 0
                        • G
                          Golan last edited by

                          Приветствую всех пользователей Node-Red.

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

                          Буду очень признателен за любой ответ.

                          Спасибо.

                          ! 8555_5.jpg

                          1 Reply Last reply Reply Quote 0
                          • O
                            OlegJktu last edited by

                            @Golan:

                            Буду очень признателен за любой ответ.

                            Спасибо. `

                            1. Честно говоря я с nod-red dashboard еще не разбирался (пока хватает визуализаций завязанных на iobroker (вообще основной у меня habpanel она в iob полностью затащена ).

                            но у меня в закладках вот такой пример термостата

                            https://tech.scargill.net/a-thermostat-weekend/

                            Кажется его можно затащить к себе и посмотреть.

                            1. В шапке есть ссылка на телеграмм канал, там водяться гуру.
                            1 Reply Last reply Reply Quote 0
                            • O
                              OlegJktu last edited by

                              Нашел пример управления xiaomi пылесосом с уборкой по комнатам

                              https://flows.nodered.org/flow/6d284006 … 78568f179c

                              Решил сюда положить, что бы не потерять. Давно хочу сделать кнопки - вызов пылесоса для уборки в комнату.

                              1 Reply Last reply Reply Quote 0
                              • G
                                Golan last edited by

                                @OlegJktu:

                                пока хватает визуализаций завязанных на iobroker `
                                А можно поинтересоваться какие на IoBrokere есть? Я там вижу именно Dashboard

                                1 Reply Last reply Reply Quote 0
                                • O
                                  OlegJktu last edited by

                                  1. ну я думал что выше мы обсуждали nod-red dashboard. Его в драйверах (адаптерах) ioBroker не видно (он целиком на Node-red завязан).

                                  2. vis https://github.com/iobroker/iobroker.vi … /README.md (он кстати в читый nod-red портирован)

                                  3. материал https://github.com/ioBroker/ioBroker.ma ... /README.md

                                  4. мобайл https://github.com/ioBroker/ioBroker.mo ... /README.md

                                  5. мой любимый хаб панель https://github.com/ioBroker/ioBroker.ha ... /README.md

                                  Немного особняком стоят:

                                  1. приложение для андроид iogo https://github.com/nisiode/ioBroker.iog ... /README.md

                                  2. возможность создавать бота с кнопками, графиками и пр. в мессенджере телеграмм

                                  Я на хабпанели и телеграмм, немного тыкаюсь в material

                                  1 Reply Last reply Reply Quote 0
                                  • G
                                    Golan last edited by

                                    Ребят, подскажите пожалуйста.

                                    Поставил брокер на Windows 7, и не вижу драйверов кроме

                                    ! 8555_1.jpg
                                    Как мне их подгрузить или что еще сделать?

                                    1 Reply Last reply Reply Quote 0
                                    • O
                                      OlegJktu last edited by

                                      такое лучше всего на канале в телеграмм спрашивать

                                      https://web.telegram.org/#/im?p=@iobroker

                                      PS лучше конечно было виртуалку поднимать win хост, linux гость. Настроить что бы дестопная win не ломала софт УД местами очень тяжело. Одни перезагрузки чего стоят.

                                      1 Reply Last reply Reply Quote 0
                                      • G
                                        Golan last edited by

                                        Спасибо, ссылка ведет на пустую страницу, к сожалению.

                                        1 Reply Last reply Reply Quote 0
                                        • O
                                          OlegJktu last edited by

                                          :oops:

                                          https://t.me/iobroker

                                          Так наверно правильно.

                                          В общем в телеграмме поиск канала iobroker

                                          1 Reply Last reply Reply Quote 0
                                          • O
                                            OlegJktu last edited by

                                            Пришлось разобраться с неработоспособностью некоторых flow после перезагрузки сервера.

                                            Как и подозревал, проблема была в том что при старте (перезагрузке) Nod-red состояния некоторых Flow были не определенными - в итоге сообщение дальше них и не шло.

                                            Разыскал и установил вот такой кубик

                                            https://flows.nodered.org/node/node-red-contrib-config

                                            Собственно при запуске Nod-red устанавливает flow в определенное значение.

                                            ! 3955_screenshot_20181122_133619.png

                                            Собственно можно было и как нибудь через переменную хранящуюся в базе данных переписать. Но так вроде сущностей меньше.

                                            upd вот это правило и поправил viewtopic.php?f=48&t=11969&p=146339#p146339

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            892
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            16
                                            85
                                            71137
                                            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