annotate README.md @ 1697:88f6e9bf69d1

stats and non-debug mode speedups
author drewp@bigasterisk.com
date Tue, 28 Sep 2021 00:32:16 -0700
parents def4a53cbb6c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
730
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
1 # Goals
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
2
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
3 Make rules easy to add and experiment with.
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
4 Be transparent and debuggable.
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
5 Don't pack things into names that need to be parsed out.
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
6 Prefer RDF and URIs over ad-hoc structures and ids.
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
7 Integrate with lots of outside data sources.
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
8
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
9 ## Input
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
10
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
11 Services create RDF graphs (legacy) and send MQTT messages (esp32 nodes, and eventually everything)
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
12
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
13 `mqtt_to_rdf` gathers those inputs; writes some of them to influxdb; turns them into an RDF graph
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
14
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
15 `collector` takes multiple RDF graphs and merges them into new combinations
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
16
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
17 ## Reasoning
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
18 `reasoning` takes an RDF graph and N3 rules; emits an RDF graph (and makes HTTP PUT and POST requests)
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
19
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
20 ## Output
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
21
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
22 `rdf_to_mqtt` takes RDF graph and emits MQTT messages
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
23
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
24 (`reasoning` does some of its own output actions)
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
25
50f26defcd4d there's a plan
drewp@bigasterisk.com
parents:
diff changeset
26 Services (sometimes, the same ones that gathered input) perform home automation outputs.
731
def4a53cbb6c protocol notes
drewp@bigasterisk.com
parents: 730
diff changeset
27
def4a53cbb6c protocol notes
drewp@bigasterisk.com
parents: 730
diff changeset
28 ## Protocols
def4a53cbb6c protocol notes
drewp@bigasterisk.com
parents: 730
diff changeset
29
def4a53cbb6c protocol notes
drewp@bigasterisk.com
parents: 730
diff changeset
30 A SyncedGraph can be updated on a server such that the updates (as Patch objects) are sent as JSON-LD over a long-running SSE connection. There's a Patches-over-websocket connector in the `rdfdb` repo.
def4a53cbb6c protocol notes
drewp@bigasterisk.com
parents: 730
diff changeset
31
def4a53cbb6c protocol notes
drewp@bigasterisk.com
parents: 730
diff changeset
32 MQTT: Matching a lot of what esphome.io has, which maybe is compatible with homeassistant?