В этом примере показано, как получить доступ к данным теплового насоса Valden с вашего сервера, Raspberry Pi и так далее.
Все, что вам нужно,-это конвертер USB-> RS485 и установлен Python2.
Подключите свой компьютер к линии RS485, как показано ниже, подключите другую сторону провода, как описано на странице дисплея Valden, и запустите скрипт Python из примера ниже.
Помните, RS485-3-проводная линия. Не используйте дешевые преобразователи без «земли сигнала», и только с и 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:
| Аббр | Полное имя |
|---|---|
| А1 | Уставная точка |
| E1 | Код ошибки |
| HPC | Тепловой насос подключен (для удаленного дисплея, 1 = да, 0 = нет) |
| W1 | Уэтт |
Все сокращения и сообщения о состоянии, которые вы увидите на дисплее, перечислены в Приложении контроллера теплового насоса Valden. Коды ошибок также там.
Что дальше? У вас есть вся информация, необходимая для интеграции, например, с домашним помощником или другой системой «умного дома», который вам нравится. Просто Parse получил струны (это очень легко в питоне) и подайте пары клавишных клавиш в вашу любимую систему.
Я не использую системы «умного дома», но мне нравятся графики. Графики помогают анализировать процессы динамики. Итак, у меня есть скрипт (гораздо более сложный сценарий) на стороне сервера, который получает статистику от всех моих устройств и рисует для меня графики.
Например, ежедневный график для одного из моих тепловых насосов (нажмите, чтобы увеличить): 
Чтобы получить графики, вы можете использовать что -то вроде системы мониторинга кактусов.
И еще один: вы можете использовать команды «Установить температуру» для автоматического изменения «установленной» температуры, чтобы создать удобный баланс между экономией питания и температурой дома. Или в зависимости от дня, зависимая от часа или что-то-эльсе-зависимая температурная система.
© 2015-2021 DAA Все права защищены; Гончхо в 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 для получения более подробной информации.
Для лицензий сторонних библиотек, используемых в этом продукте, обратитесь к этим библиотекам.