Sha256: 634698a977908599b5cfae48f7d9f3c35b0b9d09e470bddfbcac873ac1e3da01
Contents?: true
Size: 999 Bytes
Versions: 1
Compression:
Stored size: 999 Bytes
Contents
require 'net/http' require 'json' # Home Assistant notifier class Hass def initialize(url, password, logger) @url = url @password = password @logger = logger end def notify(state = true, sensor_name = 'motion', friendly_name = 'Motion Sensor') url = "#{@url}/api/states/sensor.#{sensor_name}" data = { 'state' => (state ? 'on' : 'off'), 'attributes' => { 'friendly_name' => friendly_name } }.to_json Thread.new { send_data(url, data) } end def send_data(url, data) uri = URI(url) puts "Starting request to #{url} with data #{data}" https = Net::HTTP.new(uri.host, uri.port) request = Net::HTTP::Post.new(uri.path) request['Authorization'] = "Bearer #{@password}" request['Accept-Encoding'] = 'deflate' request.body = data https.use_ssl = true if uri.scheme == 'https' response = https.request request @logger.log("Request to Home Assistant failed (#{response.code}): #{response.body}") # if response.code > 299 end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ws_light-0.4.2 | lib/ws_light/hass.rb |