Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. ioBroker
    4. ioBroker драйвера
    5. Взаимодействие скрипта js из админки драйвера с мейн скриптом на nodejs

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Взаимодействие скрипта js из админки драйвера с мейн скриптом на nodejs

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

      чет у меня git сломался, не принимает обнову

      ! To https://github.com/DJONvl/iobroker.mysensors.git
      ! ! [rejected] master -> master (fetch first)
      ! error: failed to push some refs to 'https://github.com/DJONvl/iobroker.mysensors
      ! .git'
      ! hint: Updates were rejected because the remote contains work that you do
      ! hint: not have locally. This is usually caused by another repository pushing
      ! hint: to the same ref. You may want to first integrate the remote changes
      ! hint: (e.g., 'git pull …') before pushing again.
      ! hint: See the 'Note about fast-forwards' in 'git push --help' for details.

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

        git stash

        gut pull

        git stash pop

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

          @Bluefox:

          git stash

          gut pull

          git stash pop `
          не помогло, склонировал в другую папку, заменил файлы на нужные , вроде ушло

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

            2 Bluefox

            сделал добавление юнитов в таблицу, подскажи как теперь в цикле на них завести createState и отслеживать изменения в payload
            965___________.png
            305_modbus-konfig.pdf

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

              все отлично заработало, переменные создаются, но:

              привязываю в визе виджет лампочки на переменную, на вкладке обьекты

              ID___________________Имя________Тип__________Роль___Комната__Значение

              V_LIGHT_2_1_______V_LIGHT_2_1___state_________state ______________0

              значение переменной меняется (только красным почему-то),

              а в

              adapter.on( 'stateChange', function (id, state) {
                  // Warning, state can be null if it was deleted
                  adapter.log.info('stateChange ' + id + ' ' + JSON.stringify(state));
              	adapter.log.info('blablablabla-',id);
                  // you can use the ack flag to detect if it is status (true) or command (false)
                  if (state && !state.ack) {
                      adapter.log.info('ack is not set!');
                  }
              });
              

              не могу перехватить изменения, не отрабатывает

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

                ну вобщем-то у меня все готово, можно альфу тестить, только костыль убрать, не понял как получить номер запущенного драйвера

                ! ````
                adapter.on( 'stateChange', function (id, state) {
                // Warning, state can be null if it was deleted
                adapter.log.info('stateChange ' + id + ' ' + JSON.stringify(state));
                adapter.log.info(adapter.name);

                //________________выводим в порт___________________________________________
                	for (var co = 0; co < adapter.config.devices.length; co++) {		
                			if ( id	== adapter.name+'.0.'+adapter.config.devices[co].name){//todo убрать костыль
                			var msg_s;
                				msg_s =	adapter.config.devices[co].raw		+ ';' +
                						state.val + '\n';
                

                !
                G_myPort.write(msg_s);
                adapter.log.info('mesage-'+msg_s);
                }
                adapter.log.info(adapter.config.devices[co].name+ ';' + adapter.config.devices[co].node_id)
                }

                adapter.log.info('ToDo-вывести в компорт  для '+id+'значение-'+state.val);
                

                ! //----------------------------------------------------------------------------
                // you can use the ack flag to detect if it is status (true) or command (false)
                if (state && !state.ack) {
                adapter.log.info('ack is not set!');
                }
                });

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

                  @Vlad_k:

                  ну вобщем-то у меня все готово, можно альфу тестить, только костыль убрать, не понял как получить номер запущенного драйвера `
                  При подписывании на subscribeStates('*') тебе приходят только переменные из твоей инстанции. А так есть следующие поля:

                  https://github.com/ioBroker/ioBroker/wi … of-adapter

                  adapter.namespace = adapter.name + '.' + adapter.instance = 'mysensors.0'
                  
                  

                  То есть:

                  if ( id   == adapter.namespace + '.' + adapter.config.devices[co].name){//todo убрать костыль
                  

                  17973_unbenannt111.png

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

                    @Bluefox:

                    То есть:

                    if ( id   == adapter.namespace + '.' + adapter.config.devices[co].name){//todo убрать костыль
                    ```` `  
                    

                    отлично, спасибо, все работает…

                    косметику в вебморде потом наведу...

                    чтобы устанавливать модуль через npm install мне что нужно сделать? npm publish ? хочу на планшете под линухом попробовать, или проще папку скопировать?

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

                      @Vlad_k:

                      @Bluefox:

                      То есть:

                      if ( id   == adapter.namespace + '.' + adapter.config.devices[co].name){//todo убрать костыль
                      ```` `  
                      

                      отлично, спасибо, все работает…

                      косметику в вебморде потом наведу...

                      чтобы устанавливать модуль через npm install мне что нужно сделать? npm publish ? хочу на планшете под линухом попробовать, или проще папку скопировать? `

                      npm install https://github.com/DJONvl/iobroker.myse … all/master

                      Потом, когда драйвер будет более-менее надо будет сделать "npm publish" и его можно будет ставить через

                      npm install iobroker.mysensors

                      Можешь поменять имя репозитория на github на ioBroker.mysensors

                      ТОЛЬКО имя репозитория, больше ничего (package.json, io-package.json не менять)

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

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

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

                          Я смотрю ты ещё не зачекинил последнее состояние.

                          Очень хорошее начало!

                          🙂

                          Я бы хотел отдать на тест сообществу mysensors, но:

                          • нет совершенно описания. Даже я могу только догадываться, что делать

                          • работает ли путь iobroker => my sensors ?

                          • надо бы будет все цифры в конфигураторе поменять на select со значениями.

                          https://github.com/geek/sensors/blob/ma … /values.js

                          • у меня цель поддержки tcp/udp. Было бы неплохо написать уровень абстракции, что бы было всё равно откуда/куда приходят/уходят данные (serial/udp/tcp)

                          • какая библиотека используется 1.5 или 1.6 ?

                          Вроде бы там адресация такая:
                          ` > message-type

                          Type	Value	Comment
                          presentation	    0	Sent by a node when they present attached sensors. This is usually done in setup() at startup.
                          set	                1	This message is sent from or to a sensor when a sensor value should be updated
                          req	                2	Requests a variable value (usually from an actuator destined for controller).
                          internal	        3	This is a special internal message. See table below for the details
                          stream	            4	Used for OTA firmware updates
                          ```` `  
                          

                          Типы сообщений stream и internal скорей всего не нужны.

                          А presentation/set/req надо подставлять в драйвере в зависимости от того что драйвер хочет сделать:

                          • драйвер стартанулся => send presentation что бы получить список адресов

                          • poll => req

                          • write => set

                          и нет смысла вводить их в таблице..

                          Всё только начинается 🙂

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

                            @Vlad_k:

                            так он и так иоброкер, или ты имеешь в виду с большой буквой? чет не нашел где править, или удалить и заново создать? `
                            48_rename.png

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

                              @Bluefox:

                              Я смотрю ты ещё не зачекинил последнее состояние. `
                              вроде в репу все отправил…

                              @Bluefox:

                              Я бы хотел отдать на тест сообществу mysensors, но:

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

                              @Bluefox:

                              • работает ли путь iobroker => my sensors ?

                              • надо бы будет все цифры в конфигураторе поменять на select со значениями.

                              https://github.com/geek/sensors/blob/ma … /values.js `
                              про путь поподробней не понял что имеешь в ввиду, а в таблице все уже и так выводится с подписанными полями

                              @Bluefox:

                              • у меня цель поддержки tcp/udp. Было бы неплохо написать уровень абстракции, что бы было всё равно откуда/куда приходят/уходят данные (serial/udp/tcp)

                              • какая библиотека используется 1.5 или 1.6 ? `
                                библиотека 1.5, про 1.6 не слыхал еще, но они чет намутили в последних версиях теперь ноды на китайском клоне Si24R1 не видятся в сети с nRF24, по крайней мере те, что я уже наделал платы…

                              tcp/udp для себя не рассматриваю ввиду ненавистности к проводам, но куплю платку для экспериментов, попробую разобраться че там, хотя под MQTT Ethernet Gateway

                              в брокере и так есть адаптер
                              @Bluefox:

                              Вроде бы там адресация такая:
                              ` > message-type

                              Type	Value	Comment
                              presentation	    0	Sent by a node when they present attached sensors. This is usually done in setup() at startup.
                              set	                1	This message is sent from or to a sensor when a sensor value should be updated
                              req	                2	Requests a variable value (usually from an actuator destined for controller).
                              internal	        3	This is a special internal message. See table below for the details
                              stream	            4	Used for OTA firmware updates
                              ```` `  
                              

                              Типы сообщений stream и internal скорей всего не нужны.

                              А presentation/set/req надо подставлять в драйвере в зависимости от того что драйвер хочет сделать:

                              • драйвер стартанулся => send presentation что бы получить список адресов

                              • poll => req

                              • write => set

                              и нет смысла вводить их в таблице..

                              Всё только начинается 🙂 `
                              тут я вообще не понял логику разработчиков библиотеки, все было прекрасно пока я не доделал драйвер, накой хрен они сделали презентацию, если потом обращение к юниту в ноде, в ручную приходится прописывть для подключения,

                              например````
                              1 12 presentation false S_LIGHT 1;12;0;0;3
                              но чтоб включить-выключить юнит надо в порт писать 1;12;0;0;2,value\n

                              как то раньше я этого не замечал
                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              435
                              Online

                              31.8k
                              Users

                              80.0k
                              Topics

                              1.3m
                              Posts

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