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. Скрипты
  5. ioBroker скрипты
  6. Скрипт для счетчика Меркурий 230

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Скрипт для счетчика Меркурий 230

Geplant Angeheftet Gesperrt Verschoben ioBroker скрипты
15 Beiträge 7 Kommentatoren 37.7k Aufrufe 1 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
    Anzic
    schrieb am zuletzt editiert von
    #2

    а через TCP можно использовать этот скрипт? Как он тогда будет выглядит?

    1 Antwort Letzte Antwort
    0
    • A Offline
      A Offline
      andrey99986
      schrieb am zuletzt editiert von
      #3

      @Anzic:

      а через TCP можно использовать этот скрипт? Как он тогда будет выглядит? `

      Что значит через TCP? У счётчика подключение CAN/RS485.

      Ещё у меня есть кастомная прошивка espeasy для esp8266 с поддержкой Меркурий 230, можно через wifi по mqtt забирать данные.

      1 Antwort Letzte Antwort
      0
      • R Offline
        R Offline
        RDim
        schrieb am zuletzt editiert von
        #4

        @andrey99986:

        Адаптер:

        https://ru.aliexpress.com/item/1-pcs-US … 0.0.fzI5Kj `
        Спасибо за скрипт!

        Взлетел, но не сразу. Хочу добавить пару моментов.

        В настройках адаптера javascript, добавить модуль serialport.
        894_2018-10-09_20-08-47.png
        Вылезла ошибка с предложением > Error in callback: TypeError: "baudrate" is an unknown option, did you mean "baudRate"?
        Мне потребовалось изменить в скрипте функцию merc_gd

        function merc_gd(cmd,buflen,factor,total,callback)
        {
        
            var port = new SerialPort(device_port,{
            baudRate: 9600,
            dataBits: 8,
            parity: 'none'
            });
        

        baudrate на baudRate

        1 Antwort Letzte Antwort
        0
        • S Offline
          S Offline
          solomsv
          schrieb am zuletzt editiert von
          #5

          @andrey99986:

          @Anzic:

          а через TCP можно использовать этот скрипт? Как он тогда будет выглядит? `

          Что значит через TCP? У счётчика подключение CAN/RS485.

          Ещё у меня есть кастомная прошивка espeasy для esp8266 с поддержкой Меркурий 230, можно через wifi по mqtt забирать данные. `

          Доброго времени !

          Поделитесь прошивкой для esp8266

          1 Antwort Letzte Antwort
          0
          • A Offline
            A Offline
            andrey99986
            schrieb am zuletzt editiert von
            #6

            Инструкция по компиляции прошивки espeasy с плагином Меркурий 230.

            1. Ставим atom по инструкции: https://letscontrolit.com/wiki/index.ph … Platformio

            2. Скачиваем последний релиз espeasy https://github.com/letscontrolit/ESPEasy/releases

            3. Разархивируем архив релиза, в папку src записываем файл https://github.com/Andrey2509/ESPEasy/b ... ury230.ino

            4. В файле platformio.ini раскомментировать тип прошивки, например: env_default = normal_ESP8266_4096

            5. В файле define_plugin_sets.h в секции #ifdef PLUGIN_SET_STABLE (соответствует прошивке normal) добавляем строку:

            #define USES_P220 //Mercury 230

            6. Компилируем.

            Так как данных много, а в espeasy жёсткое ограничение по количеству значений для каждого плагина, в плагине меркурий 230 вшита отправка данных только по mqtt. При этом Надо обязательно создать подключение в настройках "Controllers" (OpenHAB MQTT).

            На стороне иоброкера парсим mqtt строку в js:

            on({id: "mqtt.0.Mercury230.Merc_data_json", change: 'any'}, function (obj) {
            
              var myjson=JSON.parse(obj.state.val);
              setState("javascript.0.Uv1",myjson['Uv1']);
              setState("javascript.0.Uv2",myjson['Uv2']);
              setState("javascript.0.Uv3",myjson['Uv3']);
            
              setState("javascript.0.Ia1",myjson['Ia1']);
              setState("javascript.0.Ia2",myjson['Ia2']);
              setState("javascript.0.Ia3",myjson['Ia3']);
            
              setState("javascript.0.Pw_total",myjson['Pw0']);
              setState("javascript.0.Pw1",myjson['Pw1']);
              setState("javascript.0.Pw2",myjson['Pw2']);
              setState("javascript.0.Pw3",myjson['Pw3']);
            
              setState("javascript.0.E_T1",myjson['T1']);
              setState("javascript.0.E_T2",myjson['T2']);
            
               });
            
             on({id: "mqtt.0.Mercury230.Merc_stat_json", change: 'any'} || {id: "javascript.0.Energy_tarif", change: 'any'}, function (obj) {
            
             var myjson=JSON.parse(getState("mqtt.0.Mercury230.Merc_stat_json").val);
             var tarrif=getState("javascript.0.Energy_tarif").val;
             if (JSON.stringify(myjson).length>24) 
              {
                var table_mer230 = [{"month":1,"T1":0,"T2":0,"T1_potr":0,"T2_potr":0,"Total":0},
                {"month":2,"T1":0,"T2":0,"T1_potr":0,"T2_potr":0,"Total":0},
                {"month":3,"T1":0,"T2":0,"T1_potr":0,"T2_potr":0,"Total":0},
                {"month":4,"T1":0,"T2":0,"T1_potr":0,"T2_potr":0,"Total":0},
                {"month":5,"T1":0,"T2":0,"T1_potr":0,"T2_potr":0,"Total":0},
                {"month":6,"T1":0,"T2":0,"T1_potr":0,"T2_potr":0,"Total":0},
                {"month":7,"T1":0,"T2":0,"T1_potr":0,"T2_potr":0,"Total":0},
                {"month":8,"T1":0,"T2":0,"T1_potr":0,"T2_potr":0,"Total":0},
                {"month":9,"T1":0,"T2":0,"T1_potr":0,"T2_potr":0,"Total":0},
                {"month":10,"T1":0,"T2":0,"T1_potr":0,"T2_potr":0,"Total":0},
                {"month":11,"T1":0,"T2":0,"T1_potr":0,"T2_potr":0,"Total":0},
                {"month":12,"T1":0,"T2":0,"T1_potr":0,"T2_potr":0,"Total":0}];
            
             console.log('start');
                 for(var i=1;i<13;i++)
                {
            
                table_mer230[i-1]["month"]=i;
                table_mer230[i-1]["T1"]=myjson['M'+i+'T1'];;
                table_mer230[i-1]["T2"]=myjson['M'+i+'T2'];
                table_mer230[i-1]["T1_potr"]=Math.round(myjson['M'+i+'T1']*tarrif); 
                table_mer230[i-1]["T2_potr"]=Math.round(myjson['M'+i+'T2']*tarrif/2);
                table_mer230[i-1]["Total"]=Math.round(myjson['M'+i+'T1']*tarrif)+Math.round(myjson['M'+i+'T2']*tarrif/2);
            
                 } 
                //console.log('table='+JSON.stringify(table_mer230));
                setState("javascript.0.History_mer230", JSON.stringify(table_mer230));
              }
             });
            
            1 Antwort Letzte Antwort
            0
            • S Offline
              S Offline
              ssvvvv
              schrieb am zuletzt editiert von
              #7

              @andrey99986:

              Инструкция по компиляции прошивки espeasy с плагином Меркурий 230.

              1. Ставим atom по инструкции: https://letscontrolit.com/wiki/index.ph … Platformio

              2. Скачиваем последний релиз espeasy https://github.com/letscontrolit/ESPEasy/releases

              3. Разархивируем архив релиза, в папку src записываем файл https://github.com/Andrey2509/ESPEasy/b ... ury230.ino

              4. В файле platformio.ini раскомментировать тип прошивки, например: env_default = normal_ESP8266_4096

              5. В файле define_plugin_sets.h в секции #ifdef PLUGIN_SET_STABLE (соответствует прошивке normal) добавляем строку:

              #define USES_P220 //Mercury 230

              6. Компилируем.

              Так как данных много, а в espeasy жёсткое ограничение по количеству значений для каждого плагина, в плагине меркурий 230 вшита отправка данных только по mqtt. При этом Надо обязательно создать подключение в настройках "Controllers" (OpenHAB MQTT).

              Добрый день, Сергей.

              Ваш плагин для ESPEASY очень понравился, но у меня не получилось его запустить.

              Все сделал по пунктам, прошил и достучался до espeasy. Подключил его к домашнему роутеру и даже но MQTT что то увидел НО главное включение плагина MERCURY 230 не происходит. Т.е. при выборе плагина, в его настройках указываю:

              Device: Mercury 230

              Name: d1

              Enabled: YES

              Sensor

              1st GPIO: GPIO 12

              2nd GPIO: GPIO 14

              Read month stat: NO

              Start time to read stat for every month, hour: 0

              Start time to read stat for every month, min: 0

              End time to read stat for every month, hour: 0

              End time to read stat for every month, min: 0

              Select MQTT controller to publish data in json format : 1

              Note: MQTT topic to publish runtime data is: "Mercury230/Merc_data_json"

              Note: MQTT topic to publish history data is: "Mercury230/Merc_stat_json"

              Note: Interval (below) must be shorter then period between end and start

              Data Acquisition

              Send to Controller YES

              ❶

              Interval: 5 [sec]

              Давлю SUBMIT потом возвращаюсь в DEVICES и вижу что у меня напротив плагина Меркурий в столбце ENABLED стоит Х (не включено)

              В MQTT ничего не видно

              что делать? `

              1 Antwort Letzte Antwort
              0
              • S Offline
                S Offline
                ssvvvv
                schrieb am zuletzt editiert von
                #8

                В дополнение у меня Nodemcu V3

                1 Antwort Letzte Antwort
                0
                • A Offline
                  A Offline
                  andrey99986
                  schrieb am zuletzt editiert von
                  #9

                  @ssvvvv:

                  В дополнение у меня Nodemcu V3 `

                  Плагин автодисейблиться может по причине:

                  1.В espeasy должен быть создан MQTT контроллер в соответствующей закладке (тестировал только тип Openhab).

                  2. Не правильно указаны GPIO RX/TX или неправильно подключен к конвертору RS232/RS485.

                  Я использую такой:

                  https://ru.aliexpress.com/item/Single-C … 57602.html

                  Напрямую к счётчику подключать нельзя!

                  1 Antwort Letzte Antwort
                  0
                  • S Offline
                    S Offline
                    ssvvvv
                    schrieb am zuletzt editiert von
                    #10

                    Андрей, большое спасибо за быстрый отзыв.

                    У меня такой же модуль 485.

                    Все заработало.

                    Через 6 часов перестал работать опрос, перезагрузка (отключением питания) помогла

                    Сейчас опять стоит испытывается.

                    Скажите получилось победить утечку памяти?

                    В остальном у меня все передается, правда мне нужны были прямые топики в MQTT - переделал передачу отдельными командами.

                    Иногда не успевает передать. Перешел на Domoticz MQTT и убрал все задержки - стало лучше но некоторые параметры не проходят. Но это не проблема - у меня частота передачи сейчас стоит 10с (на 5с больше глюков). На верху у меня RapidScada с драйвером MQTT.

                    В любом случае спасибо за Вашу работу!!!

                    Для меня espeasy новое и с титаном не работал поэтому пришлось помучатся.

                    1 Antwort Letzte Antwort
                    0
                    • A Offline
                      A Offline
                      andrey99986
                      schrieb am zuletzt editiert von
                      #11

                      @ssvvvv:

                      Скажите получилось победить утечку памяти? `
                      Та версия, которая на github (ссылка выше) - без утечки памяти.

                      Проверяется просто - в espeasy ставится девайс "Generic - System Info ". Индикатор "Free RAM". далее штатно передаём через mqtt иоброкеру и сохраняем историю. У меня uptime уже 22 дня, память не уменьшается.

                      Были короткие uptime до замены БП, esp(nodemcu) оказалась очень чувствительна и к самому БП, и к проводам подводящим питание.

                      Сейчас БП и питание RS485 конвертора выставил ровно на 5.0 Вольт.

                      Частота запросов 10 с - на ней не тестировал, у меня 60 сек.

                      1 Antwort Letzte Antwort
                      0
                      • A Offline
                        A Offline
                        andrey99986
                        schrieb am zuletzt editiert von
                        #12

                        Обновил версию на github для espeasy.

                        Изменения:

                        -замена опасных функций (с указателями на данные) на безопасные,

                        -поддержка hardware serial (необходимо убрать галку использования serial самой espeasy),

                        -статистика передаётся в 2-х топиках: по месяцам и по предыдущему дню,

                        -период сбора статистики потребления задаётся в минутах, независимо от сбора оперативных данных.

                        1 Antwort Letzte Antwort
                        0
                        • Сергей СмирновС Offline
                          Сергей СмирновС Offline
                          Сергей Смирнов
                          schrieb am zuletzt editiert von
                          #13

                          Добрый день! Как вы считаете, реально переделать скетч под software serial или hardware? Хочу использовать в связке с Меркурий 231 (с ИК портом) - ествественно, через переходник...

                          1 Antwort Letzte Antwort
                          0
                          • Сергей СмирновС Offline
                            Сергей СмирновС Offline
                            Сергей Смирнов
                            schrieb am zuletzt editiert von
                            #14

                            Ау..есть кто живой?

                            1 Antwort Letzte Antwort
                            0
                            • A Offline
                              A Offline
                              Aleksey31
                              schrieb am zuletzt editiert von
                              #15

                              Всем привет!
                              Пробовал заводской прогой опросить Меркурий 230, все получилось.
                              Теперь хочу запустить опрос счетчика Меркурий 230 через скрипт, что выше приведен.

                              Копипастом не заработал...
                              Сейчас стоит Script Ingine 4.1.12.
                              В настройках прописал пакет serialport. Перезапустил службу, так же пробовал в ручную ставить через npm install serialport.

                              В редакторе JS подсвечивает ошибки ca090cec-8d04-4c9e-8179-0e2e4465cd2f-image.png
                              Подскажите что не так делаю, и как заставить редактор видеть (установить) недостающие пакеты...
                              В ручную пробовал в папку iobroker ставить, ничего не меняется...

                              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

                              780

                              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