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

      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

                        723
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

                        2
                        20
                        4070
                        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