Neues Modul eingecheckt: 89_VCLIENT.pm

Begonnen von andies, 23 Dezember 2018, 13:50:59

Vorheriges Thema - Nächstes Thema

khk123

Hab vcontrol auf eine Raspi Zero W laufen und frage über den VCLIENT Werte ab. Dabei fällt mir auf, dass es immer ein Wert gibt bei dem Fehler kommen. Es tauchen nach dem Neuladen der vclient.cfg ein fehlerhafter Wert auf, der dann auch regelmäßig falsch ankommt. Direkt auf dem PZero kommt eine korrekte Antwort für diesen Abfragewert. Gibt es evtl.  ein Timingproblem beim Abfragen über VCLIENT?

Noch eine Frage: Warum taucht im Log "try to execute set command AZ_Vitronic ?" auf. Ich habe keine Set-Commands aktiviert.

FHEM ist auf dem aktuellen Stand und "89_VCLIENT.pm 18441 2019-01-28 16:21:00Z andies" ist aktuell.

Log-Auszug

2019.01.30 17:28:27 5: AZ_Vitronic: vcontrold opened
2019.01.30 17:28:27 5: AZ_Vitronic: Requesting getTempWWist now
2019.01.30 17:28:29 1: DEBUG>AZ_Vitronic: buf ERR: Ergebnis falsch, Abbruch
Fehler beim ausfuehren von getTempWWist

2019.01.30 17:28:29 3: AZ_Vitronic: Received AZ_Vitronic: Unkown buffer format for Temp_Warmwasser_ist
2019.01.30 17:28:31 5: AZ_Vitronic: Requesting getTempKist now
2019.01.30 17:28:32 3: AZ_Vitronic: Received 49.0 for Temp_Kessel_ist
2019.01.30 17:28:32 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.30 17:28:33 5: AZ_Vitronic: Requesting getTempKsoll now
2019.01.30 17:28:35 3: AZ_Vitronic: Received -0.1 for Temp_Kessel_soll
2019.01.30 17:28:35 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.30 17:28:36 5: AZ_Vitronic: Requesting getTempA now
2019.01.30 17:28:38 3: AZ_Vitronic: Received 3.6 for Aussentemperatur
2019.01.30 17:28:38 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.30 17:28:39 5: AZ_Vitronic: Requesting getBrennerStarts now
2019.01.30 17:28:41 3: AZ_Vitronic: Received 20004 for Brennerstarts
2019.01.30 17:28:41 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.30 17:28:44 5: AZ_Vitronic: Closing vcontrold connection
2019.01.30 17:28:44 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?


Meine vclient.cfg

##### VCLIENT-Konfigurationsdatei #########

# Werte zyklisch
getTempKsoll            Temp_Kessel_soll 
getTempA                 Aussentemperatur
getTempKist             Temp_Kessel_ist_0
getTempKist             Temp_Kessel_ist
getTempWWist            Temp_Warmwasser_ist
#getTempVListM2         Temp_VorlaufM2_ist       
getBrennerStarts        Brennerstarts
getBrennerStarts        Brennerstarts_bis_gestern daily
getBrennerStunden1      Brennerstunden            daily

# Soll-Werte
getTempKsoll           Temp_Kessel_soll          daily   
getTempRaumNorSollM1   Temp_Haus_soll            daily
getTempRaumRedSollM1   Temp_Haus_Reduz_soll      daily
#getTempRaumNorSollM2  Temp_Raum soll_M2         daily
#getTempRaumRedSollM2  Temp_Raum_Reduz_soll_M2   daily
getTempPartyM1         Temp_Party_soll           daily
getTempPartyM2         Temp_Party_Reduz_soll     daily
getTempWWsoll          Temp_Warmwasser_soll      daily

# Timer-Werte
getTimerM1Mo           Heizung1_1Montag          manually
getTimerM1Di           Heizung1_2Dienstag        manually
getTimerM1Mi           Heizung1_3MIttwoch        manually
getTimerM1Do           Heizung1_4Donnerstag      manually
getTimerM1Fr           Heizung1_5Freitag         manually
getTimerM1Sa           Heizung1_6Samstag         manually
getTimerM1So           Heizung1_7Sonntag         manually
getTimerM2Mo           Heizung2_1Montag          manually
getTimerM2Di           Heizung2_2Dienstag        manually
getTimerM2Mi           Heizung2_3Mittwoch        manually
getTimerM2Do           Heizung2_4Donnerstag      manually
getTimerM2Fr           Heizung2_5Freitag         manually
getTimerM2Sa           Heizung2_6Samstag         manually
getTimerM2So           Heizung2_7Sonntag         manually
getTimerWWMo           Warmwasser_1Montag        manually
getTimerWWDi           Warmwasser_2Dienstag      manually
getTimerWWMi           Warmwasser_3Mittwoch      manually
getTimerWWDo           Warmwasser_4Donnerstag    manually
getTimerWWFr           Warmwasser_5Freitag       manually
getTimerWWSa           Warmwasser_6Samstag       manually
getTimerWWSo           Warmwasser_7Sonntag       manually

# Betriebs-Parameter
getSystemTime          Systemzeit_Heizung       manually
getBetriebArtM1        Betriebsart_Haus         manually
getBetriebSparM1       Betriebsart_SparM1       manually
getBetriebSparM2       Betriebsart_SparM2       manually
getBetriebPartyM1      Betriebsart_PartyM1      manually
getBetriebPartyM2      Betriebsart_PartyM2      manually
getPumpeStatusM1       Status_Pumpe_Haus        manually


#setBetriebArtM1       Betriebsart_Haus         NORM,RED,WW,H+WW,ABSCHALT
#setBetriebArtM2       Betriebsart_Haus         NORM,RED,WW,H+WW,ABSCHALT
#setBetriebSparM1      Betriebsart_SparM1       0,1
#setBetriebSparM2      Betriebsart_SparM2       0,1
#setBetriebPartyM1     Betriebsart_PartyM1      0,1

#setTempRaumNorSollM1  Temp_Haus_soll           22,21,20,19,12,8
#setTempRaumRedSollM1  Temp_Haus_Reduz_soll     22,21,20,19,12,8
#setTempRaumNorSollM2  Temp_Raum_soll_M2        22,21,20,19,12,8
#setTempRaumRedSollM2  Temp_Raum_Reduz_soll_M2  22,21,20,19,12,8
#setTempWWsoll         Temp_Warmwasser_soll     50,60,15


...und die VCLIENT Definition

Internals:
   .prompt    /vctrld>$/
   DEF        192.168.1.25 3002 vclient.cfg 900
   FILE       vclient.cfg
   FUUID      5c4f25c2-f33f-2526-b510-c43f832d3b22eb18
   INTERVAL   900
   IP         192.168.1.25
   NAME       AZ_Vitronic
   NR         409
   PORT       3002
   STATE      disconnected
   TYPE       VCLIENT

Attributes:
   DbLogInclude .*
   group      Heizung
   internal_update_interval 1.5
   room       Heizung
   timeout    15
   verbose    5


FHEM6.2, RasPi4, RasPi Zero W,
CUL V3, HM, ZWave, IT, vcontrol, owntracks, alexa

andies

Zitat von: khk123 am 30 Januar 2019, 23:06:27
Direkt auf dem PZero kommt eine korrekte Antwort für diesen Abfragewert. Gibt es evtl.  ein Timingproblem beim Abfragen über VCLIENT?
Kannst Du mir mal so eine vcontrold-Kommunikation zeigen? Es kann in der Tat ein timing-Problem geben, so was hatte ich hier auch. Wenn ich ehrlich bin, verstehe ich  das nur bedingt, denn die Kommunikation ist ja eigentlich so schnell, dass das nicht vorkommen soll. Ich habe dann die Abstände zwischen den Abfragen so lange angepasst, bis es ging.

Zitat von: khk123 am 30 Januar 2019, 23:06:27
Noch eine Frage: Warum taucht im Log "try to execute set command AZ_Vitronic ?" auf.
Auch dahinter bin ich noch nicht gekommen (ich bin etwas neu bei dieser Art Programmierung, sorry). Das Fragezeichen zeigt, dass in Wirklichkeit kein set-Befehl gesendet wurde. Das scheint eine Art null-Kommunikation zwischen Server und Controller zu sein, bei dem dann am Ende aber keine Befehle geschickt werden. Ich ignoriere das, weil ich es nicht verhindern konnte (höchstens bei der Ausgabe, so dass man es nicht sieht - aber das hast Du ja nur bei verbose 5, sonst ohnehin nicht).
FHEM 6.1 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

khk123

Hab dir mal ein Screenshot der direkten Abfrage von 10:28 angehängt.

Ansonsten hat sich von gestern Abend bis heute früh nichts geändert. Der Wert für TempWWist wird von VCLIENT regelmäßig als fehlerhaft erkannt. Interessant ist allerdings, dass der erst Abruf von VCLIENT (10:35:43) nach der manuellen Abfrage (10:28) einen korrekten Wert für TempWWist findet. Muss mal probieren, ob das nur zufällig oder regelmäßig so ist.

Der Wert von TempKSoll liegt übrigens immer (auch bei der manuellen Abfrage) bei -0.1. Ich habe einen Vitodens 333-F mit einer Vitotronic 200. Die Abfrage getDevType bringt bei vcontrold "UNKNOWN" zurück. Anscheinen ist TempKSoll nicht an der gesuchten Stelle abgespeichert. Stört mich aber nicht besonders.

Das "try to execute set command AZ_Vitronic ?" stört mich auch nicht, da verbose=5 normalerweise nicht gesetzt ist. Allerdings, was passiert wenn der versuchte set einen command finden sollte?

Hier das Log von 10:20 bis 10:51:

2019.01.31 10:20:22 5: AZ_Vitronic: will now update readings
2019.01.31 10:20:24 5: AZ_Vitronic: Opening vcontrold connection to 192.168.1.25:3002
2019.01.31 10:20:24 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 10:20:24 5: AZ_Vitronic: vcontrold opened
2019.01.31 10:20:24 5: AZ_Vitronic: Requesting getTempWWist now
2019.01.31 10:20:27 1: DEBUG>AZ_Vitronic: buf ERR: Ergebnis falsch, Abbruch
Fehler beim ausfuehren von getTempWWist

2019.01.31 10:20:27 3: AZ_Vitronic: Received AZ_Vitronic: Unkown buffer format for Temp_Warmwasser_ist
2019.01.31 10:20:29 5: AZ_Vitronic: Requesting getTempKist now
2019.01.31 10:20:30 3: AZ_Vitronic: Received 65.3 for Temp_Kessel_ist
2019.01.31 10:20:30 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 10:20:31 5: AZ_Vitronic: Requesting getTempKsoll now
2019.01.31 10:20:33 3: AZ_Vitronic: Received -0.1 for Temp_Kessel_soll
2019.01.31 10:20:33 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 10:20:34 5: AZ_Vitronic: Requesting getTempA now
2019.01.31 10:20:36 3: AZ_Vitronic: Received 2.1 for Aussentemperatur
2019.01.31 10:20:36 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 10:20:37 5: AZ_Vitronic: Requesting getBrennerStarts now
2019.01.31 10:20:39 3: AZ_Vitronic: Received 20014 for Brennerstarts
2019.01.31 10:20:39 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 10:20:42 5: AZ_Vitronic: Closing vcontrold connection
2019.01.31 10:20:42 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?

2019.01.31 10:35:42 5: AZ_Vitronic: will now update readings
2019.01.31 10:35:43 5: AZ_Vitronic: Opening vcontrold connection to 192.168.1.25:3002
2019.01.31 10:35:43 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 10:35:43 5: AZ_Vitronic: vcontrold opened
2019.01.31 10:35:43 5: AZ_Vitronic: Requesting getTempWWist now
2019.01.31 10:35:45 3: AZ_Vitronic: Received 50.5 for Temp_Warmwasser_ist
2019.01.31 10:35:45 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 10:35:47 5: AZ_Vitronic: Requesting getTempKist now
2019.01.31 10:35:48 3: AZ_Vitronic: Received 65.6 for Temp_Kessel_ist
2019.01.31 10:35:48 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 10:35:50 5: AZ_Vitronic: Requesting getTempKsoll now
2019.01.31 10:35:51 3: AZ_Vitronic: Received -0.1 for Temp_Kessel_soll
2019.01.31 10:35:51 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 10:35:53 5: AZ_Vitronic: Requesting getTempA now
2019.01.31 10:35:54 3: AZ_Vitronic: Received 2.6 for Aussentemperatur
2019.01.31 10:35:54 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 10:35:56 5: AZ_Vitronic: Requesting getBrennerStarts now
2019.01.31 10:35:57 3: AZ_Vitronic: Received 20014 for Brennerstarts
2019.01.31 10:35:57 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 10:36:00 5: AZ_Vitronic: Closing vcontrold connection
2019.01.31 10:36:00 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?

2019.01.31 10:51:00 5: AZ_Vitronic: will now update readings
2019.01.31 10:51:02 5: AZ_Vitronic: Opening vcontrold connection to 192.168.1.25:3002
2019.01.31 10:51:02 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 10:51:02 5: AZ_Vitronic: vcontrold opened
2019.01.31 10:51:02 5: AZ_Vitronic: Requesting getTempWWist now
2019.01.31 10:51:09 1: DEBUG>AZ_Vitronic: buf ERR: Ergebnis falsch, Abbruch
Fehler beim ausfuehren von getTempWWist

2019.01.31 10:51:09 3: AZ_Vitronic: Received AZ_Vitronic: Unkown buffer format for Temp_Warmwasser_ist
2019.01.31 10:51:10 5: AZ_Vitronic: Requesting getTempKist now
2019.01.31 10:51:12 3: AZ_Vitronic: Received 65.0 for Temp_Kessel_ist
2019.01.31 10:51:12 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 10:51:14 5: AZ_Vitronic: Requesting getTempKsoll now
2019.01.31 10:51:15 3: AZ_Vitronic: Received -0.1 for Temp_Kessel_soll
2019.01.31 10:51:15 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 10:51:17 5: AZ_Vitronic: Requesting getTempA now
2019.01.31 10:51:18 3: AZ_Vitronic: Received 3.5 for Aussentemperatur
2019.01.31 10:51:18 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 10:51:20 5: AZ_Vitronic: Requesting getBrennerStarts now
2019.01.31 10:51:21 3: AZ_Vitronic: Received 20014 for Brennerstarts
2019.01.31 10:51:21 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 10:51:24 5: AZ_Vitronic: Closing vcontrold connection
2019.01.31 10:51:24 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?

FHEM6.2, RasPi4, RasPi Zero W,
CUL V3, HM, ZWave, IT, vcontrol, owntracks, alexa

khk123

...beim Testen mit vcontrold auf dem piZero ist mir ist noch etwas aufgefallen. Nachdem ich getDevType abgefragt hatte, lieferte anschließend getTempWWist den fehlerhaften Wert. Eine erneute Abfrage getTempWWist ergab einen korrekten Wert. Ich konnte das Verhalten allerdings nicht reproduzieren. Sieht anscheinend so aus, als ob der Fehler doch eher bei vcontrold liegt.


vctrld>getDevType
UNKNOWN
vctrld>getTempWWist
ERR: Ergebnis falsch, Abbruch
Fehler beim ausfuehren von getTempWWist
vctrld>getTempWWist
51.000000 Grad Celsius
vctrld>getTempWWist
51.200001 Grad Celsius
vctrld>getDevType
UNKNOWN
vctrld>getTempWWist
51.400002 Grad Celsius
vctrld>getTempWWist
51.299999 Grad Celsius
vctrld>getDevType
UNKNOWN
vctrld>getTempWWist
51.099998 Grad Celsius
vctrld>
FHEM6.2, RasPi4, RasPi Zero W,
CUL V3, HM, ZWave, IT, vcontrol, owntracks, alexa

andies

Zitat von: khk123 am 31 Januar 2019, 11:14:42
Anscheinen ist TempKSoll nicht an der gesuchten Stelle abgespeichert.
Ja, das ist dann an einer anderen Stelle kodiert oder eventuell auch gar nicht abrufbar?


Zitat von: khk123 am 31 Januar 2019, 11:14:42
Allerdings, was passiert wenn der versuchte set einen command finden sollte?
Den müsste er aus der cfg-Datei holen (woanders kann der nicht "entstehen") und wenn da keiner steht, passiert nichts. Ich muss mal CoolTux fragen, wie das entsteht. Der hat mir damals diesen Programmtipp gegeben. So habe ich das erst hinbekommen.

Zitat von: khk123 am 31 Januar 2019, 11:14:42

2019.01.31 10:51:02 5: AZ_Vitronic: Requesting getTempWWist now
2019.01.31 10:51:09 1: DEBUG>AZ_Vitronic: buf ERR: Ergebnis falsch, Abbruch
Fehler beim ausfuehren von getTempWWist

Also, ich habe die Stelle gefunden, wo das entsteht, Zeile 441. Ich verstehe aber anhand des Screenshot nicht, wieso das passiert. Zur Erläuterung. Es kommt eine Rückmeldung von vcontrold, die kommt in einem buffer. Der enthält uU mehrere Zeilen (bei timern zum Beispiel). Diese Zeilen werden hier eingelesen (Zeile 390ff)

my @zeilen=split /\n/, $buf;

und dabei wird für jede Zeile ein neuer Eintrag in dem Hash vorgenommen. Bei Dir ist das erstmal nur eine einzige Zeile mit der Temperatur.

Danach wird ausgerechnet, wie viel Zeilen übergeben wurden

my $zeilen = @zeilen;

und da müsste 1 herauskommen. Dann gibt es eine Fallunterscheidung: Eine Zeile oder vier? Eine Zeile => dann die erste Zahl auswerten. Vier Zeilen => Das sind timer, auch auswerten. Bei Dir wird nun die dritte Möglichkeit in Anspruch genommen: Fehlermeldung?!

Oder ich mache was grundlegend falsch. Eventuell müssten wir mit der Hand da debuggen und sich mal den $buf direkt anschauen. Da musst Du aber unmittelbar in VCLIENT eingreifen. Können wir gern zusammen machen. Zum Beispiel so

401    } else {
402 my @zeilen=split /\n/, $buf;
403 # Anzahl uebergebener Zeilen
404 my $zeilen = @zeilen;
+          for(my $i=0;$i < $zeilen; $i++){
+      Log3 $name, 5,  $zeilen[$i];
+              }

Ich habe das nur hier nicht getestet.
FHEM 6.1 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

khk123

#20
...hab die Abfrage mal eingebaut. Momentan sind die Updates korrekt. Sobald der fehlerhafte Wert wieder auftaucht melde ich mich.
Übrigens bei der nicht erfolgreichen Abfrage von getTempWWist kommen 2 Zeilen zurück und das läuft bei dir in den Zweig "# format der Ausgabe unbekannt". Vielleicht wäre es in dem Fall besser den Fehler zu melden. vcontrold meldet ja "ERR:" zurück.

Noch eine Frage, nur zu meinem Verständnis: Warum steht in $zeilen eigentlich der Wert 1? Das Array beginnt doch mit 0 und hat meist nur eine Zeile.


vctrld>getTempWWist
ERR: Ergebnis falsch, Abbruch
Fehler beim ausfuehren von getTempWWist

FHEM6.2, RasPi4, RasPi Zero W,
CUL V3, HM, ZWave, IT, vcontrol, owntracks, alexa

andies

Zitat von: khk123 am 31 Januar 2019, 17:22:17
Warum steht in $zeilen eigentlich der Wert 1? Das Array beginnt doch mit 0 und hat meist nur eine Zeile.
@zeilen ist der array
$zeilen ist die Anzahl der Elemente im array
@#zeilen ist der höchste Index im array
$zeilen[index] sind die elemente.

Schon schräge Bezeichnungen. Als ich das zuerst sah dachte ich, ich spinne.
FHEM 6.1 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

khk123

...und schon taucht ein fehlerhafter Wert auf:


2019.01.31 17:27:50 5: AZ_Vitronic: Opening vcontrold connection to 192.168.1.25:3002
2019.01.31 17:27:50 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 17:27:50 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 17:27:50 5: AZ_Vitronic: vcontrold opened (khk)
2019.01.31 17:27:50 5: AZ_Vitronic: Requesting getTempKsoll now
2019.01.31 17:27:54 5: AZ_Vitronic KhK: Anzahl Zeilen: 2
2019.01.31 17:27:54 5: AZ_Vitronic KhK: Zeile 0: ERR: Ergebnis falsch, Abbruch
2019.01.31 17:27:54 5: AZ_Vitronic KhK: Zeile 1: Fehler beim ausfuehren von getTempKsoll
2019.01.31 17:27:54 1: DEBUG>AZ_Vitronic: buf ERR: Ergebnis falsch, Abbruch
Fehler beim ausfuehren von getTempKsoll

2019.01.31 17:27:54 3: AZ_Vitronic: Received AZ_Vitronic: Unkown buffer format for Temp_Kessel_soll
2019.01.31 17:27:56 5: AZ_Vitronic: Requesting getTempWWist now
2019.01.31 17:27:56 5: AZ_Vitronic KhK: Anzahl Zeilen: 1
2019.01.31 17:27:56 5: AZ_Vitronic KhK: Zeile 0: 41.700001 Grad Celsius
2019.01.31 17:27:56 3: AZ_Vitronic: Received 41.7 for Temp_Warmwasser_ist
2019.01.31 17:27:56 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 17:27:56 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 17:27:58 5: AZ_Vitronic: Requesting getTempA now
2019.01.31 17:27:59 5: AZ_Vitronic KhK: Anzahl Zeilen: 1
2019.01.31 17:27:59 5: AZ_Vitronic KhK: Zeile 0: 4.200000 Grad Celsius
2019.01.31 17:27:59 3: AZ_Vitronic: Received 4.2 for Aussentemperatur
2019.01.31 17:27:59 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 17:27:59 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 17:28:01 5: AZ_Vitronic: Requesting getBrennerStarts now
2019.01.31 17:28:02 5: AZ_Vitronic KhK: Anzahl Zeilen: 1
2019.01.31 17:28:02 5: AZ_Vitronic KhK: Zeile 0: 20015.000000
2019.01.31 17:28:02 3: AZ_Vitronic: Received 20015 for Brennerstarts
2019.01.31 17:28:02 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 17:28:02 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 17:28:04 5: AZ_Vitronic: Requesting getTempKist now
2019.01.31 17:28:05 5: AZ_Vitronic KhK: Anzahl Zeilen: 1
2019.01.31 17:28:05 5: AZ_Vitronic KhK: Zeile 0: 64.500000 Grad Celsius
2019.01.31 17:28:05 3: AZ_Vitronic: Received 64.5 for Temp_Kessel_ist
2019.01.31 17:28:05 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 17:28:05 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 17:28:08 5: AZ_Vitronic: Closing vcontrold connection
2019.01.31 17:28:09 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?
2019.01.31 17:28:09 5: AZ_Vitronic: try to execute set command AZ_Vitronic ?


...kurz danach die direkte Abfrage in vcontrold:

pi@raspi-z:~ $ telnet localhost 3002
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
vctrld>getTempKsoll
-0.100000 Grad Celsius
vctrld>quit
good bye!
Connection closed by foreign host.


Ich denke der Fehler liegt in vcontrold. Evtl. ist dort ein Timing-Problem vorhanden.  ich suche mal in den issues
https://github.com/openv/openv/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc
von vcontrold, ob ich da etwas finde.
FHEM6.2, RasPi4, RasPi Zero W,
CUL V3, HM, ZWave, IT, vcontrol, owntracks, alexa

khk123

ZitatSchon schräge Bezeichnungen. Als ich das zuerst sah dachte ich, ich spinne.

Stimme ich dir zu.
FHEM6.2, RasPi4, RasPi Zero W,
CUL V3, HM, ZWave, IT, vcontrol, owntracks, alexa

andies

Dann passt es im Modul. Man könnte da noch ein wenig mehr Fehleranalyse einbauen, aber bei zwei Zeilen kommt halt nichts vernünftiges heraus.

So etwas kann zB an den Dioden liegen. Wie oft liest Du aus? Ich habe das früher alle 5' gemacht und bin jetzt bei 15'. Reicht auch. Versuch doch mal die Zeit zwischen den Abfragen hinauszuzögern. Da gibt es zwei Attribute, die machen das.


Gesendet von iPad mit Tapatalk Pro
FHEM 6.1 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

khk123

Ich hole alle 15 Minuten ein paar Werte. timeout ist auf 15 sec eingestellt und internal_update_interval ist auf 1.5 sec. Ich erhöhe mal auf 2.5 sec und beobachte das Ganze.

Übrigens: Vielen Dank für die prompte Hilfe!
FHEM6.2, RasPi4, RasPi Zero W,
CUL V3, HM, ZWave, IT, vcontrol, owntracks, alexa

khk123

Die Erhöhung auf 2.5sec hat nichts gebracht. Die Fehler tauchen immer noch auf und kommen von vcontrold.


2019.02.02 03:05:40 1: DEBUG>AZ_Vitronic: buf ERR: Ergebnis falsch, Abbruch
Fehler beim ausfuehren von getTempA

2019.02.02 03:05:40 3: AZ_Vitronic: Received AZ_Vitronic: Unkown buffer format for Aussentemperatur


Interessant ist auch, das getBrennerStarts einen fehlerhaften Wert liefert. Auch bei der direkten Abfrage in vcontrold kommt erst ein fehlerhafter Wert und bei einer unmittelbar danach gestarteten Abfrage ist der Wert richtig. Ich denke, dass es auch hier ein Timingproblem innerhalb von vcontrold gibt.


2019.02.02 12:22:30 3: AZ_Vitronic: Received 1285 for Brennerstarts

vctrld>getBrennerStarts
1285.000000
vctrld>getBrennerStarts
20051.000000


Alles in allem: Es läuft etwas holperig, aber es läuft und ich kann damit leben.
FHEM6.2, RasPi4, RasPi Zero W,
CUL V3, HM, ZWave, IT, vcontrol, owntracks, alexa

phantom

Hi khk123,

Im VCLIENT bringt ein zu hohes  internal_update_interval eher Probleme, wenn die Antworten vom vcontrold manchmal zu langsam kommen. Bei mir laufen timeout=15 und internal_update_interval =0.4 prima.

Der vcontrold liest leider ab und zu unsinnige Daten aus der Viessmann, die wird man wohl einfach ignorieren und direkt verwerfen müssen. Das geschieht insbsondere bei zu häufigem Abfragen der Viessmann und wenn "Andere" die Viessmann oder den vcontrold ansprechen (z.B. ein Raumthermostat).

Ebenfalls kritisch ist die optische Ankopplung an die Vitotronic; habe dazu nach einigen Versuchen mit unpassenden IR-LED's doch den Optolink-Adapter eingesetzt und dafür gesorgt, daß kein Fremdlicht einstreuen kann. Beim Füttern einer Datenbank mit vcontrol-Werten sollte eine Plausibilitätsprüfung Unsinn verwerfen.

Vielleicht hilft das eine oder andere weiter.
Phantom

khk123

Hallo Phantom,

danke für die Hinweise. Es ist mir schon klar, dass die optische Anbindung nicht optimal ist. Ich habe die USB-Platine in einem kleinen Gehäuse (wie auf dem anh. Bild) an die Steuerung angeschlossen und über einen PiZero per WLAN an FHEM angekoppelt. Der Raum in dem die Heizung steht ist ohne Fenster und daher absolut dunkel. Fremdlicht kommt daher keines. Die Device-Id in vcontrold stimmt wohl auch nicht ganz für meine Steuerung. Es stimmen eigentlich alle Werte bis auf die Brennerstarts. Am Display sehe ich 08 56 57 und über vcontrold kommt 20121. Ich hab mal deine Werte für timeout und internal_update_interval übernommen.Mal sehen, ob sich etwas verändert.
FHEM6.2, RasPi4, RasPi Zero W,
CUL V3, HM, ZWave, IT, vcontrol, owntracks, alexa

andies

Schicker Adapter, wo hast Du den her? Ich habe so eine selbstgebastelte Krücke, die geht aber auch.
FHEM 6.1 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann