Skip to content
  • Home
  • 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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Русский
  3. ioBroker
  4. ioBroker драйвера
  5. Взаимодействие скрипта js из админки драйвера с мейн скриптом на nodejs

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    326

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

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

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

Geplant Angeheftet Gesperrt Verschoben ioBroker драйвера
20 Beiträge 2 Kommentatoren 4.2k Aufrufe
  • Ä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.
  • V Offline
    V Offline
    Vlad_k
    schrieb am zuletzt editiert von
    #11

    2 Bluefox

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

    1 Antwort Letzte Antwort
    0
    • V Offline
      V Offline
      Vlad_k
      schrieb am zuletzt editiert von
      #12

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

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

      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 Antwort Letzte Antwort
      0
      • V Offline
        V Offline
        Vlad_k
        schrieb am zuletzt editiert von
        #13

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

        ! ````
        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 Antwort Letzte Antwort
        0
        • BluefoxB Offline
          BluefoxB Offline
          Bluefox
          schrieb am zuletzt editiert von
          #14

          @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 Antwort Letzte Antwort
          0
          • V Offline
            V Offline
            Vlad_k
            schrieb am zuletzt editiert von
            #15

            @Bluefox:

            То есть:

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

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

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

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

            1 Antwort Letzte Antwort
            0
            • BluefoxB Offline
              BluefoxB Offline
              Bluefox
              schrieb am zuletzt editiert von
              #16

              @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 Antwort Letzte Antwort
              0
              • V Offline
                V Offline
                Vlad_k
                schrieb am zuletzt editiert von
                #17

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

                1 Antwort Letzte Antwort
                0
                • BluefoxB Offline
                  BluefoxB Offline
                  Bluefox
                  schrieb am zuletzt editiert von
                  #18

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

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

                  :)

                  Я бы хотел отдать на тест сообществу 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 Antwort Letzte Antwort
                  0
                  • BluefoxB Offline
                    BluefoxB Offline
                    Bluefox
                    schrieb am zuletzt editiert von
                    #19

                    @Vlad_k:

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

                    1 Antwort Letzte Antwort
                    0
                    • V Offline
                      V Offline
                      Vlad_k
                      schrieb am zuletzt editiert von
                      #20

                      @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 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

                      527

                      Online

                      32.5k

                      Benutzer

                      81.7k

                      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