esphome 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8bf65aff6fec29a72dd0778f8482b625a9ce87b300fc580be836a7e3750f9a52
4
- data.tar.gz: b092afddf51e1b12b7d88290aa4727df6d09f8f13a587974049464f933bf47e7
3
+ metadata.gz: 7692692de1d32a122a21c669572fec6232e0fccf0876251548259d446de6727c
4
+ data.tar.gz: c20a4ac0dad1f3243bd274652474c1a6566dd274578c54939e0b228e19aba8f1
5
5
  SHA512:
6
- metadata.gz: df0ffbec0941cb74ef17d8dcb8386c1df50f601c9b7581d02f24f8d492e0dabb4a3703c9d839205ef1ea5fe857bac9f70ac47340de3c68b76868c4b13c8a2fc4
7
- data.tar.gz: b0109906cdcfbb787cc4ff6685456a2d6849463b41975e7ae656f69d22495adf7e639e617d0b1b04e91f65d7687bc083e93db4ac6a41936c0adb657d161a0c1a
6
+ metadata.gz: 460d61c2a970646fb80a651b4dfc87c9a2755fb76f428514cb514ab71e49c34e0c49ab99c201c0cf3ff1431dcb63657ae318ca768c4b0f76b5bfef53c0009f5f
7
+ data.tar.gz: 17b8f36fddc959d299590ac3ed9746e9b876499216c70b89a912cd675cd5e03641c01c09321f6ef2856f701a94f7c9e51bb53ad73e566eb2d35ad1373518fa86
@@ -246,7 +246,6 @@ module ESPHome
246
246
  elsif message.is_a?(Api::DisconnectRequest)
247
247
  send(Api::DisconnectResponse.new)
248
248
  disconnected
249
- @on_disconnect_callback.each(&:call)
250
249
  elsif message.is_a?(Api::DisconnectResponse)
251
250
  disconnected
252
251
  elsif message.is_a?(Api::PingResponse)
@@ -346,10 +345,12 @@ module ESPHome
346
345
  end
347
346
 
348
347
  def disconnected
348
+ was_connected = connected?
349
349
  @socket&.close
350
350
  @socket = nil
351
351
  @noise = nil
352
352
  @entities = nil
353
+ @on_disconnect_callback.each(&:call) if was_connected
353
354
  end
354
355
 
355
356
  def write_frame(data)
@@ -47,6 +47,9 @@ module ESPHome
47
47
  loop_thread = io.instance_variable_set(:@loop_thread, Thread.new do
48
48
  Thread.current.report_on_exception = false
49
49
  device.loop
50
+ rescue ConnectionClosedError, NotConnectedError
51
+ # Readers observe the disconnect as EOF; joining the loop must not mask it.
52
+ nil
50
53
  rescue IOError
51
54
  raise unless io.closed?
52
55
  end)
@@ -257,6 +260,7 @@ module ESPHome
257
260
  loop do
258
261
  data = @mutex.synchronize do
259
262
  raise EOFError if @closed && @buffer.empty?
263
+ raise EOFError, "serial proxy disconnected" if @buffer.empty? && !device.connected?
260
264
 
261
265
  @buffer.slice!(0, maxlen) unless @buffer.empty?
262
266
  end
@@ -281,7 +285,8 @@ module ESPHome
281
285
 
282
286
  deadline = monotonic_time + timeout if timeout
283
287
  Kernel.loop do
284
- return nil if @closed || !device.connected?
288
+ return nil if @closed
289
+ raise EOFError, "serial proxy disconnected" unless device.connected?
285
290
 
286
291
  remaining = deadline && (deadline - monotonic_time)
287
292
  return nil if deadline && remaining <= 0
@@ -361,6 +366,8 @@ module ESPHome
361
366
  result = yield
362
367
  return result unless result.nil?
363
368
 
369
+ raise EOFError, "serial proxy disconnected" unless device.connected?
370
+
364
371
  @data_ready.wait(@mutex)
365
372
  end
366
373
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ESPHome
4
- VERSION = "1.2.0"
4
+ VERSION = "1.2.1"
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: esphome
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cody Cutrer
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2026-08-12 00:00:00.000000000 Z
10
+ date: 2026-11-05 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: curses