محطات الطاقة الافتراضية
نصيحة
يعتمد بروتوكول VPP على بروتوكول Live MQTT. يُرجى الرجوع إلى هذه الصفحة قبل متابعة هذا البروتوكول. راجع التحكم في Live MQTT.
نصيحة
يجب أن يتم الإعداد الأولي لـ VPP بواسطة SmartgridOne. يُرجى التواصل مع SmartgridOne قبل اتباع الخطوات التالية.
الاتصال بوسيط MQTT
قبل المتابعة، تأكد من أن شبكتك وأجهزتك جاهزة من خلال اتباع دليل إعداد MQTT.
وظائف VPP
تم تصميم VPP لاستقبال قيمة ضبط/استراتيجية واحدة لكل مجموعة أجهزة (مثل الطاقة الشمسية والتخزين)، وتجميع قيمة الضبط بين وحدات التحكم المتصلة بـ VPP.
بينما يرسل بروتوكول Live MQTT أمرًا إلى وحدة تحكم واحدة، يتيح VPP للمستخدم إرسال أمر واحد إلى مجموعة من وحدات التحكم.

إضافة وحدات تحكم إلى VPP




عند إضافة إشارة MQTT الخاصة بـ SmartgridOne، يظهر حقل VPP ID. أدخل معرّف VPP الذي تلقيته هنا.


خوارزمية التجميع
تُجمَّع قيمة الضبط استنادًا إلى سعة الأجهزة التابعة لوحدات التحكم الفردية.
مواضيع MQTT
بمجرد اكتمال الإعداد الأولي، سيتم توفير معرّف VPP واسم مستخدم MQTT (وكلمة المرور).
الموضوع الوارد
الموضوع: standard1/outbound/remoteVppMetrics/command/{MQTT Username}/{VPP ID}
الموضوع (مهمل): vpp/{MQTT Username}/{VPP ID}
يستخدم المستخدم هذا الموضوع لإرسال أمر مُجمَّع إلى VPP.
VPP المباشر
المحتوى:
{
"msg_id": <Incremental message id>(int),
"vpp_id": <VPP ID>(str)
"time": "<Unix Timestamp>(int)",
"fields": {
"<Component Policy>": "<Policy Type>",
"<Component Power Setpoint>": <Setpoint in watts>
}
}يمكن العثور على سياسات المكونات وقيم الضبط هنا: مكونات وسياسات MQTT
VPP المجدول
المحتوى:
{
"msg_id": <Incremental message id>(int),
"vpp_id": <VPP ID>(str)
"time": "<Unix Timestamp>(int)",
"message_type": "<Type of message>(str)",
"fields": {
"<Component Policy>": "<Policy Type>",
"<Component Power Setpoint>": <Setpoint in watts>
}
}يمكن العثور على سياسات المكونات وقيم الضبط هنا: مكونات وسياسات MQTT
موضوع الإقرار
الموضوع: standard1/outbound/remoteVppMetrics/acknowledgement/{MQTT Username}/{VPP ID}
الموضوع (مهمل): vpp/{MQTT Username}/{VPP ID}/acknowledgement
بعد إرسال أمر، سيرد VPP بإقرار يوضح ما إذا تم استلام الأمر بنجاح أم لا.
المحتوى:
{
"payload": {
"fields": {
"responseCode": <Success/Failure Code>(int),
"ack": <Acknowledgement Message>(str)
},
"target": <VPP ID>(str)
},
"message_type": <Type of Message>(str)
}موضوع الملاحظات
الموضوع: standard1/outbound/remoteVppMetrics/feedback/{MQTT Username}/{VPP ID}
الموضوع (مهمل): vpp/{MQTT Username}/{VPP ID}/feedback
يحتوي موضوع الملاحظات على الملاحظات التي تُرجعها وحدات التحكم الفردية.
المحتوى:
{
"payload": {
"updated_on": <Unix Timestamp of the data>(str)
"feedback_dict": {
<Feedback Dict>(dict)
},
"target": <Site Node ID>(str)
},
"message_type": <Type of Message>(str)
}يمكن العثور على بنية قاموس الملاحظات هنا: بنية حمولة ملاحظات MQTT
موضوع الملاحظات المجمَّعة
الموضوع: standard1/outbound/remoteVppMetrics/aggregatedFeedback/{MQTT Username}/{VPP ID}
الموضوع (مهمل): vpp/{MQTT Username}/{VPP ID}/aggregated_feedback
يُجمّع VPP الملاحظات التي تتلقاها كل وحدة تحكم فردية.
المحتوى:
{
"payload": {
"updated_on": <Unix Timestamp of the data>(str)
"feedback_dict": {
<Aggregated Feedback Dict>(dict)
},
},
"message_type": <Type of Message>(str)
}تتماثل بنية قاموس الملاحظات المجمَّعة مع بنية حمولة ملاحظات MQTT. ومع ذلك، لا يمكن تجميع القيم النصية، مثل الاستراتيجيات المنفذة، ولذلك لا يتم تضمينها.
موضوع الأوامر المُرسلة
الموضوع: standard1/outbound/remoteVppMetrics/dispatched/{MQTT Username}/{VPP ID}
الموضوع (مهمل): vpp/{MQTT Username}/{VPP ID}/dispatched_commands
عندما يرسل VPP الأوامر إلى وحدات التحكم، يتم الإبلاغ عن ذلك باستخدام هذا الموضوع.
المحتوى:
{
"payload": {
"aggregated": {
<Component Name>(str): <CommandPower Value>(float)...
},
"dispatched_commands": [
<List of individual commands sent to the controllers>
],
},
"message_type": <Type of Message>(str)
}يمكن العثور على بنية حمولة الأوامر الفردية المُرسلة هنا: بنية حمولة ملاحظات MQTT.
موضوع التحذيرات
الموضوع: standard1/outbound/remoteVppMetrics/warning/{MQTT Username}/{VPP ID}
الموضوع (مهمل): vpp/{MQTT Username}/{VPP ID}/warning
إذا حدث خطأ أو تحذير في VPP، فسيتم إرسال رسالة عبر موضوع MQTT هذا.
المحتوى:
{
"payload": {
"fields": {
<Field Dictionary>(dict)
},
"target": <VPP ID>(str)
},
"message_type": <Type of Message>(str)
}