{"id":20250600,"url":"https://github.com/sheepforce/inside","last_synced_at":"2025-06-10T09:33:29.358Z","repository":{"id":139293445,"uuid":"114226670","full_name":"sheepforce/Inside","owner":"sheepforce","description":"Monitoring the conditions in UHV experiments by interfacing multiple devices","archived":false,"fork":false,"pushed_at":"2018-04-10T13:20:20.000Z","size":103,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-03T16:26:48.482Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sheepforce.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-12-14T08:58:36.000Z","updated_at":"2018-04-10T13:20:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"6c2af453-4562-4a61-b0be-7856063a64e0","html_url":"https://github.com/sheepforce/Inside","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheepforce%2FInside","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheepforce%2FInside/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheepforce%2FInside/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheepforce%2FInside/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sheepforce","download_url":"https://codeload.github.com/sheepforce/Inside/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sheepforce%2FInside/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259048353,"owners_count":22797717,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-14T09:59:14.019Z","updated_at":"2025-06-10T09:33:29.330Z","avatar_url":"https://github.com/sheepforce.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# INSIDE\nA tool to monitor the conditions of the \"INSIDE\" UHV chamber.\n\n## Capabilities\nINSIDE monitors three different controllers:\n  - [VACOM Coldion CU-100](http://www.vacom-shop.de/epages/VacomShop.sf/en_GB/?ViewObjectID=1088267)\n  - [LakeShore 335](https://www.lakeshore.com/products/cryogenic-temperature-controllers/model-335/Pages/Overview.aspx)\n  - [Leybold GRAPHIX THREE](https://www.leyboldproducts.uk/products/vacuum-measuring/active-sensors/operating-units-for-active-sensors/operating-units-for-active-sensors/1782/graphix-three) (2 x)\n\nConditions are periodically updated and warnings are shown, if conditions reach some thresholds. Futhermore all values can be written to a file. Configuration happens via a very simple config file. A website with auto updating plots can be used to follow the conditions in the chamber.\n\n## Installation\nThe programm is written solely in Haskell and built usind the tool `stack`. To install `stack` visit the [installation guide for stack](https://docs.haskellstack.org/en/stable/README/).\n\nClone this repository and then build it:\n\n    git clone https://github.com/sheepforce/Inside.git\n    cd Inside\n    stack install gtk2hs-buildtools\n    stack setup\n    stack build\n    stack install\n\nThe commands above may take some time as stack needs to download the compiler, all necessary libraries and compile them.\n\n### Website\nTo make it easier to follow trends of conditions in the UHV chamber while working or being remote, a website can be used to visualize conditions. The html document and the javascript function for updating the graphics can be found in `web`. You need a document root for the webserver (like Apache), that is given in `WEBPREFIX` in the `Makefile`. Execute\n\n    make\n\nand enable this directory in your web server settings. For apache create a configuration (`/etc/apache/sites-available/inside.conf`) with the following content\n\n     \u003cVirtualHost *:80\u003e\n         ServerAdmin webmaster@localhost\n\n         DocumentRoot /home/user/inside-web # according to whatever you chose in the Makefile\n\n         ErrorLog ${APACHE_LOG_DIR}/error.log\n         CustomLog ${APACHE_LOG_DIR}/access.log combined\n\n         \u003cDirectory /\u003e\n            Options FollowSymLinks\n            AllowOverride None\n        \u003c/Directory\u003e\n\n        \u003cDirectory /home/user/inside-web\u003e\n            Options Indexes FollowSymLinks MultiViews\n            AllowOverride None\n            Require all granted\n        \u003c/Directory\u003e\n     \u003c/VirtualHost\u003e\n\nin `/etc/apache/sites-available` and enable it with\n\n    a2ensite inside.conf\n    systemctl apache2.service reload\n\n## Usage\n### inside\nAfter you have installed the `inside` executable by executing `stack install`, make sure that the installation directory is available in your `$PATH`. Edit the `device.conf` file, that came with this repository and chnage to your needs. While the syntax should be self explanatory, be aware that the parser is not very flexible and cannot handle changes in the order of lines, nor comments, nor whitespace in names. There are no optional values! if you use `device.conf` everything MUST be set.\n\n- `enabled =` can be `True` or `False`, states if a device is updated or not. If not connected simply set to `False`.\n- `port =` is the path to the RS232 interface, if using a USB-RS232 converter it is usually something like `/dev/ttyUSB0`. Check `dmesg` for interfaces\n- `warn = ` is the threshold for the devices, above which a warning will be raised. The Coldion takes a single value, the LakeShore two and the two GRAPHIX THREE three values each. Separate them by space.\n- `label =` a simple, non breaking string, that is shown in the programm for clarity in front of the reading, takes same amount of values as `warn =`\n\nYou can now execute `inside` for executing the programm with internal defaults or execute `inside /path/to/device.conf` to read the configuration file and overwrite the internal defaults.\n\n### insideplotter\n`insideplotter` is the program for updating the graphs on the website. It reads the log file written by `inside` and periodically writes new graphes to the specified directory, which should be the root of the web content. It is directly configured with command line arguments.\n\n    insideplotter --help\n\n    Common flags:\n         --logpath=DIRECTORY   directory of the log files\n      -w --webpath=DIRECTORY   directory of the web contents\n      -c --coldion             switch to not plot graph for the ColdIon\n         --lakeshore           switch to not plot graphs for the LakeShore\n         --graphixthree1       switch to not plot graphs for the GraphixThree 1\n         --graphixthree2       switch to not plot graphs for the GraphixThree 2\n      -u --updateinterval=INT  delay between updating plots\n      -p --plotinterval=INT    history in minutes to plot\n      -? --help                Display help message\n      -V --version             Print version information\n\n- `--logpath` is the directory where `inside` writes the log files to\n- `--webpath` is the location of `inside.html` and the directoy that is the `DocumentRoot` of the server\n- `--coldion`, `--lakeshore`, `--graphixthree1`, `--graphixthree2` are switches to disable updates of the graphes of the corresponding device\n- `--updateinterval` is the delay in microseconds between cycles to update the plots\n- `--plotinterval` is the history in minutes to be plotted from the log file\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsheepforce%2Finside","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsheepforce%2Finside","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsheepforce%2Finside/lists"}