Fine tuning classification in Elixir

p1meter.dev - a LiveView powered virtual P1 smart meter simulator

I’ve been working on p1meter.dev (GitHub), a small Phoenix LiveView project that provides a virtual smart meter P1 port for development and testing.

The idea is simple: if you are building software around Dutch or Belgian smart meters, home energy dashboards, DSMR parsing, P1 integrations, or TCP-based meter readers, you often need realistic telegram data. But having a physical smart meter, P1 cable, adapter, or test setup nearby is not always convenient.

p1meter.dev simulates a live DSMR 5.0 smart meter and streams telegrams over raw TCP.

You can try the live TCP stream with:

nc p1meter.dev 8080

The web interface shows a live preview of the simulated smart meter data, while the TCP endpoint emits the same kind of telegram stream that a P1 reader would receive.

The project itself is built with Phoenix LiveView. The simulated telegrams are generated using my dsmr package, which handles DSMR telegram data structures and formatting.

It is mainly useful for:

  • testing DSMR/P1 parsers without a real meter nearby
  • developing energy monitoring tools
  • experimenting with TCP-based P1 readers
  • demos, examples, and documentation
  • reproducing parser or integration issues with predictable input

The project is still intentionally small, but I’d like to keep improving it. Some things I’m considering:

  • more realistic usage patterns throughout the day
  • configurable meters or scenarios
  • support for more edge cases in telegram data
  • examples for consuming the stream from Elixir and other ecosystems

Feedback, ideas, bug reports, and contributions are very welcome.

Website: https://p1meter.dev Related DSMR package: https://github.com/mijnverbruik/dsmr Repo: https://github.com/mijnverbruik/p1meter.dev