Shelly 2.5 getting hot to touch (63°C external case) - should I be worried?

I don’t disagree but my post was mostly about mistakes made in the wiring of the outlet that could cause the outlet to fail not just pulling extra current thru a properly wired outlet. But I don’t think I’d want to pull 93A thru an outlet rated for 15A (as the standard outlets here in the US are rated for). I know there is a safety factor built in but that’s just ridiculous! :grimacing:

I’m confused about what that has to do with in relation to my “about 10 ohms” statement?

It looks to me like Zs is referring to the impedance between the conductor and ground for a fault. I was talking about the normal resistance (impedance if you must…) of the heating element in a regular resistance based electric heater.

Our standard circuits in the US for typical household appliances are protected by 15A breakers and we run a single 14AWG (1.63mm) hot wire (and obviously along with it’s neutral return leg and a ground conductor).

Most appliances are rated for that level of current protection. If not then they should have their own internal protection. Most US appliances don’t have any fuses in the plug.

10A for a typical US circuit isn’t that poorly designed (as long as the appropriate safety factor is built in - but it seems that Sonoff ignored that part) but it does allow for DIY’ers to abuse it and not take the reduced rating into account (because of the lack of the aforementioned safety factor).

Taking all of that together there should be some additional circuit protection built-in to the Sonoffs.

Sorry, I didn’t explain it well enough.
Zs, is a worst case scenario (highest resistance fault)
Full explanation (for any spectators :rofl: ) Ze is the impedance external to the installation (you can’t do much about this) R1 is the impedance of the live wire, R2 is the impedance of the return wire, AND we assume that some ‘idiot’ drops a spanner (wrench) across the live terminals at the device. That our “loop impedance”.

Yep I agree, my comment about bad connections and poor treatment of the cables (let’s bend it back and forth 15 times before we stick it in) or “I won’t use proper sleeving, this cheap extra flammable stuff will do”

No, I’d assumed you had read the whole thread, AND I misquoted Taras. He was discussing running a 15A rated device at only 13A (87% of its rating, so I apologise) and how dangerously hot it got. - hence poorly designed.

Edit: CPC’s are considered cold (yeah in the same cable :rofl:) and thus have an equivalency, though designer’s have to taken account if the earth is differently sized (eg 1/2 sized to R1, subject to a 16mm min, else full size).

I’ve worked on homes that had their 15A outlet circuits wired “through every outlet”. That is to say, wire from breaker backwired to the first outlet (no wire nuts or pigtails), through the small removeable “side bars” on the outlet, then from a second set of backwires on first outlet, to the second… all done the same way with every single outlet in the way of current getting to the last. I call this a no-pigtail install… and for sure when I try to run my hitachi compressor on the last outlet the breaker trips and wires get hot. This kind of install used to be to code BTW (current NEC requires pigtails everywhere).

Anyhow, I should probably stop so as to avoid being the butt of inside jokes etc… cheers… and I still think the diode caused that incident we were once talking about. :wink:

1 Like

Really? I don’t find a reference for that. Can you point me to one?

The only thing I see is that grounds have to be pigtailed to prevent disconnecting a ground to a downstream outlet/fixture if you remove an upstream device.

Why would the breaker trip and wires themselves get hot? I could see some of the terminal screws getting hot if they weren’t properly torqued down. But that shouldn’t cause the device to pull more current enough for the wires to get hot unless you had such a long run that the voltage dropped too much and the compressor needed to pull more current to make good torque.

Or maybe somebody stuck a 15 amp plug onto a 20 amp compressor and it was pulling too much in the first place and the long wire run just made it worse? :wink:

1 Like

Yeah not necessarily on hots, but grounds and some neutrals must be. The problem with long non-pigtailed runs is the outlet breakoff fins. Those aren’t very long, but they are very thin and add up cumulatively. Backwiring an outlet means no screws (just slide the connector in the hole in the back, and a spring clip holds in in). I can say from experience that 99% of outlets/switches in an average home are backwired. The only homes where my hitachi doesn’t trip breakers at the end of line are ones that are fully pigtailed (hots included). The compressor can draw over 15A briefly during a cold start, and only really good 15A circuits can handle it on a cold day. Really, the compressor technically needs a 20A circuit to startup cold, but what I’m getting at here is a well built 15A circuit can get it over the startup hump no problem. On such well built electrical circuits, you won’t see the lights even flinch when blowdryers/heaters get turned on full blast. If you see the lights slightly flicker when you hit the blowdryer, you know you’re lacking pigtails. :wink:

Whenever that compressor fails to start… there is going to be hot conductors somewhere. Usually it’s those breakoff fins that get really heated… sometimes an old trashy extension cord adds to it. I bought a 10awg 100’ cord for it, so I can usually find something close enough to the breaker to get it going in the mornings. :wink:

2 Likes

Just to follow up: now three months in, and everything is still working fine. It runs the immersion at the cheapest overnight time (I’m on the Octopus Agile tariff: got paid for the last two nights’ runs :sunglasses:) for a maximum of about 35 minutes (cold tank to thermostat switching off), reporting a maximum internal temperature of 80°C. I’m careful not to switch the relay off whilst the immersion is running to avoid arcing — I have an automation to switch it off when the power drops below 100W for a minute.

Hi Trioon:
By the way.
May you share the configuration for how to show Shelly temperature by degreee C ?
Tks

I communicate with the Shelly by MQTT, which has one topic for °C and one for °F (here is the API reference):

- platform: mqtt
  name: "Immersion switch temperature"
  state_topic: "shellies/shelly1pm-xxxxxx/temperature"
  unit_of_measurement: "°C"
  device_class: temperature

tks for your reply
by the way, may you share config for switch?

tks again

light or switch - config is very similar if not the same. Also shelly1, 1pm, 2.5 are the same in regard of mqtt relay configuration
It differs in a domain the definition is member of. (see mqtt light and mqtt switch documentation).
comparing to post above I would define more details for the entity. Here is config of relay 0 one of my shellies 2.5. For second relay you need to duplicate the code changing name and relay number from 0 to 1.
Also note, Shelly2.5 provides sensors (internal temp and power usage)

  - plateform: mqtt
    name: "Entrance"
    command_topic: "shellies/shelly25-entrance/relay/0/command"
    state_topic: "shellies/shelly25-entrance/relay/0"
    availability_topic: "shellies/shelly25-entrance/online"
    qos: 1
    retain: false
    payload_on: "on"
    payload_off: "off"
    payload_available: "true"
    payload_not_available: "false"
    optimistic: false

Just built in a shelly 2.5 esphome flashed…

Instantly (after a few minutes) lights out and message on app… temperature too high… Is this normal? Only 300W lamp connected…

image

max_temp was set by me at 75… now I have set it at 85…

Is this normal behavior??

substitutions:
devicename: shelly_25_01
  # ip: 192.168.xx.xx
  channel_1: Relay 1
  channel_2: Relay 2

  ssid: IOTDOM
  password: !secret IOTDOM_wifi_key

  max_power: "2000.0"
  max_temp: "85.0"

esphome:
  name: ${devicename}
  platform: ESP8266
  board: esp01_1m

wifi:
  ssid: "IOTDOM"
  password: !secret IOTDOM_wifi_key
  domain: !secret domain
  use_address: 192.168.6.28
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "${devicename} Fallback Hotspot"
    password: !secret Fallback_Hotspot

captive_portal:

# Enable logging
logger:
  level: DEBUG

# Enable Home Assistant API
api:

ota:

web_server:
  port: 80

time:
  - platform: sntp
    id: my_time

i2c:
  sda: GPIO12
  scl: GPIO14

sensor:
  - platform: ade7953
    voltage:
      name: ${devicename} voltage
    current_a:
      name: ${channel_2} current
      internal: true
    current_b:
      name: ${channel_1} current
      internal: true
    active_power_a:
      name: ${channel_2} power
      id: power_channel_2
      filters:
        - multiply: 1
      on_value_range:
        - above: ${max_power}
          then:
            - switch.turn_off: shelly_relay_2
            - homeassistant.service:
                service: persistent_notification.create
                data:
                  title: Message from ${devicename}
                data_template:
                  message: Switch turned off because power exceeded ${max_power}W
    active_power_b:
      name: ${channel_1} power
      id: power_channel_1
      filters:
        - multiply: -1
      on_value_range:
        - above: ${max_power}
          then:
            - switch.turn_off: shelly_relay_1
            - homeassistant.service:
                service: persistent_notification.create
                data:
                  title: Message from ${devicename}
                data_template:
                  message: Switch turned off because power exceeded ${max_power}W
    update_interval: 30s

  - platform: total_daily_energy
    name: ${channel_1} energy
    power_id: power_channel_1
    filters:
      # Multiplication factor from W to kW is 0.001
      - multiply: 0.001
    unit_of_measurement: kW

  - platform: total_daily_energy
    name: ${channel_2} energy
    power_id: power_channel_2
    filters:
      # Multiplication factor from W to kW is 0.001
      - multiply: 0.001
    unit_of_measurement: kW

  # NTC Temperature
  - platform: ntc
    sensor: temp_resistance_reading
    name: ${devicename} temperature
    unit_of_measurement: "°C"
    accuracy_decimals: 1
    icon: "mdi:thermometer"
    calibration:
      b_constant: 3350
      reference_resistance: 10kOhm
      reference_temperature: 298.15K
    on_value_range:
      - above: ${max_temp}
        then:
          - switch.turn_off: shelly_relay_1
          - switch.turn_off: shelly_relay_2
          - homeassistant.service:
              service: persistent_notification.create
              data:
                title: Message from ${devicename}
              data_template:
                message: Switch turned off because temperature exceeded ${max_temp}°C
  - platform: resistance
    id: temp_resistance_reading
    sensor: temp_analog_reading
    configuration: DOWNSTREAM
    resistor: 32kOhm
  - platform: adc
    id: temp_analog_reading
    pin: A0

status_led:
  pin:
    number: GPIO0
    inverted: yes

switch:
  - platform: gpio
    id: shelly_relay_1
    name: ${channel_1} relay
    pin: GPIO4
    icon: "mdi:electric-switch"
    restore_mode: RESTORE_DEFAULT_OFF
  - platform: gpio
    id: shelly_relay_2
    name: ${channel_2} relay
    pin: GPIO15
    icon: "mdi:electric-switch"
    restore_mode: RESTORE_DEFAULT_OFF

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO5
    name: "${channel_1} input"
    on_state:
      then:
        - switch.toggle: shelly_relay_1
  - platform: gpio
    pin:
      number: GPIO13
    name: "${channel_2} input"
    on_state:
      then:
        - switch.toggle: shelly_relay_2

Check this:

4 Likes

@makai THANK YOU!!!

I think ESPHome already addressed the problem by adding the irq_pin.
Still my units get hotter than 75°C is this still normal?

# If you change the light for a sitch or the other way around, 
# make shure to also change
# the automation service call "light.turn_off" / "swich.turn_off".

#Variables
substitutions:
  device_name: shelly_5_25_kitchen
  node_name: Shelly25 Kitchen
  # Name for the relays
  channel_1: Kitchen Spot
  channel_2: Kitchen Exhaust Fan
  max_power: "2000.0" # watt
  max_temp: "80.0" # °C

# Basic Config
esphome:
  name: "${device_name}"
  platform: ESP8266
  board: esp01_1m
  build_path: ./build/${device_name}

wifi:
  use_address: 10.25.30.107

packages:
  #Wifi Settings
  wifi: !include includes/network.yaml

#Device Specific Config

script:
  - id: protection_temp
    then:
      - light.turn_off: channel_1
      - fan.turn_off: channel_2
      - homeassistant.service:
          service: persistent_notification.create
          data:
            title: Message from ${node_name}
          data_template:
            message: Switch turned off because temperature exceeded ${max_temp}°C
  - id: protection_power
    then:
      - light.turn_off: channel_1
      - fan.turn_off: channel_2
      - homeassistant.service:
          service: persistent_notification.create
          data:
            title: Message from ${node_name}
          data_template:
            message: Switch turned off because power exceeded ${max_power}°C

i2c:
  sda: GPIO12
  scl: GPIO14

sensor:
  - platform: ade7953
    irq_pin: GPIO16
    voltage:
      name: ${node_name} Voltage
    current_a:
      name: ${channel_1} Current
    active_power_a:
      name: ${channel_1} Power
      id: channel_1_power
      filters:
        - multiply: 1
      on_value_range:
      - above: ${max_power}
        then:
          - script.execute: protection_power
    current_b:
      name: ${channel_2} Current
    active_power_b:
      name: ${channel_2} Power
      id: channel_2_power
      filters:
        - multiply: 1
      on_value_range:
      - above: ${max_power}
        then:
          - script.execute: protection_power
    update_interval: 60s

  # NTC Temperature
  - platform: ntc
    sensor: temp_resistance_reading
    name: ${node_name} Temperature
    calibration:
      b_constant: 3350
      reference_resistance: 10kOhm
      reference_temperature: 298.15K
    
    on_value_range:
    - above: ${max_temp}
      then:
        - script.execute: protection_temp
  - platform: resistance
    id: temp_resistance_reading
    sensor: temp_analog_reading
    configuration: DOWNSTREAM
    resistor: 32kOhm
  - platform: adc
    id: temp_analog_reading
    pin: A0



## Changed to always off under switch component
#status_led:
#  pin:
#    number: GPIO0
#    inverted: yes



    
## Added to turn off status led
switch:
  - platform: gpio
    pin:
      number: GPIO0
      inverted: true
    id: status_light
    restore_mode: ALWAYS_OFF
    internal: true

output:
  - platform: gpio
    pin: GPIO15
    id: out_channel_1
  - platform: gpio
    pin: GPIO4
    id: out_channel_2

fan:
  - platform: binary
    output: out_channel_2
    name: "${channel_2}"
    id: channel_2

light:
  - platform: binary
    name: "${channel_1}"
    restore_mode: RESTORE_DEFAULT_OFF
    output: out_channel_1
    id: channel_1

binary_sensor:
  - platform: gpio
    pin:
      number: GPIO13
    name: "${channel_1}"
    on_state:
      then:
        - light.toggle: channel_1
    internal: true

  - platform: gpio
    pin:
      number: GPIO5
    name: "${channel_2}"
    on_state:
      then:
        - fan.toggle: channel_2
    internal: true

I don’t know. Add a binary sensor for gpio 16 and check again

it’s already in:


sensor:
  - platform: ade7953
    irq_pin: GPIO16

Ok but that doesn’t seems to work. So follow the link above and add:

binary_sensor:
  - platform: gpio
    pin: GPIO16
    name: "ade7953 IRQ pin"
    internal: true

If then it’s working as expected, open an issue at Esphome GitHub about irq_pin

Hi,
My Shelly 2.5 is at 50C with no load and almost 70C with just 40W (like 15W+25W) total load, using the original firmware. It is in a closed fuse box in a basement at like 14C.
My understanding is that if you want to drive any load you should probably put a proper contactor/relay in between or simply use 2 x Shelly 1 which have a dry relay. I have a Shelly 1 with like 300W and by touch it does not seem to get very hot.
From some discussions on the Shelly forums, it seems the manufacturer claims it is ok to have high temperatures with the 2.5 but, like most users i guess, I do not feel good about it reaching 80C or 90C.

link possible?

I did not have it handy but with a bit of digging i think i had this one in mind:
https://www.shelly-support.eu/forum/index.php?thread/3957-dimmer-2-overtemperature-error/&postID=55063#post55063

There are a few discussion on overheating on their forum: if you search you may find more useful data points.

That said i like very much the Shelly devices because they are more opened than most devices right out of the box and they don’t try to push their app and cloud down your throat. Just have to be aware of the practical vs theoritical load limits.