Sha256: f678ebf03100b7cb75afc69c8f8f14278ccb2e6f7b7f405a86bf11f864b1d35a

Contents?: true

Size: 1.5 KB

Versions: 1

Compression:

Stored size: 1.5 KB

Contents

# frozen_string_literal: true

require 'json'
require 'socket'
require_relative '../../shared/products/device'
require_relative '../state'

module Wizrb
  module Lighting
    module Products
      class Light < Wizrb::Shared::Products::Device
        def initialize(ip:, port: 38_899)
          super(ip: ip, port: port, state: Wizrb::Lighting::State.new)
        end

        def white_range
          @white_range ||=
            user_config&.dig('whiteRange') ||
            model_config&.dig('extRange') ||
            model_config&.dig('cctRange') ||
            user_config&.dig('extRange') ||
            user_config&.dig('cctRange')
        end

        def brightness(value)
          dispatch_event(Wizrb::Lighting::Events::SetBrightnessEvent.new(value))
        end

        def cold_white(value)
          dispatch_event(Wizrb::Lighting::Events::SetColdWhiteEvent.new(value))
        end

        def color_temp(value)
          dispatch_event(Wizrb::Lighting::Events::SetColorTempEvent.new(value))
        end

        def rgb(red, green, blue)
          dispatch_event(Wizrb::Lighting::Events::SetRgbEvent.new(red, green, blue))
        end

        def speed(value)
          dispatch_event(Wizrb::Lighting::Events::SetSpeedEvent.new(value))
        end

        def warm_white(value)
          dispatch_event(Wizrb::Lighting::Events::SetWarmWhiteEvent.new(value))
        end

        def scene(value)
          dispatch_event(Wizrb::Lighting::Events::SetSceneEvent.new(value))
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
wizrb-1.1.2 lib/wizrb/lighting/products/light.rb