Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

My mqtt configuration.yaml #7

Open
Bjoern3003 opened this issue Jan 12, 2023 · 16 comments
Open

My mqtt configuration.yaml #7

Bjoern3003 opened this issue Jan 12, 2023 · 16 comments
Labels
documentation Improvements or additions to documentation

Comments

@Bjoern3003
Copy link

Bjoern3003 commented Jan 12, 2023

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 Bjoern3003 changed the title My mqtt Yaml Configuration My mqtt configuration.yaml Jan 12, 2023
@Bjoern3003
Copy link
Author

Bjoern3003 commented Jan 12, 2023

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
Copy link
Contributor

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?

@Alexandre-io Alexandre-io added the documentation Improvements or additions to documentation label Jan 24, 2023
@Qbunjo
Copy link
Contributor

Qbunjo commented Feb 3, 2023

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
Copy link
Author

Hi, please try this value_template for getBrennerStatus.

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

@Qbunjo
Copy link
Contributor

Qbunjo commented Feb 3, 2023

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
Copy link
Author

Bjoern3003 commented Feb 3, 2023

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

@Qbunjo
Copy link
Contributor

Qbunjo commented Feb 3, 2023

Indeed. Thank you.

@Bjoern3003
Copy link
Author

Thank you for reporting.

@Huskerdu24
Copy link

Huskerdu24 commented Sep 30, 2023

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

@skihoff
Copy link

skihoff commented Jan 13, 2024

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:

  • name: "BetriebsartM1"
    unique_id: "vcontroldgetBetriebArtM1"
    state_topic: "openv/getBetriebArtM1"
    device:
    identifiers: vcontrold
    manufacturer: Viessmann
    command_topic: "openv/setBetriebArtM1"
    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 %}

Any help is appreciated!

@dk1305hb
Copy link

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

select:
- name: "BetriebsartM1"
unique_id: "vcontroldgetBetriebArtM1"
state_topic: "openv/getBetriebArtM1"
device:
identifiers: vcontrold
manufacturer: Viessmann
command_topic: "openv/setBetriebArtM1"
options:
- "H+WW"
- "WW"
- "NORM"
- "ABSCHALT"

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

@skihoff
Copy link

skihoff commented Jan 14, 2024

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

select:

  • name: "BetriebsartM1"
    unique_id: "vcontroldgetBetriebArtM1"
    state_topic: "openv/getBetriebArtM1"
    device:
    identifiers: vcontrold
    manufacturer: Viessmann
    command_topic: "openv/setBetriebArtM1"
    options:
    • "H+WW"
    • "WW"
    • "NORM"
    • "ABSCHALT"

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
Copy link

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
Copy link

skihoff commented Jan 14, 2024

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
Copy link

Raudi1 commented Feb 4, 2024

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
Copy link

mxcxpx commented May 5, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

9 participants