hardware:channels:heating_control:uvr1611
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
hardware:channels:heating_control:uvr1611 [2016/01/19 12:40] – Kommentar geändert jau | hardware:channels:heating_control:uvr1611 [2018/03/04 12:54] – path als code jau | ||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
Die UVR1611 und ihr Nachfolger UVR16x2 sind nahezu frei programmierbare Heizkreisregler der Firma [[http:// | Die UVR1611 und ihr Nachfolger UVR16x2 sind nahezu frei programmierbare Heizkreisregler der Firma [[http:// | ||
- | Sie bietet auch diverse Systeme zur Anbindung an PC und Ethernet an. So z.B. den alten BL-Net (Bootloader) und aktuell das C.M.I. die auch Datenlogging bieten. | + | Sie bietet auch diverse Systeme zur Anbindung an PC und Ethernet an. So z.B. den alten BL-Net (Bootloader), D-Logg |
- | Speziell der BL-Net verfügt aber nur über wenig Speicherkapazität, | + | Der BL-Net |
+ | <note important> | ||
==== Sensoren auslesen ==== | ==== Sensoren auslesen ==== | ||
- | Um die Sensordaten in den Volkszähler zu übernehmen eignet sich dl-aktuelle-datenx [[https:// | + | Um die Sensordaten in den Volkszähler zu übernehmen eignet sich dl-aktuelle-datenx [[https:// |
- | Er stellt auch eine, auf dem Raspberry lauffähige Version, als [[http:// | + | Er stellt auch eine auf dem Raspberry lauffähige Version als [[http:// |
- | In einem Shellscript aufgerufen eignet sich der vzclient als Schnittstelle zur Middleware. | + | <code bash> |
- | + | # | |
- | <file># | + | # Daten aus der UVR1611 mittels dlogg und wget |
- | # / | + | # in die Datenbank |
- | # Daten aus der UVR1611 mittels dlogg und vzclient | + | # 07.12.2016 Daniel Lauckner |
- | # in die Datenbank eines Volkszaehler.org | + | # 10.08.2017 Änderung: Leere Datenrahmen verwerfen |
- | # 03.11.2015 Daniel Lauckner | + | |
# PATH fuer Cronjob setzen | # PATH fuer Cronjob setzen | ||
PATH=/ | PATH=/ | ||
- | # IP-Adresse | + | # IP-Adresse |
- | uvr_ip=192.168.1.100 | + | UVR_IP=192.168.1.100 |
# Datenrahmen der UVR (Standard=1) | # Datenrahmen der UVR (Standard=1) | ||
- | uvr_dr=1 | + | UVR_DR=1 |
+ | |||
+ | # Host des Volkszaehlers | ||
+ | HOST=localhost | ||
# UUIDs den Daten zuordnen | # UUIDs den Daten zuordnen | ||
# wenn kein Channel zugeordnet ist nach dem = einfach leer lassen | # wenn kein Channel zugeordnet ist nach dem = einfach leer lassen | ||
- | uuids[0]=12ab3456-789c-01d2-f34a-b56c78901234 # 1.Wert Aussentemperatur | + | UUIDS[0]=12ab3456-789c-01d2-f34a-b56c78901234 # 1.Wert Aussentemperatur |
- | uuids[1]= # 2.Wert | + | UUIDS[1]= # 2.Wert |
- | uuids[2]= # 3.Wert | + | UUIDS[2]= # 3.Wert |
- | uuids[3]= # 4.Wert | + | UUIDS[3]= # 4.Wert |
- | uuids[4]= # 5.Wert | + | UUIDS[4]= # 5.Wert |
- | uuids[5]= # 6.Wert | + | UUIDS[5]= # 6.Wert |
- | uuids[6]=654321ab-789c-01d2-f34a-b56c78901234 # 7.Wert Raumtemperatur | + | UUIDS[6]=654321ab-789c-01d2-f34a-b56c78901234 # 7.Wert Raumtemperatur |
- | uuids[7]= # 8.Wert | + | UUIDS[7]= # 8.Wert |
- | uuids[8]= # 9.Wert | + | UUIDS[8]= # 9.Wert |
- | uuids[9]= # 10.Wert | + | UUIDS[9]= # 10.Wert |
- | #uuids[10]= # 11.Wert | + | #UUIDS[10]= # 11.Wert |
- | #uuids[11]= # 12.Wert | + | #UUIDS[11]= # 12.Wert |
- | #uuids[12]= # 13.Wert | + | #UUIDS[12]= # 13.Wert |
- | #uuids[13]= # 14.Wert | + | #UUIDS[13]= # 14.Wert |
- | #uuids[14]= # 15.Wert | + | #UUIDS[14]= # 15.Wert |
- | #uuids[15]= # 16.Wert | + | #UUIDS[15]= # 16.Wert |
# UVR auslesen | # UVR auslesen | ||
echo "Daten aus UVR holen" | echo "Daten aus UVR holen" | ||
- | uvr_daten=($(dl-aktuelle-datenx -i "$uvr_ip" -r "$uvr_dr" --rrd | sed 's/:/ /g') ) | + | UVR_DATEN=($(dl-aktuelle-datenx -i "$UVR_IP" -r "$UVR_DR" --rrd | sed 's/:/ /g') ) |
# Timestamp | # Timestamp | ||
- | ts=$(date +%s) | + | TS=$(date +%s) |
- | ts=$(($ts*1000)) | + | TS=$(($TS*1000)) |
# VZ schreiben | # VZ schreiben | ||
- | echo "Daten an Volkszaehler uebergeben" | + | if [ -z ${UVR_DATEN[0]} ] |
- | i=0 | + | then |
- | z=${#uuids[@]} | + | # Gelegentlich erhält man von dlogg eine Antwort ohne Daten, eine solche Antwort wird verworfen |
- | while [ $i -le $z ] | + | echo " |
- | do | + | else |
- | if [ ${uuids[$i]} ] | + | echo "Daten an Volkszaehler uebergeben" |
- | then | + | I=0 |
- | # In VZ uebertragen | + | Z=${#UUIDS[@]} |
- | echo vzclient | + | while [ $I -le $Z ] |
- | | + | do |
- | fi | + | if [ ${UUIDS[$I]} ] |
- | i=$(($i+1)) | + | then |
- | done | + | # In VZ uebertragen |
- | </file> | + | echo wget -O - -q "http:// |
+ | wget | ||
+ | printf " | ||
+ | fi | ||
+ | I=$(($I+1)) | ||
+ | done | ||
+ | fi | ||
+ | </code> | ||
- | Es wird ein aktueller Datenrahmen (enstpricht allen Ein- und Ausgängen einer UVR) abgerufen. Und entsprechend der UUID in den Volkszähler übertragen. | + | Es wird ein aktueller Datenrahmen (enstpricht allen Ein- und Ausgängen einer UVR) abgerufen |
Die Kanäle sind meist vom Typ Temperatur mit Auflösung 1, die UVR kann aber auch [[http:// | Die Kanäle sind meist vom Typ Temperatur mit Auflösung 1, die UVR kann aber auch [[http:// | ||
- | Für jeden gewünschten Datenpunkt im Volkszähler wird das Script erneut aufgerufen. Beispielsweise als cronjob alle 5 Minuten. | + | Für jeden gewünschten Datenpunkt im Volkszähler wird das Script erneut aufgerufen.\\ |
+ | Beispielsweise als cronjob alle 5 Minuten. | ||
< | < | ||
hardware/channels/heating_control/uvr1611.txt · Zuletzt geändert: 2019/07/19 06:54 von thhoe