homeassistant-powercalc icon indicating copy to clipboard operation
homeassistant-powercalc copied to clipboard

Error while dispatching

Open henfri opened this issue 1 year ago • 7 comments

System Health details

System Information

version core-2024.5.4
installation_type Home Assistant Container
dev false
hassio false
docker true
user root
virtualenv false
python_version 3.12.2
os_name Linux
os_version 6.5.0-rc4
arch x86_64
timezone Europe/Berlin
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4815
Installed Version 1.34.0
Stage running
Available Repositories 1397
Downloaded Repositories 32
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Dashboards
dashboards 6
resources 13
views 6
mode storage
Recorder
oldest_recorder_run 20. Juni 2024 um 14:41
current_recorder_run 29. Juni 2024 um 14:43
estimated_db_size 1411.15 MiB
database_engine sqlite
database_version 3.44.2
Spotify
api_endpoint_reachable ok

Checklist

  • [X] I have read the FAQ to see if there is a known solution to my problem.
  • [X] I have enabled debug logging for my installation.
  • [X] I have filled out the issue template to the best of my ability.
  • [X] This issue only contains 1 issue (if you have multiple issues, open one issue for each issue).
  • [X] This issue is not a duplicate issue of currently previous issues..

Describe the issue

2024-06-29 14:44:25.849 ERROR (MainThread) [homeassistant.helpers.event] Error while dispatching event for sensor.standby_und_ports_power to <Job track state_changed event ['sensor.till_tw_power', 'sensor.keller_stahltraeger_licht_power', 'sensor.till_farb_power', 'sensor.standby_und_ports_power', 'switch.tp_link_switch_port_4_poe_enabled', 'switch.tp_link_switch_port_2_poe_enabled', 'switch.tp_link_switch_port_7_poe_enabled', 'switch.tp_link_switch_port_8_poe_enabled', 'sensor.og_charlie_hauptlicht_power', 'sensor.og_schlafzimmer_wand_2_power', 'sensor.eg_gaderobe_power', 'sensor.sat_verteiler_power', 'switch.tp_link_switch_port_5_poe_enabled', 'sensor.eg_wohnzimmer_nordost_power', 'sensor.og_elternbad_spiegel_power', 'sensor.og_schlafzimmer_licht_hendrik_power', 'sensor.og_elternbad_wand_2_power', 'sensor.og_lina_lampe3_power', 'sensor.keller_werkstatt_licht_power', 'switch.tp_link_switch_port_3_poe_enabled', 'sensor.aussen_dachueberstand1_power', 'sensor.og_schlafzimmer_licht_julia_power', 'sensor.keller_waschkeller_licht_power', 'sensor.eg_wohnzimmer_nordwest_power', 'sensor.keller_party_licht_power', 'sensor.og_lina_hauptlicht_power', 'sensor.og_elternbad_duschfarb_power', 'sensor.og_kinderbad_hauptlicht_power', 'sensor.aussen_weg_licht_power', 'sensor.eg_arbeitszimmer_hauptlicht_power', 'sensor.aussen_garage_licht_power', 'sensor.og_lina_lampe1_power', 'sensor.eg_schuppen_hauptlicht_power', 'sensor.aussen_dachueberstand2_power', 'sensor.eg_flur_hauptlicht_power', 'sensor.keller_vorrat_licht_power', 'sensor.kwl_power', 'sensor.eg_treppe_power', 'sensor.og_charlie_lichtost_power', 'sensor.og_schlafzimmer_licht_kleiderschrank_power', 'sensor.wasserstation_power', 'sensor.og_elternbad_hauptlicht_power', 'sensor.aussen_dachueberstand3_power', 'sensor.og_flur_hauptlicht_power', 'sensor.eg_esszimmer_hauptlicht_power', 'sensor.eatonusv_power', 'sensor.og_lina_lampe2_power', 'sensor.homeserver_power', 'sensor.uvr1611_power', 'sensor.eg_wohnzimmer_voute_2_power', 'sensor.eg_arbeitszimmer_farb_2_power', 'sensor.eg_gaestebad_hauptlicht_power', 'sensor.og_charlie_lichtwest_power', 'sensor.eg_wohnzimmer_suedost_power', 'sensor.og_lina_fensterfarb_2_power', 'sensor.keller_haustechnik_licht_power', 'switch.tp_link_switch_port_1_poe_enabled', 'sensor.og_elternbad_klolicht_power', 'sensor.eg_wohnzimmer_suedwest_power', 'sensor.eg_kueche_hauptlicht_power', 'switch.tp_link_switch_port_6_poe_enabled'] HassJobType.Callback <bound method GroupedSensor.on_state_change of >> Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/event.py", line 327, in _async_dispatch_entity_id_event hass.async_run_hass_job(job, event) File "/usr/src/homeassistant/homeassistant/core.py", line 947, in async_run_hass_job hassjob.target(*args) File "/config/custom_components/powercalc/sensors/group.py", line 594, in on_state_change summed = self.calculate_new_state(available_states, states) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/powercalc/sensors/group.py", line 638, in calculate_new_state values = [self._get_state_value_in_native_unit(state) for state in member_available_states] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/powercalc/sensors/group.py", line 610, in _get_state_value_in_native_unit return Decimal(value) ^^^^^^^^^^^^^^ decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]

Reproduction steps

  1. Configuration see below
  2. Restart of HA

Debug logs

https://pastebin.com/xTRqL5sG
(sorry, very long)

Diagnostics dump or YAML config

powercalc:
  sensors:
    - create_group: PowercalcGesamt
      entities:
      - create_group: Obergeschoss
        entities:       
          - entity_id: light.og_lina_hauptlicht
            unique_id: virt_power_og_lina_hauptlicht
            manufacturer: Friedel
            model: 105W
          - entity_id: light.og_charlie_hauptlicht
            unique_id: virt_power_og_charlie_hauptlicht
            manufacturer: Friedel
            model: 150W
          - entity_id: light.og_elternbad_hauptlicht
            unique_id: virt_power_og_elternbad_hauptlicht
            manufacturer: Friedel
            model: Coinlight
            multiply_factor: 4
            multiply_factor_standby: true
          - entity_id: light.og_kinderbad_hauptlicht
            unique_id: virt_power_og_kinderbad_hauptlicht
            manufacturer: Friedel
            model: 150W
          - entity_id: light.og_lina_lampe1
            unique_id: virt_power_og_lina_lampe1
            manufacturer: Friedel
            model: 105W
          - entity_id: light.og_lina_lampe2
            unique_id: virt_power_og_lina_lampe2
            manufacturer: Friedel
            model: 105W
          - entity_id: light.og_lina_lampe3
            unique_id: virt_power_og_lina_lampe3
            manufacturer: Friedel
            model: 105W
          - entity_id: light.og_charlie_lichtost
            unique_id: virt_power_og_charlie_lichtost
            manufacturer: Friedel
            model: 150W
          - entity_id: light.og_charlie_lichtwest
            unique_id: virt_power_og_charlie_lichtwest
            manufacturer: Friedel
            model: 150W
          - entity_id: light.og_elternbad_klolicht
            unique_id: virt_power_og_elternbad_klolicht
            manufacturer: Friedel
            model: Coinlight          
          - entity_id: light.og_elternbad_spiegel
            unique_id: virt_power_og_elternbad_spiegel
            linear:
              min_power: 0.5
              max_power: 8
          - entity_id: light.og_flur_hauptlicht
            unique_id: virt_power_og_flur_hauptlicht
            manufacturer: Friedel
            model: Coinlight
            multiply_factor: 4
            multiply_factor_standby: true             
          - entity_id: light.og_schlafzimmer_licht_kleiderschrank
            unique_id: virt_power_light_og_schlafzimmer_licht_kleiderschrank
            linear:
              min_power: 0.5
              max_power: 40
          - entity_id: light.og_schlafzimmer_licht_julia
            unique_id: virt_power_light_og_schlafzimmer_licht_julia
            fixed:
              power: 5
          - entity_id: light.og_schlafzimmer_licht_hendrik
            unique_id: virt_power_light_og_schlafzimmer_licht_hendrik
            fixed:
              power: 5
          - entity_id: light.og_elternbad_duschfarb
            unique_id: virt_power_og_elternbad_duschfarb
            manufacturer: friedel
            model: Duschfarb
          - entity_id: light.og_lina_fensterfarb_2
            unique_id: virt_power_og_lina_fensterfarb_2
            manufacturer: friedel
            model: lina_fenster
          - entity_id: light.og_elternbad_wand_2
            unique_id: virt_power_og_elternbad_wand_2
            manufacturer: friedel
            model: voute_stripe
            multiply_factor: 0.2
            multiply_factor_standby: false          
          - entity_id: light.og_schlafzimmer_wand_2
            unique_id: virt_power_og_schlafzimmer_wand_2
            manufacturer: friedel
            model: SchlaWand      
      - create_group: Erdgeschoss
        entities:     
          - entity_id: light.eg_flur_hauptlicht
            unique_id: virt_power_eg_flur_hauptlicht
            manufacturer: Friedel
            model: Flur
          - entity_id: light.eg_gaestebad_hauptlicht
            unique_id: virt_power_eg_gaestebad_hauptlicht
            manufacturer: Friedel
            model: Gaestebad
          - entity_id: light.eg_schuppen_hauptlicht
            unique_id: virt_power_og_schuppen_hauptlicht
            manufacturer: Friedel
            model: StripeSchuppen
          - entity_id: light.eg_arbeitszimmer_farb_2
            unique_id: virt_power_eg_arbeitszimmer_farb_2
            manufacturer: friedel
            model: ArbeitFarb2
          - entity_id: light.eg_gaderobe
            unique_id: virt_power_eg_gaderobe
            manufacturer: friedel
            model: GaderobeStripe   
          - entity_id: light.till_tw
            unique_id: virt_power_till_tw
            manufacturer: friedel
            model: till_tw
          - entity_id: light.till_farb
            unique_id: virt_power_till_farb
            manufacturer: friedel
            model: till_farb_fein
          - entity_id: light.eg_treppe
            unique_id: virt_power_eg_treppe
            linear:
              min_power: 0.5
              max_power: 8
          - create_group: Wohnbereich
            entities:
              - entity_id: light.eg_wohnzimmer_voute_2
                unique_id: virt_power_eg_wohnzimmer_voute_2
                manufacturer: friedel
                model: voute_stripe
              - entity_id: light.eg_kueche_hauptlicht
                unique_id: virt_power_eg_kueche_hauptlicht
                manufacturer: Friedel
                model: 150W
                multiply_factor: 2
                multiply_factor_standby: true
                #- entity_id: light.eg_kueche_schrank  # in hauptlicht enthalten
              #  unique_id: virt_power_eg_kueche_schrank
              #  manufacturer: Friedel
              #  model: KuecheSchrank
              - entity_id: light.eg_arbeitszimmer_hauptlicht
                unique_id: virt_power_eg_arbeitszimmer_hauptlicht
                manufacturer: Friedel
                model: ArbeitHaupt
              - entity_id: light.eg_esszimmer_hauptlicht
                unique_id: virt_power_eg_esszimmer_hauptlicht
                manufacturer: Friedel
                model: 150W
                multiply_factor: 2
                multiply_factor_standby: true
              - entity_id: light.eg_wohnzimmer_nordost
                unique_id: virt_power_eg_wohnzimmer_nordost
                manufacturer: Friedel
                model: 150W
              - create_group: Wohnzimmer
                entities:
                  - entity_id: light.eg_wohnzimmer_suedost
                    unique_id: virt_power_eg_wohnzimmer_suedost
                    manufacturer: Friedel
                    model: 150W
                  - entity_id: light.eg_wohnzimmer_nordwest
                    unique_id: virt_power_eg_wohnzimmer_nordwest
                    manufacturer: Friedel
                    model: 150W
                  - entity_id: light.eg_wohnzimmer_suedwest
                    unique_id: virt_power_eg_wohnzimmer_suedwest
                    manufacturer: Friedel
                    model: 150W
      #    - entity_id: light.eg_wohnzimmer_hauptlicht
      #      unique_id: virt_power_eg_wohnzimmer_hauptlicht
      #      manufacturer: Friedel
      #      model: 105W
      - create_group: Keller  
        entities: 
          - create_group: Licht
            entities:
              - entity_id: light.keller_party_licht
                unique_id: virt_power_light_keller_party_licht
                fixed:
                  power: 36
              - entity_id: light.keller_werkstatt_licht
                unique_id: virt_power_light_keller_werkstatt_licht
                fixed:
                  power: 18
              - entity_id: light.keller_waschkeller_licht
                unique_id: virt_power_light_keller_waschkeller_licht
                fixed:
                  power: 20
              - entity_id: light.keller_vorrat_licht
                unique_id: virt_power_light_keller_vorrat_licht
                fixed:
                  power: 18
              - entity_id: light.keller_stahltraeger_licht
                unique_id: virt_power_light_keller_stahltraeger_licht
                fixed:
                  power: 36
              - entity_id: light.keller_haustechnik_licht
                unique_id: virt_power_light_keller_haustechnik_licht
                fixed:
                  power: 18
          - create_group: Haustechnik
            entities:
              - name: KWL
                unique_id: virt_power_KWL
                daily_fixed_energy:
                  value: 51
                  unit_of_measurement: W
              - name: Homeserver
                unique_id: virt_power_Homeserver
                daily_fixed_energy:
                  value: 15
                  unit_of_measurement: W
              - name: UVR1611
                unique_id: virt_power_UVR
                daily_fixed_energy:
                  value: 7
                  unit_of_measurement: W
              - name: Wasserstation
                unique_id: virt_power_Wasserstation
                daily_fixed_energy:
                  value: 5
                  unit_of_measurement: W
              - name: Sat-Verteiler
                unique_id: virt_power_Sat
                daily_fixed_energy:
                  value: 4,7
                  unit_of_measurement: W
              - name: EatonUSV
                unique_id: virt_power_USV
                daily_fixed_energy:
                  value: 5
                  unit_of_measurement: W

              
              
              #unifi:
              #
              #device_tracker.wohnzimmer
              #device_tracker.draussen
              #device_tracker.charlie
              #device_tracker.lina_2
              #
              #solarpumpe: Analog15 stellwert, 15W
              #heizkreispumpe an/aus, 25W, könnte man noch mit heizkreisverteiler-stellwerten gewichten.
      - create_group: Aussen
        entities:             
          - entity_id: light.aussen_weg_licht
            unique_id: virt_power_light_aussen_weg_licht
            fixed:
              power: 12
          - entity_id: light.aussen_garage_licht
            unique_id: virt_power_light_aussen_garage_licht
            fixed:
              power: 18
          - entity_id: light.aussen_dachueberstand1
            unique_id: virt_power_light_aussen_dachueberstand1
            fixed:
              power: 40 # 6 Nord, 2 Ost, 7 Süd
          - entity_id: light.aussen_dachueberstand2
            unique_id: virt_power_light_aussen_dachueberstand2
            fixed:
              power: 20
          - entity_id: light.aussen_dachueberstand3
            unique_id: virt_power_light_aussen_dachueberstand3
            fixed:
              power: 20
      #    - entity_id: light.aussen_dachueberstand
      #      unique_id: virt_power_light_aussen_dachueberstand
      #      fixed:
      #        power: 30 

henfri avatar Jun 29 '24 13:06 henfri

You are running v1.13.0-beta.0 right?

bramstroker avatar Jun 29 '24 14:06 bramstroker

No, v1.12.13.

Best regards, Hendrik

henfri avatar Jun 29 '24 14:06 henfri

There is some issue with one of the member sensors, having some invalid value. Anyway I made this more failsafe and logged a warning with #2340. Just released this in latest beta: v1.13.0-beta.1. Would be nice if you can give it a go.

bramstroker avatar Jun 29 '24 14:06 bramstroker

Thanks, will do

henfri avatar Jun 29 '24 16:06 henfri

Hello,

I am on the Beta.1 now. I now see these errors in the Log:

2024-06-30 19:57:25.864 INFO (MainThread) [homeassistant.components.sensor] Setting up powercalc.sensor
2024-06-30 19:57:25.979 ERROR (MainThread) [homeassistant.components.sensor] Error adding entity sensor.sat_verteiler_energy for domain sensor with platform powercalc
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 580, in _async_add_entities
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 892, in _async_add_entity
    await entity.add_to_platform_finish()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1358, in add_to_platform_finish
    await self.async_added_to_hass()
  File "/config/custom_components/powercalc/sensors/daily_energy.py", line 219, in async_added_to_hass
    self._state += self.calculate_delta()
                   ^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/powercalc/sensors/daily_energy.py", line 256, in calculate_delta
    value = float(value.async_render())
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: float() argument must be a string or a real number, not 'TupleWrapper'

2024-06-30 19:58:12.689 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/powercalc/sensors/power.py", line 397, in initial_update
    await self._handle_source_entity_state_change(
  File "/config/custom_components/powercalc/sensors/power.py", line 490, in _handle_source_entity_state_change
    self._power = await self.calculate_power(state)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/powercalc/sensors/power.py", line 539, in calculate_power
    power = await self._strategy_instance.calculate(entity_state)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/powercalc/strategy/fixed.py", line 63, in calculate
    return await evaluate_power(self._power)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/powercalc/helpers.py", line 23, in evaluate_power
    return Decimal(power)  # type: ignore[arg-type]
           ^^^^^^^^^^^^^^
ValueError: argument must be a sequence of length 3

Please let me know, if you need a debug log.

henfri avatar Jun 30 '24 18:06 henfri

Both errors I didn't see before. Looking at the first error there is some decimal conversion error for daily fixed sensor. In your configuration I see you have value: 4,7. That would probably be the reason. You should use a period there not a comma. value: 4.7.

The second error it's a similar kind of error where powercalc receives a value which it cannot process. Not sure where it's coming from. I will see if the error can be catched and logged cleaner, including the power value / entity id which is causing the issue.

bramstroker avatar Jun 30 '24 18:06 bramstroker

Understood, thanks. Yes, we have the comma as decimal separator here. That's the cause for my fault. let me know, once there is a new beta out that provides more logging to find that issue.

Thanks for your help and your great integration!

henfri avatar Jun 30 '24 18:06 henfri

v1.13.0 is released which should log which entity is the problem.

bramstroker avatar Jul 05 '24 13:07 bramstroker

Thanks. I now have some warnings

2024-07-06 22:37:50.506 ERROR (MainThread) [custom_components.powercalc.strategy.lut] light.eg_schuppen_hauptlicht: Could not calculate power. no brightness set
2024-07-06 22:37:50.707 ERROR (MainThread) [custom_components.powercalc.strategy.lut] light.eg_flur_hauptlicht: Could not calculate power. no brightness set

Maybe these were the cause. In any case, I have no errors or even exceptions anymore.

Greetings, Hendrik

henfri avatar Jul 06 '24 21:07 henfri