Git Product home page Git Product logo

hass-peaqhvac's Introduction

Peaq_downloads hass-peaqhvac_downloads Paypal BuyMeACoffee Discord

Peaqhvac

PeaqHvac is a custom component for Nibe F-series users. As of 2022-12-20 the tested versions are exhaust-air pumps F730 and F750, but it probably works fine with other similar ones as well. In future releases other brands might be added.

Because of the slow response from the Nibe Uplink-api, calls are made somewhat prematurely to try and correct for this lag. If peakshaving is active (requires PeaqEv) this means that peaks sometimes cannot be avoided completely, but rather lessened in their emphasis.

Preparations

Nibe

Nibe clients will need to have an uplink premium subscription in order to be able to manipulate the Hvac remotely.

It is required to have at least this setup in your configuration.yaml:

nibe:
  systems:
    - system: 1234567890
      sensors:
        - 40995
        - 40997
        - 47206
  • Set a heat-curve on your system that corresponds well to your desired level of heating at offset 0. Offsets is what PeaqHvac will manipulate
  • Turn off indoor climate control on the heat pump as PeaqHvac now takes that role
  • Turn off Nibe Smart Price Adaption if activated

Integrations used

Required:

Optional:

  • Peak-shaving: PeaqEv
  • Weather-prognosis: Met (with hourly sensor active)

Installation

Required to install is Home Assistant version 2023.10.5 or higher.

Preferred if you have HACS installed is to search for Peaqhvac there.

Otherwise you may:

  • Copy custom_components/peaqhvac folder to <config_dir>/custom_components/peaqhvac/
  • Restart Home assistant
  • Go to Configuration > Devices & Services > Add integration

Configuration

There are a few options when configuring PeaqHvac:

Name Description
Hvac systemid The provided system-id from your vendor. For Nibe F-series this is often a five digit number.
Temp sensors indoors Your indoor temp sensor(s). Added as sensor.my_sensor. Comma-separated if many.
Temp sensors outdoors Your outdoor temp sensor(s). Added as sensor.my_sensor. Comma-separated if many.
Stop heating temp The outside temp where you never want Peaqhvac to start heating
Very cold temp A very cold outside temp in your area, where Peaqhvac should start acting differently to save energy. Not recommended to put value below -10C here.
Nonhours waterboost A selectable list of hours where you never wish to have a water-boost conducted (not operational)
Low DM-value A number somewhere in between your Compressor-start and Electric addon start. Lower than this and Peaqhvac will take extra steps to conserve energy

Functions

Heating

PeaqHvac works with the common peaqevcore-library which is also used by PeaqEv to calculate good and bad hours of operation. What comes out of that is a set of offsets for today (and tomorrow if available) that are used to tune your hvac up/down accordingly. After this calculation several things do happen, depending on the number of temperature-sensors used, if you want peak-shaving or not and if you have set up weather integration.

  1. Weather: If peaqhvac detects an anomaly of more than 2.5C in the coming three hours from now, it will adjust the offset to pre-heat/pre-cold and make the curve more lean
  2. Temp diff: Depending on your mode of operation, PeaqHvac is more or less forgiving towards temperature-changes. Normal operation for instance has a tolerance of -0.2C and +0.4C. These tolerances may also change depending on the base-offset. If the current indoor-temp breaches these thresholds, temp-diff will add/remove steps from the offset.
  3. Temp trend: If the current trend of temperatures indoors tells the system that within an hour, it will breach the tolerances descired above, this function will add/remove steps.
  4. Temp extremas: If you have more than one indoor-tempsensor only This will add/deduct small fractions of steps based on how much of an extreme the very lowest/highest temps are compared to the mean. This function will rarely hit a full step-change, but gives an indication of how flat or jumpy your indoors temps are.

Key functions that do occur occasionally:

  • High ventilation at sunwarm: If current temp is > 1C above set, and if both indoor and outdoor trends are rising heavily, the temperature will boost to take the "free" warm air into the system. This happens down to a minimum of -5C
  • High ventilation at low DM: If the Degree-minutes drop below -700, the ventilation will boost to allow more air to flow into the system and overclock the compressor to its maximum frequency. This happens down to a minimum of -12C
  • Lower offset at low DM: If the Degree-minutes drop below -700, the calculated offset will be lowered by 1 step.
  • Lower offset at Electrical addon: If the Electrical addon is in use (for heating), the calculated offset will be lowered by 2 steps.
  • Lower offset at peak breach (requires PeaqEv): If the projected consumption for the hour is above 100% of the registered max-peak and more than 30 minutes have passed, the calculated offset will be lowered by 1 step.
  • Peak hour turnoff: If the current hour is the most expensive, and the temperature is more than 1C over set temp, a temporary offset of -10 will be pushed. This means that in most cases the pump will stop producing heat rather quickly.

Water

If control water is enabled a brief hot-waterboost will run (for ten minutes) when:

  1. current offset is > 0 (relatively cheap hour) and watertemp is below 42C at approx 10 min past the hour
  2. current offset is <= 0 (relatively expensive hour) and watertemp is below 30C at approx 10 min past the hour

Furthermore, when the cheapest hour in the known span occurs a real boost (up to the set boost-temp) will happen. This will often include a small amount of electrical addon.

In future versions the hot water will get more love, for instance a secondary threshold to run boost or not (if cheap is not cheap enough) and to divert from certain hours alltogether despite the temp being too low.

Included sensors

Climate

climate.peaqhvac_climate_control

Set your desired temperature with this climate-control, in steps of half-degrees from 15-27C. There are presets available in this sensor that you may set by automations or manually. They have different characteristics:

  • None - Normal operation
  • Eco - Reduced tolerance for increased temperatures before lowering offset. Will also reduce temperature by 0.1C per 1.5C if below -5C
  • Away - Set temperature is lowered by 1C. Heavily reduced tolerance for increased temperatures before lowering offset. Will also reduce temperature by 0.1C per 1.5C if below -5C

Sensors

  • number.peaqhvac_tolerance - The number set here determines how well the offsets will align with the daily price-curve. Integers 1-10. Remember that the higher the number, the higher the risk of electrical addon-usage and/or peak-energy hours.
  • sensor.peaqhvac_calculated_hvac_offset - This sensor will give you information on the currently calculated offset (which is pushed to the Hvac if control heat is enabled). The attributes shows you the different calculation-steps to override a specific hourly offset based on the price. Here you may also retrieve the offsets for today, tomorrow plus the "raw" offsets for today that are without weather prognosis-interference.
  • sensor.peaqhvac_average_temperature_indoors| sensor.peaqhvac_average_temperature_outdoors - The average temperatures based on the sensors you provide in setup.
  • sensor.peaqhvac_temperature_trend_indoors| sensor.peaqhvac_temperature_trend_outdoors - The current temperature trends registered as C/h.

Switches

  • switch.peaqhvac_enabled - This is the main switch to turn PeaqHvac on/off from your system.
  • switch.peaqhvac_control_heat - If on, the heating will be controlled as described above
  • switch.peaqhvac_control_water - If on, the water supply will be controlled as described above

hass-peaqhvac's People

Contributors

elden1337 avatar misa1515 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

enoch85 misa1515

hass-peaqhvac's Issues

Fix faulty calc for next boost

Wants to start at :59 regularly which is wrong for future hours.

Also seems to forget to recalc, perhaps not getting tomprrows prices at 13h as it should?

Smooth out short valleys

To lower jumpy strain on hvac

If hour 1 - 3
hour 2 - 1
hour 3 - 3

Then average all three hours to 2

Make prediction for hours and heat

If we have heated the pipes to x, and a couple of expensive hours are approaching, take next cheap period into account (with weather forecast) to possibly not lower entirely.

Perceived temp

Take indoor temp, outdoor temp and vent into account. Possibly also forecast.

For instance, 20c indoors feels much colder when its 0 outside than when its 12c outside.
Sometimes indoor temp might have to be slightly increased to add comfort.

wished temperature sensor

should be an input_number in HA.
this data should be taken into account when measuring offset-steps and demand

Refactor water heater coord

1, change threshold for operations from offset > 0 to >= 0
2. Alter tempthreshold and time threshold so that they play nicer with a lower peak.

Temp trend offset wrong

It's 0.9 above set and trend is -0.4. Temp trend offset still claims -1. Which adds to the delay of preheating

-10 more aggressively

Ignore current temp.
Never boost water.
Check that peak is single hour or max x hours long

Make delay in water heating

if current hour has an offset above 0 (limit), but coming hours are decreasing even more, consider waiting. this pattern is espescially useful during the night when a few hours more rarely make a difference for comfort.

Wrong groups

Today = 0,29, 0,29, 0,28, 0,26, 0,27, 0,26, 0,29, 0,51, 1,95, 1,64, 0,82, 0,51, 0,41, 0,32, 0,31, 0,31, 0,32, 0,33, 0,31, 0,28, 0,26, 0,25, 0,21, 0,17

Tomorrow = 0,21, 0,21, 0,21, 0,2, 0,2, 0,19, 0,21, 0,23, 0,24, 0,27, 0,27, 0,27, 0,26, 0,25, 0,25, 0,26, 0,27, 0,28, 0,29, 0,28, 0,27, 0,25, 0,23, 0,21

Groups tomorrow should be all cheap.

image
image

Can't configure the integration

System

  • HAOS 11 (tested both public and private access, right now it's set to be public) - installed like 1 week ago fresh, didn't touch anything except allowing trusted_proxies in configuration.yaml
  • Nibe integration
  • peaq-hvaq 2.0.2
  • Nibe F750
  • Subscription to "Change Settings" in Nibe:

image

Debuggning

image

The real sensor names are:
Indoor temp
sensor.nibe_15XXXX_40033

Outdoor temp:
sensor.nibe_15XXXX_40004

Tried using them as well, but first tried with only numbers since that's what the documentation says.

image

Is it here that I enable debuggning? Done in that case.

image

Sensors are working, but some of them are unavailable in the Nibe integration - don't know if that related?

Water heater next start too soon

Today [0,76, 0,57, 0,59, 0,64, 0,97, 1,5, 1,97, 2,22, 2,16, 1,93, 1,72, 1,55, 1,53, 1,5, 1,48, 1,52, 1,5, 1,79, 2,16, 2,59, 2,58, 2,08, 1,81, 1,43]
Tomorrow [1,42, 0,8, 0,61, 0,59, 0,6, 1,4, 1,64, 2,17, 1,97, 1,77, 1,51, 1,44, 1,41, 1,38, 1,36, 1,37, 1,4, 1,55, 1,84, 2,28, 2,14, 1,94, 1,62, 1,47]

Water 46.6
Trend -0.9
Time 23:05
Next start 23:47.
Expected 03:47

Boost starts too early

At 8:58 the booster started right when water passed 40c.
It should have waited sccording to the prices:

0,24, 0,27, 0,27, 0,27, 0,26, 0,25, 0,25, 0,26, 0,27, 0,28, 0,29, 0,28, 0,27, 0,25, 0,23, 0,21

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.