Skip to main content

Overview

The Sequence class provides methods for creating, retrieving, and updating sequences. Sequences represent temporal orderings of ESS instances for a specific twin or aggregate.

Methods

create(data: SequenceInsert)

Create a new sequence for a twin or aggregate.
data
SequenceInsert
required
The sequence data to create
response
tuple
Returns a tuple of (SequenceResponse | Error, status_code)
Example:
from avenieca.api.model import SequenceInsert

sequence = SequenceInsert(
    module_id="air_conditioner",
    instance_id=10,
    status="e",
    context=None
)

res, status = eca.sequence.create(data=sequence)
if status == 201:
    print(f"Created sequence with ID: {res.id}")

get_all(module_id: str)

Get all sequences for a specific module.
module_id
str
required
The module identifier to retrieve sequences for
response
tuple
Returns a tuple of (List[SequenceResponse] | Error, status_code)
Example:
res, status = eca.sequence.get_all(module_id="air_conditioner")
if status == 200:
    for seq in res:
        print(f"Sequence ID: {seq.id}, Instance: {seq.instance_id}")

get_one(module_id: str, db_id: int)

Get a specific sequence by its database ID.
module_id
str
required
The module identifier
db_id
int
required
The database ID of the sequence
response
tuple
Returns a tuple of (SequenceResponse | Error, status_code)
Example:
res, status = eca.sequence.get_one(
    module_id="air_conditioner",
    db_id=4
)
if status == 200:
    print(f"Instance ID: {res.instance_id}, Status: {res.status}")

update(module_id: str, db_id: int, data: SequenceInsert)

Update an existing sequence.
module_id
str
required
The module identifier
db_id
int
required
The database ID of the sequence to update
data
SequenceInsert
required
The updated sequence data
response
tuple
Returns a tuple of (SequenceResponse | Error, status_code)
Example:
from avenieca.api.model import SequenceInsert

sequence = SequenceInsert(
    module_id="air_conditioner",
    instance_id=10,
    status="sk",  # Update status to 'sk'
    context="Updated context"
)

res, status = eca.sequence.update(
    module_id="air_conditioner",
    db_id=4,
    data=sequence
)
if status == 200:
    print(f"Updated sequence: {res.id}")

Complete Example

import os
from avenieca.api.eca import ECA
from avenieca.api.model import Config, ESSInsert, SequenceInsert

# Initialize client
config = Config(
    uri="http://localhost:2580/v1",
    username=os.getenv("USERNAME"),
    password=os.getenv("PASSWORD")
)
eca = ECA(config)

# Create an ESS first
ess = ESSInsert(
    module_id="aggregate001",
    state=[25.0, 70.0, 10.0],
    valence=10.0,
    score=5
)
ess_res, ess_status = eca.ess.create(data=ess)

# Create a sequence referencing the ESS
sequence = SequenceInsert(
    module_id="aggregate001",
    instance_id=ess_res.id,  # Reference the created ESS
    status="e"
)

seq_res, seq_status = eca.sequence.create(data=sequence)
print(f"Created sequence {seq_res.id} for ESS {ess_res.id}")

# Get all sequences for the module
all_sequences, status = eca.sequence.get_all(module_id="aggregate001")
for seq in all_sequences:
    print(f"Sequence: {seq.id}, Instance: {seq.instance_id}")

Build docs developers (and LLMs) love