أنا استخدم الخادم كارتليكترونيك ويس منذ عدة سنوات: إنه صندوق صغير مدمج في اللوحة الكهربائية، وهو قادر على مراقبة كل استهلاك الطاقة في المنزل، سواء كانت كهرباء عبر teleinfo أو مشابك أمبير مترية، ماء، غاز، وأشياء أخرى كثيرة. خادم كامل للغاية، وهو ما يكفي في حد ذاته. لكن Home Assistant يقدم جدول طاقة مصممًا بشكل جيد للغاية، وأردت أن أكون قادرًا على دمج خادم WES في نظام التشغيل الآلي للمنزل هذا. سيساعدك هذا الدليل على فعل الشيء نفسه.

المتطلبات الأساسية
ستحتاج بالطبع إلى خادم WES فعال متصل بالشبكة، بالإضافة إلى تثبيت Home Assistant فعال.
[وحدة محتوى البيض=قالب AE__domadoofr=مخصص/مضغوط]
بادئ ذي بدء، حتى لا يتم تحميل ملف تكوين Home Assistant الخاص بي بشكل زائد، قمت بتقسيمه إلى عدة ملفات، وهو شيء تم التخطيط له أصلاً من قبل المطورين. سيكون لدينا هنا ملفين على وجه الخصوص:
- Sensors.yaml، الذي سيستضيف تكوين جميع أجهزة استشعار WES
- custom.yaml، والذي سيسمح لك بتخصيص هذه المستشعرات بحيث يتم التعرف عليها بشكل صحيح من خلال جدول الطاقة لمساعد المنزل
للقيام بذلك، ما عليك سوى إضافة هذه السطور إلى ملفات التكوين.yaml إذا لم تكن لديك بالفعل:
الاستشعار: !تشمل أجهزة الاستشعار.yaml
#تخصيص مساعد المنزل
مساعد المنزل:
تخصيص: !تشمل تخصيص.yaml
إنشاء مستشعرات خادم WES في Home Assistant
لسوء الحظ، لا يوفر خادم WES اتصال MQTT، على الرغم من الإعلان عن ذلك منذ عدة سنوات. سيء جدًا، لأنه كان سيجعل حياتنا أسهل كثيرًا. ومع ذلك، يوفر WES العديد من الملفات التي تسمح لك بقراءة المعلومات التي يجمعها. الملف الأكثر اكتمالا هو بلا شك data.cgx، وهو متاح على http://IP_DU_WES/data.cgx. هذا هو الذي سنستخدمه لتجنب التوفيق بين عدة ملفات.
فهو يجمع كل المعلومات المفيدة في هذا النموذج:

نحتاج ببساطة إلى الإعلان عن المعلومات المختلفة المطلوبة في Home Assistant.
للقيام بذلك، في ملف Sensors.yaml (الذي سيتم إنشاؤه في دليل homeassistant الخاص بك إذا لم يكن لديك بالفعل)، نحتاج إلى الإعلان عن الاتصال بخادم WES:
-المنصة: الراحة
الاسم: wesdata
#استبدل بـ IP الخاص بـ WES الخاص بك
المصدر: http://IP_DU_WES/data.cgx
مسح_الفاصل: 60
الطريقة: الحصول على
المصادقة: الأساسية
#استبدل باسم المستخدم وكلمة المرور للنظام الخاص بك
اسم المستخدم: مسؤل
كلمة المرور: ويس
json_attributes_path: "$.data"
سمات json_attributes:
- "علامة 1"
- "تيك 2"
- "تيك 3"
- "الدافع"
- "المشبك"
- "درجة حرارة"
- "التتابع"
- "مدخل"
- "التناظرية"
- "virtual_switch"
- "المتغيرات"
value_template: "موافق"
ستحتاج إلى استبدال الحقول باللون الأحمر للإشارة إلى عنوان IP الخاص بخادم WES، بالإضافة إلى اسم المستخدم وكلمة المرور إذا كنت لا تستخدم الافتراضيين. يمكنك أيضًا تغيير “scan_interval” لاستقصاء الملف بشكل متكرر أو أقل. هنا تم ضبطه لاستطلاعه كل دقيقة، وهو ما يعمل بشكل جيد لمعظم الأغراض. لا حاجة لزيادة التحميل على الخادم بالمكالمات المتكررة.
بعد ذلك يأتي الإعلان عن أجهزة الاستشعار المختلفة. لقراءة معلومات عداد الكهرباء عبر teleinfo، إذا كنت على سبيل المثال مشتركًا في أوقات الذروة/خارج أوقات الذروة:
غربي 1 حصان:
Friendly_name: "مؤشر ساعات الذروة"
Unique_id: westic1hp
فئة_الجهاز: الطاقة
وحدة_القياس: 'وات'
value_template: >-
["tic1"] {{states.sensor.wesdata.attributes| يطفو }}["H_PLEINE"]
western1hc:
Friendly_name: "مؤشر ساعات العمل خارج أوقات الذروة"
Unique_id: westic1hc
فئة_الجهاز: الطاقة
وحدة_القياس: 'وات'
value_template: >-
["tic1"] {{states.sensor.wesdata.attributes| يطفو }}["H_CREUSE"]
يمكنك تخصيص حقول “الاسم_الصديق” إذا كنت ترغب في ذلك: هذه هي الأسماء التي ستظهر في Home Assistant. لا ينبغي تغيير الباقي.
إذا كنت مثلي ولديك اشتراك Tempo، فسيكون هناك عدد قليل من أجهزة الاستشعار التي يمكنك إنشاؤها:
#إذا اشتراك تيمبو
western1bleuhp:
Friendly_name: "مؤشر ساعات الذروة الزرقاء"
Unique_id: westic1bleuhp
فئة_الجهاز: الطاقة
وحدة_القياس: 'وات'
value_template: >-
["tic1"] {{states.sensor.wesdata.attributes | يطفو }}["BBRHPJB"]
western1bleuhc:
Friendly_name: "مؤشر ساعات العمل باللون الأزرق خارج أوقات الذروة"
Unique_id: westic1bleuhc
فئة_الجهاز: الطاقة
وحدة_القياس: 'وات'
value_template: >-
["tic1"] {{states.sensor.wesdata.attributes| يطفو }}["BBRHCJB"]
western1blanchp:
Friendly_name: "مؤشر ساعات الذروة البيضاء"
Unique_id: westic1blanchp
فئة_الجهاز: الطاقة
وحدة_القياس: 'وات'
value_template: >-
["tic1"] {{states.sensor.wesdata.attributes | يطفو }}["BBRHPJW"]
western1blanchc:
Friendly_name: "مؤشر ساعات العمل البيضاء خارج أوقات الذروة"
Unique_id: westic1blanchc
فئة_الجهاز: الطاقة
وحدة_القياس: 'وات'
value_template: >-
["tic1"] {{states.sensor.wesdata.attributes| يطفو }}["BBRHCJW"]
western1rougehp:
Friendly_name: "مؤشر ساعات الذروة باللون الأحمر"
Unique_id: westic1rougehp
فئة_الجهاز: الطاقة
وحدة_القياس: 'وات'
value_template: >-
["tic1"] {{states.sensor.wesdata.attributes | يطفو }}["BBRHPJR"]
western1rougehc:
Friendly_name: "مؤشر أحمر خارج أوقات الذروة"
Unique_id: westic1rougehc
فئة_الجهاز: الطاقة
وحدة_القياس: 'وات'
value_template: >-
["tic1"] {{states.sensor.wesdata.attributes| يطفو }}["BBRHCJR"]
يمكننا أيضًا استرداد المعلومات المتعلقة بالحقن (إذا كان لديك عقد لإنتاج الطاقة)، أو الاستهلاك الفوري، أو حتى الجهد:
westic1inj:
Friendly_name: "إدخال الفهرس"
Unique_id: westic1inj
فئة_الجهاز: الطاقة
وحدة_القياس: 'وات'
value_template: >-
["tic1"] {{states.sensor.wesdata.attributes| يطفو }}["INJECTION"]
western1pap:
Friendly_name: "الاستهلاك الفوري"
Unique_id: westic1pap
فئة_الجهاز: ظاهر_الطاقة
وحدة_القياس: 'VA'
value_template: >-
["tic1"] {{states.sensor.wesdata.attributes| يطفو }}["PAP"]
الجهد الغربي:
Friendly_name: "جهد الاستهلاك"
Unique_id: westic1tension
فئة الجهاز: الطاقة
وحدة_القياس: 'V'
value_template: >-
["tic1"] {{states.sensor.wesdata.attributes| يطفو }} ["TENSION1"]
لديّ في المنزل جهاز قياس Linky ثانٍ لإعادة بيع إنتاجي من الطاقة الشمسية (عقد إعادة بيع بنسبة 100%). يتم أيضًا توصيل خادم WES بهذا المقياس، ويمكنني استرداد معلومات الإنتاج الخاصة بي هناك:
#مقياس تكنولوجيا المعلومات والاتصالات الثاني يستخدم هنا لإنتاج الطاقة الكهروضوئية
western2prod:
Friendly_name: "مؤشر الإنتاج"
Unique_id: westic2prod
فئة_الجهاز: الطاقة
وحدة_القياس: 'وات'
value_template: >-
["tic2"] {{states.sensor.wesdata.attributes| يطفو }}["PRODUCTEUR"]
western2pap:
Friendly_name: "الاستهلاك الفوري"
Unique_id: westic2pap
فئة_الجهاز: ظاهر_الطاقة
وحدة_القياس: 'VA'
value_template: >-
["tic2"] {{states.sensor.wesdata.attributes| يطفو }} ["PAP"]
الجهد الغربي:
Friendly_name: "جهد الإنتاج"
Unique_id: westic2tension
فئة الجهاز: الطاقة
وحدة_القياس: 'V'
value_template: >-
["tic2"] {{states.sensor.wesdata.attributes| يطفو }} ["TENSION1"]
أضفت مستشعرًا آخر يسمح لي بالحصول على حالة خارج ساعات الذروة: إذا كانت westic1tariff = 1، فنحن في غير ساعات الذروة. هذه بيانات مفيدة جدًا في السيناريوهات، على سبيل المثال، لتشغيل أجهزة معينة فقط عندما نكون بالمعدل الاقتصادي :)
#جهاز استشعار لتحديد ما إذا كان خارج ساعات الذروة
السعر الغربي:
Friendly_name: "السعر الحالي"
Unique_id: western1price
value_template: >-
["tic1"] {{states.sensor.wesdata.attributes}}["PTEC"]
:
Friendly_name: "ساعات خارج أوقات الذروة"
Unique_id: wesheurecreuse
value_template: >-
["tic1"] {% إذا "حفر" فيstates.sensor.wesdata.attributes.lower() %}["PTEC"]
1
{٪ آخر ٪}
0
{% نهاية %}
بالإضافة إلى قراءة Tic (teleinfo)، فإن WES قادر أيضًا على مراقبة استهلاك 4 خطوط كهربائية منفصلة، باستخدام مشابك التيار المترية. على سبيل المثال، يمكنك مراقبة استهلاك سخان المياه الخاص بك، ومحطة شحن السيارة الكهربائية، والتدفئة، وما إلى ذلك. سوف تحتاج إلى استخدام هذا الرمز:
#مشابك مترية لتتبع مواضع معينة محددة
wespence1inst:
Friendly_name: "سخان الماء الفوري"
Unique_id: wespence1inst
فئة_الجهاز: الحالي
وحدة_القياس: 'أ'
value_template: >-
["pince"] {{states.sensor.wesdata.attributes| يطفو }}["I1"]
wespence1total:
Friendly_name: "إجمالي سخان المياه"
Unique_id: wespence1total
فئة_الجهاز: الطاقة
وحدة_القياس: "كيلوواط ساعة"
value_template: >-
["pince"] {{states.sensor.wesdata.attributes| يطفو }}["INDEX1"]
ويسبينس1وات:
Friendly_name: "استهلاك سخان المياه"
Unique_id: wespence1watt
فئة الجهاز: الطاقة
وحدة_القياس: 'W'
value_template: >-
افتراضيًا، يقوم WES فقط بالإبلاغ عن الاستهلاك الفوري بالأمبير ومؤشر الاستهلاك. وبما أنني أردت أيضًا الحصول على الاستهلاك الفوري بالواط، فقد أضفت عملية حسابية صغيرة للحصول على “wespence1watt”. يمكنك تعديل “الاسم المألوف” لاستخدام اسم يتوافق مع استخدامك. إذا كنت تستخدم الكماشات الأربع الممكنة، فما عليك سوى نسخ هذا الرمز (سأقدمه لك بالكامل في الملف لتنزيله لاحقًا).
يحتوي خادم WES أيضًا على عدادات النبض، والتي يمكن استخدامها لأشياء مختلفة، مثل مراقبة استهلاك المياه أو الغاز على سبيل المثال. في المنزل، يتم استخدام المستشعر الأول لتتبع بياناتي عداد المياه:
#أجهزة استشعار النبض، تستخدم على سبيل المثال للمياه أو الغاز
wespulse1:
Friendly_name: "عداد المياه"
Unique_id: wespulse1
فئة_الجهاز: ماء
وحدة_القياس: 'L'
value_template: >-
["impulsion"] {{states.sensor.wesdata.attributes| يطفو }} ["INDEX1"]
اعتمادًا على استخدامك، ستحتاج إلى تخصيص الاسم، ولكن أيضًا “فئة_الجهاز” و”وحدة_القياس”. سوف تجد تعريفا ل قيم محتملة مختلفة هنا.
ويمكن استرجاع معلومات أخرى، اعتمادًا على ما هو متصل بشبكة WES. على وجه الخصوص، هناك قراءة لدرجة الحرارة (ما يصل إلى 30 مسبارًا!) عبر هذا الرمز:
#مجسات درجة الحرارة ممكن تصل إلى 30
ويسوندي1:
Friendly_name: "غرفة المعيشة"
Unique_id: wessonde1
فئة_الجهاز: درجة الحرارة
وحدة_القياس: 'درجة مئوية'
value_template: >-
["temp"] {{states.sensor.wesdata.attributes| يطفو }} ["SONDE1"]
أو حالة المرحلات:
#تتابع
ويرسلاي 1:
Friendly_name: "التتابع 1"
Unique_id: wesrelai1
value_template: >-
["relais"] {{states.sensor.wesdata.attributes| يطفو }} ["RELAIS1"]
ويرسلاي2:
Friendly_name: "التتابع 2"
Unique_id: wesrelai2
value_template: >-
["relais"] {{states.sensor.wesdata.attributes| يطفو }} ["RELAIS2"]
لدينا أيضًا مدخلات تناظرية، ومفاتيح افتراضية، وحتى متغيرات.
ستجد الكود الكامل في هذا الملف، مع المسافة البادئة الصحيحة، والتعليقات لمساعدتك في العثور على طريقك.
ليتم تعديلها وفقا لاحتياجاتك، بطبيعة الحال. من جهتي، أستخدم فقط مقياسي TIC، ومشابك 4 أمبير مترية، ومقياس النبض.
بمجرد حفظ التكوين الخاص بك، ستحتاج إلى الانتقال إلى “أدوات التطوير”، ثم النقر فوق “التحقق من التكوين” للتأكد من عدم وجود مشاكل في بناء جملة الملف.

إذا كان كل شيء على ما يرام، كل ما عليك فعله هو النقر فوق إعادة التشغيل.
بمجرد إعادة تشغيل Home Assistant، إذا انتقلت إلى الإعدادات / الأجهزة والخدمات / الكيانات، وكتابة “wes” في شريط البحث، فيجب أن تجد جميع المستشعرات التي تم إنشاؤها لـ WES:

ومن هناك، يمكنك استخدامها لتشغيل السيناريوهات، وإنشاء لوحات معلومات لمراقبة الاستهلاك، وما إلى ذلك.
ولكن لا تستخدمها بعد في لوحة معلومات Home Assistant Energy.
قم بدمج WES في جدول الطاقة لمساعد المنزل
لقد تم تصميم لوحة معلومات Home Assistant Energy بشكل جيد للغاية. ولكنها تقبل فقط الفهارس أو عدادات الاستهلاك الإجمالي. يمكننا القول أن هذا أمر جيد بالنسبة لـ WES، لأننا أنشأنا أجهزة استشعار للمؤشرات. باستثناء أنه لكي تظهر في قائمة الأجهزة المتوافقة على لوحة معلومات الطاقة، يجب أن تحتوي هذه المستشعرات على وسيطة من النوع “state_class: Total”. إذا كان من الممكن وضع هذه الوسيطة مباشرة في تكوين أجهزة استشعار MQTT، فهذا ليس هو الحال بالنسبة لأجهزة الاستشعار التي تم إنشاؤها هنا لـ WES، لأننا في سياق مكالمات REST وليس MQTT.
لحسن الحظ، يمكننا تعديل إعلان المستشعر في ملف custom.yaml، عن طريق إضافة هذا النوع من التعليمات البرمجية لكل مستشعر يمثل الاستهلاك الإجمالي:
الاستشعار.westic1bleuhp:
فئة_الحالة: الإجمالي
جهاز:
المعرفات: "خادم WES"
الاسم: "خادم WES"
الموديل: "ويس"
الشركة المصنعة: "كارتليكترونيك"
أترك لكم ملفي كاملا هنا:
ما عليك سوى وضعه في دليل homeassistant، ثم إعادة تشغيل Home Assistant مرة أخرى (بعد التحقق من صحة الرمز).
يمكننا بعد ذلك أخيرًا إضافة فهارسنا المختلفة إلى لوحة معلومات الطاقة، سواء بالنسبة للمعلومات الهاتفية أو الاستهلاك أو الإنتاج أو استهلاك المياه، وما إلى ذلك.

بعد فترة من الوقت، أصبح لدينا مراقبة الاستهلاك، مع تفاصيل هنا عن ساعات الذروة وساعات خارج الذروة (باللون الأزرق الفاتح). أراقب أيضًا إنتاجي من الخلايا الكهروضوئية باللون الأصفر:

بنفس الطريقة أجد مراقبة استهلاك سخان المياه الخاص بي، من بين الأجهزة الفردية الأخرى:

وهنا لديك!
خاتمة
أثناء ترحيل نظام التشغيل الآلي للمنزل الخاص بي تدريجيًا إلى Home Assistant، قضيت الكثير من الوقت في البحث عن كيفية دمج خادم WES الخاص بي، لأنه على عكس Jeedom، لا يحتوي على مكون إضافي لـ Home Assistant جاهز للاستخدام. تتناوله موضوعات مختلفة، منها:
- أ نشر في منتدى الشركة المصنعة WES، كارتليكترونيك
- أ نشر في منتدى HACF
تتيح لك وثائق Home Assistant أيضًا فهم كيفية عمل الأجهزة بشكل أفضل. أجهزة استشعار الراحة.
كان من شأن توافق MQTT الأصلي أن يجعل الأمور أسهل كثيرًا، لكننا تمكنا في النهاية من استعادة جميع البيانات من WES، والتي يمكن استخدامها بشكل مثالي في Home Assistant، وهذا هو الشيء الرئيسي. لقد كان التكامل يعمل بالنسبة لي منذ أكثر من شهر بقليل، ولا توجد مشكلات يجب الإبلاغ عنها. يمكنني استخدام WES الخاص بي، مما يوفر عليّ الاضطرار إلى مضاعفة أجهزة الاستشعار، لأنه يدير الكثير من الأشياء محليًا. إذا كان هذا الدليل يمكن أن يساعد بعض الذين مثلي كانوا يبحثون عن كيفية القيام بذلك!
[وحدة محتوى البيض=قالب AE__domadoofr=مخصص/مضغوط]