This repository was archived by the owner on Mar 31, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathbattery_service.rb
More file actions
58 lines (48 loc) · 1.59 KB
/
battery_service.rb
File metadata and controls
58 lines (48 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
require "ruby_home"
accessory_information = RubyHome::ServiceFactory.create(:accessory_information)
battery_service = RubyHome::ServiceFactory.create(:battery_service,
status_low_battery: 0, # required
charging_state: 0, # required
battery_level: 20, # required
name: "battery service") # optional
battery_service.status_low_battery.after_update do |status_low_battery|
if status_low_battery == 0
puts "battery service status low battery is battery level normal"
elsif status_low_battery == 1
puts "battery service status low battery is battery level low"
end
end
battery_service.charging_state.after_update do |charging_state|
if charging_state == 0
puts "battery service charging state is not charging"
elsif charging_state == 1
puts "battery service charging state is charging"
elsif charging_state == 2
puts "battery service charging state is not chargeable"
end
end
battery_service.battery_level.after_update do |battery_level|
puts "battery service battery level #{battery_level}"
if battery_level < 10 && battery_service.status_low_battery != 1
battery_service.status_low_battery = 1
end
if battery_level > 11 && battery_service.status_low_battery != 0
battery_service.status_low_battery = 0
end
end
Thread.new do
sleep 30
loop do
battery_service.charging_state = 0
while battery_service.battery_level > 0
battery_service.battery_level -= 1
sleep 1
end
battery_service.charging_state = 1
while battery_service.battery_level < 101
battery_service.battery_level += 1
sleep 1
end
end
end
RubyHome.run