Как посчитать газ по счетчику правильно: пример
Установка счетчика на газ позволяет контролировать его потребление и не переплачивать, как это часто бывает при фиксированном начислении оплаты. Показания с прибора ежемесячно передаются компании-поставщику, которая в свою очередь, рассчитывает абонплату на основе израсходованных кубов голубого топлива. Вносить в платежки информацию можно и самостоятельно. Однако не все знают, как правильно посчитать газ по счетчику и делают ошибки, которые приводят к переплате или недоплате за услугу газоснабжения.
Содержание
- 1 Особенности учета газа по счетчику
- 2 Как снимать показания счетчика?
- 3 Методика и правила расчета потребления газа по счетчику
Особенности учета газа по счетчику
Повсеместная установка газовых счетчиков указывает на тот факт, что оплата за реальное потребление намного выгодней, чем оплата по нормативам. В фиксированную абонплату включается расход газа каждым прописанным в квартире или доме, независимо от того, проживает там человек или нет. Если жильцов больше трех, то суммы получаются внушительные. Для тех, у кого в доме автономное газовое отопление, установка счетчика решает проблему обогрева жилища, несмотря на сезонность.
Установка счетчика в квартиру выгоднаПлата за газ по счетчику может отличаться в зависимости от того, в каком районе проживает человек и какая компания предоставляет данную услугу. Поэтому перед тем, как посчитать оплату за газ по счетчику, стоит ознакомиться с полной информацией по поводу того, в какой период она должна вноситься и стоимости 1 куб. м. топлива. Все это указывается на сайте поставщика или узнается непосредственно в отделении.
Если вы хотите узнать свой тариф, нужно обратить внимание на следующее:
- наличие газовой плиты и колонки;
- наличие газовой плиты без колонки;
- плита и централизованное отопление
- плита без колонки и централизованного отопления.
В зависимости от того, под какой критерий подходит ваш дом, устанавливаются тарифные планы. После того, как будет определен тариф, можно легко подсчитать количество потребленного газа за определенный период.
Потребитель обязан ежемесячно снимать и передавать показания с счетчика компании-поставщику. Сделать это можно в личном кабинете на сайте, по телефону или непосредственно в отделении. Передача производится с 20 по 25 число текущего месяца, но не позднее 10 числа следующего. Если по каким-то причинам газовая компания не получила показаний, она может рассчитать оплату за газ по среднему расходу в месяц, исходя из ранее предоставленных данных за период не более года.
Оплата за поставленный газ вносится на основании платежных документов от поставщика, направленных в адрес каждого абонента. В платежке потребитель самостоятельно вносит показания приборов учета в специальные графы.
Как снимать показания счетчика?
Снятие показаний с прибора учета не вызовет трудностей. Каждый счетчик имеет механическое табло с роликами, на которые нанесены цифры. В большинстве случаев роликов 7 или 8, из которых 3, расположенные справа, отделены запятой и взяты в красную рамку. На них не обращают внимания при снятии показаний. Например, если табло счетчик показывает 00458, 356, то цифры 356 не учитываются, а данными о количестве потребленных кубов будут цифры 00458. Их и вписывают в квитанцию, но без нулей. Если один из роликов завис на промежутке между цифрами, то записывается предыдущая из них, например из 9 и 0 выбирают 9.
Снятие показаний со счетчика газаПо такому же принципу рассчитываются показания, если установлен электронный прибор потребления голубого топлива.
Методика и правила расчета потребления газа по счетчику
Расчет потребленного за месяц газа производится на основании текущих и предыдущих показаний. Для этого от настоящих показаний отнимают показания за прошлый месяц. Разницу умножают на действующий тариф. Полученная цифра и будет суммой, которую нужно оплатить за оказанную услугу. К примеру, в прошлом месяце было потреблено 589 кубов, а в этом — 630. Получается 630-589 ⹀ 41 — объем израсходованного газа. Теперь 41 умножают на стоимость газа за 1 куб. м.
Расчет потребления газа по счетчикуМногие сайты газовых компаний имеют онлайн-калькуляторы, с помощью которых можно быстро посчитать расход газа по счетчику и сумму к оплате. Для этого выполняют несколько несложных шагов.
- Указывают наличие или отсутствие счетчика.
- Вносят текущие и предыдущие показания.
- Указывают количество проживающих в доме и наличие льготников.
- После нажатия на кнопку «Рассчитать» на экран выведутся нужные цифры.
Таким образом, узнать сумму оплаты и внести ее на счет газовой компании можно любым удобным способом, главное желать это своевременно.
Тарифы на газ и способы расчета. Где, когда и куда платить
Откуда берутся цены, которые мы каждый месяц видим в квитанции на газ? Когда, где и как удобнее его оплачивать? Обсудим эти вопросы в статье.
Тарифы на газ в России условно делятся по категориям и по ценовым поясам.
Для установления категории важно, кто пользуется газом: жители частных домов и квартир, куда проведен газ, или же промышленные предприятия.
Ценовые пояса установлены по принципу удаленности конкретного потребителя от региона, где происходит добыча газа. Чем дальше, тем выше тариф.
Тарифы на газ устанавливают региональные власти на основании общероссийской методики. Изменение тарифов происходит ежегодно с 1 июля. Рост тарифа не может превышать предельный индекс роста, определяемый российским правительством.
Какие санкции грозят неплательщикам
Какие санкции грозят организациям-неплательщикам
Как узнать, сколько платить за газ? Все просто. Ежемесячная плата за газ зависит от потраченного объема. Если газовый счетчик не установлен, то для расчетов применяется норматив потребления. Расчет платежей при использовании газовой плиты и колонки будет привязан к количеству проживающих (официально зарегистрированных) человек. В случае отопления дома с помощью газового котла норматив привязан к отапливаемой площади. Чем севернее регион, тем выше норматив.
Если в квартире или в частном доме установлен прибор учета, то плата зависит только от потраченных кубов. Расчет в данном случае очень простой: из текущих показаний нужно вычесть показания предыдущего месяца, а разницу умножить на тариф. Оплата по счетчику, как правило, намного выгоднее.
«Умный» газовый счетчик. Какая выгода?
Установка прибора учета газа
Оплата газа по счетчику выгоднее
Снимать показания и оплачивать счета за газ необходимо ежемесячно до 10 числа, следующего за расчетным. Это требование закона.
Текст пункта 66 Правил предоставления коммунальных услуг
66. Плата за коммунальные услуги вносится ежемесячно, до 10-го числа месяца, следующего за истекшим расчетным периодом, за который производится оплата, если договором управления многоквартирным домом либо решением общего собрания членов товарищества собственников жилья или кооператива (при предоставлении коммунальных услуг товариществом или кооперативом), не установлен иной срок внесения платы за коммунальные услуги.
Текст Правил предоставления коммунальных услуг →
Квитанция за газ: какая информация в ней содержится?
С помощью мобильного телефона или компьютера
Сегодня платить за газ легко — для этого даже необязательно выходить из дома, если у вас есть интернет.
Все расчеты и выпуск квитанций осуществляет поставщик газаГазоснабжающая организация, на которой лежит обязанность подать абоненту газ надлежащего качества | глоссарий → — название организации указано в квитанции на оплату. Передать показания счетчика и оплатить счет за газ можно онлайн через сайт поставщика, причем для этого не всегда нужно заходить в личный кабинет: большинство региональных представительств Группы «Газпром межрегионгаз» размещают форму для оплаты на главной странице или в разделе «Оплата газа». В этой форме необходимо ввести номер лицевого счета, показания, период, за который вы оплачиваете счет, и сумму платежа.
Примеры форм для быстрой оплаты газа на сайте регионального поставщика газа
Для оплаты через сайт поставщика можно использовать карты VISA, MasterCard или «Мир» любого банка. Комиссия не взимается.
С помощью QR-кода
Еще проще заплатить за газ, используя QR-код, размещенный на квитанции. Это можно сделать в любое время, находясь в любом месте. Вот краткая инструкция:
- зайдите со смартфона в приложение своего банка;
- зайдите в раздел «Платежи»;
- нажмите на кнопку «Оплата по QR- или штрихкоду»;
- наведите камеру телефона на QR- или штрихкод — вы увидите данные по оплате газа;
- проверьте номер лицевого счета и сумму оплаты;
- нажмите «Продолжить» или «Оплатить».
С помощью сервисов электронных платежей
Есть возможность заплатить за газ, используя интернет-кошельки: «Яндекс.Деньги», QIWI, WebMoney и другие. Существуют также системы, в которых пользователю не нужно регистрироваться или заводить личный кабинет, чтобы переводить деньги и осуществлять платежи. Например, сервис городских платежей Citycard. Это подойдет тем людям, кто переживает за предоставление своих персональных и банковских данных в интернет-сети.
Офлайн (лично)
С февраля 2022 года оплатить газ без комиссии можно в кассах клиентских центров компаний Группы «Газпром межрегионгаз», через личный кабинет абонента или через мобильные терминалы у сотрудников Группы. Оплата газа по-прежнему доступна через платежные терминалы, офисы банков и «Почту России». Однако теперь за эту услугу будет взиматься комиссия в соответствии тарифами, установленными этими организациями.
Выбор инструментов в разных регионах может различаться, поэтому список доступных платежных систем лучше уточнить на сайте поставщика газа в вашем регионе. Здесь же можно найти список банков, которые при оплате счета за газ не берут комиссию.
О чем вам стоит знать
Поверка и замена газовых счетчиков
Безопасный газ и дети
Лимит на газ для юридических лиц
Как рассчитать счет за газ: экспертное пошаговое руководство
Никто не ждет счетов за дом. Но когда дело доходит до знания того, как рассчитать счет за газ, может показаться, что вам нужен высокий уровень умственной гимнастики! Счета за газ изобилуют жаргоном, странными терминами и единицами потребления, которые вы вряд ли найдете в любом другом счете за дом.
Из-за таких терминов, как кВтч, джоули и теплотворная способность, научиться читать счет за газ может быть сложной задачей. Это поможет вам лучше понимать и управлять своими счетами за коммунальные услуги и домашними расходами.
«Важно понимать свой счет за газ, — говорит Бронуин Хабанд из British Gas, — чтобы убедиться, что вы платите только за тот газ, который вы использовали, что гарантирует, что вы не будете недоплачивать или переплачивать за энергию». взимать с нас плату за газ, который мы используем, довольно сложным образом. Но мы объясним, как производятся эти расчеты и как они связаны с тем, что вы платите.
Поняв, как рассчитать счет за газ, вы можете обнаружить, что используете больше газа, чем должен дом вашего размера, когда вы пытаетесь согреть свой дом зимой. Свободное владение терминами и расчетами может помочь изменить ваши привычки и распорядок дня, что означает более эффективное использование газа и снижение ежемесячных счетов.
Почему важно знать свой счет за газ?
«Счета и отчеты об энергопотреблении содержат полезную информацию, и очень важно их понимать», — объясняет Жан Фиддес. «Например, совершенно нормально, что потребление газа и, следовательно, его расходы в течение года увеличиваются и уменьшаются, даже если у вас фиксированный тариф. Поскольку в большинстве британских домов используется центральное газовое отопление, мы ожидаем, что люди будут использовать больше энергии, когда холодно, и меньше, когда тепло». дебетовой, поэтому кредит, накопленный за лето, компенсирует увеличение использования в зимние месяцы. В вашем счете будет четко указана эта информация», — добавляет она.
Понимание терминов, используемых для расчета счета за газ
(Изображение предоставлено Future PLC/ Lizzie Orme)
Прежде чем приступить к суммам и цифрам, содержащимся в вашем счете за газ, ознакомьтесь с некоторыми из наиболее необычных терминов, которые вы может попадется.
Что означает кВтч?
«Количество израсходованной энергии отображается в киловатт-часах (кВтч), — объясняет Бронвин Хабанд из British Gas (открывается в новой вкладке). «Чтобы дать вам приблизительное представление, один киловатт-час — это количество энергии, необходимое для того, чтобы вскипятить десять чайников, запустить полный цикл вашей стиральной машины или обеспечить работу вашего ноутбука в течение двух дней».
Что такое поправочный коэффициент?
«Температура и давление заставляют газ расширяться и сжиматься», — говорит Кристофер Далли из EDF. «Чтобы учесть это, мы используем поправочный коэффициент в наших расчетах. Это фиксировано и стандартизировано во всей отрасли».
Что такое теплотворная способность?
Теплотворная способность, или количество тепла, выделяемое при сгорании газа, различается. «Цифра в счете клиента — это средняя теплотворная способность газа, поставляемого в вашу собственность», — объясняет Кристофер. «Теплотворная способность измеряется по всему газопроводу компанией National Grid в соответствии с Ofgem. Затем соответствующие отраслевые стандарты отправляются соответствующим поставщикам». Точная цифра будет указана в вашем счете в мегаджоулях на кубический метр (МДж/м³). Цифра будет где-то между 38 МДж/м³ и 41 МДж/м³ – газотранспортеры регулируются, чтобы поддерживать этот показатель во избежание проблем с газовыми приборами. Типичное значение 390,5 МДж/м3.
Что нужно для расчета счета за газ
Чтобы сэкономить энергию дома, при расчете счета за газ вам понадобится некоторая информация. Выполните следующие простые шаги:
1. Получите два отдельных показания счетчика за два разных дня
У вас должны быть показания счетчика, которые вы в последний раз предоставили поставщику энергии.
2. Знайте свой тип счетчика
«В Великобритании, — объясняет Кристофер Далли из EDF, — у нас есть интеллектуальные газовые счетчики и традиционные счетчики, которые были установлены до интеллектуальных счетчиков. Клиентам, у которых есть интеллектуальный счетчик газа, подключенный к Центру передачи данных, не нужно предоставлять регулярные показания счетчика, поскольку счетчик делает это автоматически. Клиенты, у которых есть традиционный счетчик, по-прежнему должны регулярно предоставлять показания счетчика, чтобы убедиться, что они получают точный счет».
«Если у вас есть счетчик предоплаты или счетчик Pay As You Go, вы будете платить за энергию по мере ее использования, пополняя карту или ключ», — говорит Бронуин Хабанд из British Gas. — Вы заплатите постоянный сбор. Если у вас есть какая-либо задолженность по предыдущему счету, и он был загружен на ваш счетчик предоплаты, он также будет вычтен в согласованной сумме при пополнении.»
3. Узнайте сумму, которую вы платите за каждый кВтч газа, используйте
Это можно найти в информации о вашем тарифе на газ. Обычно указывается в пенсах за киловатт-час, например 2,59.05р/кВтч.
Как рассчитать счет за газ по показаниям счетчика
(Изображение предоставлено: Future PLC/ Lucinda Symons)
Чтобы получить итоговую сумму вашего счета, необходимо выполнить несколько расчетов. Приготовьте калькулятор и блокнот. Приведенные ниже цифры основаны на правилах, установленных государственным законодательством .
Когда у вас есть показания счетчика, тип вашего счетчика и цена за единицу, которую вы взимаете (как указано выше), вы готовы рассчитать свой счет. «Это стандарт Великобритании для расчета энергии в кВтч», — говорит Джин Фиддес из E-ON. «Чтобы рассчитать счет за газ, переведите показания счетчика в кВтч».
- Если ваш счетчик измеряет сотни кубических футов (hcf), возьмите количество использованного газа, указанное в вашем счете как «hcf», и умножьте на 2,83, чтобы преобразовать его в кубические метры (м³).
- Если ваш счетчик измеряет кубические метры (м3), возьмите количество использованного газа, указанное с пометкой «м³» на лицевой стороне вашего счета.
- Умножьте число в м3 на коэффициент преобразования 1,02264, а затем на теплотворную способность. Теплотворная способность варьируется; Вы должны найти это в своем счете.
- Разделите эту цифру на 3,6, чтобы узнать потребление энергии в кВтч.
- Умножьте потребление в кВтч на цену за единицу, чтобы рассчитать плату за газ.
На что обратить внимание в счете за газ
Жан Фиддес из E.ON Next предлагает обратить внимание на следующее:
- Предыдущий баланс: остаток, перенесенный из вашего последнего счета.
- Сборы: стоимость использованного электричества и/или газа плюс любые постоянные платежи.
- Платежи: сколько вы заплатили с момента выставления последнего счета.
- Остаток: сумма, подлежащая оплате.
Если вы платите прямым дебетом, вы увидите список ежемесячных платежей, а баланс показывает, есть ли у вас кредит или дебет. «Обратите внимание на показания счетчиков, даты, когда они были сняты, и цену, которую они платят за кВтч, поскольку они составляют основную часть счета», — говорит Кристофер Далли из EDF. «Клиенты, которые платят прямым дебетом, также должны проверить, правильно ли указаны все сделанные платежи. Клиенты также могут проверить, совпадает ли номер счетчика в счете с номером счетчика в их доме».
Бронвин из British Gas добавляет: «Хорошая практика – проверять, соответствует ли тариф на электроэнергию в вашем счете тому, на что вы подписаны». Также стоит следить за счетами за воду.
Что потребляет больше всего газа в доме?
(Изображение предоставлено Future PLC/Colin Poole)
«Трудно предсказать, что потребляет больше всего газа в доме, так как на газ влияет множество переменных факторов», — говорит Кристофер Далли из EDF (открывается в новом вкладку). «Возраст и эффективность устройства будут влиять на стоимость его эксплуатации. Старая техника, которая не так энергоэффективна. будет стоить дороже». Добавьте к этому тот факт, что каждый дом отличается как по размеру, так и по характеру использования.
«Большинство из нас полагаются на свои газовые котлы, чтобы обеспечить постоянное отопление и горячую воду, на которые приходится большая часть потребления газа в наших домах», — говорит Джин Фиддес из E. ON Next . «Если вы отапливаете свой дом с помощью газового котла, очень важно проверить возраст вашего котла». Затем вы можете решить, когда лучше всего заменить котел. «Если он старше, скажем, 10–15 лет, подумайте о том, чтобы перейти на более энергоэффективный», — добавляет Джин. «Это может помочь вам сэкономить деньги на счетах за газ, а также снизить воздействие на окружающую среду».
Джиневра Бенедетти является заместителем редактора журнала Ideal Home с 2021 года. Работая в журналах на протяжении почти двадцати лет, она работала в большинстве британских журналов об интерьерах как в качестве сотрудника, так и в качестве внештатного сотрудника. Впервые она присоединилась к команде Ideal Home в 2011 году, сначала в качестве заместителя редактора отдела декора, и никогда не покидала ее! В настоящее время она ежемесячно курирует выпуск журнала бренда, от планирования до публикации, редактирования, написания или заказа большей части контента.
Рассчитать периодическое потребление газа на основе показаний счетчика – Скрипты и правила
часов (Гарольд Х. )
#1
Привет всем,
Основная цель этой темы – дать ответ после прочтения и использования многочисленных сообщений знающих людей здесь, на форуме OpenHAB и за его пределами.
Основная проблема, которую я здесь решаю, – это рассчитать точное количество газа, потребляемого каждую минуту, час и день, на основе периодических показаний газового счетчика. Привязка, которую я использую, — это отличная привязка DSMR (https://docs.openhab.org/addons/bindings/dsmr1/readme.html), которая считывает значения каждые 5 минут с моего интеллектуального счетчика ISKRA AM550.
О скрипте:
Я попытался максимально подробно задокументировать его, чтобы объяснить, что я делаю.
Также я добавил возможность контролировать количество сообщений журнала с помощью элемента номера OpenHAB «loglevel»
Буду рад вашим комментариям и предложениям по дальнейшему улучшению.
// SlimmeMeter.rules — Создано Гарольдом Хорсманом — февраль 2018 г. // Эти 3 правила могут рассчитать потребление газа в минуту, в час и в день. // Триггером использования в минуту является изменение значения показания газового счетчика. Привязка газового счетчика DSMR считывает показания газового счетчика каждые 5 минут. // Часовое правило срабатывает на весь час, а ежедневное срабатывает в полночь. // Каждый расчет берет значение показания газового счетчика и предыдущего показания. Затем рассчитывается разница // Затем вычисляется разница во времени между двумя показаниями. // Наконец, использование рассчитывается на основе двух значений. // После завершения расчета текущее показание газового счетчика и его метка времени сохраняются в элементах OpenHAB для использования в следующем расчете. // Используемые переменные и элементы: // ВХОДЫ // M3Meter_DeliveryM3 OH измеряемый элемент из DSMR Содержит значение счетчика газового счетчика // M3Meter_Timestamp Элемент измерения OH из DSMR Содержит метку времени последнего измерения // Элемент LogLevel OH Уровень логирования определяет количество выходных данных // ИСПОЛЬЗУЕТСЯ ПРИ РАСЧЕТАХ: // Переменная внутреннего правила P1GasActualUsage Используется для расчета разницы между двумя показаниями газового счетчика // Переменная внутреннего правила TimePeriodInMins Используется для расчета точной разницы во времени в минутах между двумя показаниями газового счетчика // Переменная внутреннего правила P1GasActualUsage Используется для расчета фактического использования газа за определенный период. // Переменная внутреннего правила P1GasActualUsagePerMinute Используется для расчета фактического использования газа в минуту за определенный период. // Переменная внутреннего правила P1GasActualUsagePerHour Используется для расчета фактического использования газа в час за определенный период.// Переменная внутреннего правила P1GasActualUsagePerDay Используется для расчета фактического использования газа в день за определенный период. // переменная внутреннего правила newDate Используется для определения временной метки самого последнего показания и выполнения с ней вычислений // переменная внутреннего правила oldDate Используется для определения временной метки предыдущего вычисления и выполнения с ней вычислений // ВЫВОДЫ // Элемент P1_Gas_Actual_UsagePerMinute OH Расчетная подача за последний период (M3/минута) // Элемент P1_Gas_Actual_UsagePerHour OH Расчетная подача за последний час (м3/час) // P1_Gas_Actual_UsagePerDay позиция OH Расчетная поставка за последний день (м3/день) // P1_Gas_TS_Actual_Usage Элемент OH Временная метка расчетной доставки за последний период (M3/минута) // P1_Gas_TS_Actual_Hour элемент OH Временная метка расчетной доставки за последний час (M3/час) // P1_Gas_TS_Actual_Day OH item Временная метка расчетной доставки за последний день (M3/день) // Импортируем правильные классы Java // импортируем org. joda.time.* // импорт java.text.SimpleDateFormat // импортируем java.util.Date // импортируем java.time // 2018-01-08 Примечание: импорт вышеуказанных java-библиотек не требуется (больше) // // ------------------------------------------------ --------------------------------------- // ******************************************************* ******************************************* правило "P1 Рассчитывать использование газа в минуту после КАЖДОГО обновления" когда Item M3Meter_DeliveryM3 изменен // Каждый раз, когда есть показания газового счетчика, рассчитать использование в минуту тогда // Рассчитаем разницу в показаниях и временных метках, а затем рассчитаем использование за этот период // значение double daymsec = 86400000 // значение двойной миллисекунды в час = 3600000 val двойная миллисекунда = 60000 номер переменной P1GasActualUsagePerMinute = 0 var oldDate = new DateTime((P1_Gas_TS_Last_Value_Actual.state as DateTimeType).zonedDateTime.toInstant().toEpochMilli) var newDate = new DateTime((M3Meter_Timestamp. state as DateTimeType).zonedDateTime.toInstant().toEpochMilli) // Рассчитываем разницу между показаниями газового счетчика var Number P1GasActualUsage = (M3Meter_DeliveryM3.state как число) - (P1_Gas_Last_Value_Actual.state как число) // Рассчитываем период между двумя отметками времени (в часах) var Number TimePeriodInMins = ((newDate.millis - oldDate.millis) / миллисекунды в минуту) // Проверяем, что значение TimePeriodInMins не равно нулю, а затем вычисляем и обновляем элементы если (TimePeriodInMins == 0) { logInfo ("SlimmeMeterRules", "ОБНОВЛЕНИЕ, поскольку TimePeriodInMins = 0, обновления не выполняются") } еще { // Рассчитаем фактическое использование за определенный период (в минутах) P1GasActualUsagePerMinute = (P1GasActualUsage / TimePeriodInMins) // Обновить выходные значения: P1_Gas_Actual_UsagePerMinute.postUpdate(P1GasActualUsagePerMinute) P1_Gas_Last_Value_Actual.postUpdate(M3Meter_DeliveryM3.state как число) P1_Gas_TS_Last_Value_Actual.postUpdate (M3Meter_Timestamp.state как DateTimeType) logInfo ("SlimmeMeterRules", "ОБНОВЛЕНИЕ P1GasActualUsagePerMinute = {}", P1GasActualUsagePerMinute) } // Конец иначе конец // ------------------------------------------------ --------------------------------------- // ******************************************************* ******************************************* правило "P1 Расчет потребления газа в ЧАС" когда // cron каждый час // cron "S M H D M День [Г]" Хрон времени "0 0 * * * ?" // Установите CRON для запуска этого правила каждый час в ЧЧ:00 тогда logInfo ("SlimmeMeterRules", "================= НАЧАТЬ РАСЧЕТ ПОЧАСОВОЙ ЗНАЧЕНИЯ ====================") // значение double daymsec= 86400000 val двойной миллисекунды в час = 3600000 // значение двойной миллисекунды = 60000 номер переменной P1GasActualUsagePerHour = 0 // Сбросьте предыдущие значения к некоторым разумным значениям, когда они равны NULL если (P1_Gas_TS_Last_Value_Hour. state == NULL) { P1_Gas_TS_Last_Value_Hour.postUpdate (OH_SystemDownTime.state как DateTimeType) } еще { если (P1_Gas_Last_Value_Hour.state == NULL) { P1_Gas_Last_Value_Hour.postUpdate (M3Meter_DeliveryM3.state как число) logInfo ("SlimmeMeterRules", "HOUR P1_Gas_Last_Value_Hour был сброшен с NULL на = {}", P1_Gas_Last_Value_Actual) } } val oldDate = new DateTime((P1_Gas_TS_Last_Value_Hour.state as DateTimeType).zonedDateTime.toInstant().toEpochMilli) val newDate = new DateTime((M3Meter_Timestamp.state as DateTimeType).zonedDateTime.toInstant().toEpochMilli) // Рассчитываем разницу между показаниями газового счетчика var Number P1GasActualUsage = ((M3Meter_DeliveryM3.state как число) - (P1_Gas_Last_Value_Hour.state как число)) // Рассчитываем период между двумя отметками времени (в часах) var Number TimePeriodInHours = ((newDate.millis - oldDate.millis) / миллисекунды в час) // Проверяем, что значение TimePeriodInMins не равно нулю, а затем вычисляем и обновляем элементы если (TimePeriodInHours == 0) { logInfo ("SlimmeMeterRules", "HOUR As TimePeriodInHours = 0, обновления не выполняются") } еще { // Рассчитаем фактическое использование за определенный период (в часах) P1GasActualUsagePerHour = (P1GasActualUsage / TimePeriodInHours) // Обновить выходные значения: P1_Gas_TS_Last_Value_Hour. postUpdate (M3Meter_Timestamp.state как DateTimeType) P1_Gas_Last_Value_Hour.postUpdate (M3Meter_DeliveryM3.state как число) P1_Gas_Actual_UsagePerHour.postUpdate(P1GasActualUsagePerHour) logInfo ("SlimmeMeterRules", "HOUR P1_Gas_Actual_UsagePerHour = {}", P1_Gas_Actual_UsagePerHour) } // Конец иначе logInfo ("SlimmeMeterRules", "================= КОНЕЦ РАСЧЕТА ПОЧАСОВОЕ ЗНАЧЕНИЕ ====================") конец //------------------------------------------------ --------------------------------------- // ******************************************************* ******************************************* правило "P1 Расчет потребления газа в день" когда // cron на каждый день // cron "S M H D M День [Г]" Хрон времени "0 0 0 * * ?" // Настраиваем CRON для запуска этого правила каждый день в 00:00:00 тогда logInfo ("SlimmeMeterRules", "================= НАЧАТЬ РАСЧЕТ ДНЕВНОЙ СТОИМОСТИ ====================") вал двойной деньмсек= 86400000 // значение двойной миллисекунды в час = 3600000 // значение двойной миллисекунды = 60000 номер переменной P1GasActualUsagePerDay = 0 // Сначала сбрасываем предыдущие значения на какие-то разумные значения, когда они равны NULL если (P1_Gas_TS_Last_Value_Day. state == NULL) { P1_Gas_TS_Last_Value_Day.postUpdate (M3Meter_Timestamp.state как DateTimeType) logInfo ("SlimmeMeterRules", "ЕЖЕДНЕВНО P1_Gas_TS_Last_Value_Day был сброшен с NULL на = {}", P1_Gas_TS_Last_Value_Day) } если (P1_Gas_Last_Value_Day.state == NULL) { P1_Gas_Last_Value_Day.postUpdate(M3Meter_DeliveryM3.state как число) logInfo ("SlimmeMeterRules", "ЕЖЕДНЕВНО P1_Gas_Last_Value_Day был сброшен с NULL на ={}", P1_Gas_Last_Value_Actual) } val oldDate = new DateTime((P1_Gas_TS_Last_Value_Day.state as DateTimeType).zonedDateTime.toInstant().toEpochMilli) val newDate = new DateTime((M3Meter_Timestamp.state as DateTimeType).zonedDateTime.toInstant().toEpochMilli) // Рассчитываем разницу между показаниями газового счетчика var Number P1GasActualUsage = ((M3Meter_DeliveryM3.state as Number) - (P1_Gas_Last_Value_Day.state as Number)) // Рассчитываем период между двумя отметками времени (в часах) var Number TimePeriodInDays = ((newDate.millis - oldDate.millis) / daymsec) // Проверяем, что значение TimePeriodInDays не равно нулю, а затем вычисляем и обновляем элементы если (TimePeriodInDays == 0) { logInfo ("SlimmeMeterRules", "ЕЖЕДНЕВНО, поскольку TimePeriodInDays = 0, обновления не выполняются") } еще { // Рассчитаем фактическое использование за определенный период (в днях) P1GasActualUsagePerDay = (P1GasActualUsage / TimePeriodInDays) // Обновить выходные значения: P1_Gas_TS_Last_Value_Day. postUpdate (M3Meter_Timestamp.state как DateTimeType) P1_Gas_Last_Value_Day.postUpdate(M3Meter_DeliveryM3.state как число) P1_Gas_Actual_UsagePerDay.postUpdate(P1GasActualUsagePerDay) logInfo ("SlimmeMeterRules", "ЕЖЕДНЕВНО P1_Gas_Actual_UsagePerDay = {}", P1_Gas_Actual_UsagePerDay) } // Конец иначе if (LogLevel.state > 0) logInfo ("SlimmeMeterRules", "================= КОНЕЦ РАСЧЕТА ЕЖЕДНЕВНАЯ ЗНАЧЕНИЕ =============== =====") конец //------------------------------------------------ ---------------------------------------
2 лайка
5iver (Скотт Рашуорт)
#2
Ваш пост будет НАМНОГО легче читать с кодовыми ограждениями!
1 Нравится
часов (Гарольд Х. )
#3
Спасибо, Скотт, за указание на это. В моей первой правке я не видел никаких упоминаний о том, чтобы сделать макет более читабельным, но теперь я нашел его! Я надеюсь, что вы можете прочитать это сейчас
5iver (Скотт Рашуорт)
#4
Да, намного лучше! Я также предлагаю вам удалить все ссылки на LogLevel и вместо этого использовать logInfo и logDebug для обеспечения нескольких уровней ведения журнала в DSL. Затем вы можете настроить уровень, который вы видите в журналах, с помощью…
log:set DEBUG org. eclipse.smarthome.model.script.Rules. log:set INFO org.eclipse.smarthome.model.script.Rules.
1 Нравится
часов (Гарольд Х.)
#5
Причина, по которой я использовал этот подход с использованием отдельного элемента уровня журнала, заключается в том, что теперь я могу управлять уровнем журнала из карты сайта, а не из командной строки. Поскольку я большой поклонник OpenhabianPi подхода @ThomDietrich, я хотел держаться подальше от Огайо как можно дольше
Для удобства чтения мне, возможно, следует даже удалить все эти логины. Но, с другой стороны, каждый, кто видит ценность в этом коде, может сделать это и сам.
5вер (Скотт Рашуорт)
#6
час.:
Теперь я могу управлять уровнем журнала из карты сайта, а не из командной строки
Вы можете сделать то же самое, используя существующий коммутатор… просто создайте правило для установки уровня ведения журнала или используйте лямбду. Только варианты для вас! И да, это делает ваш код очень трудным для чтения, особенно потому, что вы использовали отдельные строки вместо блоков.
часов (Гарольд Х.)
#7
5вер:
просто создайте правило для установки уровня ведения журнала или используйте лямбду.
Вы прикасаетесь к новым для меня областям. У вас есть пример такого кода для установки уровня журнала с помощью правила?
И да, это делает ваш код очень трудным для чтения, особенно потому, что вы использовали отдельные строки вместо блоков.
Хорошо, замечание принято, позвольте мне освежить код и вернуться с результатом позже.
рлкошак (Рич Кошак)
#8
Некоторые быстрые комментарии:
Поскольку вы все равно используете в своих вычислениях только миллисекунды, не беспокойтесь о создании DateTimes для oldDate и newDate. Просто держите милли.
Поскольку расчеты почти полностью идентичны, а основное отличие заключается в периодах времени и элементах, следует использовать лямбда-выражение и избегать дублирования кода. Повторно используемые функции: простой лямбда-пример с обильными примечаниями
1 Нравится
5iver (Скотт Рашуорт)
#9
час.:
Вы прикасаетесь к новым для меня областям. У вас есть пример такого кода для установки уровня журнала с помощью правила?
На форуме есть множество примеров использования лямбда-выражений (Рич только что опубликовал хороший пример), но настройка уровня логирования, по моему мнению, немного лучше (и я тоже мог бы это использовать). Создал новую тему, чтобы еще больше не засорять вашу.
Вот пример того, как можно изменить уровни ведения журнала без необходимости вручную вводить команды в консоль Karaf или редактировать org. ops4j.pax.logging.cfg. Я настроил это, и оно работает в моей среде, но команду ssh нужно будет изменить, чтобы она работала для кого-то, кто работает с openHabian или если OH запускается в Windows. Аутентификация на основе ключа — самая сложная часть настройки. Обязательно настройте Karaf с открытым ключом, а затем сначала подключитесь по ssh вручную, чтобы принять открытый ключ хоста. В…
1 Нравится
Гвидо_ван_Хаастерен (Гвидо Ван Хаастерен)
#10
@hhors Спасибо за публикацию! Именно то, что я искал.
Вы случайно не кодировали обновление? Я обнаружил эти ошибки при попытке использовать это правило:
Использование импорта подстановочных знаков устарело. Импорт java.util. Date никогда не используется. Импорт java.text.SimpleDateFormat никогда не используется.
также пункт P1_Gas_TS_Last_Value_Actual не был в списке пунктов «для установки». Это, конечно, легко починили. Но теперь я получаю это:
Правило «P1 Расчет использования газа в минуту после КАЖДОГО обновления»: не удалось привести NULL к org.eclipse.smarthome.core.library.types.DateTimeType;
рлкошак (Рич Кошак)
#11
Удалить все эти импорты. Они нужны только для Oh3.
Ошибка связана с тем, что состояние одного из ваших элементов DateTime не инициализировано, т.е. НУЛЕВОЙ. Вы не можете привести NULL к DateTimeType. Проверьте состояния NULL и UNDEF, прежде чем пытаться использовать состояние элемента в подобных случаях.
Гвидо_ван_Хаастерен (Гвидо Ван Хаастерен)
#12
Хорошо, спасибо, Рич, добавляю следующее:
if(P1_Gas_TS_Last_Value_Actual.state == null ){ P1_Gas_TS_Last_Value_Actual.postUpdate (новый DateTimeType()) }
Теперь мне нужно подождать, пока я пролью немного бензина, чтобы посмотреть, что произойдет.
5вер (Скотт Рашуорт)
№13
Гвидо_ван_Хаастерен:
если (P1_Gas_TS_Last_Value_Actual. state == null ){
UnDefType.NULL != null… вам нужно использовать NULL вместо null, чтобы это работало.
Гвидо_ван_Хаастерен (Гвидо Ван Хаастерен)
№14
Я думал, что ‘==’ решит эту проблему, поскольку это не то же самое, что ‘===’. Но правило не работает, так что я попробую!
часов (Гарольд Х.)
№15
Привет @Guido_van_Haasteren, извините за поздний ответ. Работа отталкивала меня от Огайо.
Чтобы ответить на ваш вопрос, у меня есть правило STARTUP, которое инициализирует каждый элемент, предотвращая NULL.