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.
    • A
      Anrikigai last edited by

      Только начал осваивать Node-Red, и сразу вопросы:

      1. Можно ли в функции определить исходную команду, а не только источник?
        Скажем, при получении сигнала от кубика Rotate Left нужно некий параметр уменьшить, а по Rotate Right увеличить.
        Сейчас у меня после ioBroker in с событием Rotate right идет Change, в котором true меняется на 1, и анаогично Rotate left -> Change, меняющий true на -1.
        Оба этих события сходятся в одну функцию, которая соответственно меняет громкость, яркость, что угодно.
        Но по идее промежуточные Change не очень нужны. Можно сразу с Rotate Left и Rotate Right на эту функцию сигнал подать. Да, в обоих случаях будет true, но наверняка же в этой функции можно определить, было это вызвано поворотм влево или вправо?
        Собственно аналогично отделять одинарное нажатие кнопки от двойного и т.п....

      2. Нажатие кнопки у меня приводит к последовательному приходу событий от нее true и сразу false.
        Я придумал 2 способа очистки. Switch, который пропускает только true. И Delay, в котором при выборе Rate Limit | All messages появляется пункт drop intermediate messages.
        Результат одинаковый. Что эффективнее? Может еще получше вариант есть?

      3. Как использовать ioBroker get node? Расположена в группе function. Насколько я понимаю, в отличие от ioBroker in node, посылающей сообщение дальше, get позволяет узнать текущее состояние. Но как? Что подать ей на вход и что на выход?
        Скажем, сейчас я In node направляю на сохранение переменной во flow (скажем, параметр dimmer), и потом его использую. Но лучше же опрашивать статус, когда понадобится, а не подписываться на него?
        Ну или хотя бы в коде функции как опросить произвольный параметр...

      4. Можно ли из функции на Node-Red пройтись по всем датчикам (в моем случае подключены через Xiaomi Gateway 2) и, к примеру, проверить заряд их батрейки?
        Ну а дальше либо вывести "аварийные" датчики, либо записать 0/1 в дополнительное поле каждого сенсора (к примеру, BatteryStatus) и указывать его в Metro плитках (они автоматически перекрашиваются в зависимости от "ID статуса"

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

        1. если в обьектах нет, то без вариантов. Можно еще конечно лог глянуть. Только дебаг нужно включить.
          1.1) возможно через usb-zigbee свиток драйвер отдает больше.

        2. Я думаю без разницы.

        3. На JS такое видел. На Node-red по моему только руками (ну или js засунуть в кубик). js пример есть на форуме, но он тоже не идеальный - там отдает id объекта - это не человеко читаемо.

        4. Нужно мне самому попробовать на выходных,
          ioBroker get node - точно будет красиво попробовать засунуть в Node-red dash реле-выключатель (но визуализаций на iobroker больше пяти, так что...)

        1 Reply Last reply Reply Quote 0
        • No Name
          No Name last edited by No Name

          Управление broadlink кнопкой xiaomi (драйвер zigbee). Исправил flow выше. Здесь нужен таймер и switch должен быть таким:
          photo_2019-07-06_19-46-48.jpg

          Снимок.PNG

          [
          {
          "id": "cf416abd.c92158",
          "type": "tab",
          "label": "Broadlink_STATUS",
          "disabled": false,
          "info": ""
          },
          {
          "id": "5dae1e2f.960c38",
          "type": "ioBroker out",
          "z": "cf416abd.c92158",
          "name": "Sonoff_POW_2",
          "topic": "sonoff.0.Sonoff_POW_2_A02EBD.POWER",
          "ack": "false",
          "autoCreate": "false",
          "x": 1700,
          "y": 880,
          "wires": []
          },
          {
          "id": "b8e33699.63a34",
          "type": "ioBroker in",
          "z": "cf416abd.c92158",
          "name": "Tap twice",
          "topic": "zigbee.0.00158d00029bbb6c.tap",
          "payloadType": "value",
          "onlyack": "",
          "func": "all",
          "gap": "",
          "x": 100,
          "y": 460,
          "wires": [
          [
          "864b8892.25f1a"
          ]
          ]
          },
          {
          "id": "80c6e025.1825e8",
          "type": "switch",
          "z": "cf416abd.c92158",
          "name": "Broadlink включен?",
          "property": "Broadlink_STATUS",
          "propertyType": "flow",
          "rules": [
          {
          "t": "eq",
          "v": "false",
          "vt": "str"
          },
          {
          "t": "eq",
          "v": "true",
          "vt": "str"
          }
          ],
          "checkall": "true",
          "repair": false,
          "outputs": 2,
          "x": 540,
          "y": 460,
          "wires": [
          [
          "aff64449.5b9498"
          ],
          [
          "3b2d8770.0222c8"
          ]
          ]
          },
          {
          "id": "aff64449.5b9498",
          "type": "change",
          "z": "cf416abd.c92158",
          "name": "Включаем Broadlink",
          "rules": [
          {
          "t": "set",
          "p": "payload",
          "pt": "msg",
          "to": "true",
          "tot": "bool"
          }
          ],
          "action": "",
          "property": "",
          "from": "",
          "to": "",
          "reg": false,
          "x": 860,
          "y": 400,
          "wires": [
          [
          "9ea4024f.45e7d",
          "b50086c9.ce0408"
          ]
          ]
          },
          {
          "id": "3b2d8770.0222c8",
          "type": "change",
          "z": "cf416abd.c92158",
          "name": "Отключаем Broadlink",
          "rules": [
          {
          "t": "set",
          "p": "payload",
          "pt": "msg",
          "to": "false",
          "tot": "bool"
          }
          ],
          "action": "",
          "property": "",
          "from": "",
          "to": "",
          "reg": false,
          "x": 820,
          "y": 520,
          "wires": [
          [
          "a4d8b0b.c5ed45",
          "58937c89.b8335c"
          ]
          ]
          },
          {
          "id": "9ea4024f.45e7d",
          "type": "SP2",
          "z": "cf416abd.c92158",
          "name": "Bathoom",
          "device": "6a792cc8.2a6eac",
          "action": "setState",
          "state": "true",
          "x": 1100,
          "y": 440,
          "wires": [
          []
          ]
          },
          {
          "id": "a4d8b0b.c5ed45",
          "type": "SP2",
          "z": "cf416abd.c92158",
          "name": "Bathoom",
          "device": "6a792cc8.2a6eac",
          "action": "setState",
          "state": "false",
          "x": 1100,
          "y": 520,
          "wires": [
          []
          ]
          },
          {
          "id": "864b8892.25f1a",
          "type": "switch",
          "z": "cf416abd.c92158",
          "name": "Берём только true",
          "property": "payload",
          "propertyType": "msg",
          "rules": [
          {
          "t": "eq",
          "v": "true",
          "vt": "str"
          }
          ],
          "checkall": "true",
          "repair": false,
          "outputs": 1,
          "x": 290,
          "y": 460,
          "wires": [
          [
          "80c6e025.1825e8"
          ]
          ]
          },
          {
          "id": "58937c89.b8335c",
          "type": "debug",
          "z": "cf416abd.c92158",
          "name": "Отключаем",
          "active": true,
          "tosidebar": true,
          "console": false,
          "tostatus": false,
          "complete": "payload",
          "x": 1110,
          "y": 600,
          "wires": []
          },
          {
          "id": "b50086c9.ce0408",
          "type": "debug",
          "z": "cf416abd.c92158",
          "name": "Включаем",
          "active": true,
          "tosidebar": true,
          "console": false,
          "tostatus": false,
          "complete": "payload",
          "x": 1190,
          "y": 380,
          "wires": []
          },
          {
          "id": "ba2cb790.e57ee",
          "type": "SP2",
          "z": "cf416abd.c92158",
          "name": "Bathoom",
          "device": "6a792cc8.2a6eac",
          "action": "getState",
          "state": "true",
          "x": 380,
          "y": 300,
          "wires": [
          [
          "60e40fa1.b78738"
          ]
          ]
          },
          {
          "id": "60e40fa1.b78738",
          "type": "switch",
          "z": "cf416abd.c92158",
          "name": "Передаём статус broadlink",
          "property": "payload.state",
          "propertyType": "msg",
          "rules": [
          {
          "t": "true"
          },
          {
          "t": "false"
          }
          ],
          "checkall": "false",
          "repair": false,
          "outputs": 2,
          "x": 600,
          "y": 300,
          "wires": [
          [
          "1be7b90d.421cf7"
          ],
          [
          "6bb3ee18.8728d8"
          ]
          ]
          },
          {
          "id": "1be7b90d.421cf7",
          "type": "change",
          "z": "cf416abd.c92158",
          "name": "Broadlink ON",
          "rules": [
          {
          "t": "set",
          "p": "Broadlink_STATUS",
          "pt": "flow",
          "to": "true",
          "tot": "str"
          }
          ],
          "action": "",
          "property": "",
          "from": "",
          "to": "",
          "reg": false,
          "x": 890,
          "y": 220,
          "wires": [
          []
          ]
          },
          {
          "id": "6bb3ee18.8728d8",
          "type": "change",
          "z": "cf416abd.c92158",
          "name": "Broadlink OFF",
          "rules": [
          {
          "t": "set",
          "p": "Broadlink_STATUS",
          "pt": "flow",
          "to": "false",
          "tot": "str"
          }
          ],
          "action": "",
          "property": "",
          "from": "",
          "to": "",
          "reg": false,
          "x": 960,
          "y": 340,
          "wires": [
          []
          ]
          },
          {
          "id": "12b779f5.16f1a6",
          "type": "comment",
          "z": "cf416abd.c92158",
          "name": "Тут логика работы",
          "info": "",
          "x": 450,
          "y": 380,
          "wires": []
          },
          {
          "id": "74adb82d.c4c64",
          "type": "comment",
          "z": "cf416abd.c92158",
          "name": "Тут определяем состояние реле Broadlink",
          "info": "",
          "x": 490,
          "y": 220,
          "wires": []
          },
          {
          "id": "eb30ea3d.afc17",
          "type": "inject",
          "z": "cf416abd.c92158",
          "name": "",
          "topic": "",
          "payload": "",
          "payloadType": "date",
          "repeat": "1",
          "crontab": "",
          "once": false,
          "onceDelay": 0.1,
          "x": 170,
          "y": 300,
          "wires": [
          [
          "ba2cb790.e57ee"
          ]
          ]
          },
          {
          "id": "743f811.46788",
          "type": "bigtimer",
          "z": "cf416abd.c92158",
          "outtopic": "",
          "outpayload1": "",
          "outpayload2": "",
          "name": "Big Timer",
          "comment": "",
          "lat": "",
          "lon": "",
          "starttime": 5001,
          "endtime": 1425,
          "starttime2": 0,
          "endtime2": 0,
          "startoff": 0,
          "endoff": 0,
          "startoff2": 0,
          "endoff2": 0,
          "offs": 0,
          "outtext1": "",
          "outtext2": "",
          "timeout": 1440,
          "sun": true,
          "mon": true,
          "tue": true,
          "wed": true,
          "thu": true,
          "fri": true,
          "sat": true,
          "jan": true,
          "feb": true,
          "mar": true,
          "apr": true,
          "may": true,
          "jun": true,
          "jul": true,
          "aug": true,
          "sep": true,
          "oct": true,
          "nov": true,
          "dec": true,
          "day1": 0,
          "month1": 0,
          "day2": 0,
          "month2": 0,
          "day3": 0,
          "month3": 0,
          "day4": 0,
          "month4": 0,
          "day5": 0,
          "month5": 0,
          "day6": 0,
          "month6": 0,
          "d1": 0,
          "w1": 0,
          "d2": 0,
          "w2": 0,
          "d3": 0,
          "w3": 0,
          "d4": 0,
          "w4": 0,
          "d5": 0,
          "w5": 0,
          "d6": 0,
          "w6": 0,
          "xday1": 0,
          "xmonth1": 0,
          "xday2": 0,
          "xmonth2": 0,
          "xday3": 0,
          "xmonth3": 0,
          "xday4": 0,
          "xmonth4": 0,
          "xday5": 0,
          "xmonth5": 0,
          "xday6": 0,
          "xmonth6": 0,
          "xd1": 0,
          "xw1": 0,
          "xd2": 0,
          "xw2": 0,
          "xd3": 0,
          "xw3": 0,
          "xd4": 0,
          "xw4": 0,
          "xd5": 0,
          "xw5": 0,
          "xd6": 0,
          "xw6": 0,
          "suspend": false,
          "random": false,
          "repeat": true,
          "atstart": true,
          "odd": false,
          "even": false,
          "x": 80,
          "y": 160,
          "wires": [
          [],
          [],
          []
          ]
          },
          {
          "id": "6a792cc8.2a6eac",
          "type": "sp2device",
          "z": "",
          "mac": "78-0F-77-17-8D-49",
          "host": "192.168.1.5"
          }
          ]

          1 Reply Last reply Reply Quote 0
          • N
            notturno last edited by

            Ребят, подскажите, кто знает, как можно решить такую проблемку.
            Работают схемы, сценарии в Node-red, включены выключатели, настроены ползунки, расписание и т.д.
            Но вот когда комп перезагружается, то все настройки сбиваются, и что бы вернуть все как было, нужно заново все нажимать.
            Как можно это исправить?

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

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

              1. можно задать логику при старте. Для этого нужно поставить доп кубик. Таких есть 2 или 3.

              Вот тут я добавил кубик задающий логику при старте
              https://forum.iobroker.net/post/149786

              1. можно хранить переменные этой логике где-то за пределами Нод-Ред.
                Я храню в переменных IoBroker.
              1 Reply Last reply Reply Quote 0
              • O
                OlegJktu last edited by

                Важнач информация для всех использующих Node-red из под IoBroker.
                Дополнительные паллеты (кубики и пр) нужно устанавливать из вебморды IoBroker (а не из вебморды Node-red).
                Иначе возможны проблемы при обновлении.

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

                  Wiki переведенная на русский язык
                  (Если не пускает используйте режим инкогнито в браузере)
                  http://146.185.179.211/wiki/Node-RED:Содержание

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

                    Столкнулся с не тривиальной задачей. Нода onvif получает из IP камеры скриншот, этот скрин можно отобразить в ноде image. Мне нужно эту картинку отослать как webhook, для этого нужно картинку выгрузить в хранилище (на сервер) и потом дать http ссылку на неё. Как эту полученную в base64 картинку выгрузить на http сайт?

                    1 Reply Last reply Reply Quote 0
                    • R
                      romus last edited by

                      Камрады, а можете дать простой примерчик с кнопкой Xiaomi и группой ламп Yeelight на одно короткое нажатие сделать вкл/выкл.
                      Заранее спасибо!

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

                        есть в теме примеры. в самом начале.

                        N 1 Reply Last reply Reply Quote 0
                        • N
                          Namaste @OlegJktu last edited by

                          Подскажите, плз.
                          Есть датчик движения, есть датчик открытия двери.
                          Когда срабатывает датчик движения, нужно включать свет, но при условии, что в течении последних 3 минут открывалась дверь.

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

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

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            828
                            Online

                            31.8k
                            Users

                            80.0k
                            Topics

                            1.3m
                            Posts

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