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

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

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

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

Geplant Angeheftet Gesperrt Verschoben node-red Скрипты (flows)
85 Beiträge 16 Kommentatoren 75.6k Aufrufe 3 Watching
  • Ä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.
  • 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
                          • O Offline
                            O Offline
                            OlegJktu
                            schrieb am zuletzt editiert von OlegJktu
                            #75
                            1. если в обьектах нет, то без вариантов. Можно еще конечно лог глянуть. Только дебаг нужно включить.
                              1.1) возможно через usb-zigbee свиток драйвер отдает больше.

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

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

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

                            1 Antwort Letzte Antwort
                            0
                            • No NameN Offline
                              No NameN Offline
                              No Name
                              schrieb am zuletzt editiert von No Name
                              #76

                              Управление 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 Antwort Letzte Antwort
                              0
                              • N Offline
                                N Offline
                                notturno
                                schrieb am zuletzt editiert von
                                #77

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

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

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

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

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

                                  1. можно хранить переменные этой логике где-то за пределами Нод-Ред.
                                    Я храню в переменных IoBroker.
                                  1 Antwort Letzte Antwort
                                  0
                                  • O Offline
                                    O Offline
                                    OlegJktu
                                    schrieb am zuletzt editiert von
                                    #79

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

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

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

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

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

                                        1 Antwort Letzte Antwort
                                        0
                                        • R Offline
                                          R Offline
                                          romus
                                          schrieb am zuletzt editiert von
                                          #82

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

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          350

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe