يوضح هذا المثال كيفية الوصول إلى بيانات Valden Heat Pump من الخادم ، Raspberry Pi ، وما إلى ذلك.
كل ما تحتاجه هو محول USB-> RS485 وتثبيت Python2.
قم بتوصيل جهاز الكمبيوتر الخاص بك بخط RS485 كما هو موضح أدناه ، وقم بتوصيل جانب آخر من الأسلاك كما هو موضح في صفحة عرض Valden وقم بتشغيل نص Python من مثال أدناه.
تذكر أن RS485 هو خط 3 أسلاك. لا تستخدم المحولات الرخيصة دون "أرض إشارة" ومع A و B. فقط ستعمل لمسافات قليلة.


# Communication example for:
# - Valden Display https://github.com/openhp/Display/
# - Valden Service Display https://github.com/openhp/ServiceDisplay/
#
# The source code licensed under GPLv3.
#
# This product is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
import serial
from time import sleep
import datetime
import string
import sys
#-------------------------------------------------------
#function to send commands and print answers
def SendCommand ( ID_to , command ):
#send command
towrite = str ( ID ) + str ( ID_to ) + command
print "> " + str ( datetime . datetime . now ())[ 0 : 19 ] + " we sent: " + towrite
try :
serial . write ( towrite )
except : #do not catch all exceptions in a real code
print "USB>Serial converter disconnected?" , sys . exc_info ()
line = None
return 0
#read result
try :
line = serial . readline () # read a 'n' terminated line
except : #do not catch all exceptions in a real code
print "USB>Serial converter disconnected?" , sys . exc_info ()
line = None
return 0
#print answer
if len ( line ) > 2 :
print "< " + str ( datetime . datetime . now ())[ 0 : 19 ] + " we got: " + line
else :
print "No answer from" , ID_to , " t t " , str ( datetime . datetime . now ())[ 0 : 19 ]
#-------------------------------------------------------
#open serial
print "Starting.."
try :
serial = serial . Serial ( '/dev/ttyUSB2' , 9600 , timeout = 3 ) #Change serial name to yours!
print "Opened: " , serial . name
except serial . serialutil . SerialException :
print "Serial open error! Change serial name to yours! (ex: /dev/ttyUSB5, or something like COM9 at win)"
exit ( 0 )
#-------------------------------------------------------
#some example values
eev_target = "02.50" #new eev temperature difference
newtemp = "31.50" #new setpoint temperature
ID = chr ( 0x30 ) #this script ID, 0x30 by default, default value supported by all Valden components so do not change it
remote_ID = chr ( 0x41 ) #Remote Display ID ( this display https://github.com/openhp/Display/ or that display https://github.com/openhp/ServiceDisplay/ )
#Remote Display ID can be changed, and yes: few devices with unique IDs can work together at the same time at same line
#-------------------------------------------------------
#example cycle, interaction with Remote Display
#commands:
#(G)et all
#new (T)emperature set (setpoint)
#new (E)EV difference set
#cycle sends 10 times (G)er all command
#then sends (T)emperature set
#then sends (E)EV difference set
#then cycle
while ( 1 == 1 ):
for i in xrange ( 10 ):
SendCommand ( remote_ID , "G" ) #sends 0AG : from ID 0 to ID A (G)et all
sleep ( 5 )
SendCommand ( remote_ID , "T" + newtemp ) #sends 0AT31.50, command format TNN.NN
sleep ( 5 )
SendCommand ( remote_ID , "E" + eev_target ) #sends 0AE02.50, command format ENN.NN
sleep ( 5 ) مثال إخراج البرنامج النصي (انقر للتكبير): 
أسماء قصيرة (مفاتيح) محددة لاتصالات JSON:
| ABBR. | الاسم الكامل |
|---|---|
| A1 | setpoint |
| E1 | رمز الخطأ |
| HPC | مضخة الحرارة متصلة (إلى الشاشة عن بُعد ، 1 = نعم ، 0 = لا) |
| W1 | واتس |
يتم سرد جميع الاختصارات ورسائل الحالة التي سترونها في الشاشة في ملحق Valden Heat Pump Controller. رموز الخطأ أيضا هناك.
ماذا بعد؟ لديك جميع المعلومات التي تحتاجها لدمجها ، على سبيل المثال ، مع مساعد المنزل أو نظام "المنزل الذكي" الآخر الذي تريده. فقط حصلت على سلاسل (هذا سهل للغاية في بيثون) وتغذية أزواج القيمة الرئيسية لنظامك المفضل.
لا أستخدم أنظمة "المنزل الذكي" ، لكني أحب الرسوم البيانية. تساعد الرسوم البيانية على تحليل ديناميات العمليات. لذلك ، لديّ برنامج نصي (نص أكثر تعقيدًا) على جانب الخادم ، يحصل على إحصائيات من جميع أجهزتي ورسم الرسوم البيانية لي.
على سبيل المثال ، الرسم البياني اليومي لأحد مضخات الحرارة الخاصة بي (انقر للتكبير): 
للحصول على الرسوم البيانية ، يمكنك استخدام شيء مثل نظام مراقبة الصبار.
وواحد آخر: يمكنك استخدام أوامر "ضبط درجة الحرارة" لتغيير درجة الحرارة تلقائيًا "نقطة setpoint" لإنشاء توازن مريح بين توفير الطاقة ودرجة حرارة المنزل. أو نظام تعتمد على درجة الحرارة المعتمد على اليوم أو المعتمد على الساعة أو شيء.
© 2015-2021 DAA جميع الحقوق محفوظة ؛ Gonzho في web.de ؛ https://github.com/openhp/hp-integration-example/.
النصوص والوسائط والمواد الأخرى المرخصة بموجب ترخيص CC-By-SA v4.0.
الإسناد: يجب أن تنسب بوضوح تكامل مضخة الحرارة Valden (https://github.com/openhp/hp-integration-example/) العمل الأصلي في أي أعمال مشتقة.
شارك ومشاركة على حد سواء: إذا قمت بإجراء تعديلات أو إضافات على المحتوى الذي تعيد استخدامه ، فيجب عليك ترخيصها بموجب ترخيص CC-BY-SA v4.0 أو أحدث.
أشر إلى التغييرات: إذا قمت بإجراء تعديلات أو إضافات ، فيجب أن تشير بطريقة معقولة إلى تعديل العمل الأصلي.
أنت حر: لمشاركة المواد وتكييفها لأي غرض ، حتى تجاريًا ، طالما تتبع شروط الترخيص.
رمز المصدر المرخص بموجب GPLV3.
يتم توزيع هذا المنتج على أمل أن يكون مفيدًا ، ولكن بدون أي ضمان ؛ بدون حتى الضمان الضمني للتسويق أو اللياقة لغرض معين. راجع رخصة GNU العامة لمزيد من التفاصيل.
بالنسبة إلى تراخيص مكتبات الطرف الثالث المستخدمة في هذا المنتج ، يرجى الرجوع إلى تلك المكتبات.