We are seeking a Python developer to design and implement a system for polling electricity meters (model ABM5F610) via TCP-connected RS-485 modems (e.g., Teleofis devices), in accordance with the GOST R IEC 61107-2001 (ASCII mode) communication protocol.
The system must be capable of periodic data collection, proper session handling, result storage in structured formats, and restoration of missed intervals using the meter’s internal archive.
Preference will be given to developers based in the Russian Federation or CIS countries, due to familiarity with regional standards and technical context.
Scope of Work:
Meter Communication:
Establish TCP socket communication with modems (clients initiate the connection)
Start communication at 300 baud and switch to 9600 baud after ACK
Implement ASCII-based protocol exchange:
/?,ACK,.P0(),.P1(...),.R1.PARAM(),.B0q(), etc.Authenticate with password provided in configuration
Support full polling session and handle all expected response patterns
Data Collection and Storage:
Extract values including meter serial number, date, time, voltage, current, and energy
Store results in two parallel formats:
JSONL (line-by-line JSON)
Excel (.xlsx) with incremental update (append-only, no overwrite)
Maintain logging per terminal with timestamps and status messages
Archive Recovery:
Automatically detect gaps in time series
Use commands
.R1.NHALF()and.R1.BHALF(...)to retrieve missed dataAdjust timestamps based on meter’s internal time offset
Ensure 30-minute interval alignment
Configuration:
Read terminal and meter definitions from a single
config.jsonfileSupport multiple terminals (TCP ports), each with one or more meters
Text Interface (TUI):
Terminal-based UI to display:
Active terminal status
Countdown until next polling cycle
Last meter polled, current operation
Error messages and time delays
Project Structure Overview:
Expected script/modules:
main_server.py: TCP server accepting incoming modem connectionspoll_manager.py: polling scheduler based on configurationgost_meter_com.py: communication logic for GOST 61107 ASCII protocolarchive_recover.py: handles archive-based recovery of missed intervalsexcel_exporter.py: writes and appends to Excel filesDirectory layout:
results/,excel_results/,logs/,config.json
Optional Enhancements:
Emulated ABM5F610 device for development and testing
FTP upload functionality for sending Excel files to a remote server
Systemd service integration for automated background operation
Requirements:
Strong proficiency in Python 3.10+
Experience with TCP socket programming
Knowledge of text-based serial communication protocols
Familiarity with Excel file manipulation in Python
Ability to write clean, modular, and well-documented code
Deliverables:
Complete working system with full source code
Documentation (README or separate manual)
CLI interface for initial launch and terminal status monitoring
Example configuration and sample output files
Preferred Qualifications:
Developer located in Russia or CIS countries
Prior experience with electricity metering, telemetry, or SCADA systems
Ability to provide long-term support or future feature extensions
-
20 days3500 USD
348 3 0 20 days3500 USDHello.
Excellent, well-documented project. I fully understand the key task. My experience in embedded systems development directly relates to this project, as I am well acquainted with hardware-level work, low-level protocols (including ASCII communication), and serial interfaces. Building a meter polling system, including speed switching and working with archives, is a task I understand well.
Although Python is specified in the request, for industrial data collection, I strongly recommend a more reliable stack: a service application in C# .NET and a PostgreSQL database.
Why this is better for your project:
Industrial reliability: C#'s static typing catches errors before runtime, not during 24/7 operation. This is critical for systems that operate unattended.
…
High performance and multithreading: C# .NET is inherently designed to efficiently handle hundreds of simultaneous TCP connections without Python's limitations (GIL). The system will scale easily.
Reliable data storage: Using PostgreSQL instead of files (JSONL/Excel) ensures data integrity, simplifies the search for gaps, and opens up opportunities for analytics. Exporting to the formats you need will still be preserved.
At the same time, I am proficient in Python and ready to implement the project strictly according to your specifications if that is a fundamental requirement.
For maximum scalability: If there are plans in the future to poll thousands of devices in parallel, Rust would be the optimal solution for uncompromising performance and efficiency.
I am ready to discuss the details and choose the architecture that is optimal for you.
-
45 days3500 USD
270 7 2 45 days3500 USDGood evening Renat. I can complete your task. I have experience working in the Python environment. Message me privately for details clarification.
-
30 days2250 USD
421 30 days2250 USDHello Renat,
I am a python developer, also well versed in TCP Socket programming.
I can implement a polling system for ABM5F610 electricity meters via TCP-connected RS-485 modems, fully compliant with GOST R IEC 61107-2001 (ASCII mode).
My work, will ensure that I have delivered a reliable, efficient and secure solution.
Kindly inbox so that we can discuss further.
-
2 days25 USD
1111 7 1 2 days25 USDGood day! I have experience in developing telemetry systems for electrical equipment, including working with GOST protocols and polling via RS-485. I will create a fully functional system for polling ABM5F610 with TCP communication, implementing the GOST R IEC 61107-2001 protocol, data storage in JSONL and Excel, archival recovery, and monitoring TUI. The project will be modular with a clear directory structure as per the requirements and will support simultaneous operation with multiple terminals. I am ready to start work immediately.
-
Добрый день. Предоставленная модель счетчика не находится в поиске. На него нужна подробная документация от вас.
-
Current freelance projects in the category C & C++
Residential Proxy Infrastructure EngineerWe're building a residential proxy network from scratch — fully owned, no third-party suppliers. We need one exceptional network engineer to build the entire technical foundation. What you'll build: - Android background SDK that routes proxy traffic through user devices… C & C++, DevOps ∙ 4 days 6 hours back ∙ 13 proposals |
Improvement in the existing version of 1C retail block for the distribution center (DC)In general, I will explain what kind of database we have - There is a main server where there is a retail database (where all receipts are recorded) - a UTP database - where all sales are transferred - it calculates the markup and stock balances - small databases of retail… C & C++, C# ∙ 4 days 20 hours back ∙ 6 proposals |
About the Master Program "KONSTRUCTOR"
4182 USD
We are looking for a very experienced C++ developer to modernize existing software (master program). The program is responsible for creating derivative software representing audio-visual sessions of psychological correction. The current version is written in pure WinAPI (Visual… C & C++, Desktop Apps ∙ 9 days 23 hours back ∙ 19 proposals |
Writing code for ArduinoIt is necessary to develop software for a weight dispenser based on Arduino Uno. Components: Arduino Uno R3 HX711 + load cell LCD1602 I2C display MAX7219 LED matrix 8x32 5 control buttons 4-channel relay 2 signal lamps Coarse dosing vibrator Precise dosing vibrator Operation… C & C++, Embedded Systems & Microcontrollers ∙ 11 days 8 hours back ∙ 15 proposals |
It is necessary to complete the project or provide consultation.
23 USD
|