Sha256: 5729014d0362f96a9e841df0def27d4ae8aeec139d264c54b1441c8f63b4a68b

Contents?: true

Size: 903 Bytes

Versions: 5

Compression:

Stored size: 903 Bytes

Contents

module Helium
  class Client
    module Sensors
      def sensors
        Sensor.all(client: self)
      end

      def sensor(id)
        Sensor.find(id, client: self)
      end

      def sensor_timeseries(sensor, opts = {})
        path = "/sensor/#{sensor.id}/timeseries"

        params = {
          "page[size]"    => opts.fetch(:size, nil),
          "filter[port]"  => opts.fetch(:port, nil),
          "filter[start]" => datetime_to_iso(opts.fetch(:start_time, nil)),
          "filter[end]"   => datetime_to_iso(opts.fetch(:end_time, nil)),
          "agg[type]"     => opts.fetch(:aggtype),
          "agg[size]"     => opts.fetch(:aggsize)
        }.delete_if { |_key, value| value.to_s.empty? }

        paginated_get(path, klass: Helium::DataPoint, params: params)
      end

      def create_sensor(attributes)
        Sensor.create(attributes, client: self)
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
helium-ruby-0.9.0 lib/helium/client/sensors.rb
helium-ruby-0.8.0 lib/helium/client/sensors.rb
helium-ruby-0.7.0 lib/helium/client/sensors.rb
helium-ruby-0.6.0 lib/helium/client/sensors.rb
helium-ruby-0.5.0 lib/helium/client/sensors.rb