Giter Site home page Giter Site logo

dolezsa / thermal_comfort Goto Github PK

View Code? Open in Web Editor NEW
533.0 11.0 104.0 2.79 MB

Thermal Comfort sensor for HA (absolute humidity, heat index, dew point, thermal perception)

License: Other

Python 100.00%
comfort-zone thermal-comfort dew-point absolute-humidity dew-point-perception thermal-perception comfort-model thermal-stress heat-index

thermal_comfort's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

thermal_comfort's Issues

Error on log : Update for sensor.entree_frostrisk fails

Hello, i always have this error on start :

2022-01-19 22:22:22 ERROR (MainThread) [homeassistant.helpers.entity] Update for sensor.entree_perception fails
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 487, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 691, in async_device_update
    raise exc
  File "/config/custom_components/thermal_comfort/sensor.py", line 300, in async_update
    setattr(self, property_name, template.async_render())
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 396, in async_render
    if not parse_result or self.hass.config.legacy_templates:
AttributeError: 'NoneType' object has no attribute 'config'


2022-01-19 22:22:22 ERROR (MainThread) [homeassistant.helpers.entity] Update for sensor.entree_frostrisk fails
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 487, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 691, in async_device_update
    raise exc
  File "/config/custom_components/thermal_comfort/sensor.py", line 300, in async_update
    setattr(self, property_name, template.async_render())
  File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 396, in async_render
    if not parse_result or self.hass.config.legacy_templates:
AttributeError: 'NoneType' object has no attribute 'config'

I've this configuration :

  - platform: thermal_comfort
    sensors:
      entree:
        friendly_name: Risque de gel
        unique_id: 97a03fea-5983-44b1-a52b-bbbb12f7918a
        temperature_sensor: sensor.temperature_lumi_158d0002f9702d
        humidity_sensor: sensor.humidity_lumi_158d0002f9702d
        icon_template: mdi:snowflake-alert
        sensor_types:
          - perception
          - frostrisk

Add issues for 1.4.0

Hi since 1.4.0 release has to be coordinated between one more person i created a 1.4.0 milestone.
@IATkachenko please add any issue/feature you would like to contribute before 1.4.0 especially in regard of config_flow.

Add github project topics

For inclusion HACS default repositories requires us to add topics.
@dolezsa could you add some?

Suggestions: "Comfort Zone", "Thermal Comfort", "Dew Point", "Absolute Humidity", "Dew Point Perception", "Thermal Perception", "Comfort Model", "Thermal stress"

Feature Request: Setup new sensors on frontend

It would be super awesome to be able to setup new sensors using the home assistant frontend, just as this is possible with other integrations.

I would expect to install this repo and then go to the integration page and click "new integration". There I would expect to select this integration and further choose a name, select a temperature sensor and a humidity sensor. After this the corresponding sensor would be created automatically.

This could be repeated for every sensor.

Pro: It would not be needed to configure them by yaml anymore. 👍🏻

Add sanity checks for temperature and humidity values

Occasionally I get spurious temperature and humidity values from my sensors. I don't know if Z-Wave JS or the sensor is to blame. The values are several orders of magnitude higher than they should be, so my graphs are messed up until the bogus data ages off.

It makes sense (to me) to discard humidity values outside the range of 0-100 and temperatures outside the range of lowest and highest temperatures ever recorded on earth. Or something along those lines.

Thoughts?

Feature: support for a pressure sensor

Reading the code, I assume that a fixed value is used for pressure as an approximation. It might be nice to be able to pass in a pressure value from an atmospheric pressure sensor to make these values more accurate.

Issues with 1.4.0

I'm getting the following error after migrating to the new configuration format:

2022-01-31 12:08:51 ERROR (MainThread) [homeassistant.components.sensor] Error while setting up thermal_comfort platform for sensor
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 249, in _async_setup_platform
    await asyncio.shield(task)
  File "/config/custom_components/thermal_comfort/sensor.py", line 282, in async_setup_platform
    sensors += [
  File "/config/custom_components/thermal_comfort/sensor.py", line 283, in <listcomp>
    SensorThermalComfort(
  File "/config/custom_components/thermal_comfort/sensor.py", line 369, in __init__
    f"{self._device.name} {self._sensor_type.to_title()}"
AttributeError: 'str' object has no attribute 'to_title'

Here's a subset of my configuration:

thermal_comfort:
  - sensor:
      - name: Garage
        temperature_sensor: sensor.garage_temperature
        humidity_sensor: sensor.garage_humidity
        unique_id: garage
        sensor_types:
          - absolute_humidity
          - dew_point
          - simmer_index

RFC: Better default icons

Current State

Currently thermal comfort uses the default icons provided for the corresponding device classes. For the user experience it isn't that helpful to stick to the default icons since its hard to distinguish values easily, especially if you have them in a list or in glances:
image
image

While its possible that each user customizes the sensors with their own icons I think it would be great to offer better default icons as default. This could be achieved by either selecting one from the existing material icons or if none is available, try to upstream one.

List of current sensors and possible icons (this list will be updated with suggestions):

Humidity Based

Absolute Humidity

The percent symbol doesn't really make sense for a g/m³ value. Personally I switched to the water drop symbol without the percent to easily distinguish between them both.

Temperature based

Most of the temperature based icons could combine the thermometer icon with a corresponding smaller icon representing that specific value. For example like the following one with a bluetooth icon.

Heat Index

We could just add the fire symbol to represent heat.

Dew Point

I think the following could be a great candidate to be added to the thermostat as a dew symbol.

Frost Point

We could add the snowflake to the thermostat for frost.

Simmer Index

Opposed to the heat index the simmer index is meant for the night and is probably mostly used for sleeping comfort.
We could add a moon symbol for night.

Custom based

Thermal Perception

This one and simmer are the most difficult for me to suggest an alternate icon. Maye combine the eye icon with another one? But we don't really perceive this with our eyes do we?
Here's two attempts, one with the eye for perception and one with a hand since as humans we often use our hands to actively perceive the temperature of something.

Frost Risk

A snowflake isn't the same as frost but I still think this icon should work.

Simmer Zone

Similar problem as Thermal Perception.
Same two attempts as for thermal perception but with a moon added.

Error doing job: Future exception was never retrieved

Hello,

I have the component up and running just fine but I'm getting these errors every now and then, has anyone experience them as well? Any solutions? Thanks..

Logger: homeassistant
Source: custom_components/thermal_comfort/sensor.py:118
Integration: thermal_comfort (documentation)
First occurred: May 20, 2021, 10:13:53 PM (44 occurrences)
Last logged: May 21, 2021, 11:59:35 AM

Error doing job: Future exception was never retrieved
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/thermal_comfort/sensor.py", line 118, in temperature_state_listener
    self._temperature = float(new_state.state)
ValueError: could not convert string to float: 'unavailable'

1.4 polling doesn't seem to work

I have polling enabled using this new-style configuration, but it doesn't appear to do anything.

    - name: Guest Bath
      temperature_sensor: sensor.guest_bath_temperature
      humidity_sensor: sensor.guest_bath_humidity
      unique_id: guest_bath
      poll: true
      sensor_types:
        - absolute_humidity
        - dew_point
        - simmer_index

The spikes happen when the first update is received. I have confirmed that the comfort sensors are updated at the same second as the underlying sensors are updated.

image

Feature request: Make type of generated sensors available in configuration

It would be good if the four generated sensor type would be able to select while configuring the sensor on per sensor basis. As for me I just need the absolute humidity values. So for now I just commented the other three sensors out of the sensor.py to save space in the database:

SENSOR_TYPES = {
'absolutehumidity': [DEVICE_CLASS_HUMIDITY, 'Absolute Humidity', 'g/m³']#,
#'heatindex': [DEVICE_CLASS_TEMPERATURE, 'Heat Index', '°C'],
#'dewpoint': [DEVICE_CLASS_TEMPERATURE, 'Dew Point', '°C'],
#'perception': [None, 'Thermal Perception', None],
}

This means it's globally deactivated. Would be good to select them for e.g. each room.

Add global configuration options

I have quite a few temperature and humidity sensors. It would be nice to have global YAML configuration with overrides for common settings:

  • Polling enabled
  • Scan interval
  • Sensor types
thermal_comfort:
  - sensor:
      - name: Garage
        temperature_sensor: sensor.garage_temperature
        humidity_sensor: sensor.garage_humidity
        unique_id: garage
        poll: true
        scan_interval: 60
        sensor_types:
          - absolute_humidity
          - dew_point
          - simmer_index

      - name: Guest Bath
        temperature_sensor: sensor.guest_bath_temperature
        humidity_sensor: sensor.guest_bath_humidity
        unique_id: guest_bath
        poll: true
        scan_interval: 60
        sensor_types:
          - absolute_humidity
          - dew_point
          - simmer_index

      - name: Hall
        temperature_sensor: sensor.hall_temperature
        humidity_sensor: sensor.hall_humidity
        unique_id: hall
        poll: true
        scan_interval: 60
        sensor_types:
          - absolute_humidity
          - dew_point
          - simmer_index

      - name: Lanai
        temperature_sensor: sensor.lanai_temperature
        humidity_sensor: sensor.lanai_humidity
        unique_id: lanai
        poll: true
        scan_interval: 60
        sensor_types:
          - absolute_humidity
          - dew_point
          - frost_point
          - frost_risk
          - simmer_index

      - name: Laundry
        temperature_sensor: sensor.laundry_temperature
        humidity_sensor: sensor.laundry_humidity
        unique_id: laundry
        poll: true
        scan_interval: 60
        sensor_types:
          - absolute_humidity
          - dew_point
          - simmer_index

      - name: Master Bath
        temperature_sensor: sensor.master_bath_temperature
        humidity_sensor: sensor.master_bath_humidity
        unique_id: master_bath
        poll: true
        scan_interval: 60
        sensor_types:
          - absolute_humidity
          - dew_point
          - simmer_index

      - name: Master Bed
        temperature_sensor: sensor.master_bed_temperature
        humidity_sensor: sensor.master_bed_humidity
        unique_id: master_bed
        poll: true
        scan_interval: 60
        sensor_types:
          - absolute_humidity
          - dew_point
          - simmer_index

      - name: Office
        temperature_sensor: sensor.office_temperature
        humidity_sensor: sensor.office_humidity
        unique_id: office
        poll: true
        scan_interval: 60
        sensor_types:
          - absolute_humidity
          - dew_point
          - simmer_index

      - name: Porch
        temperature_sensor: sensor.porch_temperature
        humidity_sensor: sensor.porch_humidity
        unique_id: porch
        poll: true
        scan_interval: 60
        sensor_types:
          - absolute_humidity
          - dew_point
          - frost_point
          - frost_risk
          - simmer_index

RFC: Adding non legacy yaml configuration

Since there's Architecture Decision Record ADR0007 for home assistant this means the current configuration used in thermal comfort is considered legacy yaml configuration. So it would make sense to have a non configuration at some point. This can be done in a non breaking way supporting both configuration types. The old configuration will be supported as minimum till the next breaking version or even longer should maintenance stay at a minimum.
See home assistants template integration for a partial migration to the new yaml configuration style. Or this work in progress PR home-assistant/core#63840 for the command line integration.

  • legacy configuration:
sensor:
  - platform: thermal_comfort
    poll: true
    scan_interval: 300
    sensors:
      livingroom:
        friendly_name: Living Room
        temperature_sensor: sensor.temperature_livingroom
        humidity_sensor: sensor.humidity_livingroom
      bathroom:
        temperature_sensor: sensor.temperature_bathroom
        humidity_sensor: sensor.humidity_bathroom
        sensor_types:
          - absolutehumidity
          - heatindex
      bedroom:
  • a simple migration to the new config could look like this:
thermal_comfort:
  - sensor:
    poll: true
    scan_interval: 300
    - name: livingroom
      friendly_name: Living Room
      temperature_sensor: sensor.temperature_livingroom
      humidity_sensor: sensor.humidity_livingroom
    - name: bathroom
      temperature_sensor: sensor.temperature_bathroom
      humidity_sensor: sensor.humidity_bathroom
      sensor_types:
        - absolutehumidity
        - heatindex
  - sensor:
    - name: bedroom

Biggest differences would be:

  • Instead of one sensors: element we can have multiple sensor elements.
  • object_id would need to be set explicitly as name instead of being an implicit parent key.

Are there any suggestions, questions or objections?

If there's any idea/reason for a breaking change of the configuration this would be the best time since both old and new configuration can coexist so it would be possible to implement breaking changes just in the new configuration type.

No 'version' key in the manifest file

Seeing this in my logs:

Logger: homeassistant.loader
Source: loader.py:786
First occurred: 19:41:33 (1 occurrences)
Last logged: 19:41:33

No 'version' key in the manifest file for custom integration 'thermal_comfort'. As of Home Assistant 2021.6, this integration will no longer be loaded. Please report this to the maintainer of 'thermal_comfort'

Thermal Comfort - [poll] is an invalid option

Hello,
I updated Thermal Comfort through HACS to 1.2.2.
I have also updated HA to 2021.12.9.
Now I get following when checking configuration:
Invalid config for [sensor.thermal_comfort]: [poll] is an invalid option for [sensor.thermal_comfort]. Check: sensor.thermal_comfort->poll. (See ?, line ?).

In config I have following:

  - platform: thermal_comfort
    poll: true
    scan_interval: 300
    sensors:
      dnevni_boravak:
        friendly_name: Dnevni boravak
        temperature_sensor: sensor.temperatura_dnevni_boravak
        humidity_sensor: sensor.vlaga_dnevni_boravak

This used to work previously.. :)
Thanks for your help.
Best regards,
Gordan

Long-term Statistics

Hi everyone,

I just installed this integration, and I really love the simplicity of the setup and all the values that it provides!

It does seem like like it's currently incompatible with the Long-term Statistics feature of HA. It would seem that the solution is just to set the property state_class: measurement.

I haven't dabbled with creating an integration yet, so I might just be naive. It would be great to able to use the statistic graphs of the Lovelace UI to keep track of absolute humidity over time.

Thank you for creating this integration!🙏

device_state_attributes

This is not an issue at the moment but HA asks me kindly to report it to the author:

Logger: homeassistant.helpers.entity
Source: helpers/entity.py:583
First occurred: 08:05:11 (20 occurrences)
Last logged: 08:05:11

Entity sensor.terrace_perception (<class 'custom_components.thermal_comfort.sensor.SensorThermalComfort'>) implements device_state_attributes. Please report it to the custom component author.
Entity sensor.rear_absolutehumidity (<class 'custom_components.thermal_comfort.sensor.SensorThermalComfort'>) implements device_state_attributes. Please report it to the custom component author.
Entity sensor.rear_heatindex (<class 'custom_components.thermal_comfort.sensor.SensorThermalComfort'>) implements device_state_attributes. Please report it to the custom component author.
Entity sensor.rear_dewpoint (<class 'custom_components.thermal_comfort.sensor.SensorThermalComfort'>) implements device_state_attributes. Please report it to the custom component author.
Entity sensor.rear_perception (<class 'custom_components.thermal_comfort.sensor.SensorThermalComfort'>) implements device_state_attributes. Please report it to the custom component author.

Feature request: Friendly Names of new sensors editable - "language package"

Super cool component! I love it :)

A pretty cool feature would be to config with yaml the friendly names of the NEW sensors
grafik
This means a foreign speaker (like me) is able to override a sensor like "Dew Point" with his own language: "Taupunkt"?!

Obviously it should be possible to overwrite the computePerception as well to have it perfect at least. But this is only perfectionism.

Warnings in HA 2021.12 beta

2021-12-08 08:46:31 WARNING (MainThread) [homeassistant.helpers.entity] Entity sensor.tc_aussen_absolutehumidity (<class 'custom_components.thermal_comfort.sensor.SensorThermalComfort'>) implements device_state_attributes. Please report it to the custom component author.
2021-12-08 08:46:31 WARNING (MainThread) [homeassistant.helpers.entity] Entity sensor.tc_aussen_heatindex (<class 'custom_components.thermal_comfort.sensor.SensorThermalComfort'>) implements device_state_attributes. Please report it to the custom component author.
2021-12-08 08:46:31 WARNING (MainThread) [homeassistant.helpers.entity] Entity sensor.tc_aussen_dewpoint (<class 'custom_components.thermal_comfort.sensor.SensorThermalComfort'>) implements device_state_attributes. Please report it to the custom component author.
2021-12-08 08:46:31 WARNING (MainThread) [homeassistant.helpers.entity] Entity sensor.tc_aussen_perception (<class 'custom_components.thermal_comfort.sensor.SensorThermalComfort'>) implements device_state_attributes. Please report it to the custom component author.

Flow setup pulls incorrect variables from combined sensors into incorrect windows

Trying to set up the Thermal Comfort using the newly added GUI flow will produce the following table:
image

As you can see, the sensors for my Xiaomi Zigbee outside unit will pull RH value into the temperature sensor selection window, while it pulls temperature into the humidity variable.

image
image

It would be entirely OK if it doesn't differentiate between RH and temperature and the user must choose the appropriate sensor, but it's actually only allowing one of them in each, and the incorrect one at that.

Second, for most of my sensors it was able to correctly allocate the temperature and RH to the appropriate selection windows, so I am not sure what is wrong with this one.

Fahrenheit?

Will the Readme be updated for the latest release? I believe this now includes an option for Fahrenheit, but I do not see any instructions on how to set the temperature unit. Thanks!

Feature: Provide translations

Sensor shows text, so it will be nice if it can be translated, then I think many people will provide translation for other languages.

No 'version' key in the manifest file

No 'version' key in the manifest file for custom integration 'thermal_comfort'. This will not be allowed in a future version of Home Assistant. Please report this to the maintainer of 'thermal_comfort'

Double calculated values for absoulte humidity sensor

I have an issue with the calculated absolute humidity on my balcony:

grafik

As you can see there are many strange spikes in the graph. These are double values in the same minute:

grafik
grafik

I don't know why this just occurs there that often. For the indoor sensors it does'nt have these spikes. Maybe because there are not that much changes than outdoor?

grafik

The sensors are all Xiaomi Temperature and Humidty sensors without pressure (the round ones).

Any idea?

Lovelace stuck on "Loading data"

Today after a restart, Lovelace became stuck on the "Loading data" screen and was totally unusable. Deleting the integration from the custom_components folder using smb fixed the issue.

The issue seems to be related to the value of the temperature_sensor and humidity_sensor being nan.

This is the error found in home-assistant.log (repeating itself every 10 to 40 seconds):

2021-10-02 10:30:24 ERROR (MainThread) [homeassistant.components.websocket_api.messages] Unable to serialize to JSON. Bad data found at $.result[21](State: sensor.livingroom_absolutehumidity).attributes.temperature=nan(<class 'float'>, $.result[21](State: sensor.livingroom_absolutehumidity).attributes.humidity=nan(<class 'float'>, $.result[22](State: sensor.livingroom_heatindex).attributes.temperature=nan(<class 'float'>, $.result[22](State: sensor.livingroom_heatindex).attributes.humidity=nan(<class 'float'>, $.result[23](State: sensor.livingroom_dewpoint).attributes.temperature=nan(<class 'float'>, $.result[23](State: sensor.livingroom_dewpoint).attributes.humidity=nan(<class 'float'>, $.result[24](State: sensor.livingroom_perception).attributes.temperature=nan(<class 'float'>, $.result[24](State: sensor.livingroom_perception).attributes.humidity=nan(<class 'float'>

My config:

- platform: thermal_comfort
  sensors:
    livingroom:
      friendly_name: Thermal Comfort Bad DG
      temperature_sensor: sensor.dht_1_temp
      humidity_sensor: sensor.dht_1_hum

Dew point Different to KNX Value

HI, I have a MDT Smart Switch with temperature and humidity sensor. The Switch self calculates the Dew Point and exposes
the Temperature to the KNX bus.

To compare the Dew point of this extension, I have integrated both in a card to show the difference. The Calculation is using the same temperature and humidity sensors from the KNX switch.

image

Would be Great to know how big the difference might be and how t0o calibrate it?

new feature request : add freezing point and frost risk level

hello,
can you add freezing point and frost risk level at this nice component?
the freezing point function

def computeFreezingPoint(self, temperature, humidity):
        """ https://pon.fr/dzvents-alerte-givre-et-calcul-humidite-absolue/ """
        dewPoint = self.computeDewPoint(temperature, humidity)
        T = temperature + 273.15
        Td = dewPoint + 273.15
        return round((Td + (2671.02 /((2954.61/T) + 2.193665 * math.log(T) - 13.3448))-T)-273.15,2)

the risk level function

    def computeRiskLevel(self, temperature, humidity):
        thresholdAbsHumidity = 2.8
        dewPoint = self.computeDewPoint(temperature, humidity)
        absoluteHumidity = self.computeAbsoluteHumidity(temperature, humidity)
        freezePoint = self.computeFreezingPoint(temperature, humidity)
        if temperature <= 1 and freezePoint <= 0 and absoluteHumidity < thresholdAbsHumidity:
            return 1 # Frost unlikely despite the temperature Givre peu probable malgré la température
        elif temperature <= 4 and freezePoint <= 0.5 and absoluteHumidity > thresholdAbsHumidity:
            return 2 # Frost probable despite the temperature Givre probable malgré la température
        elif temperature <= 1 and freezePoint <= 0 and absoluteHumidity > thresholdAbsHumidity:
            return 3 # high probability of frost Présence de givre
        return 0 # No risk of frost Aucun risque de givre

Platform error sensor.thermal_comfort - Integration 'thermal_comfort' not found.

I have copied your example from the "Usage" section of the readme. There doesn't seem to be a section in the readme for installation but with other custom components they say to download the project ZIP from github and copy the zip contents to the "config/custom_components/" folder, creating "custom_components" if necessary.

I have done this and still get the error
"Platform error sensor.thermal_comfort - Integration 'thermal_comfort' not found." after restarting home assistant. Is there something else I need to do?

(I am using Home Assistant 0.114.4 on a Raspberry Pi 3)

Thermal Perception strange

Hello,
I am using your custom integration for a few months. But I am wondering if Thermal Perception is correct.
Almost whole winter it shows "A bit dry for some"
image
At 2.6C and 94% humidity it really does not feel "A bit dry"
Maybe calculation is only appropriate for common room temperature (~19-25C)?

Units wrong for dew point using degF

When I feed in a temp in degF, the value is correct but the dew point units are reported in degC. For some reason I cannot override it in Custtomizations either.

Setting unique id not possible

Hey

though I appreciate your work I'm only interested in using the absolute humidity feature.
I like having only the used sensors active to keep the lists smaller and the database too.
Since the created sensors don't set a unique id, it is not possible to deactivate the additonal sensors in the entity overview.
My workaround is to delete the sensor types in the code, but I'd say that's not a perfect way to go.

Thank you for your effort

Error after updating to 1.4.2

The next error appear after update to 1.4.2:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 249, in _async_setup_platform
    await asyncio.shield(task)
  File "/config/custom_components/thermal_comfort/sensor.py", line 324, in async_setup_entry
    scan_interval=timedelta(seconds=data[CONF_SCAN_INTERVAL]),
TypeError: unsupported type for timedelta seconds component: NoneType

All sensors are in the Unavailable state.

Home Assistant version 2022.2.0b5
HACS version: 1.21.0

Compare every thermal comfort sensor with outdoor thermal comfort

WHO has guidelines for indoor air quality and states that there is a health risk if your indoor absolute humidity is greater than 3g/m3 of your outdoor absolute humidity. Therefore it would be an awesome feature to make it possible to compare your outdoor humidity with any indoor/room thermal comfort sensor.

You can read the report here https://apps.who.int/iris/handle/10665/164348
I found the info on the Swedish public health authority

Problem with Home Assistant 2021.6.3

Hi there!

Today i have installed Home Assistant 2021.6.3, coming from 2021.5.x and noticed that thermal_comfort is not available anymore.

The Log says:

2021-06-09 09:24:56 ERROR (SyncWorker_0) [homeassistant.loader] The custom integration 'thermal_comfort' does not have a valid version key (None) in the manifest file and was blocked from loading. See https://developers.home-assistant.io/blog/2021/01/29/custom-integration-changes#versions for more details

Anyone else having this issue?

PS: Home Assistant Blog reads:

Versions
The second change is pretty cool! Versions!

The manifest.json file now has added support for a version key. The version should be a string with a major, minor and patch version. For example, "1.0.0".

This version will help users communicate with you the version they had issues with. And if you ever find a security issue with your custom integration, Home Assistant will be able to block insecure versions from being used.

The version key is required from Home Assistant version 2021.6

HA Startup errors: STATE_UNKNOWN, STATE_UNAVAILABLE

SInce last update i'm getting lots of errors on HA Start.

ValueError: could not convert string to float: 'unavailable'
2021-12-13 09:25:05 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved
Traceback (most recent call last):
  File "/usr/lib/python3.9/concurrent/futures/thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/home/homeassi/.homeassistant/custom_components/thermal_comfort/sensor.py", line 152, in humidity_state_listener
    if _is_valid_state(new_state):
  File "/home/homeassi/.homeassistant/custom_components/thermal_comfort/sensor.py", line 282, in _is_valid_state
    return state and state.state not in (STATE_UNKNOWN, STATE_UNAVAILABLE, math.isnan(float(state.state)))
ValueError: could not convert string to float: 'unknown'
2021-12-13 09:25:05 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved
Traceback (most recent call last):
  File "/usr/lib/python3.9/concurrent/futures/thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/home/homeassi/.homeassistant/custom_components/thermal_comfort/sensor.py", line 152, in humidity_state_listener
    if _is_valid_state(new_state):
  File "/home/homeassi/.homeassistant/custom_components/thermal_comfort/sensor.py", line 282, in _is_valid_state
    return state and state.state not in (STATE_UNKNOWN, STATE_UNAVAILABLE, math.isnan(float(state.state)))

Feature: Add support for HACS

Firstly, installing using HACS is convenient. It will also allow other people to find this custom component faster and easier.

Translations not working

For the Frost Risk, Thermal Perception and Simmer Zone sensors, their states are not being pulled from the translation files. Instead it just shows the string for the translation keys. I haven't seen anyone report this issue and I believe the translations were only added recently, so is this happening for me only or is it the same for everyone?

Screen Shot 2022-01-12 at 12 06 42 PM
Screen Shot 2022-01-12 at 12 04 59 PM

Create sensor.es.json

{
"state": {
"_": {
"dry": "Un poco seco para algunos",
"very_comfortable": "Muy cómodo",
"comfortable": "Cómodo",
"ok_but_humid": "Bien para la mayoria, pero algo húmedo",
"somewhat_uncomfortable": "Algo incómodo",
"quite_uncomfortable": "Muy húmedo, bastante incómodo",
"extremely_uncomfortable": "Extremadamente incómodo, agobiante",
"severely_high": "Muy alto, incluso mortal para enfermedades relacionadas con el asma"
}
}
}

Split configuration out README.md

Split configuration into separate files and link from README.md
This way we can keep a stable version and a up to date dev version of the configuration instructions.

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.