Skip to content

Commit 4dd9bf0

Browse files
committed
only show one available entity
1 parent b0aed42 commit 4dd9bf0

File tree

2 files changed

+26
-3
lines changed

2 files changed

+26
-3
lines changed

app/apis/home_assistant_api.rb

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,22 @@ def problems
4848
_1[:state] == "unavailable" &&
4949
Time.parse(_1[:last_updated].to_s) < 15.minutes.ago &&
5050
!@config.dig("home_assistant", "allowed_unavailable").to_a.include?(_1[:entity_id])
51-
}.map do
51+
}
52+
53+
if unavailable_entity_problems.any?
54+
message = "#{unavailable_entity_problems[0][:entity_id].split(".").last.humanize} unavailable"
55+
56+
if unavailable_entity_problems.size > 1
57+
message += " +#{unavailable_entity_problems.size - 1}"
58+
end
59+
60+
unavailable_entity_problems = [
5261
{
5362
icon: "triangle-exclamation",
54-
message: "#{_1[:entity_id].split(".").last.humanize} unavailable"
63+
message: message
5564
}
56-
end
65+
]
66+
end
5767

5868
timeframe_sensor_problems + unavailable_entity_problems
5969
end

test/apis/home_assistant_api_test.rb

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,4 +306,17 @@ def test_problems_unavailable
306306
assert_equal(api.problems, [{icon: "triangle-exclamation", message: "Foo bar unavailable"}])
307307
end
308308
end
309+
310+
def test_problems_overflow
311+
data = [
312+
{entity_id: "sensor.foo_bar", state: "unavailable", last_updated: 30.minutes.ago},
313+
{entity_id: "sensor.foo_bar2", state: "unavailable", last_updated: 30.minutes.ago},
314+
{entity_id: "sensor.foo_bar3", state: "unavailable", last_updated: 30.minutes.ago}
315+
]
316+
317+
api = HomeAssistantApi.new({})
318+
api.stub :data, data do
319+
assert_equal(api.problems, [{icon: "triangle-exclamation", message: "Foo bar unavailable +2"}])
320+
end
321+
end
309322
end

0 commit comments

Comments
 (0)