Alexandre-io / homeassistant-vcontrol

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

Add-On still exit #3

Open Bjoern3003 opened 1 year ago

Bjoern3003 commented 1 year ago

Hi,

I have tried your Add-On.

But after configuration an start, the Add-On is stopped after a few seconds.

1673024611

Do you have an Idea, what do I have to do, that the Add-On is not stopped.

Alexandre-io commented 1 year ago

Hi @Bjoern3003 !

I have added a debug option in the latest version of the addon (1.5.0). Could you try enabling it and see if the output can be more helpful.

It could be related to the hardware. I only tested the official optolink cable with a raspberry pi 4.

Bjoern3003 commented 1 year ago

Hi @Alexandre-io

thank you for your fast response. Now the Add-On is running. The Log is looking like this:

1673114270

Do I have to send a request to the Addon, to get Informations from my viessmann or does the Add-On create own entities?

Bjoern3003 commented 1 year ago

Yeah, now I get Informations in my mqtt Broker. Did not know, why its now working. But it is :-)

Does your Addon have an event to send commands to vclient?

Schm1tz1 commented 1 year ago

Hi @Bjoern3003 , maybe I can help you - just set this add-on up like a week ago. The add-on is basically a docker container running vcontrold and vclient with a template to periodically poll data from your Viessmann device and push it to MQTT. The interval is configured with the "refresh rate" value in seconds and to get the data into entities you need to set up MQTT Sensors (https://www.home-assistant.io/integrations/sensor.mqtt/).

Example snippet from my configuration.yaml:

mqtt:
  sensor:
    - name: "Vitodens Brennerstarts"
      state_topic: "openv/getBrennerStarts"

    - name: "Vitodens Brenner Betriebsstunden"
      state_topic: "openv/getBrennerStunden1"

    - name: "Vitodens Brenner Status"
      state_topic: "openv/getBrennerStatus"

    - name: "Vitodens Aussentemperatur"
      state_topic: "openv/getTempA"
      unit_of_measurement: "°C"

    - name: "Vitodens Kesseltemperatur Ist"
      state_topic: "openv/getTempKist"
      unit_of_measurement: "°C"

    - name: "Vitodens Kesseltemperatur Soll"
      state_topic: "openv/getTempKsoll"
      unit_of_measurement: "°C"

    - name: "Vitodens Warmwassertemperatur Ist"
      state_topic: "openv/getTempWWist"
      unit_of_measurement: "°C"

    - name: "Vitodens Warmwassertemperatur Soll"
      state_topic: "openv/getTempWWsoll"
      unit_of_measurement: "°C"

Check, reload your configuration and you will see the new entities for the Vitodens sensors.

Bjoern3003 commented 1 year ago

Hi @Schm1tz1 thank you for your answer.

But mean a send command to set Setting in my Viessmann Heater eg. setNeigungM1

Funfact: You are living around 25km far away from me ;-)

Bjoern3003 commented 1 year ago

Okay, I have found a answer by myself :-)

I can easy use the mqtt publisher event.

Example to edit the NeigungM1:

service: mqtt.publish
data:
  topic: openv/setNeigungM1
  payload: "1.1"
Schm1tz1 commented 1 year ago

Hi @Schm1tz1 thank you for your answer.

But mean a send command to set Setting in my Viessmann Heater eg. setNeigungM1

Haven't used that part in detail but it is implemented in https://github.com/Alexandre-io/homeassistant-vcontrol/blob/main/vcontrold/rootfs/etc/services.d/vclient_sub/run Basically you publish 42 to a topic openv/setFooBar and it will call setFooBar 42 in vclient, that means it work just the other way around as the getters. From what I remember vclient is somewhat sensitive to number formats so one needs to be a bit careful.

Funfact: You are living around 25km far away from me ;-)

Nice! North or south?

Schm1tz1 commented 1 year ago

Update: Works as intended. Published "openv/setTempWWsoll 51" and the topic "openv/getTempWWsoll" returns the same value during next update. Values are also correctly shown in the Vitodens display.

Bjoern3003 commented 1 year ago

Funfact: You are living around 25km far away from me ;-)

Nice! North or south?

@Schm1tz1 Next to Neuwied.

Update: Works as intended. Published "openv/setTempWWsoll 51" and the topic "openv/getTempWWsoll" returns the same value during next update. Values are also correctly shown in the Vitodens display.

I have added my solution here: https://github.com/Alexandre-io/homeassistant-vcontrol/issues/7 Maybe it's also interested for you.

raph2i commented 1 year ago

Hey there, i've the same problem :) RPi Zero W , Debian Bullseye, vcontrold via hassio-addon via Network with vclient

Bjoern3003 commented 1 year ago

Hi @raph2i, what does your Addon log say?

Alexandre-io commented 1 year ago

Hi @raph2i ! As @Bjoern3003 said, we need the logs of the addon to help you :) Sometimes vcontrold doesn't detect the USB cable, you have to unplug/plug it.

Schm1tz1 commented 1 year ago

@Alexandre-io @raph2i another thing that comes to my mind - you are mentioning Debian Bullseye. Does that mean you are running on docker? In that case you might need to set the tty settings and please check with dmesg what device is added once you plug in.

raph2i commented 1 year ago

Hey there, sorry for latency... i've restarted my whole setup twice 2 days ago, and now it works. Weird...

My setup looks like this:

image

There are some other issues, which have been fixed already (i'll have to use the new image...)

Addon-Config:

tty: /dev/ttyUSB0
refresh: 30
device_id: "2098"
remote_vcontrol: true
vcontrol_host: REDACTED
vcontrol_port: 3002
debug: false
commands:
  - getTempA:FLOAT
  - getTempWWist:FLOAT
  - getTempWWsoll:FLOAT
  - getTempKist:FLOAT
  - getTempKsoll:FLOAT
  - getTempVLsollM1:FLOAT
  - getTempVLsollM2:FLOAT
  - getTempVListM2:FLOAT
  - getTempRaumNorSollM1:FLOAT
  - getTempRaumNorSollM2:FLOAT
  - getTempRaumRedSollM1:FLOAT
  - getTempRaumRedSollM2:FLOAT
  - getBrennerStarts:FLOAT
  - getBrennerStunden1:FLOAT
  - getBrennerStunden2:FLOAT
  - getPumpeStatusM1:FLOAT
  - getPumpeStatusM2:FLOAT
  - getMischerM1:FLOAT
  - getMischerM2:FLOAT
  - getMischerM3:FLOAT
  - getError0:STRING
  - getError1:STRING
  - getError2:STRING
  - getError3:STRING
  - getError4:STRING
  - getError5:STRING
  - getError6:STRING
  - getError7:STRING
  - getError8:STRING
  - getError9:STRING
  - getSystemTime:STRING
  - getNeigungM1:FLOAT
  - getNeigungM2:FLOAT
  - getNiveauM1:FLOAT
  - getNiveauM2:FLOAT
  - getBetriebPartyM1:STRING
  - getBetriebArtM1:STRING
  - getBetriebSparM1:STRING
  - getTempPartyM1:FLOAT