Signal KSK
Signal K7mo ago
22 replies
motamman

motamman - The system has three components: A c...

The system has three components: A command builder that creates PUT-enabled bool paths, such as commands.capturePassage or commands.captureAnchor, for example. (I use KIP to toggle these on and off.)
An archive/data manager listens for regimen changes (capture commands). When true, it saves the subscribing paths’ data to disk. I use the Signalk path as a file system path. So vessels.urn:mrm:uni:mmsi:338043907.navigation.position is stored as ~/.signalk/data/vessels./urn_mrm_uni_mms_338043907/navigation/position/signalk_data_2025-07-08T1025.parquet (That data is buffered and written episodically.)
Finally, a Signalk web app/plugin manages a Python-based api server. Any path that exists on the file system automatically gets an endpoint and can be filtered based on dates and values or date/value ranges. Custom queries are created using the plug-in management by assigning custom SQL to an ID, which in turn receives a unique endpoint.
I'm not sure if what I've built here is helpful to anyone but me. However, I do believe this has significant advantages over InfluxDB, under certain circumstances, and it could easily integrate with the playback and history API and even with Grafana.

I am happy to share it more broadly, and I am also content to keep it to myself.
Was this page helpful?