Anbindung Viessmann Heizung mit VCONTROL300

Begonnen von srxp, 23 Februar 2017, 13:15:51

Vorheriges Thema - Nächstes Thema

Pusemukel

@300P

Danke für den Hinweis mit dem Set , das war versehentlich noch drin.

So habe die Zeit auf 300 gesetzt:
defmod Therme_Heitzung VCONTROL300 192.168.178.42:81 /opt/fhem/FHEM/V200WO1B.cfg 300 kw
attr Therme_Heitzung room Keller
attr Therme_Heitzung verbose 5
attr Therme_Heitzung vitotronicType 200_HOxx

setstate Therme_Heitzung defined
setstate Therme_Heitzung 2020-06-15 22:48:48 Geraetekennung 0505
setstate Therme_Heitzung 2020-06-15 22:48:48 UpdateStatus Inactive
setstate Therme_Heitzung 2020-06-15 22:48:48 UpdateTime 2020-06-15_22:48:48


Un wie man sieht auch die .cfg angepasst, ist jetzt minimal.
########################################################################################################
###### VCONTROL poll & set commands for VT200 HO2B (Vitodens 200-W, B3HB)
#############################################################################################################
######POLL, SENDCMD,    PARSE AS, DIV, READING-NAME, CUMULATE
#############################################################################################################
#
#  Anlage Viessmann Vitodens 222-F mit Vitotronic 200-HO1A mit 2 Heizkreisen plus Warmwasser,
#
#  Angaben nach http://connectivity.viessmann.com/content/dam/vi-micro/CONNECTIVITY/Vitogate/Vitogate-200/7542150-KNX/Datenpunktlisten/DE/20CB_Vitotronic_200_Typ_HO1ABC.pdf/_jcr_content/renditions/original.media_file.download_attachment.file/20CB_Vitotronic_200_Typ_HO1ABC.pdf andies 2017-09
# Siehe auch https://forum.fhem.de/index.php/topic,67744.msg693805.html#msg693805
#
################################################################################################
# POLL,SENDCMD   , PARSE, DIVISOR, READING-NAME        , KUMULATION
################################################################################################


#Geraeteeinstellungen
POLL, 00F8, 2ByteH, 1, Geraetekennung , -


Allerdings sagt mir der Wert von meinem Reading nichts.

Hier noch mal der Neue auszug aus der log.
2020.06.15 22:53:46 5: VCONTROL300: Read '05'
2020.06.15 22:53:46 5: VCONTROL300: Received 1 of 2 bytes
2020.06.15 22:53:46 5: VCONTROL300: DEBUGGING Received data are data: 05
2020.06.15 22:53:47 5: VCONTROL300: Read '05'
2020.06.15 22:53:47 5: VCONTROL300: Data '0505'
2020.06.15 22:53:47 2: VCONTROL300: Warning while reading parameter 00F8. Maybe value is a sync byte? : Retry 4!!!
2020.06.15 22:53:47 2: VCONTROL300: Received value 0505 for reading parameter 00F8 seems not include a sync byte! Parsing value!
2020.06.15 22:53:47 5: VCONTROL300: DEBUG VCONTROL300_Parse() entry
2020.06.15 22:53:47 5: VCONTROL300: DEBUGGING VCONTROL300_Parse() data=0505 , length=4
2020.06.15 22:53:47 5: VCONTROL300: Parsed 'Geraetekennung : 0505'
2020.06.15 22:53:47 5: VCONTROL300: Update reading 'Geraetekennung : 0505'
2020.06.15 22:53:47 5: VCONTROL300: DEBUG setname: Geraetekennung <eq> last_cmd: Geraetekennung
2020.06.15 22:53:47 4: VCONTROL300: End of polling values! Duration: 6.96
2020.06.15 22:53:47 5: getCombinedKeyValAttr Therme_Heitzung Geraetekennung: including HASH from device attribute readingsDesc
2020.06.15 22:53:47 5: getCombinedKeyValAttr Therme_Heitzung Geraetekennung: including HASH from device attribute readingsDesc
2020.06.15 22:53:47 5: VCONTROL300: DEBUG VCONTROL300_Set() entry
2020.06.15 22:53:47 5: VCONTROL300: DEBUG VCONTROL300_Set() entry
2020.06.15 22:53:47 5: getCombinedKeyValAttr Therme_Heitzung UpdateTime: including HASH from device attribute readingsDesc
2020.06.15 22:53:47 5: getCombinedKeyValAttr Therme_Heitzung UpdateTime: including HASH from device attribute readingsDesc
2020.06.15 22:53:47 5: VCONTROL300: DEBUG VCONTROL300_Set() entry
2020.06.15 22:53:47 5: VCONTROL300: DEBUG VCONTROL300_Set() entry
2020.06.15 22:53:47 5: VCONTROL300: DEBUG VCONTROL300_UpdateDone() delete(HASH(0x564b17dde6f0))
2020.06.15 22:53:47 5: getCombinedKeyValAttr Therme_Heitzung UpdateStatus: including HASH from device attribute readingsDesc
2020.06.15 22:53:47 5: getCombinedKeyValAttr Therme_Heitzung UpdateStatus: including HASH from device attribute readingsDesc
2020.06.15 22:53:47 5: VCONTROL300: DEBUG VCONTROL300_Set() entry
2020.06.15 22:53:47 5: VCONTROL300: DEBUG VCONTROL300_Set() entry
2020.06.15 22:53:47 4: VCONTROL300: Update done!
2020.06.15 22:53:47 3: VCONTROL300: TCP connection closed
2020.06.15 22:53:47 5: VCONTROL300: VCONTROL300_UpdateDone() Undef set_cmd_list_values!
2020.06.15 22:54:26 5: VCONTROL300: DEBUG VCONTROL300_Set() entry
2020.06.15 22:54:26 5: VCONTROL300: DEBUG VCONTROL300_Set() entry
2020.06.15 22:54:26 5: VCONTROL300: DEBUG VCONTROL300_Get() entry


Ach so die Steuerung scheint eine Vitodens 200 WB2 zu sein (Aus dem Handbuch)

Gruß



amenomade

Irgendwie funktioniert deine Optolink Schnittstelle nicht richtig. Du bekommst nur '05'er
Auch in deinen Readings: 128.5 => 1285 = Hexa 0505

Ich würde erstmal die Schnittstelle in Ruhe lassen, evtl sogar das Ding von der Heizung abklemmen. Es kann sein, dass die von deinem Polling in Sekundentakt noch überlastet ist, ich weiss nicht. ('05' ist auch der Code für "ack" bei Verbindungsaufbau)

Wenn es morgen immer nur noch '05' schickt, musst Du entw seitens Hardware oder seitens serieller Schnittstelle am Rechner schauen
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

crispyduck

Zitat von: cRossi am 11 Juni 2020, 20:46:30
Siehe Nachtrag im letzten Post, habe noch ein paar Fehler gefunden und bereinigt

Aktualisiert:
- 99_myUtils.pm
- fhem.cfg

Gruß
cRossi

Herzlichen Dank! Wirklich schön gemacht.

Lg
Crispyduck

Pusemukel

So ich habe es jetzt 2 Tage ruhen lassen ,  heute wieder angesteckt .

Gleicher Fehler, ich denke mal ich suche den Fehler bei der Hardware .

Danke erst mal bis dahin !

Gruß
Pusemukel

cRossi

Servus beinand,
nun habe ich das Modul ja auch schon ein paar Tage am laufen, aber ich bekomme im Log doch recht viele Einträge:

1. Timeout im Update
Timeout for VCONTROL300_DoUpdate reached, terminated process xxxxx

2. Perlcode Warning
PERL WARNING: Use of uninitialized value $mybuf in unpack at ./FHEM/89_VCONTROL300.pm line 1230.


Was führt denn eurer Meinung nach zum Timeout und wer kümmert sich um line 1230, oder kann/muss ich das selber beheben...?

Danke und Gruß
cRossi
RasPi 3B+
HM-MOD-RPI-PCB
FHEM

KarlHeinz2000

Diesen Timeout Fehler habe ich schon seit Jahren... Etwa 2 pro Stunde.
Bei mir läuft da etwas falsch in der Kommunikation bei der Synchronisation am Anfang. VCONTROL schickt eine Anfrage an Vito und wartet auf Antwort. Die Antwort die VCONTROL bekommt sind aber nicht die Daten von der Vito, sondern irgendwas anderes. Sieht aus, also ob im RX Buffer noch was anderes drin ist oder so und sofort an VCONTROL gegeben wird. Die Daten der Vito kommen erst später an. Ich habe mir die Kommunikation mit einem Sniffer angeschaut. Das war eindeutig.
Leider bin ich in Perl nicht gut und beim durchschauen des Moduls gescheitert :(

Maui

Moin zusammen,

Jetzt wo der Winter "naht" habe ich mich mal wieder mit meiner Heizung beschäftigt.
Bisher habe ich nur gepollt und nun will ich mich auch mal ans schreiben (set) machen.
Mit der cfg von crossi komme ich schon ziemlich weit und kann auch (endlich) mal mit meiner Heizung reden und zb. Party oder spar modus setzen.
Was mir aber noch fehlt ist ein Setzen von Warmwasser einmalig.
Ich habe die Zeiten für WW in der Therme auf nur morgens und abends gestellt (hatte andies mal wo erwähnt, bringt grad im Sommer echt nochmal ein wenig Ersparnis).
Wenn nun aber tagsüber jemand duschen möchte, wäre es super wenn WW einmalig gehen würde.
Ich habe die Gerätekennung 20CB, also scheinbar HScotXX.
Bekomme die Temp meines Speichers auch richtig unter Temperatur-Speicher angezeigt. Temperatur-Warmwasser ist immer 5 grad bei mir.
Hab es mit

SET, 230101, 1ByteU, state, WarmwasserEinmalig, -

probiert, leider ohne Erfolg.
Mein list sieht so aus:

Internals:
   DEF        192.168.1.231:81 /opt/fhem/FHEM/VCON.cfg 60
   DeviceName 192.168.1.231:81
   FUUID      5f08d040-f33f-4015-20bf-d7f2de5355adbdf1
   INTERVAL   60
   NAME       vcHeizung
   NR         27
   PROTOCOL   300
   STATE      defined
   TYPE       VCONTROL300
   UPDATESTATUS INACTIVE
   READINGS:
     2020-09-05 14:08:13   Betriebsart     Abschaltbetrieb (00)
     2020-09-05 14:08:07   Betriebsart-Aktuell Heizen_und_Warmwasser (02)
     2020-09-05 14:08:13   Betriebsart-Party Aus (0)
     2020-09-05 14:08:07   Betriebsart-Spar Aus (0)
     2020-09-05 05:04:21   Betriebsart-Urlaub Aus (0)
     2020-09-05 13:59:07   Brenner-Starts  98999
     2020-09-05 13:59:07   Brenner-Starts_Today 2.00
     2020-09-05 00:03:21   Brenner-Starts_TodayStart 98997.00
     2020-09-05 00:03:21   Brenner-Starts_Yesterday 0.00
     2020-09-05 13:59:07   Brenner-Stunden 18459.61
     2020-09-05 13:59:07   Brenner-Stunden_Today 0.44
     2020-09-05 00:03:21   Brenner-Stunden_TodayStart 18459.17
     2020-09-05 00:03:21   Brenner-Stunden_Yesterday 0.00
     2020-09-04 23:14:32   BrennerStarts   33461
     2020-09-04 23:14:33   BrennerStarts_Today 4.00
     2020-09-04 00:00:33   BrennerStarts_TodayStart 33457.00
     2020-09-04 00:00:33   BrennerStarts_Yesterday 4.00
     2020-09-04 23:14:33   BrennerStunden  18459.17
     2020-09-04 23:14:33   BrennerStunden_Today 0.96
     2020-09-04 00:00:33   BrennerStunden_TodayStart 18458.21
     2020-09-04 00:00:33   BrennerStunden_Yesterday 0.65
     2020-09-05 14:08:07   Fehler-Abgastemperatur 0
     2020-09-05 13:59:08   Fehler-Aussentemperatur 0
     2020-09-05 13:59:08   Fehler-Kesseltemperatur 0
     2020-09-05 14:06:12   Fehler-Warmwassertemperatur 0
     2020-09-05 14:06:12   Geraetekennung  20CB
     2020-09-05 13:59:08   Heizkennlinie-Neigung 2
     2020-09-05 13:59:08   Heizkennlinie-Niveau 1
     2020-09-05 13:59:08   LetzteWartung-Brenner 0
     2020-09-05 14:08:07   LetzteWartung-Intervall 0
     2020-09-05 14:06:12   Pumpe-Heizkreis Aus (0)
     2020-09-05 13:59:07   Pumpe-Warmwasser An (1)
     2020-09-05 13:59:07   Pumpe-Zirkulation An (1)
     2020-09-05 14:06:12   Status-Brenner  An (1)
     2020-09-05 14:08:07   Status-Frostgefahr An (1)
     2020-09-05 13:59:08   Stoerung-Brenner Aus (0)
     2020-09-05 13:59:08   Stoerung-Sammel An (1)
     2020-09-05 13:59:08   Systemzeit      Sa,05.09.2020 13:54:33
     2020-09-04 23:14:32   Temp-Aussen     19.6
     2020-09-04 23:14:32   Temp-Raum-Soll  20
     2020-09-04 23:14:32   Temp-WarmWasser-Ist 57.1
     2020-09-05 13:59:08   Temperatur-Aussen 17.5
     2020-09-05 14:08:07   Temperatur-Aussen_Gedaempft 18.1
     2020-09-05 14:06:12   Temperatur-Aussen_Tiefpass 17.5
     2020-09-05 13:59:08   Temperatur-Kessel_Tiefpass 36
     2020-09-05 13:59:07   Temperatur-Party 20
     2020-09-05 14:08:07   Temperatur-Raum 20
     2020-09-05 13:59:07   Temperatur-Raum_2 0.1
     2020-09-05 13:59:07   Temperatur-Raum_Reduziert 18
     2020-09-05 14:08:07   Temperatur-Speicher 53.6
     2020-09-05 13:59:07   Temperatur-Speicher_Tiefpass 53.8
     2020-09-05 14:08:12   Temperatur-Warmwasser 5
     2020-09-05 14:08:15   UpdateStatus    Inactive
     2020-09-04 23:14:33   UpdateTime      2020-09-04_23:14:33
     2020-09-05 13:59:07   Urlaub-Anfang   Do,01.01.1970 00:00:00
     2020-09-05 13:59:08   Urlaub-Ende     Do,01.01.1970 00:00:00
     2020-09-04 23:14:33   state_party     Aus (0)
     2020-09-04 23:14:33   state_spar      Aus (0)
     2020-09-05 14:08:15   temperature     0
   helper:
     bm:
       VCONTROL300_Get:
         cnt        15
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        05.09. 13:55:38
         max        0.0118107795715332
         tot        0.012371301651001
         mAr:
           HASH(0x56052daa6530)
           vcHeizung
           readConfigFile
       VCONTROL300_Set:
         cnt        21124
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        05.09. 10:06:23
         max        0.0204670429229736
         tot        6.60293793678284
         mAr:
           HASH(0x56052daa6530)
           vcHeizung
           ?
Attributes:
   mqttPublish *:topic={"$base/$device/$name"}
   userReadings temperature { ReadingsVal ("vcHeizung","Temp-Raum-Ist",0) ;;}, mixedTemp:Temp-Raum-Ist.* { (ReadingsVal("tsWz2","temperature",0)+ReadingsVal($name,"Temp-Raum-Ist",0))/2 }
   vitotronicType 200_HOxx

Vielleicht hat ja einer nen Tipp für mich

Gruss und Danke.
Maui

andies

Da stimmt irgendwas nicht. Das muss Warmwasser-Soll oder so heißen. Ich habe eine "Datenpunktliste" 20CB vor mir, da steht
ZitatWarmwasser-Solltemperatur 0x6300 Codieradresse 56:1
und da wird da anscheinend eingestellt. Ich habe das aber anders gemacht: Nämlich über die Einschaltzeiten für Warmwasser und ich glaube, dort ist das auch sinnvoller.  Die hast du gar nicht erwähnt bzw liest die gar nicht aus.Bei mir können diese Betriebszeiten sogar im Menü direkt an der Heizung eingestellt werden und ich ändere dann diese Zeiten mit FHEM: Eingestellt ist 05:45-9:00 und 16:00-17:00 und wenn ich zwischendurch Warmwasser brauche, wird für zehn Minuten die Zeiten auf 00:00-23:45 verändert und nach zehn Minuten wieder zurückgeschaltet, fertig - der heizt dann den Kessel voll auf.

Nun nutze ich ein anderes Modul. Ich kopiere trotzdem mal meinen Code, vielleicht kannst du irgendwas damit anfangen. Also in 99_myUtils.pm
###############################################################################
#
#  Nach internem Anruf auf Kurzwahl **777 Warmwasser einschalten,
#  dazu muss der Wochentag und die Nummer des Tages geholt werden
#
#  https://forum.fhem.de/index.php/topic,90517.msg829949.html#msg829949
#  https://forum.fhem.de/index.php/topic,90521.0.html
#
###############################################################################

sub WarmwasserEinUndAus(){
  my @tage = qw/1Mo 2Di 3Mi 4Do 5Fr 6Sa 7So/;
  my $Wochentagsnummer = $tage[ (localtime(time))[6] - 1 ];
  fhem("set Viessmann WW_".$Wochentagsnummer."_voll;sleep 300;set Viessmann WW_".$Wochentagsnummer."_norm");
}


(Viessmann ist das Viessmann-device) und aus dem Telefon wird das über die Fritzbox wie folgt ausgelesen:

defmod WarmwasserAn notify TelefonMonitor:external_number:.BadOben@127.0.0.1 {WarmwasserEinUndAus()}


BadOben ist der Name des Telefons, dass das auslöst, TelefonMonitor ist das FB-device

defmod TelefonMonitor FB_CALLMONITOR fritz.box
attr TelefonMonitor fritzbox-remote-phonebook 1
attr TelefonMonitor fritzbox-remote-phonebook-via tr064
attr TelefonMonitor fritzbox-user XXXXXX
attr TelefonMonitor reverse-search dasoertliche.de
attr TelefonMonitor reverse-search-phonebook-file 1

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

Maui

Das war meine 2. Idee, die Zeiten einfach anders zu setzen kurzfristig. Aber ich dachte evtl. Geht es ja auch einfacher.
Aus Neugier: Welches Modul nutzt du denn jetzt?

Gruss und Danke für die Anregung.

andies

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

cRossi

Das würde meines Erachtens nach auch über den Party-Modus gehen welcher sich automatisch mit der nächsten regulären Ein-/Ausschaltzeit automatisch zurück setzt. Ansonsten kenne ich auch nur die erwähnte Zeitsteuerung.

Gruß crossi
RasPi 3B+
HM-MOD-RPI-PCB
FHEM

Maui

Das mit dem Party Modus klingt sogar noch besser. Und laut Anleitung müsste es auch gehen. Teste ich morgen und gebe mal Feedback.

Maui

Moin, hat ein wenig länger gedauert. Kann aber bestätigen, dass Party Modus auch funktioniert. Setzt halt ggf. die Heizung auch hoch, aber da es für 20 Minuten und tagsüber gesetzt wird, kann ich erstmal gut damit leben. Muss ich im Winter nochmal schauen.
Ich bin jetzt übrigens auch dabei, auf VCLIENT umzusteigen. Läuft gefühlt um einiges runder.
Was mich auch Nerven gekostet hat, war, dass das Setzen des PartyModus nicht in der Vitrotronic angezeigt wird sondern nur in der Therme selbst. So dachte ich erst fälschlicherweise, dass es nicht klappen würde.

Gruß
Maui

Shadow3561

Moin,

Bei mir lief die Anbindung meiner Vitodens 200W jetzt 2 Jahre ohne Probleme.

Seit 2 Tagen habe ich das Log voll mit

Timeout for VCONTROL300_DoUpdate reached, terminated process

Die Heizung hängt an einem BananaPi M3 und ist per ser2net mit meinem FHEM Nuc verbunden.
Ich habe an beiden Systemen keine Änderungen vorgenommen und auch die Netzwerk-Infrastruktur hat sich nicht geändert.

Habe das Verbose auf 5 gestellt und konnte folgendes beobachten

Es werden alle Readings aktualisiert aber trotzdem wird die Verbindung immer wieder geschlossen.
Hier ein Log-Auszug

2020.09.08 18:47:29.293 5: SW: 04
2020.09.08 18:47:29.686 5: VCONTROL300: DEBUG VCONTROL300_Set() entry
2020.09.08 18:47:29.687 5: VCONTROL300: DEBUG VCONTROL300_Set() entry
2020.09.08 18:47:30.382 5: VCONTROL300: DEBUG VCONTROL300_Poll() entry
2020.09.08 18:47:30.382 4: VCONTROL300: fetched attr 'vitotronicType=200_HOxx'
2020.09.08 18:47:30.382 5: VCONTROL300: Polling enabled!
2020.09.08 18:47:30.382 5: VCONTROL300: DEBUG VCONTROL300_Poll() Set InternalTimer to 1599583680.38261
2020.09.08 18:47:30.436 4: VCONTROL300: Waiting for sync byte...
2020.09.08 18:47:30.436 5: SW: 04
2020.09.08 18:47:31.579 4: VCONTROL300: Received sync byte!
2020.09.08 18:47:31.580 4: VCONTROL300: Waiting for init byte...
2020.09.08 18:47:31.580 5: SW: 160000
2020.09.08 18:47:32.770 5: VCONTROL300: DEBUG VCONTROL300_Set() entry
2020.09.08 18:47:34.569 4: VCONTROL300: Waiting for init byte...
2020.09.08 18:47:34.569 5: SW: 160000
2020.09.08 18:47:35.348 5: VCONTROL300: DEBUG VCONTROL300_Set() entry
2020.09.08 18:47:35.348 5: VCONTROL300: DEBUG VCONTROL300_Set() entry
2020.09.08 18:47:35.348 5: VCONTROL300: DEBUG VCONTROL300_Get() entry
2020.09.08 18:47:37.099 4: VCONTROL300: Waiting for init byte...
2020.09.08 18:47:37.099 5: SW: 160000
2020.09.08 18:47:38.967 1: Timeout for VCONTROL300_DoUpdate reached, terminated process 41507
2020.09.08 18:47:38.967 5: VCONTROL300: DEBUG VCONTROL300_UpdateAborted() delete(HASH(0x55571c35f018))
2020.09.08 18:47:39.008 5: VCONTROL300: DEBUG VCONTROL300_Set() entry
2020.09.08 18:47:39.008 5: VCONTROL300: DEBUG VCONTROL300_Set() entry
2020.09.08 18:47:39.009 5: VCONTROL300: DEBUG VCONTROL300_Set() entry
2020.09.08 18:47:39.009 4: VCONTROL300: Update aborted!
2020.09.08 18:47:39.009 2: VCONTROL300: TCP connection closed
2020.09.08 18:47:39.009 5: VCONTROL300: VCONTROL300_UpdateAborted() Undef set_cmd_list_values!


Kann mir jemand sagen was da schief läuft?

Mit freundlichen Grüßen

Maui

Zitat von: Shadow3561 am 09 September 2020, 17:18:45
Kann mir jemand sagen was da schief läuft?
Das kann ich zwar leider nicht, aber ich kann dir Vclient als Alternative ans Herz legen. Ich hatte auch meine Probleme mit VCONTROL.
Da du per BananaPi dran hängst, denke ich sollte sich dein Aufwand auch in Grenzen halten von der HW her.

Gruß