Heizung Vaillant ecoTEC plus VCW 20/26 CS/1-5 geplant und auslesen

Begonnen von laserrichi, 31 Januar 2023, 22:42:00

Vorheriges Thema - Nächstes Thema

laserrichi

Hallo zusammen,

ich habe die Vaillant ecoTEC plus VCW 20/26 CS/1-5   geplant einzubauen.

Entweder ich kämpfe mich mit ebus durch... und wenn ja  wie ?  welcher Adapter das ich das ins wlan und in Fhem bekomme

oder von Vaillant so Internet Modul... das aber wohl Cloud basiert arbeitet und für mich ein no go ist außer man bekommt es cloudfrei zuhause hin.

Alternativ wäre ein von Wolf... wobei ich hier gelesen habe das hier das mit ebus wohl noch schwieriger ist.

Im Keller habe ich bereits einen esp mit espeasy am laufen der auch so dinge wie modubs und 1wire sensoren verarbeitet, aber mit espeasy bekomme ich da wohl keine ebus geschichte hin.

Und wenn der physikalische layer besteht... geht es ja dann auch noch um die Register und werte... hab was von csv file gelesen usw...

Hat jemand schon neueres Model in Betrieb ?
RaspberryPi 4 Bullseye,Homematic,Z-Wave,Rademacher Duofern,Signalduino,Fritz7590,ESPEasy,Tasmota,Robonect,Kameras,1-Wire,Modbus,Solar,Maranz,VU+,ulanzi tc001 mit awtrix light

rubberduck67

Schon etwas am laufen? Ich wollte due per ebus anschließen..

laserrichi

#2
Zitat von: rubberduck67 am 07 November 2023, 12:49:21Schon etwas am laufen? Ich wollte due per ebus anschließen..

Ja ich habe das mitlerweile am laufen mit dem ebus adapter von https://adapter.ebusd.eu/v5/  und ebusd dämon im raspi.

Allerdings habe ich nur eine Außentemperatur Regelung VCR710.
D.h. ich weis nicht wie ich die Betriebsmodi setzen kann, weil mir die ebus register dazu nicht klar sind. Hätte man eine Raumregelung so würde man die Kommunikation auf dem ebus dann sehen.

Was ich aber aktiv auslese und monitore sind die wichtigsten Parameter wie vorlauf, rücklauf, warmwasser, brennerstarts für WW und Heizwasser, Lüfterdrehzahl, Gasventil auf zu, und noch paar mehr.
Nur mit den Energieverbräuchen stimmen wohl die register nicht.

Weis nicht ob hier John30 dabei helfen kann.

hab dazu auf git folgendes reingestellt:
https://github.com/john30/ebusd/discussions/980


defmod Vaillant MQTT2_DEVICE ebusd
attr Vaillant IODev MQTT
attr Vaillant autocreate 1
attr Vaillant bridgeRegexp (ebus\S[^/]*?)/(bai|\d+|cc|e7f|ehp|f\d\d|hc|hc\d+|he.|hmu|hwc|mc|mc.\d|omu|omu.\d|pms|rcc|rcc.\d|sc|sdr_p|solar|ui|uih|v\d\d|v81.\d|vd\d|vl\d|vr_\d\d|zeo)/.*:.* "$1_$2"\
(ebus\S[^/]*?)/(global|broadcast|general|scan[^/]+|memory)/.*:.* "$1"
attr Vaillant comment <html>NOTE: additional templates and code have been downloaded from svn (contrib).<br>Pls. inform the maintainer, if the bridgeRegexp doesn't fit to all of your devices connected to the bus.
attr Vaillant devStateStyle style="text-align:left"
attr Vaillant disable 0
attr Vaillant event-min-interval .*:3600
attr Vaillant event-on-change-reading .*
attr Vaillant getList HcHours:noarg HcHours ebusd/bai/HcHours/get\
HcStarts:noarg HcStarts ebusd/bai/HcStarts/get\
HcUnderHundredStarts:noarg HcUnderHundredStarts ebusd/bai/HcUnderHundredStarts/get\
HwcStarts:noarg HwcStarts ebusd/bai/HwcStarts/get\
HwcUnderHundredStarts:noarg HwcUnderHundredStarts ebusd/bai/HwcUnderHundredStarts/get\
HwcTemp:noarg HwcTemp ebusd/bai/HwcTemp/get\
Flame:noarg Flame ebusd/bai/Flame/get\
FanSpeed:noarg FanSpeed ebusd/bai/Fanspeed/get\
GasValve:noarg GasValve ebusd/bai/GasValve/get\
Gasvalve3UC:noarg Gasvalve3UC ebusd/bai/Gasvalve3UC/get\
Temperaturen:Vorlauf Vorlauf ebusd/bai/Status01/get\
Temperaturen:Ruecklauf Ruecklauf ebusd/bai/Status01/get\
Status02:HWCMode HWCMode ebusd/bai/Status02/get\
Waterpressure:Wasserdruck Wasserdruck ebusd/bai/Waterpressure/get\
Warmwasserdurchfluss:noarg Warmwasserdurchfluss ebusd/bai/HwcWaterflow/get\
Heizungslast:noarg Heizungslast ebusd/bai/PartloadHcKW/get\
Warmwasserlast:noarg Warmwasserlast ebusd/bai/PartloadHwcKW/get\
Pumpenstunden:noarg Pumpenstunden ebusd/bai/PumpHours/get\
Fehler:noarg Fehler1 ebusd/bai/currenterror/get\
HeatingSwitch_onoff_value:noarg HeatingSwitch_onoff_value ebusd/bai/HeatingSwitch/get\
Modulationssollwert:noarg Modulationssollwert ebusd/bai/ModulationTempDesired/get
attr Vaillant jsonMap Status01_0_value:Vorlauf Status01_0_name:0\
Status01_1_value:Ruecklauf Status01_1_name:0\
Status01_2_value:Aussentemp Status01_2_name:0\
Status01_3_value:Warmwasser Status01_3_name:0\
Status01_4_value:WWSpeicher Status01_4_name:0\
Status01_5_value:Pumpenstatus Status01_5_name:0\
Status02_0_value:HWCMode Status02_0_name:0\
Status02_1_value:Maximaltemperatur Status02_1_name:0\
Status02_2_value:ReglerMaxTEMP Status02_2_name:0\
Status02_3_value:ReglerCurrentTemp Status02_3_name:0\
Flame_0_value:Flame Flame_0_name:0\
FanSpeed_0_value:FanSpeed FanSpeed_0_name:0\
WaterPressure_press_value:Wasserdruck WaterPressure_0_name:0\
WaterPressure_sensor_value:Wasserdruck_Sensor WaterPressure_1_name:0\
HcHours_hoursum2_value:HcHours HcHours_hoursum2_name:0\
HcStarts_0_value:HcStarts HcStarts_0_name:0\
HcUnderHundredStarts_0_value:HcUnderHundredStarts HcUnderHundredStarts_0_name:0\
HwcStarts_0_value:HwcStarts HwcStarts_0_name:0\
HwcUnderHundredStarts_0_value:HwcUnderHundredStarts HwcUnderHundredStarts_0_name:0\
HwcTemp_temp_value:HwcTemp HwcTemp_temp_name:0\
HwcTemp_sensor_value:HwcTemp_sensor HwcTemp_sensor_name:0\
Gasvalve_0_value:GasValve Gasvalve_0_name:0\
Gasvalve3UC_0_value:Gasvalve3UC Gasvalve3UC_0_name:0\
HwcWaterflow_uin100_value:Warmwasserdurchfluss\
PartloadHcKW_power_value:Heizungslast\
PartloadHwcKW_power_value:Warmwasserlast\
PumpHours_hoursum2_value:Pumpenstunden\
currenterror_0_value:Fehler1 currenterror_0_name:0\
currenterror_1_value:Fehler2 currenterror_1_name:0\
currenterror_2_value:Fehler3 currenterror_2_name:0\
currenterror_3_value:Fehler4 currenterror_3_name:0\
currenterror_4_value:Fehler5 currenterror_4_name:0\
ModulationTempDesired_0_value:Modulationssollwert odulationTempDesired_0_name:0
attr Vaillant model eBus_daemon_splitter
attr Vaillant periodicCmd Flame:1 Temperaturen:1 Modulationssollwert:1 HwcStarts:10 HwcUnderHundredStarts:10 Warmwasserlast:1 \
Heizungslast:5 Warmwasserdurchfluss:1 FanSpeed:1 Waterpressure:7 GasValve:1\
HeatingSwitch_onoff_value:1 HcUnderHundredStarts:12 HcStarts:60
attr Vaillant readingList #ebusd/scan[^/]+/.*:.* { $TOPIC =~ m,scan.([^/]+)/,;; FHEM::aTm2u_ebus::j2nv($EVENT,"scan_${1}_") }\
  ebusd/global/uptime:.* uptime\
  ebusd/global/running:.* running\
  ebusd/global/version:.* version\
  ebusd/global/signal:.* signal\
  ebusd/global/updatecheck:.* updatecheck\
  ebusd/global/scan:.* scan\
  ebusd/broadcast/datetime:.* { FHEM::aTm2u_ebus::j2nv($EVENT) }\
  ebusd/bai/HwcTemp:.* { json2nameValue($EVENT, 'HwcTemp_', $JSONMAP) }\
  ebusd/bai/Flame:.* { json2nameValue($EVENT, 'Flame_', $JSONMAP) }\
  ebusd/bai/Status01:.* { json2nameValue($EVENT, 'Status01_', $JSONMAP) }\
  ebusd/bai/Status02:.* { json2nameValue($EVENT, 'Status02_', $JSONMAP) }\
  ebusd/bai/WaterPressure:.* { json2nameValue($EVENT, 'WaterPressure_', $JSONMAP) }\
  ebusd/bai/HwcImpellorSwitch:.* { json2nameValue($EVENT, 'HwcImpellorSwitch_', $JSONMAP) }\
  ebusd/bai/HwcWaterflow:.* { json2nameValue($EVENT, 'HwcWaterflow_', $JSONMAP) }\
  ebusd/bai/Gasvalve:.* { json2nameValue($EVENT, 'Gasvalve_', $JSONMAP) }\
  ebusd/bai/Gasvalve3UC.* { json2nameValue($EVENT, 'Gasvalve3UC_', $JSONMAP) }\
  ebusd/bai/FanSpeed:.* { json2nameValue($EVENT, 'FanSpeed_', $JSONMAP) }\
  ebusd/bai/FanHours:.* { json2nameValue($EVENT, 'FanHours_', $JSONMAP) }\
  ebusd/bai/HcHours:.* { json2nameValue($EVENT, 'HcHours_', $JSONMAP) }\
  ebusd/bai/HwcHours:.* { json2nameValue($EVENT, 'HwcHours_', $JSONMAP) }\
  ebusd/bai/HcStarts:.* { json2nameValue($EVENT, 'HcStarts_', $JSONMAP) }\
  ebusd/bai/HcUnderHundredStarts:.* { json2nameValue($EVENT, 'HcUnderHundredStarts_', $JSONMAP) }\
  ebusd/bai/HwcStarts:.* { json2nameValue($EVENT, 'HwcStarts_', $JSONMAP) }\
  ebusd/bai/HwcUnderHundredStarts:.* { json2nameValue($EVENT, 'HwcUnderHundredStarts_', $JSONMAP) }\
  ebusd/bai/PartloadHcKW:.* { json2nameValue($EVENT, 'PartloadHcKW_', $JSONMAP) }\
  ebusd/bai/PartloadHwcKW:.* { json2nameValue($EVENT, 'PartloadHwcKW_', $JSONMAP) }\
  ebusd/bai/PumpHours:.* { json2nameValue($EVENT, 'PumpHours_', $JSONMAP) }\
  ebusd/bai/HwcTempDesired:.* { json2nameValue($EVENT, 'HwcTempDesired_', $JSONMAP) }\
  ebusd/bai/currenterror:.* { json2nameValue($EVENT, 'currenterror_', $JSONMAP) }\
  ebusd/bai/ModulationTempDesired:.* { json2nameValue($EVENT, 'ModulationTempDesired_', $JSONMAP) }\
  ebusd/bai/HeatingSwitch:.* { json2nameValue($EVENT, 'HeatingSwitch_', $JSONMAP) }\
ebusd/scan\x2e08/:.* { json2nameValue($EVENT, 'scan.08_', $JSONMAP) }\
ebusd/scan\x2e08/id:.* { json2nameValue($EVENT, 'id_', $JSONMAP) }\
ebusd/scan\x2e15/:.* { json2nameValue($EVENT, 'scan.15_', $JSONMAP) }\
ebusd/scan\x2e15/id:.* { json2nameValue($EVENT, 'id_', $JSONMAP) }
attr Vaillant room Heizung
attr Vaillant setList getKnown:noArg ebusd/list onlyknown\
  getAll:noArg ebusd/list
attr Vaillant stateFormat Flamme: Flame Wasserstart: Warmwasserstart Heizungstarts: HeizungBrennerStarts\
<br>HeizungVorlauf: Vorlauf  Rücklauf: Ruecklauf</br>\
<br>Uptime: formatedUptime</br>
attr Vaillant userReadings formatedUptime:uptime.* {my $m = ReadingsVal($name,'uptime',0)/60;;\
    return sprintf '0 000 00:%02d', $m if $m < 60;; my $h = $m / 60;; $m %= 60;; \
    return sprintf '0 000 %02d:%02d', $h, $m if $h < 24;; my $d = $h / 24;; $h %= 24;;;; \
    return sprintf '0 %03d %02d:%02d', $d, $h, $m if $d <365;; my $y = $d / 365;; $d %= 365;; \
    return sprintf '%d %03d %02d:%02d', $y, $d, $h, $m},\
Warmwasserstart {ReadingsNum("$name","HwcStarts","") + ReadingsNum("$name","HwcUnderHundredStarts","")},\
HeizungBrennerStarts {ReadingsNum("$name","HcStarts","") + ReadingsNum("$name","HcUnderHundredStarts","")}

setstate Vaillant Flamme: off Wasserstart: 555 Heizungstarts: 754\
<br>HeizungVorlauf: 35.5  Rücklauf: 34.5</br>\
<br>Uptime: 0 015 00:24</br>
setstate Vaillant 2023-11-07 13:02:02 Aussentemp 11.000
setstate Vaillant 2023-10-18 16:05:55 FanHours_hoursum2_value 50
setstate Vaillant 2023-11-07 13:02:02 FanSpeed 0
setstate Vaillant 2023-11-07 13:02:02 Flame off
setstate Vaillant 2023-11-07 13:02:02 GasValve off
setstate Vaillant 2023-10-18 16:10:10 Gasvalve3UC on
setstate Vaillant 2023-09-24 11:14:04 HWCMode auto
setstate Vaillant 2023-10-18 16:06:13 HcHours 37
setstate Vaillant 2023-11-07 12:44:03 HcStarts 700
setstate Vaillant 2023-11-07 12:56:05 HcUnderHundredStarts 54
setstate Vaillant 2023-11-07 13:02:02 HeatingSwitch_onoff_value off
setstate Vaillant 2023-11-07 13:02:15 HeizungBrennerStarts 754
setstate Vaillant 2023-11-07 12:59:02 Heizungslast 0
setstate Vaillant 2023-10-18 16:06:05 HwcHours_hoursum2_value 7
setstate Vaillant 2023-10-18 16:07:16 HwcImpellorSwitch_yesno_value no
setstate Vaillant 2023-11-07 12:54:02 HwcStarts 500
setstate Vaillant 2023-10-18 16:05:49 HwcTemp 36.19
setstate Vaillant 2023-10-18 16:05:49 HwcTemp_sensor ok
setstate Vaillant 2023-11-07 12:54:02 HwcUnderHundredStarts 55
setstate Vaillant 2023-10-23 13:37:29 IODev MQTT
setstate Vaillant 2023-09-24 11:14:04 Maximaltemperatur 60
setstate Vaillant 2023-11-07 13:02:02 ModulationTempDesired_0_name
setstate Vaillant 2023-11-07 13:02:02 Modulationssollwert 0.0
setstate Vaillant 2023-11-07 13:02:02 Pumpenstatus off
setstate Vaillant 2023-10-18 16:05:46 Pumpenstunden 127
setstate Vaillant 2023-09-24 11:14:04 ReglerCurrentTemp 70
setstate Vaillant 2023-09-24 11:14:04 ReglerMaxTEMP 75.0
setstate Vaillant 2023-11-07 13:02:02 Ruecklauf 34.5
setstate Vaillant 2023-09-24 11:14:04 Status02_4_name temp1
setstate Vaillant 2023-09-24 11:14:04 Status02_4_value 65.0
setstate Vaillant 2023-11-07 13:02:02 Vorlauf 35.5
setstate Vaillant 2023-11-07 13:02:02 Warmwasser 35.5
setstate Vaillant 2023-11-07 13:02:02 Warmwasserdurchfluss 0.00
setstate Vaillant 2023-11-07 13:02:02 Warmwasserlast 0
setstate Vaillant 2023-11-07 13:02:15 Warmwasserstart 555
setstate Vaillant 2023-11-07 13:00:04 Wasserdruck 2.081
setstate Vaillant 2023-11-07 13:00:04 Wasserdruck_Sensor ok
RaspberryPi 4 Bullseye,Homematic,Z-Wave,Rademacher Duofern,Signalduino,Fritz7590,ESPEasy,Tasmota,Robonect,Kameras,1-Wire,Modbus,Solar,Maranz,VU+,ulanzi tc001 mit awtrix light

rubberduck67

Ich warte auf den Adapter von John, Ende des Monats wollte er eine Charge fertig haben. Er wird dann per WLAN eingebunden. Ich habe auch nur VCR710

rubberduck67

Den Adapter habe ich. Komunikaton mit dem Demon läuft. Aber wie schließe ich den Adapter an den eBus, was ist das für ein Stecker an der Vailant Heizung?

rubberduck67


Rainer1


rubberduck67

So jetzt erstmal den Zwischenstand..
Hardware Adapter V5 vom Team und einen Raspberry mit fhem für den ebusd. Übertragen wird mit WiFi.

Der ebusd läuft und ich kann den Bus auslesen.
Für die Integration habe ich das Modul EMCD genommen. Die Werte kann ich manuell auslesen, aber nicht automatisch.
Ich habe dafür einen Timer für die Automation
defmod EBUS.Timer at +*00:15:00 get Aussentemp Aussentemp;;;;get Vorlauf Vorlauf;;;;get Ruecklauf Ruecklauf;;;;get PumpeWatt PumpeWatt;;get Fanspeed Fanspeed;;;;get PumpeWatt PumpeWatt;;;;get HKurve HKurve
attr EBUS.Timer group VaillantControl
attr EBUS.Timer icon time_timer
attr EBUS.Timer room Vaillant
attr EBUS.Timer verbose 0

setstate EBUS.Timer Next: 10:57:28
setstate EBUS.Timer 2023-12-07 10:42:28 state Next: 10:57:28
Geht aber nicht  :o  Was mache ich da falsch? ::)

laserrichi

#8
Du kannst auch in deiner mqtt definition periodicCmd nutzen z.B.:

attr Vaillant periodicCmd Flame:1 Temperaturen:1 Modulationssollwert:1 HwcStarts:10 HwcUnderHundredStarts:10 Warmwasserlast:1
Heizungslast:5 Warmwasserdurchfluss:1 FanSpeed:1 Waterpressure:7 GasValve:1
HeatingSwitch_onoff_value:1 HcUnderHundredStarts:12 HcStarts:60
RaspberryPi 4 Bullseye,Homematic,Z-Wave,Rademacher Duofern,Signalduino,Fritz7590,ESPEasy,Tasmota,Robonect,Kameras,1-Wire,Modbus,Solar,Maranz,VU+,ulanzi tc001 mit awtrix light

Rainer1

Warum nicht per MQTT ? Habe EMCD auch gerade rausgeschmissen  ;D

laserrichi

ups dachte er hat das mit mqtt gemacht  emcd  verstand ich rein als dämon im linux
RaspberryPi 4 Bullseye,Homematic,Z-Wave,Rademacher Duofern,Signalduino,Fritz7590,ESPEasy,Tasmota,Robonect,Kameras,1-Wire,Modbus,Solar,Maranz,VU+,ulanzi tc001 mit awtrix light

rubberduck67

Inzwischen habe ich  auch MQTT2 am Start. Damit ging auch das EMCD automatisch... :-)