From 858374b186fb669256fccb2b4dccbb2f559c2101 Mon Sep 17 00:00:00 2001 From: jq Date: Thu, 9 May 2024 00:41:18 -0400 Subject: [PATCH] Initial commit for Pages site. --- .gitignore | 5 + 404.html | 25 ++++ Gemfile | 35 +++++ Gemfile.lock | 293 +++++++++++++++++++++++++++++++++++++++++ _config.yml | 12 ++ _includes/head.html | 9 ++ _includes/sidebar.html | 20 +++ _layouts/default.html | 12 ++ _layouts/page.html | 12 ++ config.md | 14 ++ index.md | 14 ++ public/css/reset.css | 72 ++++++++++ public/css/style.css | 96 ++++++++++++++ push.md | 14 ++ 14 files changed, 633 insertions(+) create mode 100644 .gitignore create mode 100644 404.html create mode 100644 Gemfile create mode 100644 Gemfile.lock create mode 100644 _config.yml create mode 100644 _includes/head.html create mode 100644 _includes/sidebar.html create mode 100644 _layouts/default.html create mode 100644 _layouts/page.html create mode 100644 config.md create mode 100644 index.md create mode 100644 public/css/reset.css create mode 100644 public/css/style.css create mode 100644 push.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f40fbd8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +_site +.sass-cache +.jekyll-cache +.jekyll-metadata +vendor diff --git a/404.html b/404.html new file mode 100644 index 0000000..086a5c9 --- /dev/null +++ b/404.html @@ -0,0 +1,25 @@ +--- +permalink: /404.html +layout: default +--- + + + +
+

404

+ +

Page not found :(

+

The requested page could not be found.

+
diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..f117e41 --- /dev/null +++ b/Gemfile @@ -0,0 +1,35 @@ +source "https://rubygems.org" +# Hello! This is where you manage which Jekyll version is used to run. +# When you want to use a different version, change it below, save the +# file and run `bundle install`. Run Jekyll with `bundle exec`, like so: +# +# bundle exec jekyll serve +# +# This will help ensure the proper Jekyll version is running. +# Happy Jekylling! +# gem "jekyll", "~> 4.3.3" +# This is the default theme for new Jekyll sites. You may change this to anything you like. +gem "minima", "~> 2.5" +# If you want to use GitHub Pages, remove the "gem "jekyll"" above and +# uncomment the line below. To upgrade, run `bundle update github-pages`. +gem "github-pages", "~> 231", group: :jekyll_plugins +# If you have any plugins, put them here! +group :jekyll_plugins do + gem "jekyll-feed", "~> 0.12" +end + +# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem +# and associated library. +platforms :mingw, :x64_mingw, :mswin, :jruby do + gem "tzinfo", ">= 1", "< 3" + gem "tzinfo-data" +end + +# Performance-booster for watching directories on Windows +gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin] + +# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem +# do not have a Java counterpart. +gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby] + +gem "webrick" diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..b03dd43 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,293 @@ +GEM + remote: https://rubygems.org/ + specs: + activesupport (7.1.3.2) + base64 + bigdecimal + concurrent-ruby (~> 1.0, >= 1.0.2) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + minitest (>= 5.1) + mutex_m + tzinfo (~> 2.0) + addressable (2.8.6) + public_suffix (>= 2.0.2, < 6.0) + base64 (0.2.0) + bigdecimal (3.1.8) + coffee-script (2.4.1) + coffee-script-source + execjs + coffee-script-source (1.12.2) + colorator (1.1.0) + commonmarker (0.23.10) + concurrent-ruby (1.2.3) + connection_pool (2.4.1) + dnsruby (1.72.1) + simpleidn (~> 0.2.1) + drb (2.2.1) + em-websocket (0.5.3) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0) + ethon (0.16.0) + ffi (>= 1.15.0) + eventmachine (1.2.7) + execjs (2.9.1) + faraday (2.9.0) + faraday-net_http (>= 2.0, < 3.2) + faraday-net_http (3.1.0) + net-http + ffi (1.16.3) + forwardable-extended (2.6.0) + gemoji (4.1.0) + github-pages (231) + github-pages-health-check (= 1.18.2) + jekyll (= 3.9.5) + jekyll-avatar (= 0.8.0) + jekyll-coffeescript (= 1.2.2) + jekyll-commonmark-ghpages (= 0.4.0) + jekyll-default-layout (= 0.1.5) + jekyll-feed (= 0.17.0) + jekyll-gist (= 1.5.0) + jekyll-github-metadata (= 2.16.1) + jekyll-include-cache (= 0.2.1) + jekyll-mentions (= 1.6.0) + jekyll-optional-front-matter (= 0.3.2) + jekyll-paginate (= 1.1.0) + jekyll-readme-index (= 0.3.0) + jekyll-redirect-from (= 0.16.0) + jekyll-relative-links (= 0.6.1) + jekyll-remote-theme (= 0.4.3) + jekyll-sass-converter (= 1.5.2) + jekyll-seo-tag (= 2.8.0) + jekyll-sitemap (= 1.4.0) + jekyll-swiss (= 1.0.0) + jekyll-theme-architect (= 0.2.0) + jekyll-theme-cayman (= 0.2.0) + jekyll-theme-dinky (= 0.2.0) + jekyll-theme-hacker (= 0.2.0) + jekyll-theme-leap-day (= 0.2.0) + jekyll-theme-merlot (= 0.2.0) + jekyll-theme-midnight (= 0.2.0) + jekyll-theme-minimal (= 0.2.0) + jekyll-theme-modernist (= 0.2.0) + jekyll-theme-primer (= 0.6.0) + jekyll-theme-slate (= 0.2.0) + jekyll-theme-tactile (= 0.2.0) + jekyll-theme-time-machine (= 0.2.0) + jekyll-titles-from-headings (= 0.5.3) + jemoji (= 0.13.0) + kramdown (= 2.4.0) + kramdown-parser-gfm (= 1.1.0) + liquid (= 4.0.4) + mercenary (~> 0.3) + minima (= 2.5.1) + nokogiri (>= 1.13.6, < 2.0) + rouge (= 3.30.0) + terminal-table (~> 1.4) + github-pages-health-check (1.18.2) + addressable (~> 2.3) + dnsruby (~> 1.60) + octokit (>= 4, < 8) + public_suffix (>= 3.0, < 6.0) + typhoeus (~> 1.3) + html-pipeline (2.14.3) + activesupport (>= 2) + nokogiri (>= 1.4) + http_parser.rb (0.8.0) + i18n (1.14.5) + concurrent-ruby (~> 1.0) + jekyll (3.9.5) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (>= 0.7, < 2) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 2.0) + kramdown (>= 1.17, < 3) + liquid (~> 4.0) + mercenary (~> 0.3.3) + pathutil (~> 0.9) + rouge (>= 1.7, < 4) + safe_yaml (~> 1.0) + jekyll-avatar (0.8.0) + jekyll (>= 3.0, < 5.0) + jekyll-coffeescript (1.2.2) + coffee-script (~> 2.2) + coffee-script-source (~> 1.12) + jekyll-commonmark (1.4.0) + commonmarker (~> 0.22) + jekyll-commonmark-ghpages (0.4.0) + commonmarker (~> 0.23.7) + jekyll (~> 3.9.0) + jekyll-commonmark (~> 1.4.0) + rouge (>= 2.0, < 5.0) + jekyll-default-layout (0.1.5) + jekyll (>= 3.0, < 5.0) + jekyll-feed (0.17.0) + jekyll (>= 3.7, < 5.0) + jekyll-gist (1.5.0) + octokit (~> 4.2) + jekyll-github-metadata (2.16.1) + jekyll (>= 3.4, < 5.0) + octokit (>= 4, < 7, != 4.4.0) + jekyll-include-cache (0.2.1) + jekyll (>= 3.7, < 5.0) + jekyll-mentions (1.6.0) + html-pipeline (~> 2.3) + jekyll (>= 3.7, < 5.0) + jekyll-optional-front-matter (0.3.2) + jekyll (>= 3.0, < 5.0) + jekyll-paginate (1.1.0) + jekyll-readme-index (0.3.0) + jekyll (>= 3.0, < 5.0) + jekyll-redirect-from (0.16.0) + jekyll (>= 3.3, < 5.0) + jekyll-relative-links (0.6.1) + jekyll (>= 3.3, < 5.0) + jekyll-remote-theme (0.4.3) + addressable (~> 2.0) + jekyll (>= 3.5, < 5.0) + jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0) + rubyzip (>= 1.3.0, < 3.0) + jekyll-sass-converter (1.5.2) + sass (~> 3.4) + jekyll-seo-tag (2.8.0) + jekyll (>= 3.8, < 5.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-swiss (1.0.0) + jekyll-theme-architect (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-cayman (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-dinky (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-hacker (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-leap-day (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-merlot (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-midnight (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-minimal (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-modernist (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-primer (0.6.0) + jekyll (> 3.5, < 5.0) + jekyll-github-metadata (~> 2.9) + jekyll-seo-tag (~> 2.0) + jekyll-theme-slate (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-tactile (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-time-machine (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-titles-from-headings (0.5.3) + jekyll (>= 3.3, < 5.0) + jekyll-watch (2.2.1) + listen (~> 3.0) + jemoji (0.13.0) + gemoji (>= 3, < 5) + html-pipeline (~> 2.2) + jekyll (>= 3.0, < 5.0) + kramdown (2.4.0) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.4) + listen (3.9.0) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + mercenary (0.3.6) + minima (2.5.1) + jekyll (>= 3.5, < 5.0) + jekyll-feed (~> 0.9) + jekyll-seo-tag (~> 2.1) + minitest (5.22.3) + mutex_m (0.2.0) + net-http (0.4.1) + uri + nokogiri (1.16.4-aarch64-linux) + racc (~> 1.4) + nokogiri (1.16.4-arm-linux) + racc (~> 1.4) + nokogiri (1.16.4-arm64-darwin) + racc (~> 1.4) + nokogiri (1.16.4-x86-linux) + racc (~> 1.4) + nokogiri (1.16.4-x86_64-darwin) + racc (~> 1.4) + nokogiri (1.16.4-x86_64-linux) + racc (~> 1.4) + octokit (4.25.1) + faraday (>= 1, < 3) + sawyer (~> 0.9) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (5.0.5) + racc (1.7.3) + rb-fsevent (0.11.2) + rb-inotify (0.10.1) + ffi (~> 1.0) + rexml (3.2.6) + rouge (3.30.0) + rubyzip (2.3.2) + safe_yaml (1.0.5) + sass (3.7.4) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sawyer (0.9.2) + addressable (>= 2.3.5) + faraday (>= 0.17.3, < 3) + simpleidn (0.2.2) + unf (~> 0.1.4) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) + typhoeus (1.4.1) + ethon (>= 0.9.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.9.1) + unicode-display_width (1.8.0) + uri (0.13.0) + webrick (1.8.1) + +PLATFORMS + aarch64-linux + arm-linux + arm64-darwin + x86-linux + x86_64-darwin + x86_64-linux + +DEPENDENCIES + github-pages (~> 231) + http_parser.rb (~> 0.6.0) + jekyll-feed (~> 0.12) + minima (~> 2.5) + tzinfo (>= 1, < 3) + tzinfo-data + wdm (~> 0.1.1) + webrick + +BUNDLED WITH + 2.5.8 diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..670cdb2 --- /dev/null +++ b/_config.yml @@ -0,0 +1,12 @@ +title: Thermostat Controller +description: iPhone app to view and control your Venstar thermostat. +url: https://thermostat-controller.studiojq.io/ +baseurl: / +author: + name: STUDIOJQ + url: https://github.com/thestudiojq +github: + repo: https://github.com/thestudiojq/thermostat-controller +version: 2.1.0 + +markdown: kramdown \ No newline at end of file diff --git a/_includes/head.html b/_includes/head.html new file mode 100644 index 0000000..7ac119a --- /dev/null +++ b/_includes/head.html @@ -0,0 +1,9 @@ + + + {{ page.title }} + + + + + + diff --git a/_includes/sidebar.html b/_includes/sidebar.html new file mode 100644 index 0000000..efaffb6 --- /dev/null +++ b/_includes/sidebar.html @@ -0,0 +1,20 @@ + \ No newline at end of file diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..bb47a0c --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,12 @@ + + + {% include head.html %} + +
+ {% include sidebar.html %} +
+ {{ content }} +
+
+ + diff --git a/_layouts/page.html b/_layouts/page.html new file mode 100644 index 0000000..bb47a0c --- /dev/null +++ b/_layouts/page.html @@ -0,0 +1,12 @@ + + + {% include head.html %} + +
+ {% include sidebar.html %} +
+ {{ content }} +
+
+ + diff --git a/config.md b/config.md new file mode 100644 index 0000000..1956a27 --- /dev/null +++ b/config.md @@ -0,0 +1,14 @@ +--- +layout: page +title: Config +--- + +# Configuring the app + +Thermostat Controller is an iPhone app that lets you view the data from and control your Venstar thermostat locally. + +You can view the current temperature, set temperature, humidity, fan state and runtimes, including a readout of all the runtimes from the past week as well as the average daily runtime for the past week. + +You can also control your thermostat, with the ability to increase/decrease the set temperature, change the mode (heating, cooling, auto) and change the fan mode (always on or auto). + +Optional push notifications are available to let you know when the thermostat state changes from idle to active (e.g. heating or cooling) or vice versa. These push notifications require the companion app to be running on a computer as well as an API key. More info [here](https://www.studiojq.io/thermostat-controller/). diff --git a/index.md b/index.md new file mode 100644 index 0000000..ffef5b2 --- /dev/null +++ b/index.md @@ -0,0 +1,14 @@ +--- +layout: default +title: Home +--- + +# About + +Thermostat Controller is an iPhone app that lets you view the data from and control your Venstar thermostat locally. + +You can view the current temperature, set temperature, humidity, fan state and runtimes, including a readout of all the runtimes from the past week as well as the average daily runtime for the past week. + +You can also control your thermostat, with the ability to increase/decrease the set temperature, change the mode (heating, cooling, auto) and change the fan mode (always on or auto). + +Optional push notifications are available to let you know when the thermostat state changes from idle to active (e.g. heating or cooling) or vice versa. These push notifications require the companion app to be running on a computer as well as an API key. More info [here](https://www.studiojq.io/thermostat-controller/). diff --git a/public/css/reset.css b/public/css/reset.css new file mode 100644 index 0000000..ff43d26 --- /dev/null +++ b/public/css/reset.css @@ -0,0 +1,72 @@ +/* Box sizing rules */ +*, +*::before, +*::after { + box-sizing: border-box; +} + +/* Prevent font size inflation */ +html { + -moz-text-size-adjust: none; + -webkit-text-size-adjust: none; + text-size-adjust: none; +} + +/* Remove default margin in favour of better control in authored CSS */ +body, h1, h2, h3, h4, p, +figure, blockquote, dl, dd { + margin-block-end: 0; +} + +/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */ +ul[role='list'], +ol[role='list'] { + list-style: none; +} + +/* Set core body defaults */ +body { + min-height: 100vh; + line-height: 1.5; +} + +/* Set shorter line heights on headings and interactive elements */ +h1, h2, h3, h4, +button, input, label { + line-height: 1.1; +} + +/* Balance text wrapping on headings */ +h1, h2, +h3, h4 { + text-wrap: balance; +} + +/* A elements that don't have a class get default styles */ +a:not([class]) { + text-decoration-skip-ink: auto; +} + +/* Make images easier to work with */ +img, +picture { + max-width: 100%; + display: block; +} + +/* Inherit fonts for inputs and buttons */ +input, button, +textarea, select { + font-family: inherit; + font-size: inherit; +} + +/* Make sure textareas without a rows attribute are not tiny */ +textarea:not([rows]) { + min-height: 10em; +} + +/* Anything that has been anchored to should have extra scroll margin */ +:target { + scroll-margin-block: 5ex; +} \ No newline at end of file diff --git a/public/css/style.css b/public/css/style.css new file mode 100644 index 0000000..f5c6e4c --- /dev/null +++ b/public/css/style.css @@ -0,0 +1,96 @@ +body { + font-family: 'Lekton', monospace; + font-size: 18px; + background: #fff; + color: #000; + font-weight: 400; +} +h1 { + font-size: 2em; + margin: 0; + font-weight: 700; +} +a { + color: #f0f; + font-weight: 400; + text-decoration: none; +} +a:hover { + text-decoration: underline; +} + +p { + margin: 24px 0 0; + line-height: 1.75; +} +::selection { + background: #000; + color: #fff; +} + +.container { + display: flex; + width: 100%; + flex-wrap: wrap; +} + +.sidebar { + width: 352px; + display: flex; + flex-direction: column; + padding: 96px 32px 0; + order: 1; +} +.site-title { + margin-bottom: 4px; + font-size: 2em; + line-height: 1.1; +} +.site-title a { + color: #000; + font-weight: 700; +} +.site-description { + margin-bottom: 48px; +} +.menu { + list-style-type: none; + margin: 0; + padding: 0; +} +.menu li { + margin: 0 0 8px; + padding: 0; +} +.menu li a { + color: #000; +} +.copyright { + margin-top: 40px; + font-size: 14px; + margin-bottom: 24px; +} + +.main { + width: calc(100% - 352px); + display: flex; + flex-direction: column; + padding: 96px 32px 0 64px; + order: 2; +} + +@media screen and (max-width: 1000px) { + .sidebar { + width: 100%; + order: 2; + text-align: center; + padding: 48px 0 0; + margin: 48px 32px 0; + border-top: 1px solid #ddd; + } + .main { + width: 100%; + order: 1; + padding: 48px 32px 0; + } +} diff --git a/push.md b/push.md new file mode 100644 index 0000000..31a7f52 --- /dev/null +++ b/push.md @@ -0,0 +1,14 @@ +--- +layout: page +title: Push notifications +--- + +# {{ page.title }} + +Thermostat Controller is an iPhone app that lets you view the data from and control your Venstar thermostat locally. + +You can view the current temperature, set temperature, humidity, fan state and runtimes, including a readout of all the runtimes from the past week as well as the average daily runtime for the past week. + +You can also control your thermostat, with the ability to increase/decrease the set temperature, change the mode (heating, cooling, auto) and change the fan mode (always on or auto). + +Optional push notifications are available to let you know when the thermostat state changes from idle to active (e.g. heating or cooling) or vice versa. These push notifications require the companion app to be running on a computer as well as an API key. More info [here](https://www.studiojq.io/thermostat-controller/).