NEWS
Скрипт для счётчика
-
Здравствуйте есть вопрос по созданию скрипта для учёта потребляемой энергии.
Исходные данные:
каждую секунду (или долю секунды, не важно) снимается мгновенная мощность, т.е. есть потребление и интервалы записи потребления
Нужно:
Просуммировать все получаемые данные.
Попоробовал в NodeRed, т.к. все данные всё равно через него идут, не вышло, видимо он как-то потоками считает, поэтому цикл do в функции просто не работает.
Пробовал скриптами, там не вышлоо вообще ничего, так и не понял как с ними работать, даже такой пример:
var pp, pp2, pp3;
pp = 'admin.0.Энергия.Мощность';
pp2 = 10;
pp3 = pp2 + 0;
setState("admin.0.info.p"/p/, pp3);
и тот не работает.
Вопрос в том, как реализовать данный счётчик.
-
Здравствуйте есть вопрос по созданию скрипта для учёта потребляемой энергии.
Исходные данные:
каждую секунду (или долю секунды, не важно) снимается мгновенная мощность, т.е. есть потребление и интервалы записи потребления
Нужно:
Просуммировать все получаемые данные.
Попоробовал в NodeRed, т.к. все данные всё равно через него идут, не вышло, видимо он как-то потоками считает, поэтому цикл do в функции просто не работает.
Пробовал скриптами, там не вышлоо вообще ничего, так и не понял как с ними работать, даже такой пример:
var pp, pp2, pp3;
pp = 'admin.0.Энергия.Мощность';
pp2 = 10;
pp3 = pp2 + 0;
setState("admin.0.info.p"/p/, pp3);
и тот не работает.
Вопрос в том, как реализовать данный счётчик. `
Доставка получаемых данных гарантируется? если нет то счетчик надо делать обособленно чтобы работал независимо от всех систем а просто передавал свои показания уже серверу -
> Доставка получаемых данных гарантируется? если нет то счетчик надо делать обособленно чтобы работал независимо от всех систем а просто передавал свои показания уже серверу
Данные передаются по modbus через nodered с контроллера wago, так что можно сказать что гарантируются, хотя конечно можно напрямую в codesys это запрограммировать и уже потом передавать.Но всё же можно это реализовать силами iobroker?
-
> Доставка получаемых данных гарантируется? если нет то счетчик надо делать обособленно чтобы работал независимо от всех систем а просто передавал свои показания уже серверу
Данные передаются по modbus через nodered с контроллера wago, так что можно сказать что гарантируются, хотя конечно можно напрямую в codesys это запрограммировать и уже потом передавать.Но всё же можно это реализовать силами iobroker? ` данные в каком виде представленны? Это конкретные значения или импульсы?
-
Но всё же можно это реализовать силами iobroker?данные в каком виде представленны? Это конкретные значения или импульсы?
В виде конкретных значений каждую секунду (в принципе время настраивается) продаются значения мощности, силы тока, напряжения и частоты в виде чисел, например 220Вт, 220в, 1а, соответственно каждую секунду эти данные обновляются. Кроме того они пишутся в базу history.
-
Но всё же можно это реализовать силами iobroker? ` данные в каком виде представленны? Это конкретные значения или импульсы?
В виде конкретных значений каждую секунду (в принципе время настраивается) продаются значения мощности, силы тока, напряжения и частоты в виде чисел, например 220Вт, 220в, 1а, соответственно каждую секунду эти данные обновляются. Кроме того они пишутся в базу history.
не понятна задача.
Зачем их суммировать? вывести среднее?
createState('test', ''); createState('Srednee', ''); var summa = getState('test').val; var i = 0; on({id: 'power', change: 'any'}, function (obj) { if (obj.newState.val){ i++; summa += obj.newState.val; setState ('Srednee', summa/i); } });
Можно данные взять и за прошлый период из базы данных.
Вообщем не понятна задача
-
` > Можно данные взять и за прошлый период из базы данных.
Вообщем не понятна задача `
Мне нужны данные которые показывает счётчик, т.е. КВт*час, у меня есть данные по мощности Вт, и времени съёма мощности, каждую секундуЯ хочу в итоге получить то, что показывает счётчик, т.е. потреблённую энергию в КВт*часах
идея такова:
P=мощность Вт
t = время c
E =P*t потреблённая энергия энергия
программа
E=начальное значение энергии
цикл. каждую секунду
E=E+P*t - потреблённая энергия за всё время
Теперь более понятно?
-
` > Можно данные взять и за прошлый период из базы данных.
Вообщем не понятна задача `
Мне нужны данные которые показывает счётчик, т.е. КВт*час, у меня есть данные по мощности Вт, и времени съёма мощности, каждую секундуЯ хочу в итоге получить то, что показывает счётчик, т.е. потреблённую энергию в КВт*часах
идея такова:
P=мощность Вт
t = время c
E =P*t потреблённая энергия энергия
программа
E=начальное значение энергии
цикл. каждую секунду
E=E+P*t - потреблённая энергия за всё время
Теперь более понятно? `
Понятно что ничего не понятно, если сервер перезагрузить или драйвер то у тебя уже будут расхождения показаний. Считать все-таки надо в независимом устройстые, а из него уже отдавать данные в иоб. у меня счетчик правда импульсы выдает но тебе тоже нужно что-то подобное http://blog.instalator.ru/archives/140 -
instalator: Подскажи как забрать данные от счетчика по MQTT, Счетчик дает импульсы, значит твой скрипт и используем. Пока буду проверять на MEga2560
-
instalator: Подскажи как забрать данные от счетчика по MQTT, Счетчик дает импульсы, значит твой скрипт и используем. Пока буду проверять на MEga2560 `
Не совсем я тебя понимаю. Что значит как забрать? Считать данные со счетчика ардуиной например и по MQTT отдавать.А какой именно мой скрипт используем?
Вот https://github.com/instalator/Counter_MQTT считает импульсы и отдает данные по MQTT
-
что-то подобное http://blog.instalator.ru/archives/140
Ну вот, а говоришь не понимаешь… ссылочка что надо. Ща попробую проверить.....
-
что-то подобное http://blog.instalator.ru/archives/140
Ну вот, а говоришь не понимаешь… ссылочка что надо. Ща попробую проверить..... `
Имей ввиду что там Ethernet на W5500 и библиотека под нее же. -
у меня 5100
-
#include <ethernet2.h>- вот эта для 5500</ethernet2.h>
-
такк… Вопрос. Как я понял ты собрал отдельный контроллер для этого, я жеж использую MEGA2560, я правильно понимаю что сигнал от счетчика надо подавать на А0 и желательно с подтяжкой 10кОм
-
Залил код на Ардуину, в ЙоБе, записи появились, но результаты по 0…... Где грабли.....
и еще, подключаю ко входу счетчик Энергомера СЕ101 3200имп.кВТ.ч.....
Похоже что то не так делаю... Прошу помощщи....
-
Залил код на Ардуину, в ЙоБе, записи появились, но результаты по 0…... Где грабли.....
и еще, подключаю ко входу счетчик Энергомера СЕ101 3200имп.кВТ.ч.....
Похоже что то не так делаю... Прошу помощщи.... `
Не могу сказать где грабли не видя кода. -
Код использовался https://github.com/instalator/Counter_MQTT от сюда, соответственно поменял IP а все остальное как было.
-
для проверки использую Arduino 2560 и сетевуху 5100, там же стоит SD
-
Код использовался https://github.com/instalator/Counter_MQTT от сюда, соответственно поменял IP а все остальное как было. `
Так ты изменил код то? Сконфигурирован его для входов не намур? И вообще он не для электросчётчиков.Для электросчётчиков тут https://github.com/instalator/Electro_C … /README.md