35 lines
706 B
Ruby
35 lines
706 B
Ruby
require "rmodbus"
|
|
require "ccutrer-serialport"
|
|
require './sms/sms'
|
|
|
|
mode = ARGV[0]&.strip
|
|
controller_id = ARGV[1]&.to_i
|
|
value = ARGV[2]&.to_i
|
|
|
|
begin
|
|
ModBus::RTUClient.new("/dev/ttyUSB0", 9600) do |cl|
|
|
cl.with_slave(controller_id) do |slave|
|
|
regs = slave.holding_registers
|
|
case mode
|
|
when "temp"
|
|
regs[2] = value
|
|
when "power"
|
|
regs[22] = value
|
|
else
|
|
# type code here
|
|
end
|
|
sleep 0.1
|
|
end
|
|
end
|
|
rescue
|
|
error_message = "[#{Time.now}] #{mode} 실행 실패 (station_id: #{controller_id}, value: #{value})"
|
|
res = Sms.send_one(
|
|
{
|
|
to: '01062619801',
|
|
from: '01062619801',
|
|
text: error_message
|
|
}
|
|
)
|
|
puts res
|
|
end
|