Alexandre-io / homeassistant-vcontrol

Vcontrold Home Assistant add-on repository
Apache License 2.0
37 stars 24 forks source link

My mqtt configuration.yaml #7

Open Bjoern3003 opened 1 year ago

Bjoern3003 commented 1 year ago

Here is my first solution for the configuration.yaml to add end configure the entities. I hope this will help somebody

New Update in the next Answer

mqtt:
  binary_sensor:
    - name: "Status Pumpenzirkulation"
      unique_id: "vcontroldgetPumpeStatusZirku"
      state_topic: "openv/getPumpeStatusZirku"
      device_class: running
      value_template: "{% if(value|int == 0) %}OFF{% else %}ON{% endif %}"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Pumpen Status"
      unique_id: "vcontroldgetPumpeStatusM1"
      state_topic: "openv/getPumpeStatusM1"
      device_class: running
      value_template: "{% if(value|int == 0) %}OFF{% else %}ON{% endif %}"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Pumpen Status Sp"
      unique_id: "vcontroldgetPumpeStatusSp"
      state_topic: "openv/getPumpeStatusSp"
      device_class: running
      value_template: "{% if(value|int == 0) %}OFF{% else %}ON{% endif %}"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Brenner Status"
      unique_id: "vcontroldgetBrennerStatus"
      state_topic: "openv/getBrennerStatus"
      device_class: running
      value_template: "{% if(value|int == 0) %}OFF{% else %}ON{% endif %}"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
  sensor:
    - name: "Aussentemperatur"
      unique_id: "vcontroldgetTempA"
      device_class: temperature
      state_topic: "openv/getTempA"
      unit_of_measurement: "°C"
      value_template: |-
        {{ value | round(2) }}
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Warmwasser Ist Temperatur"
      unique_id: "vcontroldgetTempWWist"
      device_class: temperature
      state_topic: "openv/getTempWWist"
      unit_of_measurement: "°C"
      value_template: |-
        {{ value | round(2) }}
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Warmwasser Soll Temperatur"
      unique_id: "vcontroldgetTempWWsoll"
      device_class: temperature
      state_topic: "openv/getTempWWsoll"
      unit_of_measurement: "°C"
      value_template: |-
        {{ value | round(2) }}
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Kessel Ist Temperatur"
      unique_id: "vcontroldgetTempKist"
      device_class: temperature
      state_topic: "openv/getTempKist"
      unit_of_measurement: "°C"
      value_template: |-
        {{ value | round(2) }}
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Kessel Soll Temperatur"
      unique_id: "vcontroldgetTempKsoll"
      device_class: temperature
      state_topic: "openv/getTempKsoll"
      unit_of_measurement: "°C"
      value_template: |-
        {{ value | round(2) }}
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Raumsolltemperatur normal M1"
      unique_id: "vcontroldgetTempRaumNorSollM1"
      device_class: temperature
      state_topic: "openv/getTempRaumNorSollM1"
      unit_of_measurement: "°C"
      value_template: |-
        {{ value | round(2) }}
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Raumsolltemperatur reduziert"
      unique_id: "vcontroldgetTempRaumRedSollM1"
      device_class: temperature
      state_topic: "openv/getTempRaumRedSollM1"
      unit_of_measurement: "°C"
      value_template: |-
        {{ value | round(2) }}
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Betriebsart Party M1"
      unique_id: "vcontroldgetBetriebPartyM1"
      device_class: temperature
      state_topic: "openv/getBetriebPartyM1"
      unit_of_measurement: "°C"
      value_template: |-
        {{ value | round(2) }}
      device:
        identifiers: vcontrold
        manufacturer: Viessmann

    - name: "Niveau Mischer1"
      unique_id: "vcontroldgetNiveauM1"
      state_topic: "openv/getNiveauM1"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
      value_template: |-
        {{ value | round(0) }}
    - name: "Neigung Mischer1"
      unique_id: "vcontroldgetNeigungM1"
      state_topic: "openv/getNeigungM1"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
      value_template: |-
        {{ value | round(1) }}
    - name: "Brenner Starts"
      unique_id: "vcontroldgetBrennerStarts"
      state_topic: "openv/getBrennerStarts"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
      unit_of_measurement: "Starts"
      value_template: |-
        {{ value | round(0) }}
    - name: "Brenner Stunden 1"
      unique_id: "vcontroldgetBrennerStunden1"
      state_topic: "openv/getBrennerStunden1"
      device_class: duration
      unit_of_measurement: h
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Betriebsart"
      unique_id: "vcontroldgetBetriebArt"
      state_topic: "openv/getBetriebArt"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
      value_template: |-
        {% if value == 'H+WW' %}
          Heizen+Warmwasser
        {% elif value == 'WW' %}
          Warmwasser
        {% elif value == 'RED' %}
          Reduziert
        {% elif value == 'NORM' %}
          Normal
        {% elif value == 'H+WW' %}
          Frostschutz
        {% elif value == 'ABSCHALT' %}
          Abschaltbetrieb
        {% endif %}
    - name: "Vorlauftemperatur M1"
      unique_id: "vcontroldgetTempVListM1"
      state_topic: "openv/getTempVListM1"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
      unit_of_measurement: "°C"
      value_template: |-
        {{ value | round(2) }}
    - name: "Vorlaufsolltemperatur M1"
      unique_id: "vcontroldgetTempVLsollM1"
      state_topic: "openv/getTempVLsollM1"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
      unit_of_measurement: "°C"
      value_template: |-
        {{ value | round(2) }}
    - name: "Kesseloffset KT ueber WWsoll"
      unique_id: "vcontroldgetTempKOffset"
      state_topic: "openv/getTempKOffset"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
      unit_of_measurement: "°C"
      value_template: |-
        {{ value | round(2) }}

  # Fehler    
    - name: "Fehler 1"
      unique_id: "vcontroldgetError0"
      state_topic: "openv/getError0"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Fehler 2"
      unique_id: "vcontroldgetError1"
      state_topic: "openv/getError1"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Fehler 3"
      unique_id: "vcontroldgetError2"
      state_topic: "openv/getError2"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Fehler 4"
      unique_id: "vcontroldgetError3"
      state_topic: "openv/getError3"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Fehler 5"
      unique_id: "vcontroldgetError4"
      state_topic: "openv/getError4"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Fehler 6"
      unique_id: "vcontroldgetError5"
      state_topic: "openv/getError5"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Fehler 7"
      unique_id: "vcontroldgetError6"
      state_topic: "openv/getError6"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Fehler 8"
      unique_id: "vcontroldgetError7"
      state_topic: "openv/getError7"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Fehler 9"
      unique_id: "vcontroldgetError8"
      state_topic: "openv/getError8"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Fehler 10"
      unique_id: "vcontroldgetError9"
      state_topic: "openv/getError9"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
Bjoern3003 commented 1 year ago

And an updated Version with select and switch entities to set values in vcontrold.

mqtt:
  binary_sensor:
    - name: "Status Pumpenzirkulation"
      unique_id: "vcontroldgetPumpeStatusZirku"
      state_topic: "openv/getPumpeStatusZirku"
      device_class: running
      value_template: "{% if(value|int == '0') %}OFF{% else %}ON{% endif %}"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Pumpen Status"
      unique_id: "vcontroldgetPumpeStatusM1"
      state_topic: "openv/getPumpeStatusM1"
      device_class: running
      value_template: "{% if(value|int == '0') %}OFF{% else %}ON{% endif %}"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Pumpen Status Sp"
      unique_id: "vcontroldgetPumpeStatusSp"
      state_topic: "openv/getPumpeStatusSp"
      device_class: running
      value_template: "{% if(value|int == 0) %}OFF{% else %}ON{% endif %}"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Brenner Status"
      unique_id: "vcontroldgetBrennerStatus"
      state_topic: "openv/getBrennerStatus"
      device_class: running
      value_template: "{% if(value|int == '0') %}OFF{% else %}ON{% endif %}"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
  select:
    - name: "Betriebsart"
      unique_id: "vcontroldgetBetriebArt"
      state_topic: "openv/getBetriebArt"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
      command_topic: "openv/setBetriebArt"
      options:
        - "Heizen+Warmwasser"
        - "Warmwasser"
        - "Reduziert"
        - "Normal"
        - "Frostschutz"
        - "Abschaltbetrieb"
      command_template: |-
        {% if value == 'Heizen+Warmwasser' %}
          H+WW
        {% elif value == 'Warmwasser' %}
          WW
        {% elif value == 'Reduziert' %}
          RED
        {% elif value == 'Normal' %}
          NORM
        {% elif value == 'Frostschutz' %}
          H+WW FS
        {% elif value == 'Abschaltbetrieb' %}
          ABSCHALT
        {% endif %}
      value_template: |-
        {% if value == 'H+WW' %}
          Heizen+Warmwasser
        {% elif value == 'WW' %}
          Warmwasser
        {% elif value == 'RED' %}
          Reduziert
        {% elif value == 'NORM' %}
          Normal
        {% elif value == 'H+WW FS' %}
          Frostschutz
        {% elif value == 'ABSCHALT' %}
          Abschaltbetrieb
        {% endif %}
    - name: "Raumsolltemperatur normal"
      unique_id: "vcontroldgetTempRaumNorSollM1"
      state_topic: "openv/getTempRaumNorSollM1"
      value_template: |-
        {{ value | round(0) }}
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
      command_topic: "openv/setTempRaumNorSollM1"
      options:
        - "3"
        - "4"
        - "5"
        - "6"
        - "7"
        - "8"
        - "9"
        - "10"
        - "11"
        - "12"
        - "13"
        - "14"
        - "15"
        - "16"
        - "17"
        - "18"
        - "19"
        - "20"
        - "21"
        - "22"
        - "23"
        - "24"
        - "25"
        - "26"
        - "27"
        - "28"
        - "29"
        - "30"
        - "31"
        - "32"
        - "33"
        - "34"
        - "35"
        - "36"
        - "37"
    - name: "Raumsolltemperatur reduziert"
      unique_id: "vcontroldgetTempRaumRedSollM1"
      state_topic: "openv/getTempRaumRedSollM1"
      value_template: |-
        {{ value | round(0) }}
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
      command_topic: "openv/setTempRaumRedSollM1"
      options:
        - "3"
        - "4"
        - "5"
        - "6"
        - "7"
        - "8"
        - "9"
        - "10"
        - "11"
        - "12"
        - "13"
        - "14"
        - "15"
        - "16"
        - "17"
        - "18"
        - "19"
        - "20"
        - "21"
        - "22"
        - "23"
        - "24"
        - "25"
        - "26"
        - "27"
        - "28"
        - "29"
        - "30"
        - "31"
        - "32"
        - "33"
        - "34"
        - "35"
        - "36"
        - "37"
    - name: "Solltemperatur Partybetrieb"
      unique_id: "vcontroldTempPartyM1"
      state_topic: "openv/getTempPartyM1"
      value_template: |-
        {{ value | round(0) }}
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
      command_topic: "openv/getTempPartyM1"
      options:
        - "3"
        - "4"
        - "5"
        - "6"
        - "7"
        - "8"
        - "9"
        - "10"
        - "11"
        - "12"
        - "13"
        - "14"
        - "15"
        - "16"
        - "17"
        - "18"
        - "19"
        - "20"
        - "21"
        - "22"
        - "23"
        - "24"
        - "25"
        - "26"
        - "27"
        - "28"
        - "29"
        - "30"
        - "31"
        - "32"
        - "33"
        - "34"
        - "35"
        - "36"
        - "37"
    - name: "Neigung Mischer"
      unique_id: "vcontroldgetNeigungM1"
      state_topic: "openv/getNeigungM1"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
      value_template: |-
        {{ value | round(1) }}
      command_topic: "openv/setNeigungM1"
      options:
        - "0.2"
        - "0.3"
        - "0.4"
        - "0.5"
        - "0.6"
        - "0.7"
        - "0.8"
        - "0.9"
        - "1.0"
        - "1.1"
        - "1.2"
        - "1.3"
        - "1.4"
        - "1.5"
        - "1.6"
        - "1.7"
        - "1.8"
        - "1.9"
        - "2.0"
        - "2.1"
        - "2.2"
        - "2.3"
        - "2.4"
        - "2.5"
        - "2.6"
        - "2.7"
        - "2.8"
        - "2.9"
        - "3.0"
        - "3.1"
        - "3.2"
        - "3.3"
        - "3.4"
        - "3.5"
    - name: "Niveau Mischer"
      unique_id: "vcontroldgetNiveauM1"
      state_topic: "openv/getNiveauM1"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
      value_template: |-
        {{ value | round(0) }}
      command_topic: "openv/setNiveauM1"
      options:
        - "-13"
        - "-12"
        - "-11"
        - "-10"
        - "-9"
        - "-8"
        - "-7"
        - "-6"
        - "-5"
        - "-4"
        - "-3"
        - "-2"
        - "-1"
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
        - "7"
        - "8"
        - "9"
        - "10"
        - "11"
        - "12"
        - "13"
        - "14"
        - "15"
        - "16"
        - "17"
        - "18"
        - "19"
        - "20"
        - "21"
        - "22"
        - "23"
        - "24"
        - "25"
        - "26"
        - "27"
        - "28"
        - "29"
        - "30"
        - "31"
        - "32"
        - "33"
        - "34"
        - "35"
        - "36"
        - "37"
        - "38"
        - "39"
        - "40"
  sensor:
    - name: "Aussentemperatur"
      unique_id: "vcontroldgetTempA"
      device_class: temperature
      state_topic: "openv/getTempA"
      unit_of_measurement: "°C"
      value_template: |-
        {{ value | round(2) }}
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Warmwasser Ist Temperatur"
      unique_id: "vcontroldgetTempWWist"
      device_class: temperature
      state_topic: "openv/getTempWWist"
      unit_of_measurement: "°C"
      value_template: |-
        {{ value | round(2) }}
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Warmwasser Soll Temperatur"
      unique_id: "vcontroldgetTempWWsoll"
      device_class: temperature
      state_topic: "openv/getTempWWsoll"
      unit_of_measurement: "°C"
      value_template: |-
        {{ value | round(2) }}
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Kessel Ist Temperatur"
      unique_id: "vcontroldgetTempKist"
      device_class: temperature
      state_topic: "openv/getTempKist"
      unit_of_measurement: "°C"
      value_template: |-
        {{ value | round(2) }}
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Kessel Soll Temperatur"
      unique_id: "vcontroldgetTempKsoll"
      device_class: temperature
      state_topic: "openv/getTempKsoll"
      unit_of_measurement: "°C"
      value_template: |-
        {{ value | round(2) }}
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Brenner Starts"
      unique_id: "vcontroldgetBrennerStarts"
      state_topic: "openv/getBrennerStarts"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
      unit_of_measurement: "Starts"
      value_template: |-
        {{ value | round(0) }}
    - name: "Brenner Stunden 1"
      unique_id: "vcontroldgetBrennerStunden1"
      state_topic: "openv/getBrennerStunden1"
      device_class: duration
      unit_of_measurement: h
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Vorlauftemperatur M1"
      unique_id: "vcontroldgetTempVListM1"
      state_topic: "openv/getTempVListM1"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
      unit_of_measurement: "°C"
      value_template: |-
        {{ value | round(2) }}
    - name: "Vorlaufsolltemperatur M1"
      unique_id: "vcontroldgetTempVLsollM1"
      state_topic: "openv/getTempVLsollM1"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
      unit_of_measurement: "°C"
      value_template: |-
        {{ value | round(2) }}
    - name: "Kesseloffset KT ueber WWsoll"
      unique_id: "vcontroldgetTempKOffset"
      state_topic: "openv/getTempKOffset"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
      unit_of_measurement: "°C"
      value_template: |-
        {{ value | round(2) }}

  # Fehler    
    - name: "Fehler 1"
      unique_id: "vcontroldgetError0"
      state_topic: "openv/getError0"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Fehler 2"
      unique_id: "vcontroldgetError1"
      state_topic: "openv/getError1"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Fehler 3"
      unique_id: "vcontroldgetError2"
      state_topic: "openv/getError2"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Fehler 4"
      unique_id: "vcontroldgetError3"
      state_topic: "openv/getError3"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Fehler 5"
      unique_id: "vcontroldgetError4"
      state_topic: "openv/getError4"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Fehler 6"
      unique_id: "vcontroldgetError5"
      state_topic: "openv/getError5"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Fehler 7"
      unique_id: "vcontroldgetError6"
      state_topic: "openv/getError6"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Fehler 8"
      unique_id: "vcontroldgetError7"
      state_topic: "openv/getError7"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Fehler 9"
      unique_id: "vcontroldgetError8"
      state_topic: "openv/getError8"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
    - name: "Fehler 10"
      unique_id: "vcontroldgetError9"
      state_topic: "openv/getError9"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann

    - name: "WarmwasserRuecklauf"
      unique_id: "WarmwasserRuecklauf"
      state_topic: "esp_viessmann/4025510030891776127/Temperature"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
      unit_of_measurement: "°C"
      value_template: |-
        {{ value | round(2) }}
    - name: "WarmwasserVorlauf"
      unique_id: "WarmwasserVorlauf"
      state_topic: "esp_viessmann/40255100308914319361/Temperature"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
      unit_of_measurement: "°C"
      value_template: |-
        {{ value | round(2) }}
  switch:
    - name: "Betriebsart Party"
      unique_id: "vcontroldgetBetriebPartyM1"
      state_topic: "openv/getBetriebPartyM1"
      command_topic: "openv/setBetriebPartyM1"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann
      value_template: | 
        {{ value|round(0) }}
      payload_on: 1
      payload_off: 0
      state_on: 1
      state_off: 0
Schm1tz1 commented 1 year ago

Very nice work, will test it today or tomorrow in my setup. @Alexandre-io how about adding some example configs based on this work - what do you think?

Qbunjo commented 1 year ago

Hello, @Bjoern3003. That's very nice configuration. I tried it today, however I've got few problems with it. For instance, the getBrennerStatus shows "on" all the time, despite it's off. When I check it manually from the console with vsensor, it shows "0" of course. The similar situation is with the Party and Spare modes.

Bjoern3003 commented 1 year ago

Hi, please try this value_template for getBrennerStatus.

value_template: "{% if(value|int == 0) %}OFF{% else %}ON{% endif %}"

Qbunjo commented 1 year ago

That is exactly the same template what I used. - name: "Brenner Status" unique_id: "vcontroldgetBrennerStatus" state_topic: "openv/getBrennerStatus" device_class: running value_template: "{% if(value|int == '0') %}OFF{% else %}ON{% endif %}" device: identifiers: vcontrold manufacturer: Viessmann

Bjoern3003 commented 1 year ago

No, its quoted. If have removed the ' before and after 0 to check for integer and not as string.

Qbunjo commented 1 year ago

Indeed. Thank you.

Bjoern3003 commented 1 year ago

Thank you for reporting.

Huskerdu24 commented 11 months ago

Does anyone have a template for setting individual heating schedules? "setTimerMoHeizen" i.e. TIA.

skihoff commented 7 months ago

I'm kind of lost and could need some advise with getting and setting the Betriebsart. I've set up vcontrol to get two Betriebsarten, one for M1, one for M2. Both are received by vcontrol correctly, e.g.:

[76] Sat Jan 13 18:13:11 2024 : Command: getBetriebArtM1 (...) [76] Sat Jan 13 18:13:11 2024 : <RECV: received 01 01 33 23 01 02 61 [76] Sat Jan 13 18:13:11 2024 : >FRAMER: framer_reset_actaddr framer_current_addr = FRAMER_NO_ADDR (was 2333) [76] Sat Jan 13 18:13:11 2024 : 02 -> NORM [76] Sat Jan 13 18:13:11 2024 : NORM

So Betriebsart 'NORM' is received correctly.

However, the values for Betriebsart M1 and M2 in Homeassistant are shown as "unknown".

Log is showing:

2024-01-13 18:15:27.356 ERROR (MainThread) [homeassistant.components.mqtt.select] Invalid option for select.mosquitto_broker_betriebsartm1: '' (valid options: ['Heizen+Warmwasser', 'Warmwasser', 'Reduziert', 'Normal', 'Frostschutz', 'Abschaltbetrieb']) 2024-01-13 18:15:27.370 ERROR (MainThread) [homeassistant.components.mqtt.select] Invalid option for select.mosquitto_broker_betriebsartm2: '' (valid options: ['Heizen+Warmwasser', 'Warmwasser', 'Reduziert', 'Normal', 'Frostschutz', 'Abschaltbetrieb'])

My yaml extract:

select:

Any help is appreciated!

dk1305hb commented 7 months ago

Hi @skihoff the errormsg says there is something wrong with the select field mapping, maybe you can check without command and value template:

select:

If this is functional, I would play with the command template notation (correct line indentations).

skihoff commented 7 months ago

Thanks @dk1305hb, good idea starting debugging with lower complexity. I've changed the mqtt yaml file as suggested:

select:

Ouput of vcontrold same as above as expected: [74] Sun Jan 14 17:54:34 2024 : Command: getBetriebArtM1 (...) [74] Sun Jan 14 17:54:34 2024 : 02 -> NORM [74] Sun Jan 14 17:54:34 2024 : NORM

Logfile now shows a different message:

2024-01-14 17:58:31.778 ERROR (MainThread) [homeassistant.components.mqtt.select] Invalid option for select.mosquitto_broker_betriebsartm1: '0.000000' (valid options: ['H+WW', 'WW', 'NORM', 'ABSCHALT'])

Not sure what's happening here, the string 'NORM' seems to be incorrectly parsed from vcontrol into homeassistant and ending up as '0.000000' in HA. Unfortunately I'm lacking basic HA system knowledge and am lost at this point. If anyone has an idea what else to check, pls. let me know and I'll try.

dk1305hb commented 7 months ago

Do you use your own mqtt broker? Can you check with MQTT Explorer if your values are received correctly?

Bildschirmfoto 2024-01-14 um 18 37 13

Dont worry, my values have got other names, I use my own vcontrol instance...

If mqtt is ok, did you try you try a simple field with "getTempA" ?

skihoff commented 7 months ago

Thanks @dk1305hb, this pointed me into the right direction. MQTT Explorer also showed the value as float, so I could relate the issue to the vcontrol side. I figured I simply forgot to put ":STRING" behind my getBetriebArtM1 command in the list of commands. All working now!

Raudi1 commented 6 months ago

For those who want to control the water temperature, here's my MQTT config for it. Naturally the relevant get/set commands have to be present in vito.xml.

water_heater:
    - name: "Warmwasser Temperatur"
      unique_id: "vcontroldTempWW"
      current_temperature_topic: "openv/getTempWWist"
      temperature_command_topic: "openv/setTempWWsoll"
      temperature_state_topic: "openv/getTempWWsoll"
      temperature_unit: "C"
      device:
        identifiers: vcontrold
        manufacturer: Viessmann

Seems to work for now. The only issue I noticed so far is HA thinks the boiler is permanently off. Don't care enough about it to fix it for now though.

mxcxpx commented 3 months ago

is it possible to get data for the Solarengergy? (Water from Roof) the Vcare app shows no data. but the vitodens itself shows values every day.