Dieses Beispiel zeigt, wie Sie auf die Valden -Wärmepumpen -Daten von Ihrem Server, Raspberry Pi usw. zugreifen können.
Alles, was Sie brauchen, ist ein USB-> RS485-Konverter und Python2 installiert.
Schließen Sie Ihren Computer wie unten abgebildet an die RS485 -Linie an, schließen Sie eine andere Seite von Draht an, wie auf der Valden Display -Seite beschrieben und führen Sie das Python -Skript aus einem Beispiel unten aus.
Denken Sie daran, RS485 ist eine 3-Draht-Linie. Verwenden Sie keine billigen Konverter ohne "Signal Ground" und mit nur A und B. arbeiten sie einige Meter Entfernungen.


# 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 ) Beispiel für das Skriptausgabe (Beispiel klicken, um zu vergrößern): 
Kurze Namen (Schlüssel) spezifisch für JSON -Kommunikation:
| Abbr. | Vollständiger Name |
|---|---|
| A1 | Sollwert |
| E1 | Fehlercode |
| HPC | Wärmepumpe angeschlossen (zur Fernanzeige, 1 = Ja, 0 = Nein) |
| W1 | Watts |
Alle Abkürzungen und Statusnachrichten, die Sie im Display angezeigt werden, sind im Anhang Valden Wärmepumpencontroller aufgeführt. Fehlercodes auch dort.
Was kommt als nächstes? Sie verfügen über alle Informationen, die Sie zum Beispiel in den Home Assistant oder ein anderes "Smart Home" -System integrieren müssen, das Ihnen gefällt. Analysieren Sie einfach Gotten-Saiten (das ist in einem Python sehr einfach) und füttern Sie Schlüsselwertpaare in Ihr Lieblingssystem.
Ich verwende keine "Smart Home" -Systeme, aber ich mag Grafiken. Diagramme helfen bei der Analyse der Prozessedynamik. Ich habe also ein Skript (viel komplizierteres Skript) auf der Serverseite, das Statistiken aus allen meinen Geräten erhalten und Diagramme für mich zeichnet.
Zum Beispiel das tägliche Diagramm für eine meiner Wärmepumpen (klicken Sie zum Vergrößern): 
Um Diagramme zu erhalten, können Sie so etwas wie das Cacti -Überwachungssystem verwenden.
Und noch eins: Sie können "Set -Temperatur" -Befehle verwenden, um die Temperatur "Sollwert" automatisch zu ändern, um ein komfortables Gleichgewicht zwischen Leistungseinsparung und Haustemperatur zu erzeugen. Oder Tagesabhängiger, stundenabhängiger oder etwas temperaturabhängiges System.
© 2015-2021 DAA Alle Rechte vorbehalten; Gonzho bei Web.de; https://github.com/openhp/hp-integration-example/.
Text, Medien und andere Materialien, die unter CC-by-SA-Lizenz v4.0 lizenziert wurden.
Attribution: Sie müssen die Integration der Valden-Wärmepumpe (https://github.com/openhp/hp-integration-example/) in allen abgeleiteten Werken eindeutig zuschreiben.
Teilen und teilen gleich: Wenn Sie Änderungen oder Ergänzungen des von Ihnen wiederverwendeten Inhalts vornehmen, müssen Sie sie unter der CC-by-SA-Lizenz v4.0 oder höher lizenzieren.
Geben Sie Änderungen an: Wenn Sie Änderungen oder Ergänzungen vornehmen, müssen Sie in einer vernünftigen Weise angeben, dass die ursprüngliche Arbeit geändert wurde.
Sie sind kostenlos: das Material für jeden Zweck zu teilen und anzupassen, sogar kommerziell, solange Sie den Lizenzbedingungen folgen.
Der unter GPLV3 lizenzierte Quellcode.
Dieses Produkt wird in der Hoffnung verteilt, dass es nützlich sein wird, jedoch ohne Garantie; Ohne die implizite Garantie für Handelsfähigkeit oder Eignung für einen bestimmten Zweck. Weitere Informationen finden Sie in der GNU General Public Lizenz.
Für Bibliothekslizenzen von Drittanbietern finden Sie in diesem Produkt bitte auf diese Bibliotheken.