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

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




عند إضافة إشارة Sofar MQTT، يظهر حقل standard1/outbound/remoteVppMetrics/warning/{MQTT Username}/{VPP ID}. أدخل هنا معرف VPP المستلم.


خوارزمية التجميع
يتم تجميع إعداد النقطة بناءً على سعة الأجهزة التي تقع ضمن المتحكمات الفردية.
مواضيع MQTT
بمجرد اكتمال الإعداد الأولي، سيتم تقديم معرف VPP و اسم مستخدم MQTT (وكلمة المرور).
الموضوع الوارد
الموضوع: vpp/{MQTT Username}/{VPP ID}/warning
الموضوع (متروك): vpp/{MQTT Username}/{VPP ID}
يستخدم المستخدم هذا الموضوع لإرسال أمر مجمّع إلى VPP.
Live 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 Components and Policies
Scheduled 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 Components and Policies
موضوع الإقرار
الموضوع: standard1/outbound/remoteVppMetrics/warning/{MQTT Username}/{VPP ID}
الموضوع (متروك): vpp/{MQTT Username}/{VPP ID}/warning
بعد إرسال الأمر، سيرد 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/warning/{MQTT Username}/{VPP ID}
الموضوع (متروك): vpp/{MQTT Username}/{VPP ID}/warning
يحتوي موضوع الرد على الملاحظات التي أرجعها المتحكمات الفردية.
المحتوى:
{
"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 Feedback Payload Structure
موضوع الرد المجمع
الموضوع: standard1/outbound/remoteVppMetrics/warning/{MQTT Username}/{VPP ID}
الموضوع (متروك): vpp/{MQTT Username}/{VPP ID}/warning
يقوم VPP بتجميع الردود التي يستقبلها من كل متحكم فردي.
المحتوى:
{
"payload": {
"updated_on": <Unix Timestamp of the data>(str)
"feedback_dict": {
<Aggregated Feedback Dict>(dict)
},
},
"message_type": <Type of Message>(str)
}هيكل قاموس الرد المجمع مماثل لـ MQTT Feedback Payload Structure. ومع ذلك، القيم النصية مثل الاستراتيجيات المنفذة، لا يمكن تجميعها، ولذلك غير مضمنة.
موضوع الأوامر المرسلة
الموضوع: standard1/outbound/remoteVppMetrics/warning/{MQTT Username}/{VPP ID}
الموضوع (متروك): vpp/{MQTT Username}/{VPP ID}/warning
عندما يتم إرسال أوامر إلى المتحكمات بواسطة 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 Feedback Payload Structure.
موضوع التحذير
الموضوع: 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)
}