Viessmann Heizungssteuerung mit vcontrold

Begonnen von dougie, 24 März 2013, 11:16:26

Vorheriges Thema - Nächstes Thema

dougie


...ich stell mich leider noch zu doof an:

cat /home/pi/vcontrold/aussentmp.tmp \
| grep "" \
| sed 's/[\t]/ /g' \
| sed 's/,/ /g' \
| sed 's/ \+/ /g' \
| sed '$!d' \
| sed 's/ Grad Celsius//g'\
| sed "s/^/$date Aussentemp: /" >> $log

tail -1 /home/pi/vcontrold/aussentmp.tmp  \
| grep "" \
| sed 's/ Grad Celsius//g' >> %tmp
/usr/bin/fhem.pl 7072 "set vc_Aussentemp %tmp"


wenn ich das so mache, steht anschliessend in vc_Aussentemp in fhem "%tmp"

Wie geht es richtig?? In %tmp sollte eigentlich so was wie "7.700000" stehen.

VG
Ralf

Billy

Das stimmt auch nicht so!
In meinem Link siehe auch den Beitrag von Fladdy! --> Hochkomma. ... .Hochkomma (Punkte nicht vergessenj.

ZitatDas liegt daran, dass Variablen nur in "" und nicht in '' Zeichenketten substituiert werden. Lösung: Konkatenation.
Versuch mal:
Code: [alles markieren] [anzeigen/verstecken]
system('/opt/fhem/fhem.pl 7072 "set T2 '.$tt1.'"');
wenn $TT1 den gewünschtern Wert enthält.

Erst dann lief es bei mir!
Gruss Billy
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

dougie

Das hatte ich gesehen, Billy! Dank auch dafür!

Aber wenn ich es richtig sehe, ist das bei dir ein Perl-Skript, wohingegen das bei mir ein Shell-Skript ist.

Ich bekomme es nicht hin, das Ergebnis der String Operation mit grep und sed in eine Variable zu packen.
Da kommen bei mir wieder die fehlenden Grundlagen zum Vorschein. :-)

VG
Ralf

Edit: ich hab's ... aber bitte schlagt mich nicht :-)

cat /home/pi/vcontrold/aussentmp.tmp \
| grep "" \
| sed 's/[\t]/ /g' \
| sed 's/,/ /g' \
| sed 's/ \+/ /g' \
| sed '$!d' \
| sed 's/ Grad Celsius//g'\
| sed "s/^/$date Aussentemp: /" >> $log

tail -1 /home/pi/vcontrold/aussentmp.tmp  \
| grep "" \
| sed 's/ Grad Celsius//g' > $tmpstr
TVAL=`cat $tmpstr`
rm $tmpstr
fhemstr="set vc_Aussentemp "$TVAL
/usr/bin/fhem.pl 7072 "$fhemstr"

Billy

Gratuliere, man darf nie aufgeben!

Billy
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

tobi73

Hallo zusammen,

toll, dass auch andere hier mit Vcontrold an FHEM arbeiten. Eine ganz ähnliche Konfiguration habe ich auch. Vcontrold läuft auf einem RPi, FHEM allerdings separat auf einer Synology NAS.
Das System arbeitet bei mir  momentan nur lesend, genau wie hier beschrieben. Der Vcontrol-Client wird vom FHEM Server per cron alle 5 Minuten aufgerufen und schreibt die Messwerte in ein Logfile, dass als fakelog in FHEM eingebunden und über Fileplot dargestellt ist.

Schreibend wollte ich auf die Vito eigentlich nicht zugreifen, die Regelung der Heizung ist recht ausgereift, da möchte ich nicht mutwillig eingreifen und hab auch ein wenig Bammel, irgendeine Einstellung zu zerschießen oder versehentlich zu verändern.

Allerdings habe ich momentan zwei etwas nervige Probleme damit:

1)Der RPi stürzt unregelmäßig ab (manchmal läuft er in paar Tage durch,  manchmal mehrere Abstürze am Tag). Recherchen haben ergeben, dass das FTDI Kernelmodul, mit dem der Vcontrol Adapter angesprochen wird (ich verwende die Eigenbauvariante) Probleme machen kann und zu solchen Abstürzen führt. Habe darauf einiges ausprobiert (Netzteil getauscht, Geschwindigkeit auf USB1.1 reduziert, Kernelupdate etc.) - > Keine Besserung. Ich meine hier gelesen zu haben, dass es das Problem auch gibt, wenn ein CUL Stick am RPi betrieben wird? Momentan arbeite ich mit dem HW Watchdog des RPi, der die Kiste automatisch rebootet, wenn die Prozessorlast zu hoch wird. Aber das ist mMn nur ein Workaround.

2)Manchmal (20-50mal bei insgesamt 2880 ausgelesenen Werten pro Tag) gibt es Lesefehler. Offensichtlich wird das erste von der Steuerung gesendete Byte ,,überlesen" (oder gar nicht gesendet???) und dafür ein Byte mehr (nämlich die erste wieder zyklisch von der Steuerung gesendete 05) von vcontrold als Datenbyte interpretiert. Das führt zu falschen Daten oder Timeout-Fehler, je nach Einstellung der Timeout-Dauer. Eine Diskussion dazu gibt es auch schon im vopen-wiki, allerdings keine Lösung...  
Am Adapter mit Logicanalyzer oder Oszi zu messen wäre sicher eine Möglichkeit das Problem einzugrenzen , aber dazu fehlt mir die Mess-HW und leider auch etwas die Zeit. Also lebe ich momentan mal mit den ca. 1-2% fehlenden Messwerten pro Tag.

Meine einfache Frage, ohne hier zu sehr off-topic zu werden: Habt Ihr ähnliche Probleme beobachtet und / oder gelöst?
Würde mich um Erfahrungsaustausch hierüber freuen ...

Gruß Tobias

dougie



Hi Tobias,

ich kann von mir aus sagen, das meine RPis mit dem Kernelupdate sehr sehr stabil laufen.
In meiner Garage ist ein RPi mit FTDI USB/Seriell/1Wire Interface, und der läuft jetzt seit bestimmt drei Wochen durch.
Gleiches gilt für den RPi mit der Ersatz-fhem Installation: läuft problemlos!

Allerdings hab ich meine RPis nicht übertaktet und verwende Class 6 SD Karten.

Hoffe das hilft.

VG
Ralf

dougie


Ich muss sagen, das ich vom RPi immer mehr begeistert bin. Zusammen mit den Möglichkeiten von Linux, fhem und vcontrold ist das eine wirklich super Sache.
Wenn ich dazu komme, probiere ich morgen mal die Heizung aktiv zu steuern.

Anbei mal der Verlauf von Kessel und Warmwassertemperatur. Endlich weiss ich, was die Heizung so treibt.


(siehe Anhang / see attachement)

dougie

....wenn ich jetzt noch meine Skripte und 99_My_Utils aufhübsche, bin ich fertig.

Ich kann also für meine Steuerung Erfolg melden!

Viessmann Vitotronic V200 KW2
ID 2098
ExtID 0002
Protocol KW2

Ich kann mit RPi, dem Optolink Interface und vcontrold sowohl Daten abfragen, als auch einige schreiben.

Realisiert habe ich derzeit aber nur Abfrage von Betriebsart sowie Kessel- und Warmwasser- Soll- und Isttemperatur.
Der einzige Wert, den ich via Optolink schreibe ist die Betriebsart.

Ich kann also via fhem der Heizung im Keller sagen ob ich Heizen&Warmwasser, nur Warmwasser, oder Abschalten möchte (Die Modi heissen H+WW, WW und ABSCHALT).

Problem bislang: die Heizung läuft mehr oder minder 24h durch und hält immer die vorgegebene Kesseltemperatur, auch wenn die gar nicht benötigt wird.
Einen Raumthermostaten hat meine Heizung nicht, also war meine einzige Möglichkeit bislang, die Zikulationspumpe via 1-Wire Switch und Relais zwangs-abzuschalten. Dennoch verteilte sich die Kesseltemperatur via natürlicher Konvektion im Haus, und die Heizung sprang ca. ein mal pro Stunde an, um den Kessel wieder aufzuheizen. Hat mir nicht gefallen.

Meine Lösung ist leider etwas kompliziert geraten, da der benötigte vclient meines wissens nach nicht auf der FB läuft. Meine fhem Hauptinstallation liegt aber auf der FB. Doof.

Also übergebe ich von fhem auf der FB den Soll-Betriebszustand der Heizung an die fhem Reserve-Installation auf dem RPi. Diese kommuniziert mittels vclient mit einem weiteren RPi im Keller an der Heizung, auf dem vcontrold läuft und an dem das USB Optolink Interface hängt.

Klingt kompliziert? Was einfacheres ist mir nicht eingefallen. :-)

Sieht dann in der Auswirkung so aus: (alles Werte, wie sie aus der Vitotronic ausgelesen werden).


(siehe Anhang / see attachement)


(https://lh4.googleusercontent.com/-xwj8X8ta_6U/UVxINj9FDeI/AAAAAAAAW1A/3ickjJIRz6o/s800/DSC_6499.JPG)

(https://lh5.googleusercontent.com/-sg8NrtN86Io/UVxIOY8DMKI/AAAAAAAAW1I/R6h7VMAVVr8/s800/DSC_6500.JPG)

(https://lh6.googleusercontent.com/-ezL1Z05Gkp0/UVxIPMIxMKI/AAAAAAAAW1Q/3rRUeV1MTws/s800/DSC_6501.JPG)

(https://lh5.googleusercontent.com/-Xw5EHIRbbyw/UVxIP1zRw0I/AAAAAAAAW1Y/H9sDN4TExBg/s800/DSC_6502.JPG)




om

Hallo

habe den gleichen optolinkadapter wie du
eine Viessmann V200/KW1 ID 2094 (ging zum auslesen mit Windows sofort)

Mein Problem ist

- habe auch RPI
- habe probleme mit der Installation von vcontrold auf RPI (mache es exakt wie anleiten von openv)
- im letzten Schritt klappt es nicht und ich kann Dateien nicht installieren
- in welches Verzeichnis müssen dann eigentlich die xml-Dateien ?

Vielleicht kannst Du mir ja helfen

Gruß
FHEM 5.8 Odroid C2 : Homematic, FS20, Harmony, Alexa (alexa-fhem) IT, Max, LaCrosse, Hue, Sonos, ha-bridge, CO2, FRM, HMS, VCONTROL, 1-wire, FB7490

PeMue

Hallo om,

habe gerade ein änliches Problem. Nach dem Compilieren stehen die Binaries
 vclient im Verzeichnis /usr/local/bin und
 vcontrold steht im Verzeichnis /usr/local/sbin
zur Verfügung. Du kannst eine aktuelle vcontrold.xml bzw. vito.xml von hier herunterladen. vcontrold erwartet diese Daten im Verzeichnis /etc/vcontrold, d.h. Verzeichns /etc/vcontrold erstellen und die beiden Daten hineinkopieren. Je nach Inhalt der vcontrold.xml wird die Logdatei in /tmp/vcontrold.log gespeichert, kann aber per Aufruf-Parameter überschrieben werden.
Bei mir passt das ja soweit, allerdings kommt beim Starten folgender Fehler:
  bind auf port 3002 gescheitert (in use/ close wait)
Ich habe schon verschiedene Möglichkeiten durchprobiert.
Anbei ein Auszug meiner vcontrold.xml:
<serial>
  <tty>/dev/ttyUSB0</tty>
</serial>
<net>
  <port>3002</port>
  <allow ip='127.0.0.1'/>
  <allow ip='192.168.178.24/24'/>
</net>

wobei die IP Adresse der meines Raspberry Pis ist.
Hat jemand eine Idee, was falsch sein könnte?

Danke und Gruß

PeMue

RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

tobi73

Hi!

Hm, hab vcontrold auch af einem pi laufen.
Die Meldung klingt irgendwie so, als ob der Port schon verwendet wird.

Ich begeb mich jetzt mal auf für mich unsicheres Terrain, aber hast du mal mit
netstat -tulpen
ausgelesen, ob Port 3002 von einem andreen Prozess geöffnet ist? Wenn ja, mal den Port geändert?

Gruß Tobi

PeMue

Hallo zusammen,

manchmal wirkt ein Reboot Wunder! Wenn man die ganze Zeit den vcontrold aufgerufen hat, muss die Kiste ja außer tritt kommen. Es tut jetzt mit Port 3002.

Danke Tobi.

Gruß PeMue

PS:
netstat -a | grep LISTEN
habe ich von google erhalten, geht in dieselbe Richtung.
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

tobi73

Hi PeMue,
jaja, wie schon in den frühen 80ern: reboot tut gut ;-)
Freut mich, dass es klappt.

@om, vielleicht kann ich Dir helfen.
Was klappt denn genau nicht? Wenn ich richtig verstehe kannst Du auf dem pi kompilieren, nur das make install klappt nicht, richtig?
Wenn das so ist, such doch mal die binaries (sollten im Quellverzeichnis liegen und vcondrod bzw vcontrold-arm heissen). Genau kann ich es nicht sagen da ich meine Installation auf dem PC crosskompiliert habe.

Diese binaries per chmod ausführbar machen und einfach ohne Parameter starten. Geht das? Läuft dann der daemon-Prozess und kannst Du dann per telnet auf den Port 3002 zugreifen?

Gruß
Tobi

PeMue

Hallo dougie,

dank Deiner Vorarbeit habe ich Dein getheizung.sh mittels cron job am Laufen.
Ich habe noch die Pfade für die temporären Dateien als Variable eingeführt.

Könntest Du mal bei Gelegenheit Deine 99_My_Utils posten? Wenn Du erlaubst, würde ich die Auswertung für fhem gerne übernehmen ...

Was ich noch nicht so ganz kapiert habe, sind die Installationspfade. Ich habe fhem 5.4 als Debian package installiert und das installiert sich in /opt/fhem. Daher habe ich den Rest auch da installiert, damit ich beim Sichern der Daten nur ein Verzeichnis packen muss.

Anbei meine geänderte Version (die ich aber für meine Zwecke noch "aufbohren" werde, Ziel ist den Ölverbrauch zu loggen).

@Tobi: Man merkt, dass die Leute morgen frei haben, es ist viel los hier ;-)

Danke + Gruß

PeMue

PS: Langsam muss ich mal meine Signatur ändern. Aber das mach ich, wenn der komplette Raspberry Pi im Gehäuse eingebaut ist. Außerdem gehört der Optolink Adapter eigentlich meinem Schornsteinfeger, nur der hat keine Zeit, diesen abzuholen ;-)
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

om

Hallo

danke für Eure Antworten
Nachdem ich lange nichts gehört hatte, habe ich x-mal versucht vcontrold zu installieren.
Da es nie klappte, habe ich mein RPI Backup-Image aufgespielt und danach hat es bei der ersten Installation funktioniert.

Aktueller Stand:
vcontrold geht
vclient geht
ich habe Viessmann V200KW1 = ID 2094
ich habe mir die beiden xml Dateien von openv geholt und bei der vito xml
alle ID=2053 in ID=2094 geändert
Die Dateien habe im mit WinSCP in das RPI Verzeichnis kopiert
Mein Problem aktuell ist, dass vcontrol immer folgenden Fehler hat :

pi@raspberrypi ~ $ vclient -h 127.0.0.1:3002 -c getTempA -v
[28754] Wed May  1 09:23:02 2013 : ClI Net: verbunden 127.0.0.1:3002 (FD:3)
[28754] Wed May  1 09:23:02 2013 : Verbindung zu 127.0.0.1:3002 Port 3002 aufgebaut
[28754] Wed May  1 09:23:02 2013 : recv:
[28754] Wed May  1 09:23:02 2013 : SEND:getTempA
[28754] Wed May  1 09:23:07 2013 : recv:ERR: read timeout
Fehler wait, Abbruch
Fehler beim ausfuehren von getTempA

[28754] Wed May  1 09:23:07 2013 : RECV:ERR: read timeout
Fehler wait, Abbruch
Fehler beim ausfuehren von getTempA
SRV ERR: read timeout
Fehler wait, Abbruch
Fehler beim ausfuehren von getTempA
[28754] Wed May  1 09:23:07 2013 : recv:
getTempA:
server error

vcontrold hat folgende Outputs:
vctrld>getTempA
DEBUG:Wed May  1 09:49:33 2013 : Befehl: getTempA
DEBUG:Wed May  1 09:49:33 2013 : konfiguriere serielle Schnittstelle /dev/ttyUSB0
DEBUG:Wed May  1 09:49:33 2013 : Process 3043 tries to aquire lock
DEBUG:Wed May  1 09:49:33 2013 : Process 3043 got lock
DEBUG:Wed May  1 09:49:33 2013 : >SEND: 04
DEBUG:Wed May  1 09:49:33 2013 : Warte auf 05
DEBUG:Wed May  1 09:49:38 2013 : read timeout
DEBUG:Wed May  1 09:49:38 2013 : Fehler wait, Abbruch
DEBUG:Wed May  1 09:49:38 2013 : Process 3043 released lock
DEBUG:Wed May  1 09:49:38 2013 : Fehler beim ausfuehren von getTempA
ERR: read timeout
Fehler wait, Abbruch
Fehler beim ausfuehren von getTempA
vctrld>
Hat jemand eine Idee, was ich ändern muß ?
Danke im voraus
Oliver


 
FHEM 5.8 Odroid C2 : Homematic, FS20, Harmony, Alexa (alexa-fhem) IT, Max, LaCrosse, Hue, Sonos, ha-bridge, CO2, FRM, HMS, VCONTROL, 1-wire, FB7490