nix-config/hosts/radiobert/collectd-adsb.rb

33 lines
869 B
Ruby

#!/usr/bin/env ruby
require 'open-uri'
require 'json'
require 'distance'
HOSTNAME = IO::readlines("/proc/sys/kernel/hostname").join.chomp
INTERVAL = 1
POS = [ 51.08102, 13.72806 ]
loop do
planes = JSON.parse URI.open("http://localhost:8080/data.json").read
planes.each do |plane|
flight = plane["flight"].strip
next if flight.empty?
alt = plane["altitude"].to_i
speed = plane["speed"].to_i
dist = GIS::Distance::new(POS[0], POS[1], plane["lat"].to_f, plane["lon"].to_f).distance
puts "PUTVAL \"#{HOSTNAME}/dump1090-altitude/current-#{flight}\" interval=#{INTERVAL} N:#{alt}"
puts "PUTVAL \"#{HOSTNAME}/dump1090-speed/current-#{flight}\" interval=#{INTERVAL} N:#{speed}"
puts "PUTVAL \"#{HOSTNAME}/dump1090-distance/current-#{flight}\" interval=#{INTERVAL} N:#{dist}"
end
rescue
STDERR.puts $!
ensure
sleep INTERVAL
end