Mein vcontrol läuft nun auch relativ stabil (1 neustart alle 4-5 Tage) mit kurzen Abfrageintervallen (1min).
Nun wollte ich mich an die Steuerung des Heizstabes und WWSoll Temperatur geben.
Das Aktiveren des Heizstsabes klappt wunderbar, jedoch kann ich die WWSoll Temperatur nicht ändern.
Ich habe es mit einigen Variante versucht hier mal zwei:
setTempWWsoll 55
setTempWWsoll 55.000000
Es kommt der Fehler:
Vctrld send ERROR: ERR: >FRAMER: ERROR address 6000 code 33Error in recv, terminatingError executing setTempWWsoll 55
Der Fehler wird per Putty und Vissmann-Adapter geworden.
Hier meine vito.xml:
<?xml version="1.0"?>
<vito>
<devices>
<device ID="204D" name="V200WO1C" protocol="P300"/>
</devices>
<commands>
...
<command name="setTempWWsoll" protocmd="setaddrValue">
<addr>6000</addr>
<len>2</len>
<unit>UT</unit>
<description>Setze Warmwassersolltemperatur</description>
</command>
...
und meine vcontrol.xml:
<?xml version="1.0"?>
<V-Control xmlns:vcontrol="http://www.openv.de/vcontrol">
<unix>
<config>
<username>nobody</username>
<groupname>dialout</groupname>
<serial>
<tty>/dev/ttyUSB0</tty>
</serial>
<net>
<port>3002</port>
</net>
<logging>
<file>/var/log/vcontrold.log</file>
<syslog>n</syslog>
<debug>n</debug>
</logging>
<device ID="204D"/>
</config>
</unix>
<units>
<unit name="Temperatur">
<abbrev>UT</abbrev>
<calc get="V/10" set="V*10"/>
<type>short</type>
<entity>°C</entity>
</unit>
<unit name="Temperatur100">
<abbrev>UTH</abbrev>
<calc get="V/100" set="V*100"/>
<type>short</type>
<entity>°C</entity>
</unit>
<unit name="Neigung">
<abbrev>UN</abbrev>
<calc get="V/10" set="V*10"/>
<type>short</type>
<entity/>
</unit>
<unit name="Temperatur 1Byte">
<abbrev>UT1</abbrev>
<calc get="V/2" set="V*2"/>
<type>char</type>
<entity>°C</entity>
</unit>
<unit name="Temperatur 1Byte unsigned">
<abbrev>UT1U</abbrev>
<calc get="V/2" set="V*2"/>
<type>uchar</type>
<entity>°C</entity>
</unit>
<unit name="Temperatur 1Byte ganzzahlig">
<abbrev>UTI</abbrev>
<calc get="V" set="V"/>
<type>uchar</type>
<entity>°C</entity>
</unit>
<unit name="Einstellwert">
<abbrev>XX</abbrev>
<calc get="V" set="V"/>
<type>uchar</type>
<entity/>
</unit>
<unit name="Counter">
<abbrev>CO</abbrev>
<calc get="V" set="V"/>
<type>int</type>
<entity/>
</unit>
<unit name="JAZ">
<abbrev>JAZ</abbrev>
<calc get="V/10" set="V/10"/>
<type>int</type>
<entity/>
</unit>
<unit name="Volumenstrom">
<abbrev>VS</abbrev>
<calc get="V" set="V"/>
<type>ushort</type>
<entity>l/h</entity>
</unit>
<unit name="Counter liter">
<abbrev>COL</abbrev>
<calc get="V/1000" set="V*1000"/>
<type>int</type>
<entity/>
</unit>
<unit name="Prozent">
<abbrev>PR</abbrev>
<calc get="V/2" set="V*2"/>
<type>short</type>
<entity>%</entity>
</unit>
<unit name="Prozent 1 Byte ganzzahlig">
<abbrev>PR1</abbrev>
<calc get="V" set="V"/>
<type>uchar</type>
<entity>%</entity>
</unit>
<unit name="Prozent zweites Byte ganzzahlig (Pumpe)">
<abbrev>PR2</abbrev>
<calc get="B1" set="B1"/>
<type>uchar</type>
<entity>%</entity>
</unit>
<unit name="Prozent erstes Byte">
<abbrev>PR3</abbrev>
<calc get="V/2" set="V*2"/>
<type>uchar</type>
<entity>%</entity>
</unit>
<unit name="CounterS">
<abbrev>CS</abbrev>
<calc get="V/3600" set="V*3600"/>
<type>uint</type>
<entity>Stunden</entity>
</unit>
<unit name="CycleTime">
<abbrev>CT</abbrev>
<type>cycletime</type>
</unit>
<unit name="ReturnStatus">
<abbrev>RT</abbrev>
<type>enum</type>
<enum bytes="00" text="0"/>
<enum bytes="01" text="1"/>
<enum bytes="02" text="EIN"/>
<enum text="NOT OK"/>
</unit>
<unit name="WWBereitung">
<abbrev>WW</abbrev>
<type>enum</type>
<enum bytes="00" text="0"/>
<enum bytes="02" text="1"/>
<enum text="UNKNOWN"/>
</unit>
<unit name="BetriebsArt">
<abbrev>BA</abbrev>
<type>enum</type>
<enum bytes="00" text="0"/>
<enum bytes="01" text="0"/>
<enum bytes="02" text="2"/>
<enum bytes="42" text="3"/>
<enum bytes="82" text="4"/>
<enum text="UNKNOWN"/>
</unit>
<unit name="SetReturnStatus">
<abbrev>SR</abbrev>
<type>enum</type>
<enum bytes="00" text="OK"/>
<enum bytes="05" text="SYNC (NOT OK)"/>
<enum text="NOT OK"/>
</unit>
<unit name="Druck">
<abbrev>PS</abbrev>
<calc get="V/10" set="V*10"/>
<type>short</type>
<entity>Bar</entity>
</unit>
<unit name="SystemTime">
<abbrev>TI</abbrev>
<type>systime</type>
</unit>
<unit name="Plain">
<abbrev>PL</abbrev>
<calc get="V" set="V"/>
<type>short</type>
</unit>
<unit name="ErrorState">
<abbrev>ES</abbrev>
<type>errstate</type>
<enum bytes="00" text="Regelbetrieb (kein Fehler)"/>
<enum bytes="0F" text="Wartung (fuer Reset Codieradresse 24 auf 0 stellen)"/>
<enum bytes="10" text="Kurzschluss Aussentemperatursensor"/>
<enum bytes="18" text="Unterbrechung Aussentemperatursensor"/>
<enum bytes="20" text="Kurzschluss Vorlauftemperatursensor"/>
<enum bytes="21" text="Kurzschluss Ruecklauftemperatursensor"/>
<enum bytes="28" text="Unterbrechung Aussentemperatursensor"/>
<enum bytes="29" text="Unterbrechung Ruecklauftemperatursensor"/>
<enum bytes="30" text="Kurzschluss Kesseltemperatursensor"/>
<enum bytes="38" text="Unterbrechung Kesseltemperatursensor"/>
<enum bytes="40" text="Kurzschluss Vorlauftemperatursensor M2"/>
<enum bytes="42" text="Unterbrechung Vorlauftemperatursensor M2"/>
<enum bytes="50" text="Kurzschluss Speichertemperatursensor"/>
<enum bytes="58" text="Unterbrechung Speichertemperatursensor"/>
<enum bytes="A7" text="Bedienteil defekt"/>
<enum bytes="B0" text="Kurzschluss Abgastemperatursensor"/>
<enum bytes="B1" text="Kommunikationsfehler Bedieneinheit"/>
<enum bytes="B4" text="Interner Fehler (Elektronik)"/>
<enum bytes="B5" text="Interner Fehler (Elektronik)"/>
<enum bytes="B6" text="Ungueltige Hardwarekennung (Elektronik)"/>
<enum bytes="B7" text="Interner Fehler (Kesselkodierstecker)"/>
<enum bytes="B8" text="Unterbrechung Abgastemperatursensor"/>
<enum bytes="B9" text="Interner Fehler (Dateneingabe wiederholen)"/>
<enum bytes="BA" text="Kommunikationsfehler Erweiterungssatz fuer Mischerkreis M2"/>
<enum bytes="BC" text="Kommunikationsfehler Fernbedienung Vitorol, Heizkreis M1"/>
<enum bytes="BD" text="Kommunikationsfehler Fernbedienung Vitorol, Heizkreis M2"/>
<enum bytes="BE" text="Falsche Codierung Fernbedienung Vitorol"/>
<enum bytes="C1" text="Externe Sicherheitseinrichtung (Kessel kuehlt aus)"/>
<enum bytes="C2" text="Kommunikationsfehler Solarregelung"/>
<enum bytes="C5" text="Kommunikationsfehler drehzahlgeregelte Heizkreispumpe, Heizkreis M1"/>
<enum bytes="C6" text="Kommunikationsfehler drehzahlgeregelte Heizkreispumpe, Heizkreis M2"/>
<enum bytes="C7" text="Falsche Codierung der Heizkreispumpe"/>
<enum bytes="C9" text="Stoermeldeeingang am Schaltmodul-V aktiv"/>
<enum bytes="CD" text="Kommunikationsfehler Vitocom 100 (KM-BUS)"/>
<enum bytes="CE" text="Kommunikationsfehler Schaltmodul-V"/>
<enum bytes="CF" text="Kommunikationsfehler LON Modul"/>
<enum bytes="D4" text="Sicherheitstemperaturbegrenzer hat ausgeloest oder Stoermeldemodul nicht richtig gesteckt"/>
<enum bytes="DA" text="Kurzschluss Raumtemperatursensor, Heizkreis M1"/>
<enum bytes="DB" text="Kurzschluss Raumtemperatursensor, Heizkreis M2"/>
<enum bytes="DD" text="Unterbrechung Raumtemperatursensor, Heizkreis M1"/>
<enum bytes="DE" text="Unterbrechung Raumtemperatursensor, Heizkreis M2"/>
<enum bytes="E4" text="Fehler Versorgungsspannung"/>
<enum bytes="F0" text="Interner Fehler (Regelung tauschen)"/>
<enum bytes="F2" text="Temperaturbegrenzer ausgeloest"/>
<enum bytes="F7" text="Differenzdrucksensor defekt"/>
<enum bytes="FE" text="Starkes Stoerfeld (EMV) in der Naehe oder Elektronik defekt"/>
<enum bytes="FF" text="Starkes Stoerfeld (EMV) in der Naehe oder interner Fehler"/>
<enum text="UNKNOWN"/>
</unit>
<unit name="DeviceType">
<abbrev>DT</abbrev>
<type>enum</type>
<enum bytes="20 4D" text="V200WO1C ID=204D Protokoll:300"/>
<enum text="UNKNOWN"/>
</unit>
<unit name="Sachnummer">
<abbrev>SN</abbrev>
<type>uint</type>
<icalc get="((((((((((((B0-48)*10)+(B1-48))*10)+(B2-48))*10)+(B3-48))*10)+(B4-48))*10)+(B5-48))*10)+B6-48"/>
</unit>
<unit name="Bitstatus">
<abbrev>BST</abbrev>
<type>uchar</type>
<icalc get="(B0 & (0x01<<BP))>> BP"/>
<enum bytes="00" text="0"/>
<enum bytes="01" text="1"/>
<enum text="UNKNOWN"/>
</unit>
<unit name="HKP Pumpentyp">
<abbrev>HKT</abbrev>
<type>uchar</type>
<icalc get="(B0 & (0x01<<BP))>> BP"/>
<enum bytes="00" text="stufig"/>
<enum bytes="01" text="drehzahlgeregelt"/>
<enum text="UNKNOWN"/>
</unit>
<unit name="Bitstatus_Boolean">
<abbrev>BST2</abbrev>
<type>enum</type>
<enum bytes="00" text="0"/>
<enum bytes="01" text="1"/>
<enum bytes="02" text="NV"/>
<enum text="UNKNOWN"/>
</unit>
<unit name="Umschaltventil Stellung">
<abbrev>USV</abbrev>
<type>enum</type>
<enum bytes="00" text="UNDEV"/>
<enum bytes="01" text="Heizen"/>
<enum bytes="02" text="Mittelstellung"/>
<enum bytes="03" text="Warmwasser"/>
<enum text="UNKNOWN"/>
</unit>
<unit name="Ferienbetrieb">
<abbrev>BFB</abbrev>
<type>uchar</type>
<icalc get="(B7 & (0x01<<BP))>> BP"/>
<enum bytes="00" text="inaktiv"/>
<enum bytes="01" text="aktiv"/>
<enum text="?"/>
</unit>
</units>
<protocols>
<protocol name="P300">
<pid>41</pid>
<macros>
<macro name="GETADDR">
<command>SEND 00 01</command>
</macro>
</macros>
<commands>
<command name="getaddr">
<send>GETADDR $addr $hexlen;RECV $len $unit</send>
</command>
<command name="setaddr">
<send>SEND 00 02 $addr $hexlen BYTES;RECV 1 SR</send>
</command>
<command name="setaddrValue">
<send>SEND 00 02 $addr $hexlen;SEND BYTES $unit;RECV 1 SR</send>
</command>
<command name="setfunc">
<send>SEND 00 07 $addr 02 02;SEND BYTES $unit;RECV $len</send>
</command>
</commands>
</protocol>
</protocols>
<extern xmlns:xi="http://www.w3.org/2003/XInclude">
<xi:include href="vito.xml" parse="xml"/>
</extern>
</V-Control>
Wie steuert ihr die WWSoll Temperatur?