الخطوة 1: يقرأ Telegraf عبر Modbus TCP
يحتوي Telegraf على ملحق إدخال Modbus. وتنشئ لكل عداد كتلة بعنوان جهازه. يقرأ المثال المسحوب والمغذّى لعداد كهرباء بعنوان الجهاز 9:
[[inputs.modbus]]
name = "m_center"
controller = "tcp://192.168.1.50:502"
slave_id = 9
timeout = "5s"
interval = "15m"
holding_registers = [
{ name = "import_total", byte_order = "ABCD", data_type = "FLOAT32-IEEE", scale = 1.0, address = [999, 1000] },
{ name = "export_total", byte_order = "ABCD", data_type = "FLOAT32-IEEE", scale = 1.0, address = [1149, 1150] },
]
[inputs.modbus.tags]
meter = "apartment_1"
يعدّ Telegraf العناوين ابتداءً من 0، والدليل ابتداءً من 1: فيصبح السجل 1000 هو 999. ويتوافق ترتيب البايت ABCD مع big endian مع الكلمة العليا أولًا، كما يسلّمه M-Center. وتتغيّر صيغة الخيارات بين إصدارات Telegraf؛ وتسري وثائق الملحق لإصدارك.
البديل: يقرأ Telegraf عبر MQTT
مع ترخيص MQTT يشترك Telegraf في مواضيع M-Center بالملحق inputs.mqtt_consumer:
<prefix>/emu/mcenter/<MAC>/meterreading/+/byobis/#
يُضبط كيفية تقييم Telegraf للرسائل بـ data_format. لذلك اطّلع أولًا على محتوى الرسائل بعميل MQTT.
الخطوة 2: InfluxDB وGrafana
- في Telegraf اضبط الإخراج إلى InfluxDB (
outputs.influxdb_v2مع URL وtoken وorganisation وbucket). - في Grafana أضف InfluxDB كمصدر بيانات.
- أنشئ لوحة واستعلم عن القراءة. وللاستهلاك اليومي أو الشهري خذ الفرق في قراءة العداد عبر النافذة الزمنية.
قراءات العدادات ترتفع فقط. لذلك يكون المخطط العمودي للاستهلاك اليومي عادةً أكثر دلالة من منحنى قراءة العداد.