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

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

Community Forum

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

NEWS

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

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

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

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

Geplant Angeheftet Gesperrt Verschoben ioBroker драйвера
20 Beiträge 2 Kommentatoren 4.3k 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
    #4

    все получилось в лучшем виде…

    с гитом не дружу к сожалению, только скачать умею:D

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

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

      Установи git: https://git-for-windows.github.io/

      TortoiseGit: https://tortoisegit.org/download/

      Создай пустой проект на git и сделай clone:

      https://tortoisegit.org/docs/tortoisegit/tgit-dug.html

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

        вроде чет получилось https://github.com/DJONvl/iobroker.mysensors

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

          опять грабли вылезли, не могу заставить открываться порт с выбранным значением, в веб морде выбираю нужный, но при сохранении переменная куда пишу значение помирает при перезагрузке драйвера :D

          вроде победил….

          в логе периодичесски варнинги:

          ! host-MSW0039 2016-02-12 22:33:50 warn instance system.adapter.mysensors.0 already running with pid 5208
          ! mysensors-0 2016-02-12 22:33:48 info mySens 0;0;3;0;14;Gateway startup complete.
          ! mysensors-0 2016-02-12 22:33:48 info mySens 0;0;3;0;9;gateway started, id=0, parent=0, distance=0
          ! mysensors-0 2016-02-12 22:33:46 info starting. Version 0.5.0 in C:/iobroker/node_modules/iobroker.mysensors
          ! host-MSW0039 2016-02-12 22:33:46 info instance system.adapter.mysensors.0 started with pid 5208
          ! host-MSW0039 2016-02-12 22:33:43 info Restart adapter system.adapter.mysensors.0 because enabled
          ! host-MSW0039 2016-02-12 22:33:43 warn instance system.adapter.mysensors.0 terminated due to SIGTERM

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

            чет у меня 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 Antwort Letzte Antwort
            0
            • BluefoxB Offline
              BluefoxB Offline
              Bluefox
              schrieb am zuletzt editiert von
              #9

              git stash

              gut pull

              git stash pop

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

                @Bluefox:

                git stash

                gut pull

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

                1 Antwort Letzte Antwort
                0
                • 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

                                    Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                                    Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                                    Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                                    Registrieren Anmelden
                                    Antworten
                                    • In einem neuen Thema antworten
                                    Anmelden zum Antworten
                                    • Älteste zuerst
                                    • Neuste zuerst
                                    • Meiste Stimmen


                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    534

                                    Online

                                    32.7k

                                    Benutzer

                                    82.6k

                                    Themen

                                    1.3m

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

                                    • Du hast noch kein Konto? Registrieren

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