تعمل هذه المكتبة فقط مع إصدار Firmare 1.7.14 أو أقل.
في إصدارات البرامج الثابتة الأحدث، قامت Eon بتعطيل واجهة برمجة التطبيقات المحلية وجعلت هذه المكتبة قديمة، وذلك بفضل Eon! ؟
اقرأ المزيد في العدد رقم 1
أهلا ومرحبا! انقر فوق الزر أدناه إذا كنت تستمتع بهذه المكتبة وترغب في دعم عملي. هل تعلم أنك تستهلك الكثير من القهوة كمطور برامج؟
وغني عن القول أن هذا أمر طوعي تماما.
مكتبة بسيطة لواجهة برمجة تطبيقات E.ON Elna المدمجة مكتوبة بلغة Python 3. Elna عبارة عن جهاز ذكي لقياس الطاقة يتم توصيله بمنفذ HAN (شبكة المنطقة المنزلية) الخاص بعداد الكهرباء باستخدام موصل RJ12.
تستخدم هذه المكتبة واجهة برمجة التطبيقات المدمجة داخل جهاز Elna لجمع المعلومات حول استهلاك الطاقة و/أو الإنتاج مباشرة من الجهاز نفسه.
يعتمد Elna على أجهزة من Net2Grid لذا فمن المحتمل أيضًا أن يكون متوافقًا مع المزيد من الأجهزة من عائلة Net2Grid. أي ردود فعل هي موضع ترحيب.
فيما يلي تطبيق تجريبي صغير لسطر الأوامر يوضح المعلومات التي يمكن الحصول عليها من الجهاز.
تحقق من الكود المصدري للعرض التوضيحي هنا: Smartmeter-demo.py.
هذا تطبيق تجريبي أكثر واقعية ويشبه كثيرًا تطبيق CLI المعروف. سوف يتحقق من استهلاك الطاقة اللحظي (mpc) ويخرجه إلى وحدة التحكم. بمجرد الضغط على CTRL+C، يظهر الحد الأدنى المحسوب والحد الأقصى ومتوسط استهلاك الطاقة بالإضافة إلى وقت الرحلة ذهابًا وإيابًا للحزم المرسلة إلى Elna والمزيد.
الكود المصدري متاح هنا: powerping-demo.py.
إعداد البيئة الافتراضية:
virtualenv venv
source venv/bin/activate
قم بتثبيت أحدث إصدار باستخدام pip
:
pip install elnasmartmeter
لتتمكن من استخدام المكتبة، عليك معرفة عنوان IP الخاص بجهاز Elna. يمكنك العثور عليه في خادم DHCP لجهاز التوجيه الخاص بك (أو في أي مكان تقوم فيه بتشغيل خادم DHCP الخاص بك). تتم طباعة عنوان MAC الخاص بـ Elna على الجزء الخلفي من الجهاز.
from elna import smartmeter
# Connect the library to the Elna device
meter = smartmeter . Connect ( '192.168.0.10' )
# Get general information
info = meter . get_info ()
# Get power readings
electricity = meter . get_electricity ()
# Get WLAN information
wlan = meter . get_wlan_info ()
الأمر بهذه البساطة لجلب استهلاك/إنتاج الطاقة لأسرتك. بعد قليل سننظر في كيفية الوصول إلى المعلومات عبر كائنات info
electricity
.
جميع الطرق القابلة للاستدعاء من المكتبة ستطرح استثناءات عند الفشل. يمكن العثور على قائمة كاملة بالاستثناءات هنا.
from elna import smartmeter
from elna . exceptions import *
...
try :
info = meter . get_info ()
except NewConnectionError as e :
print ( e )
يمكن إخراج الكائنات التي تمثل كيانات مختلفة في المكتبة باستخدام طريقة print()
لسهولة فحص خصائصها.
على سبيل المثال، يمكنك إخراج خصائص كائن Information
عن طريق تمريره إلى الأسلوب print()
:
print ( info )
# Output: <class 'elna.classes.Information'>: {'id': '01ab:0200:00cd:03ef', 'manufacturer': 'NET2GRID', 'model': 'SBWF4602', 'firmware': '1.7.14', 'hardware': 1, 'batch': 'HMX-P0D-123456'}
وينطبق الشيء نفسه على جميع الفئات الموجودة في المكتبة: Information
Electricity
Power
ومعلومات WLANInformation
.
هناك نوعان من البيانات التي يمكن جلبها باستخدام هذه المكتبة: Information
الجهاز العامة وإحصائيات Power
.
للحصول على معلومات الجهاز العامة، نقوم فقط باستدعاء طريقة get_info()
.
info = meter . get_info ()
الوصول إلى القيم عبر خصائص الفصل:
info . id # Returns the device ID : '01ab:0200:00cd:03ef' (for example).
info . manufacturer # Returns the manufacturer : 'NET2GRID'
info . model # Returns the model : 'SBWF4602'
info . firmware # Returns the firmware version : '1.7.14'
info . hardware # Returns the hardware version : 1
info . batch # Returns the batch number : 'HMX-P0D-123456'
للحصول على قراءات الطاقة نسمي طريقة get_electricity()
. تعتبر هذه القراءات أكثر تعقيدًا بعض الشيء نظرًا لأن المعلومات المجمعة من جهاز Elna مقسمة إلى فئات فرعية، ولكنها ليست بهذا التعقيد:
electricity = meter . get_electricity ()
احصل على استهلاك الطاقة الحالي :
electricity . now . key # Returns the string : 'now'
electricity . now . value # Returns the power : 453 (for example).
electricity . now . unit # Returns the unit : 'W' (as in Watt)
electricity . now . timestamp # Returns a timestamp : '2022-12-24 13:37:00'
احصل على الحد الأدنى من استهلاك الطاقة في الفترة:
electricity . minimum . key # Returns the string : 'minimum'
electricity . minimum . value # Returns the power : 202 (for example).
electricity . minimum . unit # Returns the unit : 'W' (as in Watt)
electricity . minimum . timestamp # Returns a timestamp : '2022-12-13 13:37:00'
احصل على الحد الأقصى لاستهلاك الطاقة في الفترة:
electricity . maximum . key # Returns the string : 'maximum'
electricity . maximum . value # Returns the power : 14320 (for example).
electricity . maximum . unit # Returns the unit : 'W' (as in Watt)
electricity . maximum . timestamp # Returns a timestamp : '2022-12-31 13:37:00'
الإطار الزمني (الفترة) التي تم تسجيل القيم الدنيا والقصوى لها غير معروف (بالنسبة لي).
احصل على الطاقة المستوردة . سيكون هذا إجمالي الطاقة القادمة إلى المنزل:
electricity . imported . key # Returns the string : 'imported'
electricity . imported . value # Returns the power : 12345678 (for example).
electricity . imported . unit # Returns the unit : 'Wh' (as in Watt hours)
electricity . imported . timestamp # Returns a timestamp : '2022-12-31 13:37:00'
احصل على الطاقة المصدرة . سيكون هذا إجمالي الطاقة الخارجة من المنزل:
electricity . exported . key # Returns the string : 'exported'
electricity . exported . value # Returns the power : 87654321 (for example).
electricity . exported . unit # Returns the unit : 'Wh' (as in Watt hours)
electricity . exported . timestamp # Returns a timestamp : '2022-12-31 13:37:00'
تحقق من العرض التوضيحي لجهاز Smartmeter في الأعلى لتجربته.
يمكننا أيضًا الحصول على معلومات شبكة WLAN الخاصة بالجهاز عن طريق استدعاء طريقة get_wlan_info()
. يمكن للجهاز أن يعمل كعميل لاسلكي (محطة) ونقطة وصول (AP) اعتمادًا على ما إذا كان متصلاً بشبكة WiFi أم لا.
wlan = meter . get_wlan_info ()
قم بالوصول إلى معلومات شبكة WLAN عبر خصائص فئة الكائن:
wlan . mode # Returns the current WLAN mode
wlan . ap_ssid # Returns the Access Point SSID
wlan . ap_key # Returns the Access Point Password
wlan . client_ssid # Returns the SSID of the AP Elna is connected to
wlan . join_status # Returns the number of clients joined to the Elna AP
wlan . mac # Returns the MAC address currently in use
wlan . ip # Returns the IP address
wlan . subnet # Returns the Subnet mask
wlan . gateway # Returns the Default gateway
wlan . dns # Returns the Primary DNS server
wlan . dnsalt # Returns the Secondary DNS server
wlan . n2g_id # Returns the Net2Grid ID number
wlan . sta_mac # Returns the MAC address of the WLAN Station
wlan . ap_mac # Returns the MAC address of the Access Point
wlan . eth_mac # Returns the Ethernet MAC address (?)
ملاحظة: الأوصاف التالية لخصائص شبكة WLAN المذكورة أعلاه هي تخمينات تقديرية.
أسماء المنتجات والعلامات التجارية والعلامات التجارية المسجلة في هذا المستودع، هي ملك لأصحابها، ويستخدمها المؤلف لأغراض التعريف فقط. استخدام هذه الأسماء والعلامات التجارية والعلامات التجارية، لا يعني المصادقة أو الانتماء.