denpamusic / homeassistant-plum-ecomax

Plum ecoMAX boiler controller integration for Home Assistant.
MIT License
29 stars 7 forks source link

ester_x40 thermostat problem #48

Open jerguitariste opened 9 months ago

jerguitariste commented 9 months ago

Is there an existing issue for this?

I'm having the following issue:

the thermostat becomes invalid after a while I restarted home assistant but I noticed the same problem

image

I have following devices connected:

I'm connecting to my devices using:

Ethernet/WiFi to RS-485 converter

I'm seeing following log messages:

No response

My diagnostics data:

No response

Code of Conduct

denpamusic commented 9 months ago

Hi,

Thanks for the feedback!

Please provide diagnostics data when thermostat is missing, otherwise I can only take a wild guesses. Although the first thing that I would check in this case, is physical connection (loose terminal screw, bad contact, etc.) between thermostat and EM. This integration marks entity as unavailable, only if EM doesn't provide any data about in sensor data message.

Once physical link confirmed ok, you can try latest beta v0.4.1-beta.4, noting all breaking changes listed here. Current beta release is based on PyPlumIO branch 0.5.x that feature a lot performance and stability improvements.

jerguitariste commented 9 months ago

I have already checked the physical connection, everything is OK config_entry-plum_ecomax-20f3d9886587729c9db991c9f153b41e.json (8).txt

jerguitariste commented 9 months ago

I just updated to 0.4.1bet4 I still have the problem, I only have the problem on the thermostat

image

denpamusic commented 9 months ago

After looking at your diagnostics, it seems like the thermostat doesn't report it's parameters, hence it is uncontrollable and is marked unavailable. Did I correctly understood you, that sometimes thermostat does work or is it always unavailable?

This is what reported by your thermostat:

{
      "thermostats": {
        "0": {
          "state": 0,
          "current_temp": 19.25,
          "target_temp": 20.0,
          "contacts": true,
          "schedule": false,
          "thermostat_sensors": true
        }
      },
      "thermostat_parameters": false
}

This is how it should look like:

{
      "thermostats": {
        "0": {
          "state": 0,
          "current_temp": 23.864526748657227,
          "target_temp": 24.0,
          "contacts": true,
          "schedule": false,
          "thermostat_sensors": true,
          "mode": {
            "__type": "<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>",
            "repr": "ThermostatParameter(device=Thermostat, description=ThermostatParameterDescription(name='mode', cls=<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>, multiplier=1, size=1), value=0.0, min_value=0.0, max_value=7.0)"
          },
          "party_target_temp": {
            "__type": "<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>",
            "repr": "ThermostatParameter(device=Thermostat, description=ThermostatParameterDescription(name='party_target_temp', cls=<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>, multiplier=10, size=2), value=10.0, min_value=10.0, max_value=35.0)"
          },
          "holidays_target_temp": {
            "__type": "<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>",
            "repr": "ThermostatParameter(device=Thermostat, description=ThermostatParameterDescription(name='holidays_target_temp', cls=<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>, multiplier=10, size=2), value=15.0, min_value=10.0, max_value=35.0)"
          },
          "correction": {
            "__type": "<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>",
            "repr": "ThermostatParameter(device=Thermostat, description=ThermostatParameterDescription(name='correction', cls=<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>, multiplier=1, size=1), value=100.0, min_value=60.0, max_value=140.0)"
          },
          "away_timer": {
            "__type": "<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>",
            "repr": "ThermostatParameter(device=Thermostat, description=ThermostatParameterDescription(name='away_timer', cls=<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>, multiplier=1, size=1), value=3.0, min_value=0.0, max_value=60.0)"
          },
          "airing_timer": {
            "__type": "<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>",
            "repr": "ThermostatParameter(device=Thermostat, description=ThermostatParameterDescription(name='airing_timer', cls=<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>, multiplier=1, size=1), value=60.0, min_value=0.0, max_value=60.0)"
          },
          "party_timer": {
            "__type": "<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>",
            "repr": "ThermostatParameter(device=Thermostat, description=ThermostatParameterDescription(name='party_timer', cls=<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>, multiplier=1, size=1), value=5.0, min_value=0.0, max_value=60.0)"
          },
          "holidays_timer": {
            "__type": "<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>",
            "repr": "ThermostatParameter(device=Thermostat, description=ThermostatParameterDescription(name='holidays_timer', cls=<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>, multiplier=1, size=1), value=7.0, min_value=0.0, max_value=60.0)"
          },
          "hysteresis": {
            "__type": "<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>",
            "repr": "ThermostatParameter(device=Thermostat, description=ThermostatParameterDescription(name='hysteresis', cls=<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>, multiplier=10, size=1), value=0.1, min_value=0.0, max_value=5.0)"
          },
          "day_target_temp": {
            "__type": "<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>",
            "repr": "ThermostatParameter(device=Thermostat, description=ThermostatParameterDescription(name='day_target_temp', cls=<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>, multiplier=10, size=2), value=24.0, min_value=10.0, max_value=35.0)"
          },
          "night_target_temp": {
            "__type": "<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>",
            "repr": "ThermostatParameter(device=Thermostat, description=ThermostatParameterDescription(name='night_target_temp', cls=<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>, multiplier=10, size=2), value=10.0, min_value=10.0, max_value=35.0)"
          },
          "antifreeze_target_temp": {
            "__type": "<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>",
            "repr": "ThermostatParameter(device=Thermostat, description=ThermostatParameterDescription(name='antifreeze_target_temp', cls=<class 'pyplumio.structures.thermostat_parameters.ThermostatParameter'>, multiplier=10, size=2), value=9.0, min_value=5.0, max_value=30.0)"
          },
          "thermostat_parameters": true
        }
      }
 }
jerguitariste commented 9 months ago

mon thermostat est bien branché et il commande bien la chaudière mais il n'est pas reconnu dans l'application, je ne comprend pas. je suis revenu en 0.3.6 pour plus de stabilité j'avais le meme probleme avec la version 0.4.1.

jerguitariste commented 9 months ago

le problème est survenu après une coupure de courant j'ai redémarrer la connection internet, le raspberry pi et la chaudière. J'ai toute les valeurs sauf le thermostat

jerguitariste commented 9 months ago

config_entry-plum_ecomax-d94b02f89c2805e0080ac1007b76a788.json (1).txt

voici le diagnostic

denpamusic commented 9 months ago

Understood, thank you for diagnostic and detailed description! You're right, I see the same issue as before - thermostat parameters are not available.

I'll look at recent changes with parameter decoder and get back to you if I find anything. There are also chances that it's some ecoMAX firmware glitch, triggered by power outage.

jerguitariste commented 9 months ago

super merci beaucoup!!