هذه المكتبة ليست تابعة أو مرتبطة أو مرخصة أو معتمدة أو مرتبطة رسميًا بأي شكل من الأشكال بشركة SMA Solar Technology AG أو أي من الشركات التابعة لها أو الشركات التابعة لها.
SMA-Speedwire عبارة عن واجهة برمجة تطبيقات للتواصل مع منتجات SMA عبر Ethernet باستخدام واجهة speedwire.
فهو يسمح بالاستماع إلى البيانات المتبادلة بين أجهزتك وتسجيل قراءات العدادات.
يمكن العثور على المستندات الفنية التي تغطي Speedwire ضمن:
SMA مقياس الطاقة
صني هوم مانجر (2.0)
...
إنني أتطلع إلى تنفيذ المزيد من المنتجات، ولكني بحاجة لمساعدتكم في هذا الأمر!
ساهم في تنفيذ Telegram لجهازك عن طريق فتح طلب سحب أو ساعد في عملية التطوير من خلال مشاركة لقطات الحزم. افتح مشكلة بجهازك للبدء.
يستخدم Speedwire UDP كبروتوكول نقل لإرسال الحزم إلى مجموعات البث المتعدد.
لذلك، ستحتاج إلى التأكد من تمكين إعادة توجيه البث المتعدد لأجهزة التوجيه بين الجهاز الذي تريد الاتصال به وجهازك.
ومن المعروف أيضًا أن بعض المحولات الرخيصة تسبب مشكلات في البث المتعدد (مثل حظر مجموعات عشوائية أو عدم السماح بذلك على الإطلاق)، لذا تأكد من أن أجهزتك تدعمها.
أنصحك أولاً باختبار إنشاء اتصال باستخدام نموذج DeviceDiscovery.
قراءة البيانات الواردة من SMA Energy Meter / SMA Sunny Home Manager:
Speedwire speedwire = new Speedwire ();
speedwire . onError ( Exception :: printStackTrace );
speedwire . onTimeout (() -> System . err . println ( "speedwire timeout" ));
speedwire . onData ( data -> {
if ( data instanceof EnergyMeterTelegram ) {
EnergyMeterTelegram em = ( EnergyMeterTelegram ) data ;
//device information
int SUSyID = em . getSUSyID ();
long SerNo = em . getSerNo (). longValueExact ();
String ip = em . getOrigin (). getHostAddress ();
System . out . printf ( "Device %d %d on port %s%n" , SUSyID , SerNo , ip );
//current power draw (in W)
Quantity < Power > w = em . getData ( EnergyMeterChannels . TOTAL_P_IN ). to ( Units . WATT );
System . out . printf ( "Ingress Power: %s%n" , w );
//energy meter total power reading (in kWh)
Quantity < Energy > powerReading = em . getData ( EnergyMeterChannels . TOTAL_P_IN_SUM )
. to ( MetricPrefix . KILO ( Units . WATT ). multiply ( Units . HOUR ). asType ( Energy . class ));
System . out . printf ( "Total power reading: %s%n" , powerReading );
}
});
speedwire . start ();
لمزيد من المعلومات، اقرأ javadoc الموثق جيدًا أو قم بإلقاء نظرة على العينات.
هذه المكتبة متاحة على maven Central، فقط أضف ما يلي إلى تبعياتك:
< dependency >
< groupId >io.github.joblo2213</ groupId >
< artifactId >sma.speedwire</ artifactId >
< version >1.0.2</ version >
</ dependency >
تم استخدام هذه المكتبات مفتوحة المصدر لإنشاء واجهة برمجة التطبيقات هذه: