Enum Application Shared Language (ASL) Specifications

spaceheat.make.model.001

{
  "gtr_asl": "001",
  "enum_name": "spaceheat.make.model",
  "enum_version": "001",
  "description": "Determines Make/Model of device associated to a Spaceheat Node supervised by SCADA",
  "url": "https://gridworks-protocol.readthedocs.io/en/latest/make-model.html",
  "ssot": "https://gridworks-type-registry.readthedocs.io/en/latest/enums.html#spaceheatmakemodel",
  "values": [
    "UnknownMake__UnknownModel",
    "Egauge__4030",
    "NCD__PR8-14-SPST",
    "Adafruit__642",
    "GridWorks__TSnap1",
    "GridWorks__WaterTempHighPrecision",
    "Gridworks__SimPm1",
    "SchneiderElectric__Iem3455",
    "GridWorks__SimBool30AmpRelay",
    "OpenEnergy__EmonPi",
    "GridWorks__SimTSnap1",
    "Atlas__EzFlo",
    "Hubitat__C7__LAN1",
    "GridWorks__Tank_Module_1",
    "Fibaro__Analog_Temp_Sensor",
    "Amphenol__NTC_10K_Thermistor_MA100GG103BN",
    "YHDC__SCT013-100",
    "Magnelab__SCT-0300-050",
    "GridWorks__MultiTemp1",
    "Krida__Emr16-I2c-V3"
  ],
  "value_to_gt_symbol": {
    "UNKNOWNMAKE__UNKNOWNMODEL": "00000000",
    "EGAUGE__4030": "beb6d3fb",
    "NCD__PR814SPST": "fabfa505",
    "ADAFRUIT__642": "acd93fb3",
    "GRIDWORKS__TSNAP1": "d0178dc3",
    "GRIDWORKS__WATERTEMPHIGHPRECISION": "f8b497e8",
    "GRIDWORKS__SIMPM1": "076da322",
    "SCHNEIDERELECTRIC__IEM3455": "d300635e",
    "GRIDWORKS__SIMBOOL30AMPRELAY": "e81d74a8",
    "OPENENERGY__EMONPI": "c75d269f",
    "GRIDWORKS__SIMTSNAP1": "3042c432",
    "ATLAS__EZFLO": "d0b0e375",
    "HUBITAT__C7__LAN1": "4d649420",
    "GRIDWORKS__TANK_MODULE_1": "bd759051",
    "FIBARO__ANALOG_TEMP_SENSOR": "1f19839d",
    "AMPHENOL__NTC_10K_THERMISTOR_MA100GG103BN": "46f21cd5",
    "YHDC__SCT013100": "08da3f7d",
    "MAGNELAB__SCT0300050": "a8d9a70d",
    "GRIDWORKS__MULTITEMP1": "bb31d136",
    "KRIDA__EMR16I2CV3": "3353ce46"
  },
  "value_to_version": {
    "UNKNOWNMAKE__UNKNOWNMODEL": "000",
    "EGAUGE__4030": "000",
    "NCD__PR814SPST": "000",
    "ADAFRUIT__642": "000",
    "GRIDWORKS__TSNAP1": "000",
    "GRIDWORKS__WATERTEMPHIGHPRECISION": "000",
    "GRIDWORKS__SIMPM1": "000",
    "SCHNEIDERELECTRIC__IEM3455": "000",
    "GRIDWORKS__SIMBOOL30AMPRELAY": "000",
    "OPENENERGY__EMONPI": "000",
    "GRIDWORKS__SIMTSNAP1": "000",
    "ATLAS__EZFLO": "000",
    "HUBITAT__C7__LAN1": "001",
    "GRIDWORKS__TANK_MODULE_1": "001",
    "FIBARO__ANALOG_TEMP_SENSOR": "001",
    "AMPHENOL__NTC_10K_THERMISTOR_MA100GG103BN": "001",
    "YHDC__SCT013100": "001",
    "MAGNELAB__SCT0300050": "001",
    "GRIDWORKS__MULTITEMP1": "001",
    "KRIDA__EMR16I2CV3": "001"
  },
  "value_descriptions": {
    "UnknownMake__UnknownModel": "",
    "Egauge__4030": "A power meter in Egauge's 403x line. More Info: https://drive.google.com/drive/u/0/folders/1abJ-o9tlTscsQpMvT6SHxIm5j5aODgfA",
    "NCD__PR8-14-SPST": "NCD's 4-channel high-power relay controller + 4 GPIO with I2C interface. More Info: https://store.ncd.io/product/4-channel-high-power-relay-controller-4-gpio-with-i2c-interface/?attribute_pa_choose-a-relay=20-amp-spdt",
    "Adafruit__642": "Adafruit's high-temp, water-proof 1-wire temp sensor. More Info: https://www.adafruit.com/product/642",
    "GridWorks__TSnap1": "Actual GridWorks TSnap 1.0 SCADA Box.",
    "GridWorks__WaterTempHighPrecision": "Simulated temp sensor.",
    "Gridworks__SimPm1": "Simulated power meter.",
    "SchneiderElectric__Iem3455": "Schneider Electric IEM 344 utility meter.",
    "GridWorks__SimBool30AmpRelay": "Simulated relay.",
    "OpenEnergy__EmonPi": "Open Energy's open source multipurpose sensing device (including internal power meter). More Info: https://docs.openenergymonitor.org/emonpi/technical.html",
    "GridWorks__SimTSnap1": "Simulated SCADA Box.",
    "Atlas__EzFlo": "Atlas Scientific EZO Embedded Flow Meter Totalizer, pulse to I2C. More Info: https://drive.google.com/drive/u/0/folders/142bBV1pQIbMpyIR_0iRUr5gnzWgknOJp",
    "Hubitat__C7__LAN1": "This refers to a Hubitat C7 that has been configured in a specific way with respect to the APIs it presents on the Local Area Network. The Hubitat C7 is a home automation hub that supports building ZigBee and ZWave meshes, plugs into Ethernet, has a reasonable user interface and has an active community of open-source developers who create drivers and package managers for devices, and supports the creation of various types of APIs on the Local Area Network. More Info: https://drive.google.com/drive/folders/1AqAU_lC2phzuI9XRYvogiIYA7GXNtlr6",
    "GridWorks__Tank_Module_1": "This refers to a small module designed and assembled by GridWorks that is meant to be mounted to the side of a hot water tank. It requires 24V DC and has 4 temperature sensors coming out of it labeled 1, 2, 3 and 4. It is meant to provide temperature readings (taken within a half a second of each other) of all 4 of its sensors once a minute. More Info: https://drive.google.com/drive/folders/1GSxDd8Naf1GKK_fSOgQU933M1UcJ4r8q",
    "Fibaro__Analog_Temp_Sensor": "This enum refers to a Fibaro FGBS-222 home automation device that has been configured in a specific way. This includes (1) being attached to two 10K NTC thermistors and a specific voltage divider circuit that specifies its temperature as a function of voltage and (2) one of its potential free outputs being in-line with the power of a partner Fibaro, so that it can power cycle its partner (because there are reports of Fibaros no longer reporting temp change after weeks or months until power cylced). The Fibaro itself is a tiny (29 X 18 X 13 mm) Z-Wave device powered on 9-30V DC that can read up to 6 1-wire DS18B20 temp sensors, 2 0-10V analog inputs and also has 2 potential free outputs. More Info: https://drive.google.com/drive/u/0/folders/1Muhsvw00goppHIfGSEmreX4hM6V78b-m",
    "Amphenol__NTC_10K_Thermistor_MA100GG103BN": "A small gauge, low-cost, rapid response NTC 10K Thermistor designed for medical applications. More Info: https://drive.google.com/drive/u/0/folders/11HW4ov66UvxKAwqApW6IrtoXatZBLQkd",
    "YHDC__SCT013-100": "YHDC current transformer More Info: https://en.yhdc.com/product/SCT013-401.html",
    "Magnelab__SCT-0300-050": "Magnelab 50A current transformer",
    "GridWorks__MultiTemp1": "GridWorks Analog temperature sensor that has 12 channels (labeled 1-12) to read 12 10K NTC Thermistors. It is comprised of 3 NCD ADS 1115 I2C temperature sensors with I2C Addresses 0x4b, 0x48, 0x49. More Info: https://drive.google.com/drive/u/0/folders/1OuY0tunaad2Ie4Id3zFB7FcbEwHizWuL",
    "Krida__Emr16-I2c-V3": "16-Channel I2C Low Voltage Electromagnetic Relay Board More Info: https://drive.google.com/drive/u/0/folders/1jL82MTRKEh9DDmxJFQ2yU2cjqnVD9Ik7"
  },
  "default_value": "UnknownMake__UnknownModel"
}

local.comm.interface.000

{
  "gtr_asl": "001",
  "enum_name": "local.comm.interface",
  "enum_version": "000",
  "description": "Categorization of in-house comm mechanisms for SCADA",
  "ssot": "https://gridworks-type-registry.readthedocs.io/en/latest/enums.html#localcomminterface",
  "values": [
    "Unknown",
    "I2C",
    "Ethernet",
    "OneWire",
    "RS485",
    "SimRabbit",
    "Wifi",
    "Analog_4_20_mA",
    "RS232"
  ],
  "value_to_gt_symbol": {
    "UNKNOWN": "00000000",
    "I2C": "9ec8bc49",
    "ETHERNET": "c1e7a955",
    "ONEWIRE": "ae2d4cd8",
    "RS485": "a6a4ac9f",
    "SIMRABBIT": "efc144cd",
    "WIFI": "46ac6589",
    "ANALOG_4_20_MA": "653c73b8",
    "RS232": "0843a726"
  },
  "value_to_version": {
    "UNKNOWN": "000",
    "I2C": "000",
    "ETHERNET": "000",
    "ONEWIRE": "000",
    "RS485": "000",
    "SIMRABBIT": "000",
    "WIFI": "000",
    "ANALOG_4_20_MA": "000",
    "RS232": "000"
  },
  "value_descriptions": {
    "Unknown": "",
    "I2C": "",
    "Ethernet": "",
    "OneWire": "",
    "RS485": "",
    "SimRabbit": "",
    "Wifi": "",
    "Analog_4_20_mA": "",
    "RS232": ""
  },
  "default_value": "Unknown"
}

sh.node.role.000

{
  "gtr_asl": "001",
  "enum_name": "sh.node.role",
  "enum_version": "000",
  "description": "Categorizes SpaceheatNodes by their function within the heating system",
  "url": "https://gridworks-protocol.readthedocs.io/en/latest/spaceheat-node-role.html",
  "ssot": "https://gridworks-type-registry.readthedocs.io/en/latest/enums.html#shnoderole",
  "values": [
    "Unknown",
    "Scada",
    "HomeAlone",
    "Atn",
    "PowerMeter",
    "BoostElement",
    "BooleanActuator",
    "DedicatedThermalStore",
    "TankWaterTempSensor",
    "PipeTempSensor",
    "RoomTempSensor",
    "OutdoorTempSensor",
    "PipeFlowMeter",
    "HeatedSpace",
    "HydronicPipe",
    "BaseboardRadiator",
    "RadiatorFan",
    "CirculatorPump",
    "MultiChannelAnalogTempSensor",
    "Outdoors"
  ],
  "value_to_gt_symbol": {
    "Unknown": "00000000",
    "Scada": "d0afb424",
    "HomeAlone": "863e50d1",
    "Atn": "6ddff83b",
    "PowerMeter": "9ac68b6e",
    "BoostElement": "99c5f326",
    "BooleanActuator": "57b788ee",
    "DedicatedThermalStore": "3ecfe9b8",
    "TankWaterTempSensor": "73308a1f",
    "PipeTempSensor": "c480f612",
    "RoomTempSensor": "fec74958",
    "OutdoorTempSensor": "5938bf1f",
    "PipeFlowMeter": "ece3b600",
    "HeatedSpace": "65725f44",
    "HydronicPipe": "fe3cbdd5",
    "BaseboardRadiator": "05fdd645",
    "RadiatorFan": "6896109b",
    "CirculatorPump": "b0eaf2ba",
    "MultiChannelAnalogTempSensor": "661d7e73",
    "Outdoors": "dd975b31"
  },
  "value_to_version": {
    "Unknown": "000",
    "Scada": "000",
    "HomeAlone": "000",
    "Atn": "000",
    "PowerMeter": "000",
    "BoostElement": "000",
    "BooleanActuator": "000",
    "DedicatedThermalStore": "000",
    "TankWaterTempSensor": "000",
    "PipeTempSensor": "000",
    "RoomTempSensor": "000",
    "OutdoorTempSensor": "000",
    "PipeFlowMeter": "000",
    "HeatedSpace": "000",
    "HydronicPipe": "000",
    "BaseboardRadiator": "000",
    "RadiatorFan": "000",
    "CirculatorPump": "000",
    "MultiChannelAnalogTempSensor": "000",
    "Outdoors": "000"
  },
  "value_descriptions": {
    "Unknown": "Unknown Role",
    "Scada": "Primary SCADA",
    "HomeAlone": "HomeAlone GNode",
    "Atn": "AtomicTNode",
    "PowerMeter": "A SpaceheatNode representing the power meter that is used to settle financial transactions with the TerminalAsset. That is, this is the power meter whose accuracy is certified in the creation of the TerminalAsset GNode via creation of the TaDeed. More Info: https://gridworks.readthedocs.io/en/latest/terminal-asset.html",
    "BoostElement": "Resistive element used for providing heat to a thermal store.",
    "BooleanActuator": "A solid state or mechanical relay with two states (open, closed)",
    "DedicatedThermalStore": "A dedicated thermal store within a thermal storage heating system - could be one or more water tanks, phase change material, etc.",
    "TankWaterTempSensor": "A temperature sensor used for measuring temperature inside or on the immediate outside of a water tank.",
    "PipeTempSensor": "A temperature sensor used for measuring the temperature of a tank. Typically curved metal thermistor with thermal grease for good contact.",
    "RoomTempSensor": "A temperature sensor used for measuring room temperature, or temp in a heated space more generally.",
    "OutdoorTempSensor": "A temperature sensor used for measuring outdoor temperature.",
    "PipeFlowMeter": "A meter that measures flow of liquid through a pipe, in units of VOLUME/TIME",
    "HeatedSpace": "A Heated Space.",
    "HydronicPipe": "A pipe carrying techinical water or other fluid (e.g. glycol) in a heating system.",
    "BaseboardRadiator": "A baseboard radiator - one kind of emitter in a hydronic heating system.",
    "RadiatorFan": "A fan that can amplify the power out of a radiator.",
    "CirculatorPump": "Circulator pump for one or more of the hydronic pipe loops",
    "MultiChannelAnalogTempSensor": "An analog multi channel temperature sensor",
    "Outdoors": "The outdoors"
  },
  "default_value": "Unknown"
}

spaceheat.unit.000

{
  "gtr_asl": "001",
  "enum_name": "spaceheat.unit",
  "enum_version": "000",
  "description": "Specifies the physical unit of sensed data reported by SCADA",
  "ssot": "https://gridworks-type-registry.readthedocs.io/en/latest/enums.html#spaceheatunit",
  "values": [
    "Unknown",
    "Unitless",
    "W",
    "Celcius",
    "Fahrenheit",
    "Gpm",
    "WattHours",
    "AmpsRms",
    "VoltsRms",
    "Gallons"
  ],
  "value_to_gt_symbol": {
    "Unknown": "00000000",
    "Unitless": "ec972387",
    "W": "f459a9c3",
    "Celcius": "ec14bd47",
    "Fahrenheit": "7d8832f8",
    "Gpm": "b4580361",
    "WattHours": "d66f1622",
    "AmpsRms": "a969ac7c",
    "VoltsRms": "e5d7555c",
    "Gallons": "8e123a26"
  },
  "value_to_version": {
    "Unknown": "000",
    "Unitless": "000",
    "W": "000",
    "Celcius": "000",
    "Fahrenheit": "000",
    "Gpm": "000",
    "WattHours": "000",
    "AmpsRms": "000",
    "VoltsRms": "000",
    "Gallons": "000"
  },
  "value_descriptions": {
    "Unknown": "",
    "Unitless": "",
    "W": "",
    "Celcius": "",
    "Fahrenheit": "",
    "Gpm": "",
    "WattHours": "",
    "AmpsRms": "",
    "VoltsRms": "",
    "Gallons": ""
  },
  "default_value": "Unknown"
}

sh.actor.class.001

{
  "gtr_asl": "001",
  "enum_name": "sh.actor.class",
  "enum_version": "001",
  "description": "Determines the code running Spaceheat Nodes supervised by Spaceheat SCADA software",
  "url": "https://gridworks-protocol.readthedocs.io/en/latest/actor-class.html",
  "ssot": "https://gridworks-type-registry.readthedocs.io/en/latest/enums.html#shactorclass",
  "values": [
    "NoActor",
    "Scada",
    "HomeAlone",
    "BooleanActuator",
    "PowerMeter",
    "Atn",
    "SimpleSensor",
    "MultipurposeSensor",
    "Thermostat",
    "HubitatTelemetryReader",
    "HubitatTankModule",
    "HubitatPoller"
  ],
  "value_to_gt_symbol": {
    "NoActor": "00000000",
    "Scada": "6d37aa41",
    "HomeAlone": "32d3d19f",
    "BooleanActuator": "fddd0064",
    "PowerMeter": "2ea112b9",
    "Atn": "b103058f",
    "SimpleSensor": "dae4b2f0",
    "MultipurposeSensor": "7c483ad0",
    "Thermostat": "4a9c1785",
    "HubitatTelemetryReader": "0401b27e",
    "HubitatTankModule": "e2877329",
    "HubitatPoller": "00000100"
  },
  "value_to_version": {
    "NoActor": "000",
    "Scada": "000",
    "HomeAlone": "000",
    "BooleanActuator": "000",
    "PowerMeter": "000",
    "Atn": "000",
    "SimpleSensor": "000",
    "MultipurposeSensor": "000",
    "Thermostat": "000",
    "HubitatTelemetryReader": "001",
    "HubitatTankModule": "001",
    "HubitatPoller": "001"
  },
  "value_descriptions": {
    "NoActor": "A SpaceheatNode that does not have any code running on its behalf within the SCADA, but is instead only a reference object (for example, a tank of hot water or a resistive element) that can be discussed (for example, the power drawn by the resistive element can be measured) or evaluated (for example, a set of 5 different temperatures in different places on the tank can be used to estimate total thermal energy in the tank).",
    "Scada": "The SCADA actor is the prime piece of code running and supervising other ProActors within the SCADA code. It is also responsible for managing the state of TalkingWith the AtomicTNode, as well maintaining and reporting a boolean state variable that indicates whether it is following dispatch commands from the AtomicTNode XOR following dispatch commands from its own HomeAlone actor.",
    "HomeAlone": "HomeAlone is an abstract Spaceheat Actor responsible for dispatching the SCADA when it is not talking with the AtomicTNode.",
    "BooleanActuator": "A SpaceheatNode representing a generic boolean actuator capable of turning on (closing a circuit) or turning off (opening a circuit).",
    "PowerMeter": "A SpaceheatNode representing the power meter that is used to settle financial transactions with the TerminalAsset. That is, this is the power meter whose accuracy is certified in the creation of the TerminalAsset GNode via creation of the TaDeed. More Info: https://gridworks.readthedocs.io/en/latest/terminal-asset.html",
    "Atn": "A SpaceheatNode representing the AtomicTNode. Note that the code running the AtomicTNode is not local within the SCADA code, except for a stub used for testing purposes. More Info: https://gridworks.readthedocs.io/en/latest/atomic-t-node.html",
    "SimpleSensor": "A SpaceheatNode representing a sensor that measures a single category of quantity (for example, temperature) for a single object (for example, on a pipe). More Info: https://gridworks-protocol.readthedocs.io/en/latest/simple-sensor.html",
    "MultipurposeSensor": "A sensor that either reads multiple kinds of readings from the same sensing device (for example reads current and voltage), reads multiple different objects (temperature from two different thermisters) or both. More Info: https://gridworks-protocol.readthedocs.io/en/latest/multipurpose-sensor.html",
    "Thermostat": "A SpaceheatNode representing a thermostat.",
    "HubitatTelemetryReader": "A generic actor for reading telemetry data from a Hubitat Home Automation Hub LAN API. More Info: https://drive.google.com/drive/u/0/folders/1AqAU_lC2phzuI9XRYvogiIYA7GXNtlr6",
    "HubitatTankModule": "The actor for running a GridWorks TankModule, comprised of two Z-Wave Fibaro temp sensors built together inside a small container that has 4 thermistors attached. These are designed to be installed from top (1) to bottom (4) on a stratified thermal storage tank. More Info: https://drive.google.com/drive/u/0/folders/1GSxDd8Naf1GKK_fSOgQU933M1UcJ4r8q",
    "HubitatPoller": "An actor for representing a somewhat generic ShNode (like a thermostat) that can be polled through the Hubitat."
  },
  "default_value": "NoActor"
}

spaceheat.telemetry.name.001

{
  "gtr_asl": "001",
  "enum_name": "spaceheat.telemetry.name",
  "enum_version": "001",
  "description": "Specifies the name of sensed data reported by a Spaceheat SCADA",
  "url": "https://gridworks-protocol.readthedocs.io/en/latest/telemetry-name.html",
  "ssot": "https://gridworks-type-registry.readthedocs.io/en/latest/enums.html#spaceheattelemetryname",
  "values": [
    "Unknown",
    "PowerW",
    "RelayState",
    "WaterTempCTimes1000",
    "WaterTempFTimes1000",
    "GpmTimes100",
    "CurrentRmsMicroAmps",
    "GallonsTimes100",
    "VoltageRmsMilliVolts",
    "MilliWattHours",
    "FrequencyMicroHz",
    "AirTempCTimes1000",
    "AirTempFTimes1000"
  ],
  "value_to_gt_symbol": {
    "Unknown": "00000000",
    "PowerW": "af39eec9",
    "RelayState": "5a71d4b3",
    "WaterTempCTimes1000": "c89d0ba1",
    "WaterTempFTimes1000": "793505aa",
    "GpmTimes100": "d70cce28",
    "CurrentRmsMicroAmps": "ad19e79c",
    "GallonsTimes100": "329a68c0",
    "VoltageRmsMilliVolts": "bb6fdd59",
    "MilliWattHours": "e0bb014b",
    "FrequencyMicroHz": "337b8659",
    "AirTempCTimes1000": "0f627faa",
    "AirTempFTimes1000": "4c3f8c78"
  },
  "value_to_version": {
    "Unknown": "000",
    "PowerW": "000",
    "RelayState": "000",
    "WaterTempCTimes1000": "000",
    "WaterTempFTimes1000": "000",
    "GpmTimes100": "000",
    "CurrentRmsMicroAmps": "000",
    "GallonsTimes100": "000",
    "VoltageRmsMilliVolts": "001",
    "MilliWattHours": "001",
    "FrequencyMicroHz": "001",
    "AirTempCTimes1000": "001",
    "AirTempFTimes1000": "001"
  },
  "value_descriptions": {
    "Unknown": "Default Value - unknown telemetry name.",
    "PowerW": "Power in Watts.",
    "RelayState": "An associated read must be either 0 or 1, with 0 meaning that the relay is open and current CANNOT flow and 1 meaning that the relay is closed and current CAN flow. Note in particular that this TelemetryName is NOT meant to be used to reflect whether a relay is energized or de-energized and in particular '1' means the same thing for both Normally Open and Normally Closed relays. Also, it is not meant to be used for a double-throw relay.",
    "WaterTempCTimes1000": "Water temperature, in Degrees Celcius multiplied by 1000. Example: 43200 means 43.2 deg Celcius.",
    "WaterTempFTimes1000": "Water temperature, in Degrees F multiplied by 1000. Example: 142100 means 142.1 deg Fahrenheit.",
    "GpmTimes100": "Gallons Per Minute multiplied by 100. Example: 433 means 4.33 gallons per minute.",
    "CurrentRmsMicroAmps": "Current measurement in Root Mean Square MicroAmps.",
    "GallonsTimes100": "Gallons multipled by 100. This is useful for flow meters that report cumulative gallons as their raw output. Example: 55300 means 55.3 gallons.",
    "VoltageRmsMilliVolts": "Voltage in Root Mean Square MilliVolts.",
    "MilliWattHours": "Energy in MilliWattHours.",
    "FrequencyMicroHz": "Frequency in MicroHz. Example: 59,965,332 means 59.965332 Hz.",
    "AirTempCTimes1000": "Air temperature, in Degrees Celsius multiplied by 1000. Example: 6234 means 6.234 deg Celcius.",
    "AirTempFTimes1000": "Air temperature, in Degrees F multiplied by 1000. Example: 69329 means 69.329 deg Fahrenheit."
  },
  "default_value": "Unknown"
}