ElectricMeterCacGt

Python pydantic class corresponding to json type electric.meter.cac.gt, version 000.

class gwproto.types.ElectricMeterCacGt(*, ComponentAttributeClassId, MakeModel, DisplayName=None, TelemetryNameList, PollPeriodMs, Interface, DefaultBaud=None, TypeName='electric.meter.cac.gt', Version='000')

Type for tracking Electric Meter ComponentAttributeClasses.

GridWorks Spaceheat SCADA uses the GridWorks GNodeRegistry structures and abstractions for managing relational device data. The Cac, or ComponentAttributeClass, is part of this structure.

[More info](https://g-node-registry.readthedocs.io/en/latest/component-attribute-class.html)

Parameters:
  • ComponentAttributeClassId (str)

  • MakeModel (MakeModel)

  • DisplayName (str | None)

  • TelemetryNameList (List[TelemetryName])

  • PollPeriodMs (int)

  • Interface (LocalCommInterface)

  • DefaultBaud (int | None)

  • TypeName (Literal['electric.meter.cac.gt'])

  • Version (Literal['000'])

as_dict()

Translate the object into a dictionary representation that can be serialized into a electric.meter.cac.gt.000 object.

This method prepares the object for serialization by the as_type method, creating a dictionary with key-value pairs that follow the requirements for an instance of the electric.meter.cac.gt.000 type. Unlike the standard python dict method, it makes the following substantive changes: - Enum Values: Translates between the values used locally by the actor to the symbol sent in messages. - Removes any key-value pairs where the value is None for a clearer message, especially in cases with many optional attributes.

It also applies these changes recursively to sub-types.

Return type:

Dict[str, Any]

as_type()

Serialize to the electric.meter.cac.gt.000 representation.

Instances in the class are python-native representations of electric.meter.cac.gt.000 objects, while the actual electric.meter.cac.gt.000 object is the serialized UTF-8 byte string designed for sending in a message.

This method calls the as_dict() method, which differs from the native python dict() in the following key ways: - Enum Values: Translates between the values used locally by the actor to the symbol sent in messages. - - Removes any key-value pairs where the value is None for a clearer message, especially in cases with many optional attributes.

It also applies these changes recursively to sub-types.

Its near-inverse is ElectricMeterCacGt.type_to_tuple(). If the type (or any sub-types) includes an enum, then the type_to_tuple will map an unrecognized symbol to the default enum value. This is why these two methods are only ‘near’ inverses.

Return type:

bytes

ComponentAttributeClassId:
  • Description: ComponentAttributeClassId. Unique identifier for the device class (aka ‘cac’ or Component Attribute Class). Authority is maintained by the World Registry.

  • Format: UuidCanonicalTextual

MakeModel:
  • Description: MakeModel. The brand name identifier for the electric meter (what you would specify in order to buy one).

DisplayName:
  • Description: Sample: EGauge 4030

TelemetryNameList:
  • Description: TelemetryNames read by this power meter.

PollPeriodMs:
  • Description: Poll Period in Milliseconds. Poll Period refers to the period of time between two readings by the local actor. This is in contrast to Capture Period, which refers to the period between readings that are sent up to the cloud (or otherwise saved for the long-term).

Interface:
  • Description:

DefaultBaud:
  • Description: To be used when the comms method requires a baud rate.

TypeName:
  • Description: All GridWorks Versioned Types have a fixed TypeName, which is a string of lowercase alphanumeric words separated by periods, most significant word (on the left) starting with an alphabet character, and final word NOT all Hindu-Arabic numerals.

Version:
  • Description: All GridWorks Versioned Types have a fixed version, which is a string of three Hindu-Arabic numerals.

class gwproto.types.electric_meter_cac_gt.check_is_uuid_canonical_textual(v)

Checks UuidCanonicalTextual format

UuidCanonicalTextual format: A string of hex words separated by hyphens of length 8-4-4-4-12.

Parameters:

v (str) – the candidate

Raises:

ValueError – if v is not UuidCanonicalTextual format

class gwproto.types.electric_meter_cac_gt.check_is_positive_integer(v)

Must be positive when interpreted as an integer. Interpretation as an integer follows the pydantic rules for this - which will round down rational numbers. So 1.7 will be interpreted as 1 and is also fine, while 0.5 is interpreted as 0 and will raise an exception.

Parameters:

v (int) – the candidate

Raises:

ValueError – if v < 1

class gwproto.types.ElectricMeterCacGt_Maker(component_attribute_class_id, make_model, display_name, telemetry_name_list, poll_period_ms, interface, default_baud)
Parameters:
  • component_attribute_class_id (str)

  • make_model (MakeModel)

  • display_name (str | None)

  • telemetry_name_list (List[TelemetryName])

  • poll_period_ms (int)

  • interface (LocalCommInterface)

  • default_baud (int | None)

classmethod dict_to_tuple(d)

Deserialize a dictionary representation of a electric.meter.cac.gt.000 message object into a ElectricMeterCacGt python object for internal use.

This is the near-inverse of the ElectricMeterCacGt.as_dict() method:
  • Enums: translates between the symbols sent in messages between actors and

the values used by the actors internally once they’ve deserialized the messages.
  • Types: recursively validates and deserializes sub-types.

Note that if a required attribute with a default value is missing in a dict, this method will raise a SchemaError. This differs from the pydantic BaseModel practice of auto-completing missing attributes with default values when they exist.

Parameters:

d (dict) – the dictionary resulting from json.loads(t) for a serialized JSON type object t.

Raises:

SchemaError – if the dict cannot be turned into a ElectricMeterCacGt object.

Returns:

ElectricMeterCacGt

Return type:

ElectricMeterCacGt

classmethod tuple_to_type(tpl)

Given a Python class object, returns the serialized JSON type object.

Parameters:

tpl (ElectricMeterCacGt)

Return type:

bytes

classmethod type_to_tuple(t)

Given a serialized JSON type object, returns the Python class object.

Parameters:

t (bytes)

Return type:

ElectricMeterCacGt