From eba813a283340e045cc25a96064655fd7bd57d7b Mon Sep 17 00:00:00 2001 From: Craig Oates Date: Thu, 30 Jun 2022 20:05:36 +0100 Subject: [PATCH] Squashed commit of the following: commit f2b17da0c2dfda81527b69bc28dbb4926a73164c Author: Craig Oates Date: Thu Jun 30 20:02:09 2022 +0100 add .stl models of (3D printable) enclosure. If you have the means, you can use these .stl files to 3D print an enclosure for the Raspberry Pi and the circuitry connected to it. These models where used for the exhibition. commit ac90de7fe4b6bd13e162234fc7d76dd797685457 Author: Craig Oates Date: Tue Jun 28 04:36:07 2022 +0100 add outer-shell-top-001.stl (test). commit 3247b1d62016d56c28ac3dc96178ef6c9ba67ad8 Author: Craig Oates Date: Fri Nov 5 18:08:10 2021 +0000 update README. commit de3573cd2188a115d4f10ea0ac4205213e89aac3 Author: gallery1 Date: Thu Apr 8 14:57:29 2021 +0100 increase light threshold to 39 in gallery1. I, commented out print statements and changed formating out print strings -- they were used for testing. Having ran the relays for a sustained period of time. It became apparent, the threshold for the light levels in gallery1 was too low. What ended up happening was the light would remain on for long periods of time through out the day but the light levels (Light Wave and Eyes and Ears) would show no welding was occuring. What made this a little tricky to pick it apart, though, was some days the light levels would rest at 38 and others at 39. Because it fluctuates, I couldn't tell if gallery1 would miss some 'welding triggers'. I decided to increase it to 39 in the end because the charts produced by Light Wave suggests the change in light brought on by the welding increases the light levels by at least 2 -- most of the time. So, by increasing the threshold to 39, the light levels must pass it which means the light level must now hit 40+ effectively (not worrying about decimal values). This is still reachable on days when the natural light level is at 38. The tradeoff is the system might miss the very short welding bursts but the charts produced by Light Wave suggests they are too rare to interfere with the intended effect/outcome of the system in a significant way. I say all this but I wouldn't be surprised if I backtrack on everything I said here in a future commit. commit 723f053a86f13b0269ae01f218137f8543b327d0 Author: gallery2 Date: Mon Feb 1 14:21:46 2021 +0000 seperate light reading conditions for each relay. With both Light-Meters installed in Ritheron, it is now apparent, each booth has different levels on light in them. This means each Relay (linked to its factory counterpart) needs to adjust to match. The branching logic is implemented in a sloppy way here so it will need to be refactored at some point but this is just a quick change to test the code. commit a64d796a79f7d61c1f3bf0dc25ca04d94ceb7a19 Author: gallery2 Date: Mon Feb 1 14:12:00 2021 +0000 add timeout exception handling. At the time of writing, I would find the relay.service wouldn't crash so it couldn't be restarted. Instead, it would hang and I think it's to do with the HTTP request not timing out properly. I can't confirm this yet so I've added in an exception case to help with monitoring the issue. This is a 'work-in-progress' commit. commit 116ae5cada0a29b54c642a6b05b09a5520c73f54 Author: gallery2 Date: Tue Jan 26 15:29:32 2021 +0000 re-comment out print statement (testing print statement). commit 4bcaab53f64609fd08b102919c1282361abc0e73 Author: gallery2 Date: Tue Jan 26 15:18:07 2021 +0000 create a Systemd service file. This is so the program can run unattended. It is a move away from the '@reboot' cronjob used previously. Note this will need to be copied into the appropriate loction of the system if you have just cloned the repository. Search for Systemd docuementation on the interwebs or in the repositories README (hopefully it's been added after this commmit). commit 3a28c3b001e998d1b025829ef6798f38c8632ce7 Author: gallery2 Date: Tue Jan 26 14:50:44 2021 +0000 remove 60 sec. delay at startup and add add new (cli) exception message. The removal of the delay is in preparation of moving the program to a Systemd service -- instead of a '@reboot' cronjob. By doing that, the need to wait for the network stack on the Raspberry Pi to start is a built-in feature. The change to Systemd is becuase the program would terminate when it hits the 'max. requests exceeded' exception in the 'requests' module (Python). Having spoke to Nic (lead artist), she has stated she has a preference for the program to be requesting the latest light readings or nothing at all. The 'backoff' features which come with the 'requests' module will stop the program from crashing but at the possibility of the having the Relays be out-of-sync -- whilst still looking like it's working -- with the latest light readings produced by the Light Meters in the factory and what's been delivered to the server (Midpoint). To be fair, this problem only arose when I ran the two gallery Relays, one Light Meter and one instance of Eyes and Ears from the same location (my flat). This wouldn't be the case in the when the exhibiton is live. Either way, Systemd it is. The natural process of waiting for the program to restart (with added delay in Systemd service file if wanted) naturally allows the system to 'backoff' but it keeps the all-or-nothing aspect Nic prefers. The exception message is a minor change. It's there just to make it easier to determine if the program is terminating because of the 'max. requests exceeded' exception. I added it to the generic exception for ease more than anything else. I can catch other exceptions whilst expecting the 'max. requests' one. This is not the best approach to programming but the trade-off between project goals and budget make me think this is ok (for now). It is what it is. commit 92cbbe1d2fa2a4f72f8c33733ecb40a8aee973f6 Author: Craig Oates Date: Mon Jan 11 10:48:33 2021 +0000 change condition of light levels to switch on greater than 48. The light meter readings changed when new a Light Meter (factory2) was installed (new components). The change produces different light levels (don't know why but probably different components). This change accounts for the new levels and the light which is controlled by this code now turns on when it receives a reading greater than 48. This seems to be the baseline light level in the welding booth (in Ritherdon, the factory) -- after monitoring the readings for a period of time. commit deb17a061bab5c79ffda4744d452bdcb6067900a Author: Craig Oates Date: Fri Jan 8 20:02:24 2021 +0000 correct URL used for RESTAPI calls. The URL before was for adding a light reading -- not getting a reading. This URL change fixes that. This is what happens when you copy-and-paste code from the Light Meter project into this one. commit 564ee5d938401df45c30c0107e4c04a1e162f8e4 Author: Craig Oates Date: Fri Jan 8 19:55:42 2021 +0000 import platform module. The module is used to help determine which device is running the program. The device name allows the rest of the system to know what this device needs when I makes it RESTAPI calls. commit 37843eb3b56441112feea8520fd6de58513d023c Author: Craig Oates Date: Fri Jan 8 19:53:14 2021 +0000 add call to get device Id. Adds a line of code which gets and stores the device's Id. Which is then used to determine which URL to use for the RESTAPI. commit eceb05ff558ccbfb32b3ec3b589d6064cd54aabe Author: Craig Oates Date: Fri Jan 8 19:48:19 2021 +0000 fix device name checks. The device/host names for the devices running this program should be using 'galleryX' ('X' denotes the device number). I put 'factory' instead of gallery because I'm an idiot. 'factory' are the device names for the Light Meter project. commit 59cab50a3265deb044ba860405974832c676a0a2 Author: Craig Oates Date: Fri Jan 8 19:45:57 2021 +0000 update how URL is formed (RESTAPI call). This adds a check to determine which relay the system is (hostname/device name). When name is determined,the URL the program will use for the RESTAPI call is then set. At the time of writing, the system is expecting two relays. Hence the if-else statement. If more devices are to be added, this approach will need to be reconsidered. commit f95ac677d65d833e8b4073aa6e639efa12dfeacd Author: rtrp@gallery1 Date: Fri Nov 27 18:29:54 2020 +0000 update URL for RestAPI calls. The API calls now go to rither.abbether.net instead of the designated IP address assigned the server (AWS). This change makes it easier to access the RestAPI (see midpoint repo.) server. The URL will remain constant and if the server needs to be powered-down/restarted for anything, the new IP address Amazon (web services) assigns to it will no longer matter. And, the code used to make the RestAPI call will no longer need changing manually. commit 6da8436227b9578881c5f191b94e057d6145e57a Author: Craig Oates Date: Sun Jan 12 23:37:41 2020 +0000 port startup and shutdown scripts from Light-Meter repo. commit bb32709f5d10f9afe6466de3196d6408209bfcfe Author: Craig Oates Date: Sun Jan 12 23:19:02 2020 +0000 remove old code from relay.py. commit dfe6554d6f2d1678a8e16cfde072df3c327a1a51 Author: Craig Date: Sun Jan 5 20:31:51 2020 +0000 port over code from test project. --- 3d-models/inner-frame-001.stl | Bin 0 -> 53684 bytes 3d-models/os-btm-001.stl | Bin 0 -> 35484 bytes 3d-models/outer-shell-top-002.stl | Bin 0 -> 65084 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 3d-models/inner-frame-001.stl create mode 100644 3d-models/os-btm-001.stl create mode 100644 3d-models/outer-shell-top-002.stl diff --git a/3d-models/inner-frame-001.stl b/3d-models/inner-frame-001.stl new file mode 100644 index 0000000000000000000000000000000000000000..5bf7209e9aad99db816250601279dc2d3bf416dd GIT binary patch literal 53684 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 Sc}zT_wLXLrLcTk~E&V?zgK&fZ literal 0 HcmV?d00001 diff --git a/3d-models/os-btm-001.stl b/3d-models/os-btm-001.stl new file mode 100644 index 0000000000000000000000000000000000000000..586c6f2fc8484eb2fdcf48c65c69d1b51159adce GIT binary patch literal 35484 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 literal 0 HcmV?d00001