class Mushy::SenseHatEnvironmentalSensors

Public Class Methods

default_measurements() click to toggle source
# File lib/mushy/fluxs/sense_hat_environmental_sensors.rb, line 34
def self.default_measurements
  [:humidity, :temperature, :pressure]
end
details() click to toggle source
# File lib/mushy/fluxs/sense_hat_environmental_sensors.rb, line 5
def self.details
  {
    name: 'SenseHatEnvironmentalSensors',
    description: 'Pull values from the Sense HAT environmental sensors.',
    config: Mushy::SimplePythonProgram.default_config,
  }.tap do |c|
    measurements
      .sort_by { |x| default_measurements.include?(x) ? 0 : 1 }
      .each do |measurement|
        c[:config][measurement] = {
                                    description: "Pull #{measurement}.",
                                    type:        'boolean',
                                    shrink:      true,
                                    value:       default_measurements.include?(measurement) ? 'true' : '',
                                  }
    end
  end
end
measurements() click to toggle source
# File lib/mushy/fluxs/sense_hat_environmental_sensors.rb, line 24
def self.measurements
  [
    :humidity,
    :temperature,
    :temperature_from_humidity,
    :temperature_from_pressure,
    :pressure,
  ]
end

Public Instance Methods

python_program(event, config) click to toggle source
# File lib/mushy/fluxs/sense_hat_environmental_sensors.rb, line 38
    def python_program event, config
      values = self.class.measurements
                   .select { |x| config[x] == 'true' }
                   .reduce({}) { |t, i| t[i] = "get_#{i}"; t}
                   .map { |m| "\"#{m[0]}\": sense.#{m[1]}()" }
                   .join(',')

      <<PYTHON
from sense_hat import SenseHat
import json
sense = SenseHat()
value = json.dumps({#{values}})
print(value)
PYTHON
    end