Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Русский
  3. ioBroker
  4. Скрипты
  5. node-red Скрипты (flows)
  6. Node-RED примеры, решения и и вопросы. Общая тема по Node-RED

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    646

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

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

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

Geplant Angeheftet Gesperrt Verschoben node-red Скрипты (flows)
85 Beiträge 16 Kommentatoren 78.7k Aufrufe 3 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • O Offline
    O Offline
    OlegJktu
    schrieb am zuletzt editiert von
    #55

    @Golan:

    Ребят, а в RED есть какие нибудь библиотеки выполнения по условию, еще что то типа триггеров, сравнение данных? `
    Конешно. Содержимое msg можно <>= и кучу другой математики.

    Вот в этой статье разбирается с яркостью https://habr.com/post/396985/

    1 Antwort Letzte Antwort
    0
    • A Offline
      A Offline
      andryp
      schrieb am zuletzt editiert von
      #56

      @OlegJktu:

      @andryp:

      Можно ли как-то в NODE типа ввода данных с IOB прописать значение по умолчанию и таймаут, сколько времени ждать отклика с адаптера? `
      сделать цикл с таймером? И увеличивать его каждый раз если данные с облака прилетели?

      И ветку про ручную активацию вы спрашивали в телеге? Там тоже можно сделать развилку логики.

      Я вот в этом примере с таймерами делал, и "ручной режим" там тоже есть.

      viewtopic.php?f=48&t=11969#p125169

      (через пару минкт пример перезалью с ручным режимом) `
      Да, в телеге я спрашивал, как сделать еще так, чтобы вручную можно было установить, это тоже вопрос, но второй )

      Попробую разобраться с таймером, на примере. Тут плохо, что в логе ничего не видно, что значений нет или подвисло что-то. Логично было бы сразу в NODE предусмотреть, что запрос на адаптер не отработает…

      1 Antwort Letzte Antwort
      0
      • O Offline
        O Offline
        OlegJktu
        schrieb am zuletzt editiert von
        #57

        @andryp:

        Попробую разобраться с таймером, на примере. Тут плохо, что в логе ничего не видно, что значений нет или подвисло что-то. Логично было бы сразу в NODE предусмотреть, что запрос на адаптер не отработает… `
        если речь про nod-red то там можно как раз на таймер и повесить и лог и сразу в телегу слать если что-то не так.

        А в драйвере ioBroker нет объекта проверяющего что облако живо?

        Может на ping повесить?

        1 Antwort Letzte Antwort
        0
        • A Offline
          A Offline
          andryp
          schrieb am zuletzt editiert von
          #58

          @OlegJktu:

          @andryp:

          Попробую разобраться с таймером, на примере. Тут плохо, что в логе ничего не видно, что значений нет или подвисло что-то. Логично было бы сразу в NODE предусмотреть, что запрос на адаптер не отработает… `
          если речь про nod-red то там можно как раз на таймер и повесить и лог и сразу в телегу слать если что-то не так.

          А в драйвере ioBroker нет объекта проверяющего что облако живо?

          Может на ping повесить? `
          Ну надо лезть в исходники адаптера для NETATMO, я даже не уверен что можно симитировать вчерашнюю ситуацию.

          По поводу таймера, я сделал вход инжектом, повесил на таймер раз в 10 сек, да он выдает, например 0, как дефолт. Но как сделать, чтобы он выдавал тогда, когда отклика от устройства не дождался?

          1 Antwort Letzte Antwort
          0
          • G Offline
            G Offline
            Golan
            schrieb am zuletzt editiert von
            #59

            @OlegJktu:

            Конешно. Содержимое msg можно <>= и кучу другой математики.

            Вот в этой статье разбирается с яркостью https://habr.com/post/396985/ `
            Спасибо ![](</s><URL url=)http://www.remserv-bt.ru/images/smilies/icon_81.gif" />

            Добро не ценится в современном мире, люди от него наглеют.

            1 Antwort Letzte Antwort
            0
            • O Offline
              O Offline
              OlegJktu
              schrieb am zuletzt editiert von
              #60

              @andryp:

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

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

              интервалы нужно посмотреть, наверно раз в три минуты что-то ходит?

              Если выложите код/рисунок может кто еще что посоветует.

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

              1 Antwort Letzte Antwort
              0
              • O Offline
                O Offline
                OlegJktu
                schrieb am zuletzt editiert von
                #61

                По итогам продолжительных поисков пользовательского интерфейса для управления умным домом с тв (Android TV) - остановился на связке wallpanel https://github.com/WallPanel-Project/wallpanel-android

                и node-red-dashboard https://flows.nodered.org/node/node-red-dashboard

                В настройках dashboard есть галка разрешающая перемещаться по webgui стрелками от пульта от ТВ бокса.

                Плюс можно сразу через dashboard и звуки выводить (sayit).

                ! 3955_screenshot_20181125_200427.png
                3955_screenshot_20181126_085943.png
                3955_screenshot_20181126_090804.png

                ! вывод звука драйвер sayit

                [
                    {
                        "id": "48979e09.8263d8",
                        "type": "ui_audio",
                        "z": "d369ede2.680eb",
                        "name": "",
                        "group": "a77d8246.98ece8",
                        "voice": "",
                        "always": true,
                        "x": 960,
                        "y": 780,
                        "wires": []
                    },
                    {
                        "id": "3f9406c2.830122",
                        "type": "ioBroker in",
                        "z": "d369ede2.680eb",
                        "name": "Is now speaking",
                        "topic": "sayit.0.tts.playing",
                        "payloadType": "value",
                        "onlyack": "",
                        "func": "all",
                        "gap": "",
                        "x": 480,
                        "y": 780,
                        "wires": [
                            [
                                "f1a9c85f.deca08",
                                "50c5f06c.07cd88"
                            ]
                        ]
                    },
                    {
                        "id": "f1a9c85f.deca08",
                        "type": "ioBroker get",
                        "z": "d369ede2.680eb",
                        "name": "Binary mp3 file",
                        "topic": "sayit.0.tts.mp3",
                        "attrname": "payload",
                        "payloadType": "object",
                        "x": 740,
                        "y": 780,
                        "wires": [
                            [
                                "48979e09.8263d8",
                                "b0945816.a139e8"
                            ]
                        ]
                    },
                    {
                        "id": "50c5f06c.07cd88",
                        "type": "debug",
                        "z": "d369ede2.680eb",
                        "name": "говорит?",
                        "active": true,
                        "tosidebar": true,
                        "console": false,
                        "tostatus": false,
                        "complete": "payload",
                        "x": 560,
                        "y": 720,
                        "wires": []
                    },
                    {
                        "id": "b0945816.a139e8",
                        "type": "debug",
                        "z": "d369ede2.680eb",
                        "name": "какой файл",
                        "active": true,
                        "tosidebar": true,
                        "console": false,
                        "tostatus": false,
                        "complete": "payload",
                        "x": 760,
                        "y": 720,
                        "wires": []
                    },
                    {
                        "id": "cf4e0f18.3d51f8",
                        "type": "inject",
                        "z": "d369ede2.680eb",
                        "name": "",
                        "topic": "",
                        "payload": "true",
                        "payloadType": "str",
                        "repeat": "",
                        "crontab": "",
                        "once": false,
                        "onceDelay": 0.1,
                        "x": 350,
                        "y": 720,
                        "wires": [
                            [
                                "f1a9c85f.deca08",
                                "50c5f06c.07cd88"
                            ]
                        ]
                    },
                    {
                        "id": "a1a729b8.0f83c8",
                        "type": "ui_button",
                        "z": "d369ede2.680eb",
                        "name": "скажи",
                        "group": "a77d8246.98ece8",
                        "order": 4,
                        "width": 0,
                        "height": 0,
                        "passthru": false,
                        "label": "button",
                        "color": "",
                        "bgcolor": "",
                        "icon": "",
                        "payload": "true",
                        "payloadType": "str",
                        "topic": "",
                        "x": 470,
                        "y": 900,
                        "wires": [
                            [
                                "f1a9c85f.deca08"
                            ]
                        ]
                    },
                    {
                        "id": "94cf28dc.33e72",
                        "type": "comment",
                        "z": "d369ede2.680eb",
                        "name": "кнопка дашборд для удобства отладки",
                        "info": "",
                        "x": 570,
                        "y": 860,
                        "wires": []
                    },
                    {
                        "id": "a77d8246.98ece8",
                        "type": "ui_group",
                        "z": "",
                        "name": "СВЕТ ЗАЛ",
                        "tab": "e2d5e6c4.2778",
                        "order": 1,
                        "disp": true,
                        "width": "6",
                        "collapse": false
                    },
                    {
                        "id": "e2d5e6c4.2778",
                        "type": "ui_tab",
                        "z": "",
                        "name": "Дом",
                        "icon": "dashboard",
                        "order": 2
                    }
                ]
                >! ````
                1 Antwort Letzte Antwort
                0
                • A Offline
                  A Offline
                  andryp
                  schrieb am zuletzt editiert von
                  #62

                  @andryp:

                  Всем привет, поставил IOB, добавил и настроил устройства NETATMO. Это погодные станции, получаю с них через адаптер данные по СО2. Для этого использую Input ioBrоker topic = "netatmo.0.Netatmo.Спальня.CO2.CO2", Payload = value.

                  Логика работает, все считывается. Но вчера, как назло, облачный сервис NEtatmo в коем веке, был недоступен :evil: В итоге логика схемы NODE Red вообще перестала работать, т.е. у меня она начинается с того, что взять значения с netatmo, а раз значений не было, то все висело.

                  Можно ли как-то в NODE типа ввода данных с IOB прописать значение по умолчанию и таймаут, сколько времени ждать отклика с адаптера? `

                  Вот что в итоге получилось. Реализовал определение ручного режима (если скорость вентилятора приточки >=5, то значит кто-то вручную включил). Определяется СО2 >900, >1000, <900. И управляется от этих значений приточка.

                  ! [{"id":"4484ad27.bff564","type":"ioBroker in","z":"99a1edcb.6bb1","name":"CO2_BedRoom","topic":"netatmo.0.Netatmo.Спальня.CO2.CO2","payloadType":"value","onlyack":"","func":"all","gap":"","x":140,"y":380,"wires":[["157afaf7.c32cd5"]]},{"id":"e303fee7.27fd9","type":"ioBroker out","z":"99a1edcb.6bb1","name":"RotationSpeed","topic":"breezart.0.RotationSpeed","ack":"false","autoCreate":"false","x":1477,"y":420,"wires":[]},{"id":"4f08171a.f18ae8","type":"switch","z":"99a1edcb.6bb1","name":"CheckCO2","property":"$max(payload)","propertyType":"jsonata","rules":[{"t":"gt","v":"1000","vt":"jsonata"},{"t":"gt","v":"900","vt":"str"},{"t":"else"}],"checkall":"false","repair":false,"outputs":3,"x":767,"y":440,"wires":[["e83b0ac3.7d7548","34e17a0f.81bf56"],["50ba9a58.a17ef4","8f15e8f6.fb5fc8"],["21c3d88.efd6e28"]]},{"id":"e83b0ac3.7d7548","type":"change","z":"99a1edcb.6bb1","name":"SetSpeed_High","rules":[{"t":"set","p":"payload","pt":"msg","to":"4","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":977,"y":380,"wires":[["6703ae3d.7cb51","8e0268e2.01da78"]]},{"id":"21c3d88.efd6e28","type":"change","z":"99a1edcb.6bb1","name":"SetSpeed_Low","rules":[{"t":"set","p":"payload","pt":"msg","to":"1","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":980,"y":520,"wires":[["8e0268e2.01da78","fb89fdb4.42a12"]]},{"id":"66798763.03f088","type":"ioBroker in","z":"99a1edcb.6bb1","name":"CO2_Nika","topic":"netatmo.0.Netatmo.Детская.CO2.CO2","payloadType":"value","onlyack":"","func":"all","gap":"","x":160,"y":440,"wires":[["157afaf7.c32cd5"]]},{"id":"3546dba5.074ed4","type":"ioBroker in","z":"99a1edcb.6bb1","name":"CO2_Hall","topic":"netatmo.0.Netatmo.Гостинная.CO2.CO2","payloadType":"value","onlyack":"","func":"all","gap":"","x":160,"y":500,"wires":[["157afaf7.c32cd5"]]},{"id":"34e17a0f.81bf56","type":"debug","z":"99a1edcb.6bb1","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":770,"y":400,"wires":[]},{"id":"50ba9a58.a17ef4","type":"debug","z":"99a1edcb.6bb1","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":770,"y":480,"wires":[]},{"id":"ca2a615d.e7a42","type":"join","z":"99a1edcb.6bb1","name":"","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\n","joinerType":"str","accumulate":false,"timeout":"10","count":"3","reduceRight":false,"reduceExp":"$max(array)\t","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":587,"y":440,"wires":[["8f37c5b7.dda928","4f08171a.f18ae8","a7dfa8af.7e7e48"]]},{"id":"8f37c5b7.dda928","type":"debug","z":"99a1edcb.6bb1","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":587,"y":400,"wires":[]},{"id":"6703ae3d.7cb51","type":"debug","z":"99a1edcb.6bb1","name":"Побольше","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":970,"y":340,"wires":[]},{"id":"fb89fdb4.42a12","type":"debug","z":"99a1edcb.6bb1","name":"На минимум","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":970,"y":560,"wires":[]},{"id":"157afaf7.c32cd5","type":"function","z":"99a1edcb.6bb1","name":"parseInt-2","func":"msg.payload=parseInt(msg.payload);\nreturn msg;","outputs":1,"noerr":0,"x":381,"y":440,"wires":[["ca2a615d.e7a42"]]},{"id":"ef3b5e52.1036f","type":"ioBroker in","z":"99a1edcb.6bb1","name":"RotationSpeed","topic":"breezart.0.RotationSpeed","payloadType":"value","onlyack":"","func":"all","gap":"","x":160,"y":180,"wires":[["ba5b1121.d1064"]]},{"id":"a7dfa8af.7e7e48","type":"trigger","z":"99a1edcb.6bb1","op1":"","op2":"1","op1type":"nul","op2type":"num","duration":"5","extend":true,"units":"min","reset":"","bytopic":"all","name":"Если нет данных","x":887,"y":620,"wires":[["176d08b4.2219d7","8e0268e2.01da78"]]},{"id":"176d08b4.2219d7","type":"debug","z":"99a1edcb.6bb1","name":"#НД","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":867,"y":660,"wires":[]},{"id":"415e51ac.9c042","type":"inject","z":"99a1edcb.6bb1","name":"Для запуска триггера","topic":"","payload":"1","payloadType":"num","repeat":"","crontab":"","once":true,"onceDelay":0.1,"x":657,"y":620,"wires":[["a7dfa8af.7e7e48"]]},{"id":"ba5b1121.d1064","type":"switch","z":"99a1edcb.6bb1","name":"Ручной?","property":"payload","propertyType":"msg","rules":[{"t":"gt","v":"4","vt":"str"},{"t":"lte","v":"4","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":400,"y":220,"wires":[["a04c7d5.28e2f8"],[]]},{"id":"a04c7d5.28e2f8","type":"change","z":"99a1edcb.6bb1","name":"ДА","rules":[{"t":"set","p":"manual","pt":"flow","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":530,"y":220,"wires":[["2c968846.ab1c68","42f60e42.6093c"]]},{"id":"2c968846.ab1c68","type":"debug","z":"99a1edcb.6bb1","name":"РУЧНОЙ РЕЖИМ","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":570,"y":180,"wires":[]},{"id":"42f60e42.6093c","type":"delay","z":"99a1edcb.6bb1","name":"Сброс руч. режима","pauseType":"delay","timeout":"30","timeoutUnits":"minutes","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":740,"y":220,"wires":[["cf3bf784.5430c8"]]},{"id":"cf3bf784.5430c8","type":"change","z":"99a1edcb.6bb1","name":"ДА","rules":[{"t":"set","p":"manual","pt":"flow","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":930,"y":220,"wires":[["eb7f78c0.27d548"]]},{"id":"eb7f78c0.27d548","type":"debug","z":"99a1edcb.6bb1","name":"СБРОС РЕЖИМА","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":970,"y":180,"wires":[]},{"id":"8e0268e2.01da78","type":"switch","z":"99a1edcb.6bb1","name":"РУЧНОЙ?","property":"manual","propertyType":"flow","rules":[{"t":"true"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":1230,"y":420,"wires":[["4361f73b.11eef8"],["c352c46.dc73e38","e303fee7.27fd9"]]},{"id":"4361f73b.11eef8","type":"debug","z":"99a1edcb.6bb1","name":"Ручной","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":1457,"y":380,"wires":[]},{"id":"8b5aef57.797ab","type":"inject","z":"99a1edcb.6bb1","name":"ПРОБА","topic":"","payload":"5","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":150,"y":240,"wires":[["ba5b1121.d1064"]]},{"id":"c352c46.dc73e38","type":"debug","z":"99a1edcb.6bb1","name":"Устанавливаем","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":1477,"y":460,"wires":[]},{"id":"e7d2a9ce.a39818","type":"inject","z":"99a1edcb.6bb1","name":"","topic":"","payload":"1000","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":320,"wires":[["157afaf7.c32cd5"]]},{"id":"8f15e8f6.fb5fc8","type":"change","z":"99a1edcb.6bb1","name":"SetSpeed_Mid","rules":[{"t":"set","p":"payload","pt":"msg","to":"3","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":980,"y":440,"wires":[["dbbb1086.d886c","8e0268e2.01da78"]]},{"id":"dbbb1086.d886c","type":"debug","z":"99a1edcb.6bb1","name":"Средняя","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":960,"y":480,"wires":[]}]

                  1 Antwort Letzte Antwort
                  0
                  • A Offline
                    A Offline
                    andryp
                    schrieb am zuletzt editiert von
                    #63

                    Вот пример как определить расстояние от дома. Ставим адаптер Find my iphone, пишем такой скрипт в NR:

                    ! [{"id":"1c09c50c.74d60b","type":"function","z":"99a1edcb.6bb1","name":"GetLocation","func":"\nvar home_long = 11.11111;\nvar home_alt = 22.22222;\n\n//var values = flow.get(["latitude", "longitude"]);\n \nvar long_target = 0; \nvar alt_target = 0;\n\nlong_target = parseFloat(flow.get('LO'));// values[1];\nalt_target = parseFloat(flow.get('LA'));\n//node.log(long_target);\n//node.log(alt_target);\n\n\nmsg.payload = 63711000Math.acos(Math.sin(Math.PIhome_alt/180)Math.sin(Math.PIalt_target/180)+Math.cos(Math.PIhome_alt/180)Math.cos(Math.PIalt_target/180)Math.cos(Math.PI(home_long-long_target)/180));\n// вывод в лог расстояния в метрах\nreturn msg;","outputs":1,"noerr":0,"x":690,"y":260,"wires":[["6b23990b.f116c8"]]},{"id":"6b23990b.f116c8","type":"debug","z":"99a1edcb.6bb1","name":"Расстояние","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":870,"y":260,"wires":[]},{"id":"282f31cf.40579e","type":"change","z":"99a1edcb.6bb1","name":"Set LA.","rules":[{"t":"set","p":"LA","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":500,"y":240,"wires":[["1c09c50c.74d60b","642dcb16.a76cb4"]]},{"id":"eed8108f.ea0d9","type":"change","z":"99a1edcb.6bb1","name":"SET LO","rules":[{"t":"set","p":"LO","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":500,"y":280,"wires":[["1c09c50c.74d60b","c013725a.bbb22"]]},{"id":"642dcb16.a76cb4","type":"debug","z":"99a1edcb.6bb1","name":"LA","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":510,"y":200,"wires":[]},{"id":"c013725a.bbb22","type":"debug","z":"99a1edcb.6bb1","name":"LO","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":510,"y":320,"wires":[]},{"id":"e7628b0a.cbcc18","type":"ioBroker get","z":"99a1edcb.6bb1","name":"latitude","topic":"find-my-iphone.0.iPhone_(TELE).latitude","attrname":"payload","payloadType":"value","x":340,"y":240,"wires":[["282f31cf.40579e"]]},{"id":"452ba365.3c988c","type":"ioBroker get","z":"99a1edcb.6bb1","name":"longitude","topic":"find-my-iphone.0.iPhone_(TELE).longitude","attrname":"payload","payloadType":"value","x":340,"y":280,"wires":[["eed8108f.ea0d9"]]},{"id":"5e3ac9eb.238b68","type":"trigger","z":"99a1edcb.6bb1","op1":"60","op2":"1","op1type":"num","op2type":"str","duration":"-1","extend":false,"units":"min","reset":"","bytopic":"all","name":"","x":170,"y":240,"wires":[["e7628b0a.cbcc18","452ba365.3c988c"]]},{"id":"1bc2b34.ef3094d","type":"inject","z":"99a1edcb.6bb1","name":"","topic":"","payload":"1","payloadType":"num","repeat":"","crontab":"","once":true,"onceDelay":0.1,"x":150,"y":200,"wires":[["5e3ac9eb.238b68"]]}]
                    P.S. Спасибо telegram @cahek2202 за код расчета расстояния по координатам.

                    1 Antwort Letzte Antwort
                    0
                    • S Offline
                      S Offline
                      Smitkas
                      schrieb am zuletzt editiert von
                      #64

                      Собрал схему для управления точечными светильниками philips zhirui downlight

                      единственная проблема - слишком большая задержка (((

                      Нужно установить

                      php

                      php-miio-master

                      node-red-contrib-string

                      включить/выключить

                      php /home/pi/php-miio-master/miio-cli.php –ip 192.168.1.236 --token 57014f99f369ff772cad86955f44c17c --sendcmd '{"id":1,"method":"set_power","params":["on"]}'

                      php /home/pi/php-miio-master/miio-cli.php –ip 192.168.1.236 --token 57014f99f369ff772cad86955f44c17c --sendcmd '{"id":1,"method":"set_power","params":["off"]}'

                      переключить

                      php /home/pi/php-miio-master/miio-cli.php –ip 192.168.1.236 --token 57014f99f369ff772cad86955f44c17c --sendcmd '{"id":1,"method":"toggle",,"params":[]}'

                      яркость (от 1 до 100)

                      php /home/pi/php-miio-master/miio-cli.php --ip 192.168.1.236 --token 57014f99f369ff772cad86955f44c17c --sendcmd '{"id":1,"method":"set_bright","params":[1]}'

                      цветовая температура (1-желтый, 100 – белый)

                      php /home/pi/php-miio-master/miio-cli.php –ip 192.168.1.236 --token 57014f99f369ff772cad86955f44c17c --sendcmd '{"id":1,"method":"set_cct","params":[100]}'

                      сцены (от 1 до 4)

                      php /home/pi/php-miio-master/miio-cli.php –ip 192.168.1.236 --token 57014f99f369ff772cad86955f44c17c --sendcmd '{"id":1,"method":"apply_fixed_scene","params":[1]}'

                      статус (php miio-cli.php –ip ип лампы --token токен лампы --sendcmd '{"id":1,"method":"get_prop","params":["power","bright", ,"cct","snm","dv"]}')

                      php /home/pi/php-miio-master/miio-cli.php –ip 192.168.1.236 --token 57014f99f369ff772cad86955f44c17c --sendcmd '{"id":1,"method":"get_prop","params":["power","bright", ,"cct","snm","dv"]}'

                      ! [
                      ! {
                      ! "id": "8d7ab50b.086a48",
                      ! "type": "tab",
                      ! "label": "Flow 3",
                      ! "disabled": false,
                      ! "info": ""
                      ! },
                      ! {
                      ! "id": "1199f0d9.331b1f",
                      ! "type": "ioBroker in",
                      ! "z": "8d7ab50b.086a48",
                      ! "name": "First button pressed",
                      ! "topic": "mihome.0.devices.86sw2_158d000233827e.channel_0",
                      ! "payloadType": "value",
                      ! "onlyack": "",
                      ! "func": "all",
                      ! "gap": "",
                      ! "x": 170,
                      ! "y": 180,
                      ! "wires": [
                      ! [
                      ! "82596561.899ce8"
                      ! ]
                      ! ]
                      ! },
                      ! {
                      ! "id": "dc776a4c.fbd218",
                      ! "type": "inject",
                      ! "z": "8d7ab50b.086a48",
                      ! "name": "Button",
                      ! "topic": "",
                      ! "payload": "true",
                      ! "payloadType": "str",
                      ! "repeat": "",
                      ! "crontab": "",
                      ! "once": false,
                      ! "onceDelay": 0.1,
                      ! "x": 150,
                      ! "y": 400,
                      ! "wires": [
                      ! [
                      ! "345c5f57.38ca6"
                      ! ]
                      ! ]
                      ! },
                      ! {
                      ! "id": "345c5f57.38ca6",
                      ! "type": "switch",
                      ! "z": "8d7ab50b.086a48",
                      ! "name": "only true",
                      ! "property": "payload",
                      ! "propertyType": "msg",
                      ! "rules": [
                      ! {
                      ! "t": "eq",
                      ! "v": "true",
                      ! "vt": "str"
                      ! }
                      ! ],
                      ! "checkall": "true",
                      ! "repair": false,
                      ! "outputs": 1,
                      ! "x": 280,
                      ! "y": 320,
                      ! "wires": [
                      ! [
                      ! "b643cffa.5e1ac",
                      ! "b1c46b43.e444d8"
                      ! ]
                      ! ]
                      ! },
                      ! {
                      ! "id": "78dad649.35d498",
                      ! "type": "switch",
                      ! "z": "8d7ab50b.086a48",
                      ! "name": "Is Light On?",
                      ! "property": "STAT1",
                      ! "propertyType": "flow",
                      ! "rules": [
                      ! {
                      ! "t": "eq",
                      ! "v": "false",
                      ! "vt": "str"
                      ! },
                      ! {
                      ! "t": "eq",
                      ! "v": "true",
                      ! "vt": "str"
                      ! }
                      ! ],
                      ! "checkall": "true",
                      ! "repair": false,
                      ! "outputs": 2,
                      ! "x": 530,
                      ! "y": 320,
                      ! "wires": [
                      ! [
                      ! "66ee6bc9.126594"
                      ! ],
                      ! [
                      ! "10645dc0.7ac9e2"
                      ! ]
                      ! ]
                      ! },
                      ! {
                      ! "id": "66ee6bc9.126594",
                      ! "type": "change",
                      ! "z": "8d7ab50b.086a48",
                      ! "name": "PowerOn Lamp",
                      ! "rules": [
                      ! {
                      ! "t": "set",
                      ! "p": "payload",
                      ! "pt": "msg",
                      ! "to": "true",
                      ! "tot": "bool"
                      ! }
                      ! ],
                      ! "action": "",
                      ! "property": "",
                      ! "from": "",
                      ! "to": "",
                      ! "reg": false,
                      ! "x": 800,
                      ! "y": 280,
                      ! "wires": [
                      ! [
                      ! "64e1cf4e.ec14a"
                      ! ]
                      ! ]
                      ! },
                      ! {
                      ! "id": "10645dc0.7ac9e2",
                      ! "type": "change",
                      ! "z": "8d7ab50b.086a48",
                      ! "name": "PowerOff Lamp",
                      ! "rules": [
                      ! {
                      ! "t": "set",
                      ! "p": "payload",
                      ! "pt": "msg",
                      ! "to": "true",
                      ! "tot": "bool"
                      ! }
                      ! ],
                      ! "action": "",
                      ! "property": "",
                      ! "from": "",
                      ! "to": "",
                      ! "reg": false,
                      ! "x": 800,
                      ! "y": 340,
                      ! "wires": [
                      ! [
                      ! "f262cc14.faa8e"
                      ! ]
                      ! ]
                      ! },
                      ! {
                      ! "id": "9a8e714.224659",
                      ! "type": "exec",
                      ! "z": "8d7ab50b.086a48",
                      ! "command": "php /home/pi/php-miio-master/miio-cli.php –ip 192.168.1.236 --token 57014f99f369ff772cad86955f44c17c --sendcmd '{"id":1,"method":"set_power","params":["off"]}'",
                      ! "addpay": true,
                      ! "append": "",
                      ! "useSpawn": "false",
                      ! "timer": "",
                      ! "oldrc": false,
                      ! "name": "",
                      ! "x": 780,
                      ! "y": 1080,
                      ! "wires": [
                      ! [],
                      ! [],
                      ! []
                      ! ]
                      ! },
                      ! {
                      ! "id": "bec64fe2.71292",
                      ! "type": "exec",
                      ! "z": "8d7ab50b.086a48",
                      ! "command": "php /home/pi/php-miio-master/miio-cli.php –ip 192.168.1.236 --token 57014f99f369ff772cad86955f44c17c --sendcmd '{"id":1,"method":"set_power","params":["on"]}'",
                      ! "addpay": true,
                      ! "append": "",
                      ! "useSpawn": "false",
                      ! "timer": "",
                      ! "oldrc": false,
                      ! "name": "power on",
                      ! "x": 1060,
                      ! "y": 260,
                      ! "wires": [
                      ! [],
                      ! [],
                      ! []
                      ! ]
                      ! },
                      ! {
                      ! "id": "7c0af08b.0c659",
                      ! "type": "switch",
                      ! "z": "8d7ab50b.086a48",
                      ! "name": "STAT1",
                      ! "property": "payload",
                      ! "propertyType": "msg",
                      ! "rules": [
                      ! {
                      ! "t": "cont",
                      ! "v": "true",
                      ! "vt": "str"
                      ! },
                      ! {
                      ! "t": "cont",
                      ! "v": "false",
                      ! "vt": "str"
                      ! }
                      ! ],
                      ! "checkall": "false",
                      ! "repair": false,
                      ! "outputs": 2,
                      ! "x": 830,
                      ! "y": 160,
                      ! "wires": [
                      ! [
                      ! "8a2dac90.3ca8c"
                      ! ],
                      ! [
                      ! "ed111c41.dcf5"
                      ! ]
                      ! ]
                      ! },
                      ! {
                      ! "id": "8a2dac90.3ca8c",
                      ! "type": "change",
                      ! "z": "8d7ab50b.086a48",
                      ! "name": "Light On",
                      ! "rules": [
                      ! {
                      ! "t": "set",
                      ! "p": "STAT1",
                      ! "pt": "flow",
                      ! "to": "true",
                      ! "tot": "str"
                      ! }
                      ! ],
                      ! "action": "",
                      ! "property": "",
                      ! "from": "",
                      ! "to": "",
                      ! "reg": false,
                      ! "x": 1040,
                      ! "y": 140,
                      ! "wires": [
                      ! []
                      ! ]
                      ! },
                      ! {
                      ! "id": "ed111c41.dcf5",
                      ! "type": "change",
                      ! "z": "8d7ab50b.086a48",
                      ! "name": "Light Off",
                      ! "rules": [
                      ! {
                      ! "t": "set",
                      ! "p": "STAT1",
                      ! "pt": "flow",
                      ! "to": "false",
                      ! "tot": "str"
                      ! }
                      ! ],
                      ! "action": "",
                      ! "property": "",
                      ! "from": "",
                      ! "to": "",
                      ! "reg": false,
                      ! "x": 1040,
                      ! "y": 200,
                      ! "wires": [
                      ! []
                      ! ]
                      ! },
                      ! {
                      ! "id": "b643cffa.5e1ac",
                      ! "type": "exec",
                      ! "z": "8d7ab50b.086a48",
                      ! "command": "php /home/pi/php-miio-master/miio-cli.php –ip 192.168.1.236 --token 57014f99f369ff772cad86955f44c17c --sendcmd '{"id":1,"method":"get_prop","params":["power"]}'",
                      ! "addpay": false,
                      ! "append": "",
                      ! "useSpawn": "false",
                      ! "timer": "",
                      ! "oldrc": false,
                      ! "name": "Lamp status?",
                      ! "x": 480,
                      ! "y": 160,
                      ! "wires": [
                      ! [
                      ! "c1d9f7ec.d097c8"
                      ! ],
                      ! [],
                      ! []
                      ! ]
                      ! },
                      ! {
                      ! "id": "81a1c26a.2224b",
                      ! "type": "inject",
                      ! "z": "8d7ab50b.086a48",
                      ! "name": "Button",
                      ! "topic": "",
                      ! "payload": "true",
                      ! "payloadType": "str",
                      ! "repeat": "",
                      ! "crontab": "",
                      ! "once": false,
                      ! "onceDelay": 0.1,
                      ! "x": 150,
                      ! "y": 120,
                      ! "wires": [
                      ! [
                      ! "b643cffa.5e1ac"
                      ! ]
                      ! ]
                      ! },
                      ! {
                      ! "id": "c1d9f7ec.d097c8",
                      ! "type": "string",
                      ! "z": "8d7ab50b.086a48",
                      ! "name": "",
                      ! "methods": [
                      ! {
                      ! "name": "toString",
                      ! "params": []
                      ! },
                      ! {
                      ! "name": "between",
                      ! "params": [
                      ! {
                      ! "type": "str",
                      ! "value": "result":[""
                      ! },
                      ! {
                      ! "type": "str",
                      ! "value": ""],"id""
                      ! }
                      ! ]
                      ! },
                      ! {
                      ! "name": "toString",
                      ! "params": []
                      ! },
                      ! {
                      ! "name": "toBoolean",
                      ! "params": []
                      ! }
                      ! ],
                      ! "prop": "payload",
                      ! "propout": "payload",
                      ! "object": "msg",
                      ! "objectout": "msg",
                      ! "x": 690,
                      ! "y": 160,
                      ! "wires": [
                      ! [
                      ! "7c0af08b.0c659"
                      ! ]
                      ! ]
                      ! },
                      ! {
                      ! "id": "34ba9712.3e5b88",
                      ! "type": "exec",
                      ! "z": "8d7ab50b.086a48",
                      ! "command": "php /home/pi/php-miio-master/miio-cli.php –ip 192.168.1.236 --token 57014f99f369ff772cad86955f44c17c --sendcmd '{"id":1,"method":"set_power","params":["off"]}'",
                      ! "addpay": true,
                      ! "append": "",
                      ! "useSpawn": "false",
                      ! "timer": "",
                      ! "oldrc": false,
                      ! "name": "power off",
                      ! "x": 1060,
                      ! "y": 340,
                      ! "wires": [
                      ! [],
                      ! [],
                      ! []
                      ! ]
                      ! },
                      ! {
                      ! "id": "f262cc14.faa8e",
                      ! "type": "delay",
                      ! "z": "8d7ab50b.086a48",
                      ! "name": "",
                      ! "pauseType": "delay",
                      ! "timeout": "1400",
                      ! "timeoutUnits": "milliseconds",
                      ! "rate": "1",
                      ! "nbRateUnits": "1",
                      ! "rateUnits": "second",
                      ! "randomFirst": "1",
                      ! "randomLast": "5",
                      ! "randomUnits": "seconds",
                      ! "drop": false,
                      ! "x": 820,
                      ! "y": 400,
                      ! "wires": [
                      ! [
                      ! "34ba9712.3e5b88"
                      ! ]
                      ! ]
                      ! },
                      ! {
                      ! "id": "64e1cf4e.ec14a",
                      ! "type": "delay",
                      ! "z": "8d7ab50b.086a48",
                      ! "name": "",
                      ! "pauseType": "delay",
                      ! "timeout": "1400",
                      ! "timeoutUnits": "milliseconds",
                      ! "rate": "1",
                      ! "nbRateUnits": "1",
                      ! "rateUnits": "second",
                      ! "randomFirst": "1",
                      ! "randomLast": "5",
                      ! "randomUnits": "seconds",
                      ! "drop": false,
                      ! "x": 800,
                      ! "y": 220,
                      ! "wires": [
                      ! [
                      ! "bec64fe2.71292"
                      ! ]
                      ! ]
                      ! },
                      ! {
                      ! "id": "b1c46b43.e444d8",
                      ! "type": "delay",
                      ! "z": "8d7ab50b.086a48",
                      ! "name": "",
                      ! "pauseType": "delay",
                      ! "timeout": "1400",
                      ! "timeoutUnits": "milliseconds",
                      ! "rate": "1",
                      ! "nbRateUnits": "1",
                      ! "rateUnits": "second",
                      ! "randomFirst": "1",
                      ! "randomLast": "5",
                      ! "randomUnits": "seconds",
                      ! "drop": false,
                      ! "x": 540,
                      ! "y": 240,
                      ! "wires": [
                      ! [
                      ! "78dad649.35d498"
                      ! ]
                      ! ]
                      ! },
                      ! {
                      ! "id": "82596561.899ce8",
                      ! "type": "trigger",
                      ! "z": "8d7ab50b.086a48",
                      ! "op1": "true",
                      ! "op2": "",
                      ! "op1type": "str",
                      ! "op2type": "nul",
                      ! "duration": "5300",
                      ! "extend": false,
                      ! "units": "ms",
                      ! "reset": "",
                      ! "bytopic": "all",
                      ! "name": "",
                      ! "x": 240,
                      ! "y": 260,
                      ! "wires": [
                      ! [
                      ! "345c5f57.38ca6"
                      ! ]
                      ! ]
                      ! }
                      ! ]
                      10899__________2018-12-11_08.49.06.png

                      1 Antwort Letzte Antwort
                      0
                      • O Offline
                        O Offline
                        OlegJktu
                        schrieb am zuletzt editiert von
                        #65

                        @Smitkas:

                        Собрал схему для управления точечными светильниками philips zhirui downlight `
                        А вот все равно спасибо. А то отсутствие вариантов с miio уже начинает напрягать.

                        Встречный вопрос. Пробовали кубики с miio (они должны быть на nodejs и быстрее и там есть general device)

                        1. https://flows.nodered.org/node/node-red-contrib-mi-miio

                        2. https://flows.nodered.org/node/node-red … iaomi-miio

                        3. https://flows.nodered.org/node/node-red ... io-wrapper

                        Я пробывал 2 и 3 в докер контейнере с iobroker и node-red и Node-red сдох, пришлось поднимать контейнер и бекапа. Так что перед экспериментами сохраняемся!

                        Очень хотел попробовать с отдельного хоста/контейнера, но в итоге руки так и не дошли.

                        UPD лампы еще должны затаскиваться в iobroker через драйвер HAM (там искать miio), но я HAM пока не победил.

                        1 Antwort Letzte Antwort
                        0
                        • M Offline
                          M Offline
                          MihaNN52
                          schrieb am zuletzt editiert von
                          #66

                          Кто нибудь подключал датчик холла к малине с нодом для подсчета импульсов. а-ля прерывания как организовать и можно ли вообще?

                          1 Antwort Letzte Antwort
                          0
                          • S Offline
                            S Offline
                            Sergey777
                            schrieb am zuletzt editiert von
                            #67

                            В Node-red есть блок function, в описании этого блока, в примерах, на сайте, есть счетчик, сколько раз функция была запущена. А как уж подключить датчик к малине и увидеть его в Node-RED - незнаю.

                            1 Antwort Letzte Antwort
                            0
                            • M Offline
                              M Offline
                              MihaNN52
                              schrieb am zuletzt editiert von
                              #68

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

                              1 Antwort Letzte Antwort
                              0
                              • S Offline
                                S Offline
                                Sergey777
                                schrieb am zuletzt editiert von
                                #69

                                @MihaNN52:

                                Как запустить из нода что то понятно, а как сделать чтоб нод отреагировал не понимаю. `
                                Вы имеете в виду, как увидеть сигнал с пина малинки в Node-RED? Если Вы ставили образ iobroker, то в нем есть все необходимые плагины, в панели есть, вроде, эти элементы.

                                P.S.вот же:
                                5574_screenshot_20181228-085733_chrome.jpg

                                1 Antwort Letzte Antwort
                                0
                                • M Offline
                                  M Offline
                                  MihaNN52
                                  schrieb am zuletzt editiert von
                                  #70

                                  ой…. и правда :lol:

                                  1 Antwort Letzte Antwort
                                  0
                                  • O Offline
                                    O Offline
                                    OlegJktu
                                    schrieb am zuletzt editiert von
                                    #71

                                    Вот здесь решили проблему с записью символов в файл в win

                                    viewtopic.php?f=26&t=21288

                                    1 Antwort Letzte Antwort
                                    0
                                    • S Offline
                                      S Offline
                                      Sergey777
                                      schrieb am zuletzt editiert von
                                      #72

                                      @OlegJktu:

                                      Вот здесь решили проблему с записью символов в файл в win

                                      viewtopic.php?f=26&t=21288 `

                                      Так не понятно, какую ноду дополнительно установили? Ссылку дадите, или полное название?

                                      1 Antwort Letzte Antwort
                                      0
                                      • S Offline
                                        S Offline
                                        Sergey777
                                        schrieb am zuletzt editiert von
                                        #73

                                        Привет всем! Я столнулся со схожей проблемой, что в сообщении выше.

                                        Я тут приводил такой пример: viewtopic.php?f=48&t=11969#p152942 ,там всё работало, пока я не обновил iobroker.

                                        Суть в чём:

                                        Имею такую конструкцию
                                        5574_0001154796fuck.png

                                        ! [ { "id": "58ad33b2.fabb1c", "type": "http request", "z": "f9e33a52.dacda8", "name": "", "method": "POST", "ret": "txt", "url": "http://192.168.1.2:5000/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=\"QERFWrtrg4t5\"&payload={\"text\": \"кирилица\"}", "tls": "", "x": 490, "y": 1200, "wires": [ [ "27422c15.fd50d4" ] ] }, { "id": "27422c15.fd50d4", "type": "debug", "z": "f9e33a52.dacda8", "name": "Door Sensor Status", "active": true, "tosidebar": true, "console": false, "tostatus": true, "complete": "payload", "x": 720, "y": 1200, "wires": [] }, { "id": "626ece3b.a16df", "type": "inject", "z": "f9e33a52.dacda8", "name": "", "topic": "", "payload": "true", "payloadType": "str", "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "x": 290, "y": 1200, "wires": [ [ "58ad33b2.fabb1c" ] ] } ] !
                                        Тут на сервер отправляется сообщение методом POST. Так вот, если в сообщении содержится кириллица, то вылетает ошибка, и ничего не отправляется.

                                        log:

                                        ! ````
                                        |node-red.0|2019-01-27 22:12:01.260|error|at processImmediate [as _immediateCallback] (timers.js:745:5)|
                                        |---|---|---|---|
                                        |node-red.0|2019-01-27 22:12:01.260|error|at tryOnImmediate (timers.js:768:5)|
                                        |node-red.0|2019-01-27 22:12:01.260|error|at runCallback (timers.js:810:20)|
                                        |node-red.0|2019-01-27 22:12:01.260|error|at Immediate. <anonymous>(/opt/iobroker/node_modules/request/request.js:578:7)|
                                        |node-red.0|2019-01-27 22:12:01.260|error|at end (/opt/iobroker/node_modules/request/request.js:549:18)|
                                        |node-red.0|2019-01-27 22:12:01.260|error|at Request.write (/opt/iobroker/node_modules/request/request.js:1497:10)|
                                        |node-red.0|2019-01-27 22:12:01.260|error|at Request.start (/opt/iobroker/node_modules/request/request.js:751:32)|
                                        |node-red.0|2019-01-27 22:12:01.260|error|at Object.request (http.js:39:10)|
                                        |node-red.0|2019-01-27 22:12:01.260|error|at new ClientRequest (_http_client.js:137:13)|
                                        |node-red.0|2019-01-27 22:12:01.260|error|27 Jan 22:12:01 - [error] [http request:TEST DOOR] TypeError: Request path contains unescaped characters|</anonymous>

                                        
                                        Debug messages
                                        
                                        >! ````
                                        msg : error
                                        "TypeError: Request path contains unescaped characters"
                                        msg.payload : string[247]
                                        "TypeError: Request path contains unescaped characters : http://192.168.1.2:5000/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token="QERFWrtrg4t5"&payload={"text": "кирилица"}"
                                        >! ````
                                        Если писать латинскими символами, то всё работает.
                                        
                                        P.S. ioBroker стоит на малине, раньше ставил образ 2017 года, на нём всё работало. Но система посыпалась, поставил новый образ, и теперь не работает с кириллицей. Мне кажется, что не хватает каких-то кодировок в системе и Node-RED тут не при чём.
                                        
                                        Подкиньте идей, пожалуйста.
                                        
                                        ****<size size="150">******************************************************</size>****
                                        
                                        P.P.S.
                                        
                                        Нашёл решение - предварительно перекодируем сообщение функцией encodeURIComponent()
                                         ![5574_cyrillicmessage.png](/assets/uploads/files/5574_cyrillicmessage.png) 
                                        

                                        msg.CyrillicMessage = encodeURIComponent('Привет Мир');
                                        return msg;

                                        И "Привет Мир" превращается в "%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82%20%D0%9C%D0%B8%D1%80", а это уже прокатывает, отправка сообщений кириллицей работает.
                                        
                                        Вот полный код, url до сервера, естественно, изменён, каждый вбивает свой собственный:
                                        
                                        >! ````
                                        [
                                            {
                                                "id": "20b1742.e00da8c",
                                                "type": "http request",
                                                "z": "64e8a21a.233f3c",
                                                "name": "",
                                                "method": "POST",
                                                "ret": "txt",
                                                "url": "http://192.168.1.2:5000/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=%22TvDtggrtGr%22&payload={\"text\": \"{{{CyrillicMessage}}}\"}",
                                                "tls": "",
                                                "x": 830,
                                                "y": 160,
                                                "wires": [
                                                    [
                                                        "9039465f.edbf18"
                                                    ]
                                                ]
                                            },
                                            {
                                                "id": "9039465f.edbf18",
                                                "type": "debug",
                                                "z": "64e8a21a.233f3c",
                                                "name": "Door Sensor Status",
                                                "active": true,
                                                "tosidebar": true,
                                                "console": false,
                                                "tostatus": true,
                                                "complete": "payload",
                                                "x": 1040,
                                                "y": 160,
                                                "wires": []
                                            },
                                            {
                                                "id": "ae787e2c.09a418",
                                                "type": "inject",
                                                "z": "64e8a21a.233f3c",
                                                "name": "",
                                                "topic": "",
                                                "payload": "true",
                                                "payloadType": "str",
                                                "repeat": "",
                                                "crontab": "",
                                                "once": false,
                                                "onceDelay": 0.1,
                                                "x": 450,
                                                "y": 160,
                                                "wires": [
                                                    [
                                                        "8ec1277c.0cdf2"
                                                    ]
                                                ]
                                            },
                                            {
                                                "id": "8ec1277c.0cdf2",
                                                "type": "function",
                                                "z": "64e8a21a.233f3c",
                                                "name": "Текст сообщения",
                                                "func": "msg.CyrillicMessage = encodeURIComponent('Привет Мир');\nreturn msg;",
                                                "outputs": 1,
                                                "noerr": 0,
                                                "x": 630,
                                                "y": 160,
                                                "wires": [
                                                    [
                                                        "c6325ef1.f616b",
                                                        "20b1742.e00da8c"
                                                    ]
                                                ]
                                            },
                                            {
                                                "id": "c6325ef1.f616b",
                                                "type": "debug",
                                                "z": "64e8a21a.233f3c",
                                                "name": "",
                                                "active": true,
                                                "tosidebar": true,
                                                "console": false,
                                                "tostatus": true,
                                                "complete": "CyrillicMessage",
                                                "x": 860,
                                                "y": 100,
                                                "wires": []
                                            }
                                        ]
                                        >! ````
                                        1 Antwort Letzte Antwort
                                        0
                                        • A Offline
                                          A Offline
                                          Anrikigai
                                          schrieb am zuletzt editiert von
                                          #74

                                          Только начал осваивать 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 Antwort Letzte Antwort
                                          0

                                          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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          193

                                          Online

                                          32.7k

                                          Benutzer

                                          82.6k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe