Quick Start — spx-sdk in 5 Minutes
(file: examples/hello_world_sensor.py)
Prerequisites
Tool
Version
pip install --upgrade spx-sdk # from PyPI
# or, for local dev
git clone https://github.com/HammerHeads-Engineers/spx-sdk.git
cd spx-sdk && pip install -e .Hello-World Sensor (60 s kettle run)
import yaml, numpy as np
from spx_sdk import Model
yaml_str = """
attributes:
temperature: 25.0 # °C
actions:
- function: $ext(temperature)
call: "$in(temperature) + (100 - $in(temperature)) \
* (1 - 0.945 ** $(.timer.time))" # slows as it nears 100 °C
"""
sensor = Model("Sensor", yaml.safe_load(yaml_str))
sensor.prepare();
for t in np.arange(0, 60.1, 0.1): # 0 → 60 s, 0.1 s ticks
sensor["timer"]["time"] = t # drive the built-in timer
sensor.run()
print(f"{t:4.1f}s ➜ {sensor['attributes']['temperature']['external_value']:.2f} °C")
import json, numpy as np
from spx_sdk import Model
json_str = json.dumps({
"attributes": {"temperature": 25.0},
"actions": [
{
"function": "$ext(temperature)",
"call": "$in(temperature) + (100 - $in(temperature)) * (1 - 0.945 ** $(.timer.time))"
}
]
})
model_def = json.loads(json_str)
# instantiate and run
sensor = Model(name="Sensor", definition=model_def)
sensor.prepare()
for t in np.arange(0, 60.1, 0.1):
sensor["timer"]["time"] = t
sensor.run()
print(f"{t:5.1f}s → {sensor['attributes']['temperature']['external_value']:.2f}°C")
Piece
Purpose
Extending in 30 Seconds
Next Steps 🚀
Want to…
Look at…
Last updated

