Уявіть: на промисловому об'єкті потужністю 500 кВт ви не знаєте погодинного споживання, перевищення договірної потужності — сюрприз наприкінці місяця. Ми розробляємо мобільні додатки для моніторингу енергоспоживання, які вирішують цю проблему. За п'ять років реалізовано понад 50 проектів. Типова ситуація: лічильник з Modbus RTU або P1-портом віддає сирі регістри — напругу, струм, потужність, накопичену енергію в кВт·год. Без додатку ці дані залишаються замкненими в шафі. Ми перетворюємо їх на дашборд з графіками та алертами, що дозволяє економити до 30% на електроенергії. Наприклад, на об'єкті 500 кВт. Зв'яжіться з нами для безкоштовної оцінки вашого проекту.
Як організувати моніторинг енергоспоживання через мобільний додаток?
Лічильники електроенергії для промисловості (Меркурій 230, АГАТ, Eastron SDM630) використовують Modbus RTU через RS-485. Для побутових розумних лічильників (Sagemcom, Itron) характерні DLMS/COSEM, M-Bus або P1-порт (Dutch Smart Meter). Комерційні моделі з GPRS/NB-IoT модулем надають хмарний API виробника.
Для Modbus-лічильників потрібен RS-485 → Ethernet шлюз (Moxa NPort, Anybus X-gateway) або IoT-шлюз з Modbus-агентом. Мобільний додаток завжди працює через бекенд або MQTT-брокер — прямого підключення до лічильника немає. Для P1-порту (Нідерланди, Бельгія) існують P1-to-MQTT адаптери на ESP32/Raspberry Pi, що парсять DSMR-телеграми і публікують у MQTT.
| Протокол | Швидкість | Відстань | Сфера застосування |
|---|---|---|---|
| Modbus RTU | до 115,2 кбіт/с | до 1200 м (RS-485) | Промислові об'єкти, АСКОЕ |
| DLMS/COSEM | до 9600 біт/с (P1) | коротка | Побутова автоматизація, Європа |
| P1-порт | 115200 біт/с | до 10 метрів | Смарт-метри Нідерландів, Бельгії |
Як агрегувати та зберігати дані?
Лічильник віддає миттєві значення. Додатку потрібні тренди за годину, добу, місяць — це вимагає агрегації зі збереженням. На бекенді — InfluxDB або TimescaleDB (PostgreSQL extension). TimescaleDB підходить для невеликих інсталяцій: SQL-запити, функція time_bucket:
SELECT time_bucket('1 hour', time) AS hour, device_id, MAX(active_energy_kwh) - MIN(active_energy_kwh) AS consumption_kwh, AVG(active_power_w) AS avg_power_w FROM energy_readings WHERE device_id = $1 AND time BETWEEN $2 AND $3 GROUP BY 1, 2 ORDER BY 1; Різниця між MAX та MIN накопиченої енергії за період — споживання за цей період. Проста та надійна формула, що не потребує дельт. TimescaleDB пришвидшує запити за часовими рядами в 2 рази порівняно зі стандартною групіровкою.
Чому Flutter та BLoC кращі для моніторингу?
Flutter з BLoC дозволяє розробляти кроссплатформенний додаток в одному коді, скорочуючи час виходу на ринок в 1.7 рази порівняно з окремими нативними розробками. Стек: Dart, BLoC (Business Logic Component) для керування станом, fl_chart для гістограм. Приклад дашборду:
class EnergyDashboardBloc extends Bloc<EnergyEvent, EnergyDashboardState> { final EnergyRepository _repo; StreamSubscription? _realtimeSub; EnergyDashboardBloc(this._repo) : super(EnergyDashboardInitial()) { on<LoadDashboard>((event, emit) async { emit(EnergyDashboardLoading()); try { final current = await _repo.getCurrentReadings(event.meterId); final todayChart = await _repo.getHourlyConsumption( event.meterId, DateTime.now().subtract(const Duration(hours: 24)), DateTime.now(), ); emit(EnergyDashboardLoaded(current: current, hourlyChart: todayChart)); _startRealtimeUpdates(event.meterId); } catch (e) { emit(EnergyDashboardError(message: e.toString())); } }); on<RealtimeUpdated>((event, emit) { if (state is EnergyDashboardLoaded) { emit((state as EnergyDashboardLoaded).copyWith(current: event.reading)); } }); } void _startRealtimeUpdates(String meterId) { _realtimeSub = _repo.realtimeStream(meterId) .listen((reading) => add(RealtimeUpdated(reading))); } } Картки дашборду: активна потужність (кВт), напруга по фазах (для трифазних лічильників — три значення), cosφ (коефіцієнт потужності), споживання за поточний день, споживання за місяць vs минулий місяць.
Графік споживання — розробка мобільного додатку
fl_chart з BarChart для погодинного споживання — стандарт в енергетичних додатках. Кольорове кодування за тарифними зонами (нічний тариф — синій, денний — оранжевий):
BarChartGroupData buildHourBarGroup(int hour, double consumption) { final isNightTariff = hour < 7 || hour >= 23; return BarChartGroupData( x: hour, barRods: [ BarChartRodData( toY: consumption, color: isNightTariff ? Colors.blue.shade300 : Colors.orange.shade400, width: 12, borderRadius: const BorderRadius.vertical(top: Radius.circular(4)), ), ], ); } Що входить у розробку?
Ми надаємо послугу під ключ. Розробка мобільного додатку для моніторингу енергоспоживання включає:
- Аналіз вашого обладнання та вимог до інтеграції
- Проектування архітектури: бекенд (TimescaleDB/InfluxDB), API, мобільний додаток
- Розробка прототипу з базовим дашбордом для погодження
- Інтеграція з існуючими лічильниками та шлюзами (Modbus, DLMS, P1, хмарні API)
- Розробка серверної частини: агрегація, алерти, керування користувачами
- Тестування на реальному обладнанні
- Публікація в App Store та Google Play з дотриманням правил
- Документація та навчання ваших операторів
Ми гарантуємо якість інтеграції та документації. Середній термін розробки — від 3 тижнів для одного об'єкта до 3 місяців для багатооб'єктної системи з керуванням навантаженням.
Як налаштувати алерти за перевищенням потужності?
Моніторинг перевищення договірної потужності — одна з ключових функцій для комерційних об'єктів. Логіка на бекенді перевіряє ковзний 15-хвилинний максимум, мобільний додаток отримує алерт через FCM/APNs.
Для Android push-сповіщення з PRIORITY_HIGH через FCM Data Message (не Notification Message) — доставляється навіть у Doze mode. FCM Data Message обробляється в FirebaseMessagingService.onMessageReceived() і відображається як локальне сповіщення з кастомним звуком.
Етапи розробки
| Етап | Тривалість | Результат |
|---|---|---|
| Аналіз вимог | 1-2 дні | Технічне завдання |
| Проектування | 2-3 дні | Архітектура, прототип UI |
| Розробка бекенду | 1-2 тижні | API, база даних, агрегація |
| Розробка мобільного додатку | 2-4 тижні | Дашборд, алерти, історія |
| Інтеграція та тестування | 1 тиждень | Робота з реальним обладнанням |
| Публікація в магазинах | 3-5 днів | Розміщення в App Store та Google Play |
Як замовити розробку?
- Зв'яжіться з нами для безкоштовної консультації.
- Ми аналізуємо ваше обладнання та вимоги.
- Готуємо комерційну пропозицію з точною оцінкою термінів.
- Після погодження починаємо розробку з прототипу.
- Ітеративно доопрацьовуємо, тестуємо та публікуємо додаток.
Багатооб'єктний моніторинг
Для керуючих компаній, що слідкують за 50-100 об'єктами — список об'єктів з кольоровою індикацією статусу (норма/перевищення/немає даних), сортування за споживанням. Ледаче завантаження через ListView.builder з пагінацією по 20 об'єктів.
Розробка додатку для моніторингу одного лічильника з дашбордом та історичними даними: 3-4 тижні. Багатооб'єктний моніторинг з керуванням навантаженням та алертами: 2-3 місяці. Вартість розраховується після аналізу обладнання та вимог. Отримайте консультацію — ми безкоштовно оцінимо ваш проект.







