Python SDK (Önizleme)
Erken önizleme; arayüzler diğer SDK'larla hizalanacaktır.
Kurulum
pip install seshat-sdk
PyPI
Paket bilgisi alınıyor…
İstemci Başlatma
from seshat_sdk import SeshatClient client = SeshatClient( api_key="<key>", secret="<secret>", host="localhost" # seshat sunucusu ) print(client.sensors.find())
Sensörler
res = client.sensors.find(name="temp", tag="critical", page=1, limit=50)
for s in res.get("data", []):
pass
Dönüşler
list[dict]: sensör listesitotal int: toplampage int,limit int: sayfa bilgisi
Sensör alanları (Python)
id,name,keycompany,machine,collectortags(list[str])is_deleted(bool)creation_date(int)data_type(int)latest_value,latest_change_valuegenerative,send_only_change(bool)
FindOptions parametreleri
name_is(str),key_is(str),tag_is(str)machine_is(str)limit_is(int),page_is(int),all_pages(bool)
Makineler
mo = client.machines.find_opts().tag_is("production").all_pages(True)
client.machines.find_each_page(mo, lambda items, total, page, limit: (
print(f"page={page} machines={len(items)} total={total}") or True
))
# Tek sayfa
y = client.machines.find(tag="edge", page=1, limit=50)
print(y.get("total", 0))
Dönüşler
machines.find(...)→dict(data, total)machines.find_each_page→ handler(items,total,page,limit)
Machine alanları (Python)
id,collector,company,name,keytags(list[str]),created_by,creation_date,send_mqtt_direct
Sayfalama yardımcıları
fo = client.sensors.find_opts().name_is("temp").tag_is("critical").all_pages(True)
client.sensors.find_each_page(fo, lambda items, total, page, limit: (
print(f"page {page}: {len(items)}") or True
))
IoT Verisi (builder)
q = client.sensors.iot_query_options() \
.sensor_id("sensor123") \
.per_page_count(50) \
.sort_date_desc()
resp = client.sensors.iot_data(q)
for item in resp.get("items", []):
_ = item.get("value")
Dönüşler
iot_data→dict(items, ok, page, per_page, total, sensor_ids)
Canlı
Veri Tipleri (type id → Python)
1/2→int3/4/5/6/7/8/9/10→int11→float12→datetime.datetime13→str14→list[int],15→bytes16→bool17→dict,18→list[dict]19→Any,22→str
for batch in client.sensors.live(["sensor1", "sensor2"], limit=25):
for item in batch:
handle(item)
Bağlantılar
item = {"value": True, "type": 16, "parameters": [{"key": "topic", "value": b"67333c8d615f8c6cd6f07c38/67333c8d615f8c6cd6f07c39"}]}
client.connections.write_items("mqtt://0.0.0.0:8888", [item])
Olaylar
resp = client.events.trigger("rebuild-cache", {"fast": True})
list_ = client.events.list()