Commit graph

68 commits

Author SHA1 Message Date
Lance Edgar 871a9154da Update some timeout field docstrings, per latest refactor 2018-10-19 16:47:20 -05:00
Lance Edgar 19553edda6 Add per-status timeouts and tracking for probe status
i.e. this lets us keep track of when a probe becomes "high temp" and then later
if it becomes "critical high temp" we can still know how long it's been high
2018-10-19 14:58:30 -05:00
Lance Edgar 8be64c0580 Update changelog 2018-10-17 19:31:37 -05:00
Lance Edgar 5830c7bd15 Fix logic bug when checking readings for client
yikes! first probe whose readings were checked okay, was causing other probes
to just be skipped
2018-10-17 19:26:48 -05:00
Lance Edgar 3aa4185de9 Leverage common "now" value when sending emails from server
i.e. don't generate new "now" when sending an email, just use the "now" we
established when starting to check the readings
2018-10-17 19:18:34 -05:00
Lance Edgar 71db57b2e0 Add probe URL to email template context 2018-10-17 18:08:54 -05:00
Lance Edgar d6ab9a60f1 Update changelog 2018-10-09 16:36:07 -05:00
Lance Edgar 5bf69a0c21 Add "recent readings" to email template context 2018-10-08 00:52:16 -05:00
Lance Edgar b4c52319c6 Make client more tolerant of database restart
note that a retry is *not* attempted within a given "take readings" run.
rather, client will consider that full readings take to have failed, if any
part of it fails.

but then we keep track of type/amount of some (database connection) failures,
and will suppress logging the full error for first 3 attempts.  in practice
this lets us recover from simple database restarts, and if database becomes
truly unavailable we'll hear about it shortly.

any other type of error is immediately logged on first failure.
2018-10-07 18:47:02 -05:00
Lance Edgar 2f7fa3430a Make server more tolerant of database restart
note that a retry is *not* attempted within a given "check readings" run.
rather, server will consider that full readings check to have failed, if any
part of it fails.

but then we keep track of type/amount of some (database connection) failures,
and will suppress logging the full error for first 3 attempts.  in practice
this lets us recover from simple database restarts, and if database becomes
truly unavailable we'll hear about it shortly.

any other type of error is immediately logged on first failure.
2018-10-07 18:16:18 -05:00
Lance Edgar b4fa6a17c5 Add "status since" to template context for email alerts 2018-10-06 20:17:46 -05:00
Lance Edgar 76e40063ee Tweak server logic for checking client readings
do not check readings for "archived" clients.  do not consider the client
"offline" unless it has *no* current probe readings.  previously we were
assuming offline if any probe readings were missing, even if some were found.
2018-10-06 18:09:02 -05:00
Lance Edgar 440abf2b56 Improve docstrings for some model attributes 2018-10-06 17:39:54 -05:00
Lance Edgar 85e8ed9832 Log error when client probe takes a 185.0 reading
this indicates some power issue with the probe(s) and does not really mean
that's the temperature.  so we don't want the server to send out "high temp"
email etc. but rather just a technical error email

https://www.controlbyweb.com/support/faq/temp-sensor-reading-error.html
2018-10-05 20:53:09 -05:00
Lance Edgar 74de10e74c Log our supposed hostname on startup
just to help with troubleshooting
2018-10-05 19:30:01 -05:00
Lance Edgar 63aa29f7d7 Update changelog 2018-10-04 19:59:14 -05:00
Lance Edgar 18b224a3e0 Add Client.disk_type to track SD card vs. USB
i.e. assuming raspberry pi device for the client.  kind of a specific use case
behind this but it seemed like it could be useful generally
2018-09-28 19:14:55 -05:00
Lance Edgar 30a0f98e1d Add notes field to client and probe tables 2018-09-28 12:26:49 -05:00
Lance Edgar 152ea26c02 Add Client.archived flag, ignore archived for "disabled probes" check
this lets us keep old client config around without deleting it, but it should
not interfere with other logic etc.
2018-09-28 12:21:21 -05:00
Lance Edgar 018a9dcb08 Don't let server mark client as offline until readings fail 3 times in a row
previously we were only letting this fail once, if that
2018-09-28 11:57:27 -05:00
Lance Edgar ab38143039 Include client key in disabled probe list email 2018-09-11 18:42:00 -05:00
Lance Edgar aa98257448 Use invoke instead of fabric to release 2018-02-24 17:20:51 -06:00
Lance Edgar b20c63d023 Update changelog 2018-02-07 17:53:11 -06:00
Lance Edgar 5df3379995 Send email alert when tempmon server marks a client as offline
courtesy of Cole Chaney <cole@mamajeansmarket.com>
2018-02-07 17:48:07 -06:00
Lance Edgar 8a1551e0f5 Send first alert "immediately" if critical temp status
i.e. only wait for "first email" delay if *not* critical

courtesy of Cole Chaney <cole@mamajeansmarket.com>
2018-02-07 17:47:48 -06:00
Lance Edgar f8f29a8551 Update changelog 2017-11-19 17:46:46 -06:00
Lance Edgar fd7cd5cadd Add problem report for disabled clients/probes 2017-11-18 22:12:40 -06:00
Lance Edgar 840c146969 Update changelog 2017-08-08 18:47:29 -05:00
Lance Edgar ef657d0842 Fix alembic script AGAIN
geez man
2017-08-08 18:46:53 -05:00
Lance Edgar 39a2da2b6b Update changelog 2017-08-08 18:44:21 -05:00
Lance Edgar 32eb01fe09 Fix tempmon alembic script per continuum needs
is this really what we have to do now..?
2017-08-08 18:43:10 -05:00
Lance Edgar 5d81ac19a6 Grow the Reading.degrees_f column
sometimes a probe will report a wacky temperature, but we should record
it even so
2017-08-05 12:54:08 -05:00
Lance Edgar ad03e32f77 Don't kill tempmon client if DB session.commit() fails
let the daemon keep trying just like when device.read() fails
2017-08-05 12:49:04 -05:00
Lance Edgar fa09c939f5 Update changelog 2017-08-04 16:08:44 -05:00
Lance Edgar 844a05202e Add Client.readings backref 2017-08-04 16:07:35 -05:00
Lance Edgar aee6f6d341 Auto-delete child objects when deleting Client or Probe object
although if there are a lot of readings, this will still suck...
2017-08-04 15:14:48 -05:00
Lance Edgar 7c7dc56f8d Update changelog 2017-07-07 09:24:48 -05:00
Lance Edgar 90e431c617 Switch license to GPL v3 (no longer Affero)
refs #2
2017-07-06 23:38:50 -05:00
Lance Edgar 6ff84b7f54 Update changelog 2017-07-06 21:33:42 -05:00
Lance Edgar ea921cf58b Replace occurrence of execfile() 2017-07-06 16:24:14 -05:00
Lance Edgar 2acc49be40 Tweak import placement to fix startup
i.e. per Continuum needs
2017-07-04 01:18:28 -05:00
Lance Edgar 9f21244ede Add rattail purge-tempmon command
for getting rid of all those old temperature readings, since
they're mostly just useful in real-time..
2017-07-03 18:10:52 -05:00
Lance Edgar 450f63434b Update changelog 2017-06-01 17:38:57 -05:00
Lance Edgar 396b3739f3 Fix bug when marking client as offline from server loop
..i think?
2017-06-01 17:37:27 -05:00
Lance Edgar 5f680ff672 Update changelog 2017-06-01 17:18:30 -05:00
Lance Edgar f04b4105c7 Tweak mail templates a bit, to reference config values
probably more needs to be done, this is at least a step..
2017-06-01 17:17:11 -05:00
Lance Edgar c4b371cedd Refactor main server loop a bit, to add basic retry w/ error logging
hopefully this lets us get past a simple Postgres restart..
2017-06-01 17:16:31 -05:00
Lance Edgar 27adc5ed70 Update changelog 2017-06-01 16:24:40 -05:00
Lance Edgar 20e3b83525 Add error logging in case committing session fails..
probably need to add a retry somewhere but still not getting the
traceback we need to figure that out...
2017-06-01 16:21:48 -05:00
Lance Edgar 5ee411ba23 Add rattail export-hotcooler command, for initial hotcooler support
..we'll see where this goes..
2017-04-01 18:30:31 -05:00