Class: OpenHAB::Core::Items::NumberItem
- Inherits:
-
GenericItem
- Object
- GenericItem
- OpenHAB::Core::Items::NumberItem
- Includes:
- NumericItem
- Defined in:
- lib/openhab/core/items/number_item.rb
Overview
A NumberItem has a decimal value and is usually used for all kinds of sensors, like temperature, brightness, wind, etc. It can also be used as a counter or as any other thing that can be expressed as a number.
Non-dimensioned numbers will have a state of DecimalType, while dimensioned numbers will have a state of QuantityType. Be sure to read the documentation for those two classes for how to work with the different states of a NumberItem.
Constant Summary
Constants included from Semantics
Semantics::Equipment, Semantics::Location, Semantics::Point, Semantics::Property, Semantics::Tag
Instance Attribute Summary collapse
-
#dimension ⇒ Class?
readonly
The dimension of the number item.
- #state ⇒ DecimalType, ... readonly
- #unit ⇒ javax.measure.Unit? readonly
Attributes inherited from GenericItem
#category, #formatted_state, #label, #name, #raw_state, #tags
Attributes included from Semantics
#equipment, #equipment_type, #location, #location_type, #point_type, #property_type, #semantic_type
Attributes included from Item
#accepted_command_types, #accepted_data_types, #all_groups, #groups, #metadata, #name
Instance Method Summary collapse
-
#type_details ⇒ Object
protected
Adds the unit dimension.
Methods inherited from GenericItem
#command, #modify, #null?, #refresh, #state?, #undef?, #update
Methods included from Semantics
#equipment?, #location?, #point?, #points, #semantic?
Methods included from Item
#inspect, #member_of?, #provider, #tagged?, #thing, #things, #to_s
Methods included from DSL::Items::TimedCommand
Methods included from Persistence
#average_between, #average_since, #changed_between?, #changed_since?, #count_between, #count_since, #count_state_changes_between, #count_state_changes_since, #delta_between, #delta_since, #deviation_between, #deviation_since, #evolution_rate, #historic_state, #last_update, #maximum_between, #maximum_since, #minimum_between, #minimum_since, #persist, #previous_state, #sum_between, #sum_since, #updated_between?, #updated_since?, #variance_between, #variance_since
Methods included from DSL::Items::Ensure::Ensurable
Instance Attribute Details
#dimension ⇒ Class? (readonly)
Returns The dimension of the number item.
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/openhab/core/items/number_item.rb', line 34 class NumberItem < GenericItem include NumericItem # raw numbers translate directly to {DecimalType}, not a string # @!visibility private def format_type(command) if command.is_a?(Numeric) if unit && (target_unit = DSL.unit(unit.dimension) || unit) return Types::QuantityType.new(command, target_unit) end return Types::DecimalType.new(command) end super end protected # Adds the unit dimension def type_details ":#{dimension}" if dimension end end |
#state ⇒ DecimalType, ... (readonly)
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/openhab/core/items/number_item.rb', line 34 class NumberItem < GenericItem include NumericItem # raw numbers translate directly to {DecimalType}, not a string # @!visibility private def format_type(command) if command.is_a?(Numeric) if unit && (target_unit = DSL.unit(unit.dimension) || unit) return Types::QuantityType.new(command, target_unit) end return Types::DecimalType.new(command) end super end protected # Adds the unit dimension def type_details ":#{dimension}" if dimension end end |
#unit ⇒ javax.measure.Unit? (readonly)
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/openhab/core/items/number_item.rb', line 34 class NumberItem < GenericItem include NumericItem # raw numbers translate directly to {DecimalType}, not a string # @!visibility private def format_type(command) if command.is_a?(Numeric) if unit && (target_unit = DSL.unit(unit.dimension) || unit) return Types::QuantityType.new(command, target_unit) end return Types::DecimalType.new(command) end super end protected # Adds the unit dimension def type_details ":#{dimension}" if dimension end end |
Instance Method Details
#type_details ⇒ Object (protected)
Adds the unit dimension
54 55 56 |
# File 'lib/openhab/core/items/number_item.rb', line 54 def type_details ":#{dimension}" if dimension end |