Credit and Acknowledgment
owlogger is a system of multiple components, and leverages several open-source projects:
Python
Python3, and many modules:
- The standard lib: argparse, datetime, http.server, io.BytesIO, json, math, os, sys, time, urllib, urllib.parse
- Also the standard database module: sqlite3
- The requests module for sending data to a remote server
pyownet
- pyownet by Stefanno Micccoli is python module that communicates directly woth owserver. The version here is slightly modified.
- update to Python3
- use f-string formatting
- included directly in the owlogger repository
owserver
Part of the owfs -- 1-wire file system maintained by a group of developers.
1-wire
1-wire is a simple protocol for communication with external enumerated devices, like memory, temperature and voltage. The protocol actually uses 2 wires, but data and power are combined on a simegle line that multiple sensors can share. Originally Designed by Dallas Semiconductor, it's now produt of Analog Devices
Javascript
Basic code is embeddd in owlogger but a nice calendar function comes from air-datepicker by T1m0n (Timofey).
The air-datepicker code is slightly modified to default to english text and hosted directly in this repository.
caddy
Best practice is to use a reverse-proxy in frnt of owlogger likw caddy by Matt Holt
firewall
ufw is used by Debian and Ubuntu and helps limit external attacks.
sqlite3
The database used is the sqlite3 library by D Richard Hipps. Not only is it imbedded in python, but it can be used as stand-alone program on the database file.
mdbook
This documentation on owlogger os arranged using mdbook -- a documentation system from the Rust Language project.