Modul zur Anbindung Viessmann Heizung (Vitotronic 200 KW1)

Begonnen von Adam, 15 Februar 2014, 18:17:35

Vorheriges Thema - Nächstes Thema

Adam

#915
@KarlHeinz2000: Ja das war hilfreich  8)

Versuch doch bitte mal diese Version hier!
Also wieder erst auf dsiable setzen dann alle SET und dann wieder disable wegnehmen!

Gruß
Adam

KarlHeinz2000


Adam

hmmm.....

Das sieht so aus, als wäre das disabeld nicht gesetzt.
Kannst Du im Log folgendes finden: "VCONTROL: Poll disabled!" ?

Gruß
Adam

KarlHeinz2000

Neuer Versuch.
Keine Ahnung, warum vorhin das 'disabled' gefehlt hat. Steht eigentlich mit in der Subroutine...


Adam

Ok und was genau soll jetzt passieren?
Also was rufts Du auf?

Was ich in dem Log Auszug sehen kann ist genau ein SET Befehl,
der erfolgreich ausgeführt wird, ohne das wieder gepollt wird:

2016.01.16 19:49:24 5: VCONTROL: DEBUG SET <-> SET / TIMER_6_FR <-> TIMER_6_FR
2016.01.16 19:49:24 5: VCONTROL_READ
2016.01.16 19:49:24 5: VCONTROL: VCONTROL_Read '05'
2016.01.16 19:49:24 5: VCONTROL: send '01F42020082C3BFFFF78B0FFFF'
2016.01.16 19:49:24 5: SW: 01f42020082c3bffff78b0ffff
2016.01.16 19:49:24 5: VCONTROL_READ
2016.01.16 19:49:24 5: VCONTROL: VCONTROL_Read '00'
2016.01.16 19:49:24 5: VCONTROL: Poll SET!
2016.01.16 19:49:24 5: VCONTROL: Poll disabled!
2016.01.16 19:49:24 4: VCONTROL: Start of Poll !
2016.01.16 19:49:24 5: VCONTROL: set InternalTimer to 1452970344.65397

Adam

Ich glaube ich habe es gesehen, Du versuchst Do + Fr zu setzen

Ich denke es würde funktionieren wenn Du zwischen den SET Befehlen 1 bis 2 Sekunden warten würdest.
(disable ist natürlich auch wichtig!)

Ich müsste ein Array erfinden, das sich die SETs merkt und dann nach einander abarbeitet.
Das Problem ist ja leider, dass das Modul erstmal wieder auf ien 0x05 von der Heizung warten muss,
bevor es das SET an die Heizung schicken kann. Währen dieser Wartzeit hast Du den Do. SET durch den Fr. SET wieder überschrieben.......

KarlHeinz2000

Hab mehrfach probiert.
Mit der neuen Version habe ich Probleme. Da wird immer nur der letzte set Befehl ausgeführt. Auch mit disable=1 und 3s warten zwischen den Befehlen.
Mit der alten Version geht es mit disable=1 und einer Wartezeit von 3s recht zuverlässig.  :-\

Adam

Dann werde ich die letzte Änderung rückgängig machen
und mir bei Gelegenheit mal was generelles fürs SET ausdenken...

ToSchu

Hallo Adam,

wir haben nun Aussentemperaturen unter dem Gefrierpunkt, also negativ. Seit dem kann ich den Aussentemperatur Wert nicht mehr auslesen. Habe eine WO1C und lese den Wert wie folgt aus:

POLL, 01F7010102,      2ByteS, 10,             Aussentemperatur                                                                , -

Dies steht dann im LOG:

2016.01.19 09:29:10 5: VCONTROL: Setze sendstr
2016.01.19 09:29:10 5: VCONTROL: send '01F7010102'
2016.01.19 09:29:10 5: SW: 01f7010102
2016.01.19 09:29:10 5: VCONTROL_READ
2016.01.19 09:29:10 5: VCONTROL: VCONTROL_Read 'd5ffff'
2016.01.19 09:29:10 5: VCONTROL: VCONTROL_Read receive_len > 4, d5ffff : Repeat Command
2016.01.19 09:29:13 5: VCONTROL_READ
2016.01.19 09:29:13 5: VCONTROL: VCONTROL_Read '05'
2016.01.19 09:29:13 5: VCONTROL: Setze sendstr
2016.01.19 09:29:13 5: VCONTROL: send '01F7010102'
2016.01.19 09:29:13 5: SW: 01f7010102
2016.01.19 09:29:13 5: VCONTROL_READ
2016.01.19 09:29:13 5: VCONTROL: VCONTROL_Read 'd5ffff'
2016.01.19 09:29:13 5: VCONTROL: VCONTROL_Read receive_len > 4, d5ffff : Repeat Command
2016.01.19 09:29:16 5: VCONTROL_READ
2016.01.19 09:29:16 5: VCONTROL: VCONTROL_Read '05'
2016.01.19 09:29:16 5: VCONTROL: Setze sendstr
2016.01.19 09:29:16 5: VCONTROL: send '01F7010102'
2016.01.19 09:29:16 5: SW: 01f7010102
2016.01.19 09:29:16 5: VCONTROL_READ
2016.01.19 09:29:16 5: VCONTROL: VCONTROL_Read 'd5ffff'
2016.01.19 09:29:16 5: VCONTROL: VCONTROL_Read receive_len > 4, d5ffff : Repeat Command
2016.01.19 09:29:19 5: VCONTROL_READ
2016.01.19 09:29:19 5: VCONTROL: VCONTROL_Read '05'
2016.01.19 09:29:19 5: VCONTROL: Setze sendstr
2016.01.19 09:29:19 5: VCONTROL: send '01F7010102'
2016.01.19 09:29:19 5: SW: 01f7010102
2016.01.19 09:29:19 5: VCONTROL_READ
2016.01.19 09:29:19 5: VCONTROL: VCONTROL_Read 'd6ffff'
2016.01.19 09:29:19 5: VCONTROL: VCONTROL_Read receive_len > 4, d6ffff : Repeat Command
2016.01.19 09:29:22 5: VCONTROL_READ
2016.01.19 09:29:22 5: VCONTROL: VCONTROL_Read '05'
2016.01.19 09:29:22 5: VCONTROL: Setze sendstr
2016.01.19 09:29:22 5: VCONTROL: send '01F7010102'
2016.01.19 09:29:22 5: SW: 01f7010102
2016.01.19 09:29:22 5: VCONTROL_READ
2016.01.19 09:29:22 5: VCONTROL: VCONTROL_Read 'd6ffff'
2016.01.19 09:29:22 5: VCONTROL: VCONTROL_Read receive_len > 4, d6ffff : Repeat Command

Könntest Du mir bitte helfen, das Problem zu lösen? Mit positiven Temperaturwerten geht es.

Gruß,

Tobias

Adam

Ist das bei anderen auch so?
Ich dachte wir hätten das schon mal angepasst.

Meiner scheint zu nah am Haus zu sein, ist immer noch Plus  ???

2016.01.19 19:26:03 5: VCONTROL: Setze sendstr
2016.01.19 19:26:03 5: VCONTROL: send '01F7080002'
2016.01.19 19:26:03 5: SW: 01f7080002
2016.01.19 19:26:03 5: VCONTROL_READ
2016.01.19 19:26:03 5: VCONTROL: VCONTROL_Read '0900'
2016.01.19 19:26:03 5: VCONTROL: receive 'Temp-Aussen : 0.9'
2016.01.19 19:26:06 5: VCONTROL_READ


Komisch ist, obwohl du nur 2 Byte anfragst, bekommst Du immer 3 von der Heizung zurück.
WIe sieht denn das Log bei Positiven Graden bei Dir aus, hast Du da eventuell noch was?

Ansonsten muss ich mir das am WE mal anschauen, bin gerade unterwegs....

Arbeitest Du mit der letzten Version?

Adam

ToSchu

#925
Hi Adam,

schon mal Danke für Deine schnelle Reaktion, habe heute Morgen geschaut, leider nur mit Null Grad.


2016.01.20 10:11:14 5: VCONTROL: VCONTROL_Read '05'
2016.01.20 10:11:15 4: VCONTROL: Start of Poll !
2016.01.20 10:11:15 5: VCONTROL: set InternalTimer to 1453281255.15567
2016.01.20 10:11:17 5: VCONTROL_READ
2016.01.20 10:11:17 5: VCONTROL: VCONTROL_Read '05'
2016.01.20 10:11:17 5: VCONTROL: Setze sendstr
2016.01.20 10:11:17 5: VCONTROL: send '01F7010102'
2016.01.20 10:11:17 5: SW: 01f7010102
2016.01.20 10:11:17 5: VCONTROL_READ
2016.01.20 10:11:17 5: VCONTROL: VCONTROL_Read '0000'
2016.01.20 10:11:17 5: VCONTROL: receive 'Aussentemperatur : 0'


Edit!

Habe jetzt noch einen von 3 °C:


2016.01.20 15:53:20 4: VCONTROL: Start of Poll !
2016.01.20 15:53:20 5: VCONTROL: set InternalTimer to 1453301780.66483
2016.01.20 15:53:21 5: VCONTROL_READ
2016.01.20 15:53:21 5: VCONTROL: VCONTROL_Read '05'
2016.01.20 15:53:21 5: VCONTROL: Setze sendstr
2016.01.20 15:53:21 5: VCONTROL: send '01F7010102'
2016.01.20 15:53:21 5: SW: 01f7010102
2016.01.20 15:53:21 5: VCONTROL_READ
2016.01.20 15:53:21 5: VCONTROL: VCONTROL_Read '1e00'
2016.01.20 15:53:21 5: VCONTROL: receive 'Aussentemperatur : 3'


Gruß,

Tobias


HoTi

Viele Grüße aus  Oberbayern
Tim (RettungsTim)

Adam

@Tobias:

Wie auch Tim bestätigt ist das Problem nicht das Parsen des Wertes, das haben wir damals durch die 2ByteS korrigiert.

Das Problem ist, dass von der Heizung 2 Byte angefragt werden, diese aber immer 3 Byte sendet:

2016.01.19 09:29:19 5: VCONTROL: send '01F7010102'
2016.01.19 09:29:19 5: SW: 01f7010102
2016.01.19 09:29:19 5: VCONTROL_READ
2016.01.19 09:29:19 5: VCONTROL: VCONTROL_Read 'd6ffff'
2016.01.19 09:29:19 5: VCONTROL: VCONTROL_Read receive_len > 4, d6ffff : Repeat Command


Im Modul ist es nun so realisiert, dass das Kommando so lange wiederholt wird,
bis die richtige Anzahl an Bytes gesendet wird, da es nicht sicher sein kann, ob die Heizung nicht Schrott sendet.

ToSchu

Zitat von: Adam am 21 Januar 2016, 07:33:48
@Tobias:

Wie auch Tim bestätigt ist das Problem nicht das Parsen des Wertes, das haben wir damals durch die 2ByteS korrigiert.

Das Problem ist, dass von der Heizung 2 Byte angefragt werden, diese aber immer 3 Byte sendet:

2016.01.19 09:29:19 5: VCONTROL: send '01F7010102'
2016.01.19 09:29:19 5: SW: 01f7010102
2016.01.19 09:29:19 5: VCONTROL_READ
2016.01.19 09:29:19 5: VCONTROL: VCONTROL_Read 'd6ffff'
2016.01.19 09:29:19 5: VCONTROL: VCONTROL_Read receive_len > 4, d6ffff : Repeat Command


Im Modul ist es nun so realisiert, dass das Kommando so lange wiederholt wird,
bis die richtige Anzahl an Bytes gesendet wird, da es nicht sicher sein kann, ob die Heizung nicht Schrott sendet.
Hallo Adam, seit 20 Uhr fragt fhem nun meine Heizung nach einem Außentemperatur Wert und gibt keine Readings mehr aus. Also seit ein Minus vor dem Wert steht ist mein Heizungssmodul blockiert und funktioniert nicht mehr. Hast Du vielleicht noch einen Tipp oder muß ich die Temperatur auskommentieren?

Gruß,

Tobias


Gesendet von meinem SM-N9005 mit Tapatalk


Adam