diff --git a/.gitignore b/.gitignore index 6e2501700..9fbbbf552 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.pio .pioenvs .piolibdeps .clang_complete diff --git a/README.md b/README.md index a9369c640..69b2a567a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,5 @@ # BrewPiLess - **Note: ALL BPL settings will be gone after upgrading to v3.0** - - **Note: re-SETUP is necessary after upgrading to v2.4** + **Note: Beer Profile exteds to maximum 10 steps. Your setting might lost. There is an utility, /extra/backup.htm. You can upload this file and use it to backup/restore the settings.** ## Features * I2C LCD support. @@ -21,7 +19,8 @@ * Save and resuse of beer profiles. * Static IP setting. * Export saved data to csv format by offline log viewer. - * Brew and calibrate iSpindel. **new!** + * Brew and calibrate. + * Tilt & Rapt Pill support(ESP32) # Introduction This project uses a single ESP8266 to replace RPI and Arduino. @@ -38,21 +37,80 @@ You will need to run the hardware setup procedure after upgrading to v2.4 from p ## Known issues * ESP8266 won't restart after saving system configuration. Sometimes ESP8266 can't restart after a software watchdog timer reset, which is the only way to reset the system by software. It happened on my NodeMcu and D1 mini boards that didn't connect to anything but USB. I have no solution for it. -* ESP8266 won't start after selecting WiFi network. - The web server used is ESPAsyncWebServer which uses ESPAsyncTCP. I found that if ESP8266 ever enters SoftAP mode before connecting to the network, the Web server will fail on tcp_bind() and the web service will be unavailable. Not tracing the source code of the LWIP, I just worked around by reseting the system. However, ESP8266 sometimes doesn't reset. * The page can't be loaded correctly. It rarely happens after HTTP caching is used, but it does happen especially when Javascript Console is opened. During developing and testing, I found corrupted html/javascript pages. Without the abliity and time to debug or develop the web server and or TCP/IP stack, I decide to live with it. * Incorrect temperature chart. The log format before v2.0 is vulnerable. There seems to be some unconsidered conditions that break the log. +* The gravity caluated by the controller is slightly different from that shown on chart. It is because the formula are derived speratedly. Due to different float precision, the formula is different. The difference should be small, though. ## Version History + * 2024/09/16 update + * trying ESP32 framework 6.8.1 + * No password for AP mode by default; workaround for an issue in newer framework. + * Add BLE sensor supports(not enabled by default) + * 4.4 + * Settings might be reset, save it before updgrading. + * (ESP32) Rapt Pill support + * Revise Gravity Device Setting. + * Removing confusing calibration temperature of wireless hydrometer + * Code revise + * update ESP32 framework to 6.3.2 + * 4.3.1 + * Auto list device list on page open + * Advanced settings for control constants. + * Glycol as an option. No more dedicated Glycol build. + * Update Filemanager. + * 4.3 + * update ESP32 framework to 5.4.0 + * update ESP8266 framework to 4.2.0 + * 4.2.2 + * Dedicated GLYCOL support binary. Glycol chilling is NOT supported by default. + * 4.2.1 + * [Only web front changes.] Show gravity changes of latest 48H/24H/12H instead of "stable". + * 4.2 + * BMP280 support + * Using environment temperature as room/chamber temperature + * extend maximum Beer Profile to 10 steps. + * experimental Humidity control + * Rotating LCD for extra information, like iSpiondel information, Humidity, and pressure. + * Dedicated additional iSpindel display of SSD1306 OLED LCD. + * New 'Write on buffer full' option for logging to reduce flash writing. + * Backup/restore settings + * LittleFS replaces SPIFFS for all ESP8266. + * LittleFS is default for ESP32. + * Partition table for ESP32 has changed. Flash via USB might be necessary. + + * 4.1 + * "Real" generic HTTP logging. + * DHT1x/DHT2x support, for humidity control + * Pressure report for Brewfather.app + * [ESP32] HTTPS remote logging. + * [ESP32] TILT support + * Classic frontend is no longer maintained. + + * 4.0r1 + * Fix lost of WiFi connection after a few days. + * 4.0 + * Arduino Framework 2.2.0 + * Pressure chart + * [Prewssure transducer ADC refined. ADS1115 support.](doc/PresssureMonitor.md) + * Display MAC address and Flash related information. + + * v3.6r3 + * Shorten recovering time. Resolving disconnection in AP mode for WiFi Auto Reconnect. + + * v3.6v2 + * Bug fixed: system config cann't be saved. + * Bug fixed:DHCP service not availbe in AP_STA mode * v3.6 * update framework to 2.2.0 + * **4m2m flash layout for All but SONOFF, due to size growth of framework.** * update OLED library to 4.0 (Not verified by me, but SOMEONE@HBT did report working) * update to ArduinoJson V6 * add revised LCD page. at /lcd * SOFF OTA configuraton not longer available for space limit * Using interrupt for more responsive button operation. + * MQTT publish/subscribe, NEW UI only. * v3.5.1 * fixed iSpindel temperature unit issue diff --git a/bins/BrewPiLess.v2.6rc.bin b/bins/BrewPiLess.v2.6rc.bin deleted file mode 100644 index f0678b629..000000000 Binary files a/bins/BrewPiLess.v2.6rc.bin and /dev/null differ diff --git a/bins/BrewPiLess.v2.6rc.ioexpander.bin b/bins/BrewPiLess.v2.6rc.ioexpander.bin deleted file mode 100644 index b05ce0306..000000000 Binary files a/bins/BrewPiLess.v2.6rc.ioexpander.bin and /dev/null differ diff --git a/bins/BrewPiLess.v2.6rc.oled.bin b/bins/BrewPiLess.v2.6rc.oled.bin deleted file mode 100644 index 2f8c2e2a4..000000000 Binary files a/bins/BrewPiLess.v2.6rc.oled.bin and /dev/null differ diff --git a/bins/BrewPiLess.v2.6rc.sonoff.bin b/bins/BrewPiLess.v2.6rc.sonoff.bin deleted file mode 100644 index 8b8b892bc..000000000 Binary files a/bins/BrewPiLess.v2.6rc.sonoff.bin and /dev/null differ diff --git a/bins/BrewPiLess.v2.6rc.sonoffota.bin b/bins/BrewPiLess.v2.6rc.sonoffota.bin deleted file mode 100644 index b05ce0306..000000000 Binary files a/bins/BrewPiLess.v2.6rc.sonoffota.bin and /dev/null differ diff --git a/bins/BrewPiLess.v2.6rc.thorrax.bin b/bins/BrewPiLess.v2.6rc.thorrax.bin deleted file mode 100644 index c23154cb2..000000000 Binary files a/bins/BrewPiLess.v2.6rc.thorrax.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.1.bin b/bins/BrewPiLess.v3.1.bin deleted file mode 100644 index b64a349bf..000000000 Binary files a/bins/BrewPiLess.v3.1.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.1.ioexpander.bin b/bins/BrewPiLess.v3.1.ioexpander.bin deleted file mode 100644 index ea8b76846..000000000 Binary files a/bins/BrewPiLess.v3.1.ioexpander.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.1.newui.bin b/bins/BrewPiLess.v3.1.newui.bin deleted file mode 100644 index 492674c8d..000000000 Binary files a/bins/BrewPiLess.v3.1.newui.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.1.newui.spanish.bin b/bins/BrewPiLess.v3.1.newui.spanish.bin deleted file mode 100644 index a7400235e..000000000 Binary files a/bins/BrewPiLess.v3.1.newui.spanish.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.1.oled.bin b/bins/BrewPiLess.v3.1.oled.bin deleted file mode 100644 index faf4c82d1..000000000 Binary files a/bins/BrewPiLess.v3.1.oled.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.1.ptc.bin b/bins/BrewPiLess.v3.1.ptc.bin deleted file mode 100644 index 233af4063..000000000 Binary files a/bins/BrewPiLess.v3.1.ptc.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.1.sonoff.bin b/bins/BrewPiLess.v3.1.sonoff.bin deleted file mode 100644 index 51e015562..000000000 Binary files a/bins/BrewPiLess.v3.1.sonoff.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.1.sonoffota.bin b/bins/BrewPiLess.v3.1.sonoffota.bin deleted file mode 100644 index f0a8d3c4e..000000000 Binary files a/bins/BrewPiLess.v3.1.sonoffota.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.1.spanish.bin b/bins/BrewPiLess.v3.1.spanish.bin deleted file mode 100644 index c4d275b15..000000000 Binary files a/bins/BrewPiLess.v3.1.spanish.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.1.thorrax.bin b/bins/BrewPiLess.v3.1.thorrax.bin deleted file mode 100644 index 483370dd5..000000000 Binary files a/bins/BrewPiLess.v3.1.thorrax.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.2r2.bin b/bins/BrewPiLess.v3.2r2.bin deleted file mode 100644 index ce21aa5ac..000000000 Binary files a/bins/BrewPiLess.v3.2r2.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.2r2.ioexpander.bin b/bins/BrewPiLess.v3.2r2.ioexpander.bin deleted file mode 100644 index b4e91a48c..000000000 Binary files a/bins/BrewPiLess.v3.2r2.ioexpander.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.2r2.newui.bin b/bins/BrewPiLess.v3.2r2.newui.bin deleted file mode 100644 index e0c573528..000000000 Binary files a/bins/BrewPiLess.v3.2r2.newui.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.2r2.newui.portuguesbr.bin b/bins/BrewPiLess.v3.2r2.newui.portuguesbr.bin deleted file mode 100644 index bd2ba24fb..000000000 Binary files a/bins/BrewPiLess.v3.2r2.newui.portuguesbr.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.2r2.newui.spanish.bin b/bins/BrewPiLess.v3.2r2.newui.spanish.bin deleted file mode 100644 index 01cd77ab6..000000000 Binary files a/bins/BrewPiLess.v3.2r2.newui.spanish.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.2r2.oled.bin b/bins/BrewPiLess.v3.2r2.oled.bin deleted file mode 100644 index 79dbf9246..000000000 Binary files a/bins/BrewPiLess.v3.2r2.oled.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.2r2.portuguesbr.bin b/bins/BrewPiLess.v3.2r2.portuguesbr.bin deleted file mode 100644 index 114a4faa7..000000000 Binary files a/bins/BrewPiLess.v3.2r2.portuguesbr.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.2r2.ptc.bin b/bins/BrewPiLess.v3.2r2.ptc.bin deleted file mode 100644 index 95f51bc25..000000000 Binary files a/bins/BrewPiLess.v3.2r2.ptc.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.2r2.sonoff.bin b/bins/BrewPiLess.v3.2r2.sonoff.bin deleted file mode 100644 index 9a5bb8579..000000000 Binary files a/bins/BrewPiLess.v3.2r2.sonoff.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.2r2.sonoffota.bin b/bins/BrewPiLess.v3.2r2.sonoffota.bin deleted file mode 100644 index 78b4edfb0..000000000 Binary files a/bins/BrewPiLess.v3.2r2.sonoffota.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.2r2.spanish.bin b/bins/BrewPiLess.v3.2r2.spanish.bin deleted file mode 100644 index 22f897141..000000000 Binary files a/bins/BrewPiLess.v3.2r2.spanish.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.2r2.thorrax.bin b/bins/BrewPiLess.v3.2r2.thorrax.bin deleted file mode 100644 index cf27d16ea..000000000 Binary files a/bins/BrewPiLess.v3.2r2.thorrax.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.3r1.bin b/bins/BrewPiLess.v3.3r1.bin deleted file mode 100644 index c6d3437e4..000000000 Binary files a/bins/BrewPiLess.v3.3r1.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.3r1.ioexpander.bin b/bins/BrewPiLess.v3.3r1.ioexpander.bin deleted file mode 100644 index 2bd3af2db..000000000 Binary files a/bins/BrewPiLess.v3.3r1.ioexpander.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.3r1.newui.bin b/bins/BrewPiLess.v3.3r1.newui.bin deleted file mode 100644 index 385bbef0c..000000000 Binary files a/bins/BrewPiLess.v3.3r1.newui.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.3r1.newui.portuguesbr.bin b/bins/BrewPiLess.v3.3r1.newui.portuguesbr.bin deleted file mode 100644 index ad59c6f22..000000000 Binary files a/bins/BrewPiLess.v3.3r1.newui.portuguesbr.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.3r1.newui.spanish.bin b/bins/BrewPiLess.v3.3r1.newui.spanish.bin deleted file mode 100644 index 622ef53f4..000000000 Binary files a/bins/BrewPiLess.v3.3r1.newui.spanish.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.3r1.oled.bin b/bins/BrewPiLess.v3.3r1.oled.bin deleted file mode 100644 index c0c95084a..000000000 Binary files a/bins/BrewPiLess.v3.3r1.oled.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.3r1.portuguesbr.bin b/bins/BrewPiLess.v3.3r1.portuguesbr.bin deleted file mode 100644 index b31c67330..000000000 Binary files a/bins/BrewPiLess.v3.3r1.portuguesbr.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.3r1.ptc.bin b/bins/BrewPiLess.v3.3r1.ptc.bin deleted file mode 100644 index 6999aa320..000000000 Binary files a/bins/BrewPiLess.v3.3r1.ptc.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.3r1.sonoff.bin b/bins/BrewPiLess.v3.3r1.sonoff.bin deleted file mode 100644 index dbf396c95..000000000 Binary files a/bins/BrewPiLess.v3.3r1.sonoff.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.3r1.sonoffota.bin b/bins/BrewPiLess.v3.3r1.sonoffota.bin deleted file mode 100644 index 9da436911..000000000 Binary files a/bins/BrewPiLess.v3.3r1.sonoffota.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.3r1.spanish.bin b/bins/BrewPiLess.v3.3r1.spanish.bin deleted file mode 100644 index 0c3c81eb5..000000000 Binary files a/bins/BrewPiLess.v3.3r1.spanish.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.3r1.thorrax.bin b/bins/BrewPiLess.v3.3r1.thorrax.bin deleted file mode 100644 index f9a39675b..000000000 Binary files a/bins/BrewPiLess.v3.3r1.thorrax.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4.bin b/bins/BrewPiLess.v3.4.bin deleted file mode 100644 index d0f7a6eb8..000000000 Binary files a/bins/BrewPiLess.v3.4.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4.ioexpander.bin b/bins/BrewPiLess.v3.4.ioexpander.bin deleted file mode 100644 index 83ce24cb6..000000000 Binary files a/bins/BrewPiLess.v3.4.ioexpander.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4.newui.bin b/bins/BrewPiLess.v3.4.newui.bin deleted file mode 100644 index af535c935..000000000 Binary files a/bins/BrewPiLess.v3.4.newui.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4.newui.oled.portuguese-br.bin b/bins/BrewPiLess.v3.4.newui.oled.portuguese-br.bin deleted file mode 100644 index fc0f434e0..000000000 Binary files a/bins/BrewPiLess.v3.4.newui.oled.portuguese-br.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4.newui.portuguese-br.bin b/bins/BrewPiLess.v3.4.newui.portuguese-br.bin deleted file mode 100644 index c9d59946b..000000000 Binary files a/bins/BrewPiLess.v3.4.newui.portuguese-br.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4.newui.spanish.bin b/bins/BrewPiLess.v3.4.newui.spanish.bin deleted file mode 100644 index 366edf5bc..000000000 Binary files a/bins/BrewPiLess.v3.4.newui.spanish.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4.oled.bin b/bins/BrewPiLess.v3.4.oled.bin deleted file mode 100644 index a290e36ff..000000000 Binary files a/bins/BrewPiLess.v3.4.oled.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4.portuguese-br.bin b/bins/BrewPiLess.v3.4.portuguese-br.bin deleted file mode 100644 index b36fc90ea..000000000 Binary files a/bins/BrewPiLess.v3.4.portuguese-br.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4.ptc.bin b/bins/BrewPiLess.v3.4.ptc.bin deleted file mode 100644 index 801b215ec..000000000 Binary files a/bins/BrewPiLess.v3.4.ptc.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4.sonoff.bin b/bins/BrewPiLess.v3.4.sonoff.bin deleted file mode 100644 index 3b187d733..000000000 Binary files a/bins/BrewPiLess.v3.4.sonoff.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4.sonoffota.bin b/bins/BrewPiLess.v3.4.sonoffota.bin deleted file mode 100644 index b81eec41a..000000000 Binary files a/bins/BrewPiLess.v3.4.sonoffota.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4.spanish.bin b/bins/BrewPiLess.v3.4.spanish.bin deleted file mode 100644 index 83e038367..000000000 Binary files a/bins/BrewPiLess.v3.4.spanish.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4.thorrax.bin b/bins/BrewPiLess.v3.4.thorrax.bin deleted file mode 100644 index d270cae62..000000000 Binary files a/bins/BrewPiLess.v3.4.thorrax.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4r1.bin b/bins/BrewPiLess.v3.4r1.bin deleted file mode 100644 index e52131613..000000000 Binary files a/bins/BrewPiLess.v3.4r1.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4r1.newui.bin b/bins/BrewPiLess.v3.4r1.newui.bin deleted file mode 100644 index c0db20a5f..000000000 Binary files a/bins/BrewPiLess.v3.4r1.newui.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4r1.newui.portuguese-br.bin b/bins/BrewPiLess.v3.4r1.newui.portuguese-br.bin deleted file mode 100644 index deb5a08d4..000000000 Binary files a/bins/BrewPiLess.v3.4r1.newui.portuguese-br.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4r1.newui.slovak.bin b/bins/BrewPiLess.v3.4r1.newui.slovak.bin deleted file mode 100644 index 933fbcd8a..000000000 Binary files a/bins/BrewPiLess.v3.4r1.newui.slovak.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4r1.newui.spanish.bin b/bins/BrewPiLess.v3.4r1.newui.spanish.bin deleted file mode 100644 index 494a8bf32..000000000 Binary files a/bins/BrewPiLess.v3.4r1.newui.spanish.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4r1.oled.bin b/bins/BrewPiLess.v3.4r1.oled.bin deleted file mode 100644 index a26b0de25..000000000 Binary files a/bins/BrewPiLess.v3.4r1.oled.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4r1.oled.newui.portuguese-br.bin b/bins/BrewPiLess.v3.4r1.oled.newui.portuguese-br.bin deleted file mode 100644 index 1f4a37d0b..000000000 Binary files a/bins/BrewPiLess.v3.4r1.oled.newui.portuguese-br.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4r1.portuguese-br.bin b/bins/BrewPiLess.v3.4r1.portuguese-br.bin deleted file mode 100644 index 0715f33ec..000000000 Binary files a/bins/BrewPiLess.v3.4r1.portuguese-br.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4r1.ptc.bin b/bins/BrewPiLess.v3.4r1.ptc.bin deleted file mode 100644 index d6b6aa169..000000000 Binary files a/bins/BrewPiLess.v3.4r1.ptc.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4r1.slovak.bin b/bins/BrewPiLess.v3.4r1.slovak.bin deleted file mode 100644 index 2fe13a8f6..000000000 Binary files a/bins/BrewPiLess.v3.4r1.slovak.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4r1.soioexpandernoff.bin b/bins/BrewPiLess.v3.4r1.soioexpandernoff.bin deleted file mode 100644 index fb13ab2ea..000000000 Binary files a/bins/BrewPiLess.v3.4r1.soioexpandernoff.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4r1.sonoff.bin b/bins/BrewPiLess.v3.4r1.sonoff.bin deleted file mode 100644 index f311654e9..000000000 Binary files a/bins/BrewPiLess.v3.4r1.sonoff.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4r1.sonoff.esp8285.bin b/bins/BrewPiLess.v3.4r1.sonoff.esp8285.bin deleted file mode 100644 index 5e5c674e6..000000000 Binary files a/bins/BrewPiLess.v3.4r1.sonoff.esp8285.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4r1.sonoffota.bin b/bins/BrewPiLess.v3.4r1.sonoffota.bin deleted file mode 100644 index 18d0b01db..000000000 Binary files a/bins/BrewPiLess.v3.4r1.sonoffota.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4r1.sonoffota.esp8285.bin b/bins/BrewPiLess.v3.4r1.sonoffota.esp8285.bin deleted file mode 100644 index 6fb444aef..000000000 Binary files a/bins/BrewPiLess.v3.4r1.sonoffota.esp8285.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4r1.spanish.bin b/bins/BrewPiLess.v3.4r1.spanish.bin deleted file mode 100644 index 7bc309928..000000000 Binary files a/bins/BrewPiLess.v3.4r1.spanish.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.4r1.thorrax.bin b/bins/BrewPiLess.v3.4r1.thorrax.bin deleted file mode 100644 index acd33ed0c..000000000 Binary files a/bins/BrewPiLess.v3.4r1.thorrax.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.5.4m2m.bin b/bins/BrewPiLess.v3.5.4m2m.bin deleted file mode 100644 index 9bcda11a2..000000000 Binary files a/bins/BrewPiLess.v3.5.4m2m.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.5.4m2m.portuguese-br.bin b/bins/BrewPiLess.v3.5.4m2m.portuguese-br.bin deleted file mode 100644 index 40cf21d9a..000000000 Binary files a/bins/BrewPiLess.v3.5.4m2m.portuguese-br.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.5.4m2m.slovak.bin b/bins/BrewPiLess.v3.5.4m2m.slovak.bin deleted file mode 100644 index 7d7b36ffb..000000000 Binary files a/bins/BrewPiLess.v3.5.4m2m.slovak.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.5.4m2m.spanish.bin b/bins/BrewPiLess.v3.5.4m2m.spanish.bin deleted file mode 100644 index 26f06c961..000000000 Binary files a/bins/BrewPiLess.v3.5.4m2m.spanish.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.5.classic.4m1m.bin b/bins/BrewPiLess.v3.5.classic.4m1m.bin deleted file mode 100644 index 5a3b1531e..000000000 Binary files a/bins/BrewPiLess.v3.5.classic.4m1m.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.5.classic.4m1m.portuguese-br.bin b/bins/BrewPiLess.v3.5.classic.4m1m.portuguese-br.bin deleted file mode 100644 index e08e8548d..000000000 Binary files a/bins/BrewPiLess.v3.5.classic.4m1m.portuguese-br.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.5.classic.4m1m.slovak.bin b/bins/BrewPiLess.v3.5.classic.4m1m.slovak.bin deleted file mode 100644 index a2c2090b2..000000000 Binary files a/bins/BrewPiLess.v3.5.classic.4m1m.slovak.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.5.classic.4m1m.spanish.bin b/bins/BrewPiLess.v3.5.classic.4m1m.spanish.bin deleted file mode 100644 index a6f8051eb..000000000 Binary files a/bins/BrewPiLess.v3.5.classic.4m1m.spanish.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.5.classic.4m1m.thorrax.bin b/bins/BrewPiLess.v3.5.classic.4m1m.thorrax.bin deleted file mode 100644 index bf634092d..000000000 Binary files a/bins/BrewPiLess.v3.5.classic.4m1m.thorrax.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.5.sonoff.classic.1m512.bin b/bins/BrewPiLess.v3.5.sonoff.classic.1m512.bin deleted file mode 100644 index 26a279ac4..000000000 Binary files a/bins/BrewPiLess.v3.5.sonoff.classic.1m512.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.5.sonoff.esp8285.classic.1m512.bin b/bins/BrewPiLess.v3.5.sonoff.esp8285.classic.1m512.bin deleted file mode 100644 index 96fedaa88..000000000 Binary files a/bins/BrewPiLess.v3.5.sonoff.esp8285.classic.1m512.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.5.sonoff.esp8285.ota.classic.1m64.bin b/bins/BrewPiLess.v3.5.sonoff.esp8285.ota.classic.1m64.bin deleted file mode 100644 index 06b660b37..000000000 Binary files a/bins/BrewPiLess.v3.5.sonoff.esp8285.ota.classic.1m64.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.5.sonoff.ota.classic.1m64.bin b/bins/BrewPiLess.v3.5.sonoff.ota.classic.1m64.bin deleted file mode 100644 index 1c6861b23..000000000 Binary files a/bins/BrewPiLess.v3.5.sonoff.ota.classic.1m64.bin and /dev/null differ diff --git a/bins/BrewPiLess.v3.5.thorrax.newui.4m2m.bin b/bins/BrewPiLess.v3.5.thorrax.newui.4m2m.bin deleted file mode 100644 index 811d36440..000000000 Binary files a/bins/BrewPiLess.v3.5.thorrax.newui.4m2m.bin and /dev/null differ diff --git a/bins/README.md b/bins/README.md deleted file mode 100644 index 9bc2d1594..000000000 --- a/bins/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# **Note: ALL BPL settings will be gone after upgrading to v3.0** - -# Prebuilt Image - -NOTE: If you are upgrading from version prior to v2.3 without glycol option, you will need to run "Device Setup" again. Erase the EEPROM, setup the sensors, and the PINs. - - -NOTE: The images with **newui** use different flash layout(4m2m) which has 2m file space. They are not "compatible" with those(4m) have 3m file space. - * Online update might not work on changing between those two layout. Flashing by USB is recommended. - * File system will be reformted after changing. All settings will be gone - -NOTE: Due to the size increase of latest framework, all images will use 2m file space after version 3.6. The last version for 4m1m and SONOFF is v3.5.1. - -Those images are prebuilt: -## Default Configuration - * The Pins are defined as the main page. - * Two buttons as input - * 20x4 LCD at any address - * Tom's frontend instead of classic one - * framework 1.8.0 - * flash layout 4m2m(2M program/2M file space) - -## spainish, Portuguese-br, slovak - * Default configuration in languages other than English - -## classic - * Default configuration - * Classic web interface - * flash layout 4m1m(1M program/3M file space) - - -## sonoff - * For SONOFF. - * Sensor on D5, Coolling on D6 - * No rotary encoder. No LCD - * OTA update **NOT** supported. - * 512K SPIFFS for logging. - * classic ui - -## sonoffota - * Same as sonsoff, but - * 64K SPIFFS for configurations - * OTA update supported - * classic ui - -## Newer SONOFF/esp8285 - * flash mode is set to DOUT - * classic ui - -## oled - * Standard options - * SSD1306 OLED I2C 128x64 instead of 20x4 LCD - * new ui - -## thorrax - * Thorrax's board, Cooling and heating PIN on D5, D0 - * new ui diff --git a/doc/BrewNCalibrate.md b/doc/BrewNCalibrate.md deleted file mode 100644 index ca93cca26..000000000 --- a/doc/BrewNCalibrate.md +++ /dev/null @@ -1,26 +0,0 @@ -If this feature is enabled, BPL will record the TILT angles from iSpindel, expect the gravity data from user, and derive formula to calculate the gravity automatically. The procedure to use "Brew and Calibrate" is - -0. Setup iSpindel to make it report to BPL. -1. Get the **Tilt value in water**, and the reading of your hydrometer or the temperature of the water. Also measure the Original Gravity as usual. -3. Drop iSpindel into the fermenter after carefully sanitizing it. -4. Start local logging with **"Calibrate iSpindel"** enabled. Enter the _reading of the hydrometer_ in the hydrometer, **or** enter the _temperature_ of the water and the _calibration temperature_ of the hydrometer to let BPL derive the reading. -![Start Logging](image/log_general.jpg?raw=true) -5. [Input SG](ManualGravityInput.md), which is the value of Original Gravity. Note: You should usually input the same value as OG. That is, you have to input the same data for OG and SG.( OG is not necessarily the starting SG of current log, so BPL won't automatically add a gravity data for you.) -![Input SG](image/gravity_input.jpg?raw=true) -7. Measure SG as usual or more frequently. Input the measured SG. - -BPL will derive the formula by the Tilt values and gravity data input. If the number of data pairs is less than 3, then linear(x) formula is used. Second order polynomial(x^2) will be derived if the number of pairs is equal to 3. If 4 or more gravity readings are available, 3 order polynomial will be derived. At the beginning, there should be two readings, 1.0 and OG. Even though you can't expect precise and correct gravity readings from the chart from the beginning, the change of gravity can be deduced by the change of Tilt values. - -*Note: The formula coefficients might be different from the value input or calculated. It is due to the precision of float point. The difference of calculated gravity should be within 0.0001. Therefore, it should be fine.* - -![](image/ispindel_calibrating.jpg) - -If BPL is in calibrating mode, there will be a lower case "f" at the bottom of the legend block. Click the "f" will bring out the calibration points and formula used. -![](image/ispindel_formula.jpg) - -Check the checkbox of "ignore" if that set of data is erroneous. BPL will derive a new formula based on updated data. Press "Apply" to re calculate all gravity based on new formula. Note that at least two set of data should be left "un"-ignored. At least two set of data is necessary to derive a valid formula. - -Please note that the maximum number of data set is **21**. Tilt and gravity data set beyond 21 can't be ignored. - -*** -[Index](index.md) diff --git a/doc/PressureMonitor.md b/doc/PressureMonitor.md deleted file mode 100644 index 1ec71c099..000000000 --- a/doc/PressureMonitor.md +++ /dev/null @@ -1,45 +0,0 @@ -**_The feature is not yet verified._** - - -By using a pressure transducer, BPL can read pressure and control the pressure if capping is supported. -![Pressure Settings](image/pressure-setting.jpg?raw=true) - -## Pressure Reading -The pressure transducers supported is something like this: [Pressure Transducer](http://www.auberins.com/index.php?main_page=product_info&cPath=38&products_id=311). Using other types might be possible, but the output should be linear voltage. - -BPL uses the ADC pin, A0, to read the voltage from pressure transducer and converts the reading into pressure. ADC of ESP8266 reads voltage from 0-1.0V, and there are resistors on D1 mini, and NodeMcu, to make ADC input range 0-3.3v. A resistor might be needed to extend the range 0-5v. The resistors and the specification of the pressure transducer together determine the parameters used to convert A0 reading to pressure, in PSI. The formula is - -PSI=(A0_Reading - b) * a - -Take the pressure transducer I used for example, it -output: 0.5 - 4.5v linear -maximum pressure: 80psi (4.5v) - -There the output is - -| pressure | voltage | A0 reading | -| ------- | ----- | ----- | -| 0 | 0.5v | 1023 * 0.5/3.3= 155 | -| 40 | 2.5v | 1023 * 2.5/3.3= 775 | -| 80 | 4.5v | 1023 (saturated) | - -Given the fact that I don't really care the reading that exceeds 40psi. I just save a resistor and connect the output direct to A0. My formula is - -PSI=(A0_Reading - 155) * (40-0)/(775-155) -=> PSI=(A0_Reading - 155) * 0.06452 - -In practice, there are errors and the readings sometimes are not exact the same as expected. (In fact, it's close.) A simple way to get the formula is using "calibration" function by -1. Step 1: make sure there is "NO pressure". And click the button to get "b". -2. Step 2: put the transducer under a pressure closer maximum the better. Input the pressure and click "Step 2" button. - -![Pressure Calibration](image/pressure-cal.jpg?raw=true) - -BPL will then derive the parameters automatically. - -## Pressure Control -"Capping control" is necessary to support pressure control. A solenoid is needed to vent the gas/co2 when necessary. The most tricky part is the venting. A small pin hole or gap should work. **Venting flow should be just a little greater than the speed of CO2 generation. - -** BPL checks the pressure **every second**, if the pressure is greater than specified value, the solenoid will be open. The less the gas/pressure is released in 1 second, the more precise the pressure control is. It might sound like difficult. The fact is that it is more difficult to make something air tight. A threaded pipe and cap without seal might do the job. - -*** -[Index](index.md) \ No newline at end of file diff --git a/doc/README.md b/doc/README.md deleted file mode 100644 index cf8ade4f5..000000000 --- a/doc/README.md +++ /dev/null @@ -1,9 +0,0 @@ -Welcome to the BrewPiLess wiki! - -This project uses a single ESP8266 to replace RPI and Arduino. -![Main Screen](image/bplmain.jpg?raw=true) -BrewPi is the greatest, if not the ultimate, fermentation temperature controller. The original design uses a RPI to log temperatures and maintain a temperature schedule. The RPI also hosts a web server as the front-end of internet web access. - -ESP8266 is cheap and powerful WiFi-enabling IOT solution. Although it can't be as powerful as a RPI, it's a good solution to maximize the functionality and minimize the cost. Using a single ESP8266 as the temperature controller(replacing Arduino), web server and schedule maintainer(replacing RPI) also reduces the work in building a brewpi system. - -[Wiki Index](index.md) \ No newline at end of file diff --git a/doc/SystemSetup.md b/doc/SystemSetup.md deleted file mode 100644 index c82a78a8c..000000000 --- a/doc/SystemSetup.md +++ /dev/null @@ -1,23 +0,0 @@ -Default username and password are both **brewpiless**. - -![](image/configv251.jpg?raw=true) - -| Field | Note | -| -------------- |:--------------------| -| LCD auto off | The timer to turn LCD/backlight off. 0 to keep it always on. | -| Title | The name shown on the homepage, next to LCD. | -| Host/Network Name | SSID and hostname | -| User Name/password | Username and password to access certain pages | -| Always need password | If enabled, you will be asked username/password when trying to connect to it. | -| Network | Station, AP, Station+AP: set the network operation mode of BPL | -| Fixed IP | Fixed IP to be used as Station. Leave blank if using DHCP. | -| Gateway | Gateway for fixed IP setting. Leave blank if using DHCP. | -| Netmask | Net mask for fixed IP setting. Leave blank if using DHCP. | - - -Note: Change of all settings except `LCD auto off` will result in re-boot of BPL. The setting of LCD auto off is supposed to be effective right away after submit. - -If Network is set Station+AP mode, BPL will create a WiFi network even when it is connecting to a AP. It is useful and good to set Station+AP mode when working with iSpindel. In most case, BPL is placed near the fermenter, so it is near iSpindel, which should solve connection issue of iSpindel, if any, and save the power of iSpindel. - -*** -[Index](index.md) \ No newline at end of file diff --git a/doc/image/gdsetting.jpg b/doc/image/gdsetting.jpg deleted file mode 100644 index a6aada1a7..000000000 Binary files a/doc/image/gdsetting.jpg and /dev/null differ diff --git a/doc/image/gravity_input.jpg b/doc/image/gravity_input.jpg deleted file mode 100644 index ce969a97d..000000000 Binary files a/doc/image/gravity_input.jpg and /dev/null differ diff --git a/doc/image/pressure-setting.jpg b/doc/image/pressure-setting.jpg deleted file mode 100644 index e05182069..000000000 Binary files a/doc/image/pressure-setting.jpg and /dev/null differ diff --git a/doc/index.md b/doc/index.md deleted file mode 100644 index 4cfe9b950..000000000 --- a/doc/index.md +++ /dev/null @@ -1,38 +0,0 @@ -* [Hardware Setup](HardwareGeneral.md) - * [Example#1](HardwareExample1.md) - * [SONOFF](HarddwareSONOFF.md) - * [Thorrax’s Board](https://github.com/thorrak/brewpi-esp8266) -* [Localization of web frontend](LocalizationWebPage.md) -* [Flash layout and New Frontend](FlashLayoutAndNewUI.md) -* [Software Installation](SoftwareInstallation.md) - * [Software Configuration](SoftwareConfiguration.md) -* [WiFi Setup](WiFiSetupV32.md) -* [System Setup](SystemSetup.md) - * [SoftAP mode](SoftAPMode.md) -* [Device Setup](DeviceSetup.md) -* [Using Buttons & Menu](UsingButtonsAndUI.md) -* [Temperature Logging](TemperatureLogging.md) -* [Cloud Logging](CloudLogging.md) - * [Generic HTTP](GenericHttpLogging.md) - * [ubidots.com](ubidots.md) - * [thingspeak.com](thingspeak.md) - * [Brewfather](brewfather.md) -* [Beer Profile](BeerProfile.md) -* [iSpindel Support](iSpindelSupport.md) - * [Brew and Calibrate](BrewNCalibrate.md) - * [iSpindel as Beer Sensor](iSpindelAsSensor.md) -* [Manual Gravity Logging](ManualGravityInput.md) -* [Use with Glycol](glycol.md) -* [Auto Capping(Spunding)](AutoSpunding.md) -* [MQTT Remote Control](MQTT.md) - * [ubidots.com](MQTT.ubidots.md) -* [Pressure Monitor and Control](PressureMonitor.md) -* [Other URLs](OtherUrl.md) - * Clear WiFi setting - * Format file system - * OTA update -* [Overwrite pages](OverwritePages.md) -* [JSON Commands](JsonCommand.md) - * Temperature Unit - * Sensor Calibration -* [FAQ](FAQ.md) \ No newline at end of file diff --git a/doc/ubidotsMQTT.md b/doc/ubidotsMQTT.md deleted file mode 100644 index aa07ee33a..000000000 --- a/doc/ubidotsMQTT.md +++ /dev/null @@ -1,48 +0,0 @@ -## Setup ubidots.com to control BPL -### Step 1. create variables -Go to the device page, and add two variables, "mode" and "setTemp". - -![](image/ubidots.variable.jpg?raw=true) - -Make sure the "api label" is correctly set. - -### Step 2. create controls -Go to dashboard. Click "+"(Add widget) to add a **slider** control: -![New Control](image/ubidots.add.control.jpg?raw=true) - -Choose the just added variable, mode: -Set the range 0-3, while 0 is off, 1 is "Fridge Constant", 2 is "Beer Constant", and 3 is "Beer Profile". - -![New Widget](image/ubidots.widget.creation.jpg?raw=true) - -Do the same to the "settemp" variable with correct ranges. - -Now you will have it. - -![](image/ubidots.control.widget.jpg?raw=true) - - -## Settings for ubidots.com -Get the full information from [Ubidots Docs](https://ubidots.com/docs/hw/#mqtt). - - -For free/educational users, use -* MQTT Server: things.ubidots.com -* MQTT Port : 1883 -* User Name: [ubidots token] -* Password: (left blank) - -The path is in format of '/v1.6/devices/{DEVICE_LABEL}/{LABEL_VARIABLE}/lv'. -Let the device label be 'fermenter2' and mode and setting temperature variables be 'mode', and 'settemp'. -* Mode path: /v1.6/devices/fermenter2/mode/lv -* Setting Temperature path: /v1.6/devices/fermenter2/settemp/lv - -You will have to create two variables named 'mode' and 'settemp' in device 'fermenter2'. -![MQTT Remote Settings for ubidots.com](image/ubidots.mqtt.settings.jpg?raw=true) - -## Usage - -Slide the **mode slider** to change mode and **settemp slider** to change temperature. The "settemp" should be set __**after**__ mode is changed so that it's not ambiguous. - -*** -[Index](index.md) \ No newline at end of file diff --git a/doc/HardwareGeneral.md b/docs/10.HardwareGeneral.md similarity index 96% rename from doc/HardwareGeneral.md rename to docs/10.HardwareGeneral.md index 7d130fd8b..ee3c5a9a9 100644 --- a/doc/HardwareGeneral.md +++ b/docs/10.HardwareGeneral.md @@ -21,7 +21,7 @@ This is default configuration, you can change it in `config.h`. Note: The GPIOs of ESP8266 are not all **General Purpose**. Some of them has special functions, and might not be usable. For example, some PINs on my NodeMcu board don't work normally. **!!Important !!** It is hightly recommended to pull up GPIO0 and GPIO2 while pull down GPIO15 so that the system will start up normally instead of staying in bootrom mode in case the system crashes. Updating the system configuration and firmware also results in restart of system, and sometimes this issue happens if the circuit isn't implementated. Check this url for detail information: -https://github.com/esp8266/Arduino/blob/master/doc/boards.md#minimal-hardware-setup-for-bootloading-and-usage +https://github.com/esp8266/Arduino/blob/master/doc/boards.rst#minimal-hardware-setup-for-bootloading-and-usage **!! The rotary encoder is not supported by directly connecting it to ESP8266. That will prevents ESP8266 to boot up when the rotary encoder is at certain positions.!!** @@ -56,6 +56,3 @@ No longer available after v2.7. Two-button configuration will work on the hardwa ### 2 Buttons via PCF8574 _Not Recommended_ Use this option to share the same hardware with BrewManiacEx. UP is connect to P1 while DOWN is connect to P0. (Enter is at P2, and Start is at P3. BrewPiLess uses only two buttons.) - -*** -[Index](index.md) \ No newline at end of file diff --git a/doc/HardwareExample1.md b/docs/11.HardwareExample1.md similarity index 98% rename from doc/HardwareExample1.md rename to docs/11.HardwareExample1.md index 7ed9fdd37..cf1f7fdbd 100644 --- a/doc/HardwareExample1.md +++ b/docs/11.HardwareExample1.md @@ -16,5 +16,3 @@ This the simplest setup which mixes 5v and 3.3v circuits. It might _**not**_ be * Some relay modules might not work under 3.3v. All of mine work, though. * Some DS18B20 waterproof sensors, especiallly from Amazon, support only parasitic power mode. The sensors run in Parasitic mode are not stable, so BrewPi, hence BrewPiLess, **doesn’t support** parasitic power mode. The sensors can be detected by other sketches, but BrewPi(less) won't recognize them -*** -[Index](index.md). \ No newline at end of file diff --git a/doc/HardwareSONOFF.md b/docs/12.HarddwareSONOFF.md similarity index 97% rename from doc/HardwareSONOFF.md rename to docs/12.HarddwareSONOFF.md index 7d11739e9..d183ea98c 100644 --- a/doc/HardwareSONOFF.md +++ b/docs/12.HarddwareSONOFF.md @@ -7,5 +7,3 @@ SONOFF dual is not supported, because the Relays are controlled by Serial instea Please note that some older SONOFFs, maybe before 2018, use ESP8266 while new ones use ESP8285. Right configuration must be used. -*** -[Index](index.md) \ No newline at end of file diff --git a/docs/13.ESP32Pins.md b/docs/13.ESP32Pins.md new file mode 100644 index 000000000..df7d45d67 --- /dev/null +++ b/docs/13.ESP32Pins.md @@ -0,0 +1,55 @@ +# ESP32 + +ESP32 is future-proof, more powerful, and has more memory than ESP8266. However, it is "new" and hasn't been well tested. +Please take the risk into consideration. + +HTTPS is more complicated. BPL relies on AsyncWebServer library, which doesn's support SSL right now. + +HTTPS client is possible for ESP32, but the finger print isn't checked for simplicity. + +# Default PIN allocation + +| GPIO | IO | Functions | Notes | Preference | BPL | +| ------ |:-----:| :--------- | ---------- | ---- | ---- | +| 0 | IO | Touch, RTC, **boot** | Output PWM at boot | X | | +| 1 | O | UART TX | debug output at boot HIGH at boot | X | | +| 2 | IO | Touch, RTC, boot | connected to on-board LED | * | | +| 3 | I | UART RX | HIGH at boot | X | | +| 4 | IO | Touch, RTC, boot | | + | | +| 5 | IO | VSPI, boot | Hight at boot | + | | +| 12 | IO | Touch, RTC, HSPI, JTAG, Boot | | * | | +| 13 | IO | Touch, RTC, HSPI, JTAG | | * | | +| 14 | IO | Touch, RTC, HSPI, JTAG | output PWM at boot | * | | +| 15 | IO | Touch, RTC, HSPI, JTAG, boot | output PWM at boot | * | | +| 16 | IO | | | | actuator | +| 17 | IO | | | | actuator | +| 18 | IO | VSPI | | | (buzzer) | +| 19 | IO | VSPI | | | actuator | +| 21 | IO | I2C | | | I2C(SDA) | +| 22 | IO | I2C | | | I2C(SCL) | +| 23 | IO | VSPI | | | OneWire | +| 25 | IO | DAC2, RTC| | | Rotary Push | +| 26 | IO | DAC2, RTC| | | actuator | +| 27 | IO | Touch, RTC| | | actuator | +| 32 | IO | Touch, ADC1, RTC | | | Rotary A | +| 33 | IO | Touch, ADC1, RTC | | | Rotary B | +| 34 | I | ADC1, RTC | no pull-up/down | | | +| 35 | I | ADC1, RTC | no pull-up/down | | | +| 36 | I | ADC1, RTC | no pull-up/down | | ADC | +| 39 | I | ADC1, RTC | no pull-up/down | | | + +Preferences: + +| Symbol | Preferences | +| ------ | :----- | +| X | Avoid at any cost | +| * | Avoid | +| + | avoid if possible | + + + +### References +* [ESP32 Pinout Reference: Which GPIO pins should you use?](https://randomnerdtutorials.com/esp32-pinout-reference-gpios/) +* [ESP32 Boot Mode Selection](https://github.com/espressif/esptool/wiki/ESP32-Boot-Mode-Selection) +* [How to build image for ESP32](ESP32BuildInstructions.md) + diff --git a/docs/14.ESP32BuildInstructions.md b/docs/14.ESP32BuildInstructions.md new file mode 100644 index 000000000..364fc2af4 --- /dev/null +++ b/docs/14.ESP32BuildInstructions.md @@ -0,0 +1,34 @@ +# Building ESP32 instructions +by @sedgington [Original Post](https://github.com/vitotai/BrewPiLess/issues/128#issuecomment-652571197) + At first, I thought it must be something wrong with the development board I had ordered: +https://www.amazon.com/gp/product/B0718T232Z/ref=ppx_yo_dt_b_asin_title_o08_s00?ie=UTF8&psc=1 +so I ordered a different board: +https://www.amazon.com/gp/product/B07DBNHJW2/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1 +same story. +This sent me down the road of building and uploading my own .bin file using Visual Studio Code with PlatformIO--again on the same macbook pro. I'm happy to say this was successful in the end, but unlike Nodemcu, I had to physically press the boot or Ioo button and then (sometimes) the reset button while still holding down the boot button to get the board to go into bootloader mode so that PlatformIO could communicate with the device ( the last board of the second group of boards, balked on communicating through the USB port if I hit the reset button and would only work when I hit the boot button). +So here are is the short version of the steps I had to do to get the ESP32 boards to successfully load brewpiless: + +1. Download Visual Studio Code and install it +1. Add PlatformIO to VSC +1. Download the brewpiless-4.0pre branch from github: https://github.com/vitotai/BrewPiLess/tree/v4.0pre +1. Unzip this branch and copy it to a subdirectory of PlatformIO (mine was in the Documents folder) +1. Open this folder that contains the platformio.ini from within VSC/Platformio +1. Click on platformio.ini so that it is open in PlatformIO. +1. At the top of the file find the line default_envs = esp8266dev under [platformio] and change it to #default_envs = esp8266dev +1. Under that line add: default_envs = esp32-dev +1. Save the file +1. find the line +upload_port = /dev/cu.SLAB_USBtoUART under [env:esp32-dev] +and change it to upload_port = /dev/cu.usbserial-0001 (I knew this was my usb port because Nodemcu had told me that information when I went to load the .bin file). +1. Do the same for the line under it that begins monitor_port = +1. Under "View" in VS Code, click on "Command Palette" begin typing in PlatformIO: Build until it finds the command. It will then run the build command. And don't forget to save the file again. +1. Connect your development board to the USB port of your computer. Be sure to use a cable that is capable of transmitting data and is not just a power cable. The red led will come on. Either push and hold the "boot" or "Ioo" button and while still holding it down, briefly hit the "reset" button, then release the button you have been holding down. (if this doesn't work, just hold down the "boot" button and release it.) +1. Assuming that the "PlatformIO: Build" command ran successfully, repeat the steps of 12. but begin typing in "PlatformIO: Upload" until the command is in the box. It will then run automatically. +1. If you successfully found the correct upload port for your usb connection to the board, the program will run and at the bottom of the console you will see under the line that begins with "Environment" the line: +esp32-dev SUCCESS 00:00:43.070 +All the other Environments will state "IGNORED". +1. Unplug the development board from the USB cable and then plug it back in. +1. Monitor your wireless network for "brewpiless" and click on that network. Open a web browser after you successfully join brewpiless and type in 192.168.4.1 to bring you to the homepage of brewpiless. Go to the system tab, scan for your local network, select it, put in the password, save it and then, importanly, hit the "submit" button on the bottom right part of the screen. Brewpiless will join your network and you can set it up as desired. +Now, why is this pain worth it? Well, the ESP32 seems to be much faster, has more memory, and should be more stable than the 8266 boards. In addition, it has Bluetooth built in which means that down the road it might support Tilt Hydrometers as well as the currently supported wifi-enabled iSpindel Hydrometers (which are difficult to source in the USA because Tilt has apparently intimidated the German supplier of iSpindel kits to the degree that he will not ship to the USA). + +I hope this helps someone and saves them from the pain of getting their ESP32 board to work. If I have missed something or there is a better way, please comment on this post on your way of doing this. \ No newline at end of file diff --git a/doc/LocalizationWebPage.md b/docs/20.LocalizationWebPage.md similarity index 98% rename from doc/LocalizationWebPage.md rename to docs/20.LocalizationWebPage.md index 6bebf11f3..e499299b0 100644 --- a/doc/LocalizationWebPage.md +++ b/docs/20.LocalizationWebPage.md @@ -41,6 +41,3 @@ Add the language to be added, in the same name as the json file. * if everything goes well, there will be a 'wakanda' subdirectory in "dist" path. If you don't understand this page so far, but you can and are willing to do the translation, just translate the json file and send it to me. (Or, submit an issue with attached translated file, I guess.) - -*** -[Index](index.md) \ No newline at end of file diff --git a/doc/FlashLayoutAndNewUI.md b/docs/30.FlashLayoutAndNewUI.md similarity index 97% rename from doc/FlashLayoutAndNewUI.md rename to docs/30.FlashLayoutAndNewUI.md index ab4bd15b1..66ec23fe2 100644 --- a/doc/FlashLayoutAndNewUI.md +++ b/docs/30.FlashLayoutAndNewUI.md @@ -7,5 +7,3 @@ Fortunately, framework 1.8.0 sports 4m2m(2m program space) by default. Therefore Because of the different flash layout, change one layout to another should be done over USB instead of OTA. Morover, the file system will be corrupted and all data will be gone. -*** -[Index](index.md) \ No newline at end of file diff --git a/doc/SoftwareInstallation.md b/docs/40.SoftwareInstallation.md similarity index 97% rename from doc/SoftwareInstallation.md rename to docs/40.SoftwareInstallation.md index 9fd129095..5ed4ed8a0 100644 --- a/doc/SoftwareInstallation.md +++ b/docs/40.SoftwareInstallation.md @@ -23,5 +23,3 @@ http://platformio.org/get-started/ide?install=vscode 5. If everything goes well, you can build and upload. Check PlatformIO manual for more detail. -*** -[Index](index.md) \ No newline at end of file diff --git a/doc/SoftwareConfiguration.md b/docs/41.SoftwareConfiguration.md similarity index 95% rename from doc/SoftwareConfiguration.md rename to docs/41.SoftwareConfiguration.md index 7f466645e..76884949c 100644 --- a/doc/SoftwareConfiguration.md +++ b/docs/41.SoftwareConfiguration.md @@ -1,6 +1,3 @@ Necessary libraries are included in the GitHub repository. Those needed but not included will be downloaded during the building process by PlatformIO. The included libraries are either modified or have incompatible latest version. BrewPi related configuration is defined in `Config.h` while networking related configuration is defined in `espconfig.h`. They are both self-explanatory and commented. Please check the files directly. - -*** -[Index](index.md) \ No newline at end of file diff --git a/doc/WiFiSetupV31.md b/docs/50.WiFiSetupV31.md similarity index 94% rename from doc/WiFiSetupV31.md rename to docs/50.WiFiSetupV31.md index de94742cd..e4a6a95e6 100644 --- a/doc/WiFiSetupV31.md +++ b/docs/50.WiFiSetupV31.md @@ -6,5 +6,3 @@ Change "Network Mode" to "AP + Station" if not already done. Click the button after the "Network", and network selection page will show. Scan, select and save, just like what in WiFiManager. - *** -[Index](index.md) \ No newline at end of file diff --git a/docs/60.SystemSetup.md b/docs/60.SystemSetup.md new file mode 100644 index 000000000..19ecf29ee --- /dev/null +++ b/docs/60.SystemSetup.md @@ -0,0 +1,28 @@ +Default username and password are both **brewpiless**. + +![](image/configv42.jpg?raw=true) + +| Field | Note | +| -------------- |:--------------------| +| LCD auto off | The timer to turn LCD/backlight off. 0 to keep it always on. | +| LCD Display | Selection of **Rotate**, **BrewPi**, and **Additional**. | +| Title | The name shown on the homepage, next to LCD. | +| Host/Network Name | SSID and hostname | +| HTTP Port | port of HTTP protocol. | +| User Name/password | Username and password to access certain pages | +| Always need password | If enabled, you will be asked username/password when trying to connect to it. | +| Network Mode | Station, AP, Station+AP: set the network operation mode of BPL | +| Network | Selected SSID. Click to show WiFi network settings.| +| IP | Current assigned IP if available. | +| SYSINFO | | +| BACKUP/RESTORE | To backup/restore settings, including system, device, MQTT, gravity device, and pressure monitoring. | + + +Note: Change of all settings except `LCD auto off` will result in re-boot of BPL. The setting of LCD auto off is supposed to be effective right away after submit. + +If Network is set Station+AP mode, BPL will create a WiFi network even when it is connecting to a AP. It is useful and good to set Station+AP mode when working with iSpindel. In most case, BPL is placed near the fermenter, so it is near iSpindel, which should solve connection issue of iSpindel, if any, and save the power of iSpindel. + +New in 4.2, there is a new "screen" of display for additional available information, including Pressure, Humidity, Gravity device, and IP. If **Rotate** is selected, the display will rotate between classic BrewPi display and the **Additional** display every 5 seconds. Or, dedicated display can be selected. However, when the rotary encoder, if avaiable, is pushed, the display will always change to BrewPi display for fermentation control setup. Rotating rotatary encoder will rotate the disply under non-setting mode. If **DISPLAY_ISPINDEL** option, only available for OLED +option, is set to 'true', the Additional screen will be dedicated to iSpindel information. + +Note: due to burn-in effect of OLED LCD, rotating is a better choice even you don't need the other display. diff --git a/doc/SoftAPMode.md b/docs/61.SoftAPMode.md similarity index 99% rename from doc/SoftAPMode.md rename to docs/61.SoftAPMode.md index ce48eefc4..38c1ccf3c 100644 --- a/doc/SoftAPMode.md +++ b/docs/61.SoftAPMode.md @@ -13,5 +13,3 @@ In SoftAP mode, the computer is connect to BPL without internet access. Therefor * "cache" the file. Simply copy the URL above and paste it in the address line of your browser and go. In most case, the browser will download and cache the js library. However, the browser might clear the cache for some reasons, so this might not always work. * Go to http://dygraphs.com/download.html and download the v1.1.1 dygraph-combined.js. open http://brewpiless.local:8008/filemanager, and upload the downlowed libarry to ESP8266. The file shoule be named exact "/dygraph-combined.js". -*** -[Index](index.md) \ No newline at end of file diff --git a/doc/DeviceSetup.md b/docs/70.DeviceSetup.md similarity index 97% rename from doc/DeviceSetup.md rename to docs/70.DeviceSetup.md index c3efeb781..c757ca88b 100644 --- a/doc/DeviceSetup.md +++ b/docs/70.DeviceSetup.md @@ -10,5 +10,3 @@ After editing and applying all devices, click `Refresh Device List` to review th To uninstall a device, set the `Function` to `None`. -*** -[Index](index.md) \ No newline at end of file diff --git a/doc/UsingButtonsAndUI.md b/docs/80.UsingButtonsAndUI.md similarity index 97% rename from doc/UsingButtonsAndUI.md rename to docs/80.UsingButtonsAndUI.md index 97ea42035..61e6fcab3 100644 --- a/doc/UsingButtonsAndUI.md +++ b/docs/80.UsingButtonsAndUI.md @@ -4,5 +4,3 @@ _You might feel lag when using the buttons. Press the buttons a little longer to To enter setup, press `UP+DOWN` at the same time. `Mode` will start to blink, indicating the current editing item. Press `UP+DOWN` to change control mode, or `UP` to change editing item. -*** -[Index](index.md) \ No newline at end of file diff --git a/doc/TemperatureLogging.md b/docs/90.TemperatureLogging.md similarity index 71% rename from doc/TemperatureLogging.md rename to docs/90.TemperatureLogging.md index 251ff04f3..e296fcb1d 100644 --- a/doc/TemperatureLogging.md +++ b/docs/90.TemperatureLogging.md @@ -5,10 +5,10 @@ * A 30 day log will take around 350k bytes. That might imply that 3M space can record around 6 month data. However, there is no guarantee of the robustness of SPIFFS. * Changing temperature unit when logging will result in wrong data interpretation. * A maximum of 10 logs is allowed. The logs will **not** be deleted automatically. Manual deleting is necessary. -* Off-line viewer is available. You can download the log and view it from your computer. Download the file "BPLLogViewer.htm" in the "extra" subfolder. Save it anywhere in your computer. Open it using a web browser. +* Off-line viewer is available. You can download the log and view it from your computer. Download the file "BPLLogViewer.htm" in the "htmljs/dist/" subfolder. Save it anywhere in your computer. Open it using a web browser. * The loggging format changed after v1.2.7/v2.0/v2.4. Use BPLLogViewerV2.htm to view the new logs and BPLLogViewer.htm for old logs. +* When **'Write on buffer full'** is on, log will be write to flash only when buffer is full. The advantage is less writing operation, which reduce system loading and prolong the flash lifespan. The disadvantage is log will be lost if the system resets for some reasons like power recyle or bugs. It is highly recommended to turn it ON on ESP32. + You can view, share, and crop the logs. Check http://vito.tw/?p=821 -*** -[Index](index.md) \ No newline at end of file diff --git a/doc/CloudLogging.md b/docs/A0.CloudLogging.md similarity index 90% rename from doc/CloudLogging.md rename to docs/A0.CloudLogging.md index 01be6ee3c..0b9b26cdb 100644 --- a/doc/CloudLogging.md +++ b/docs/A0.CloudLogging.md @@ -4,5 +4,4 @@ Remote logging, or cloud logging, is used to push data to a remote server. Most * [Brewfahter](brewfather.md) * [Brewer's Friend](brewersfriend.md) -*** -[Index](index.md) +Please note that HTTPS is not supported. \ No newline at end of file diff --git a/doc/GenericHttpLogging.md b/docs/A1.GenericHttpLogging.md similarity index 79% rename from doc/GenericHttpLogging.md rename to docs/A1.GenericHttpLogging.md index 9cdeb2418..9788cb6c9 100644 --- a/doc/GenericHttpLogging.md +++ b/docs/A1.GenericHttpLogging.md @@ -4,21 +4,26 @@ The `format` field in log setup page is like the format in `printf` but uses the | Specifier | output | | -------------- |:-------------| +| %a | auxiliary temperature | | %b | Beer temperature | | %B | Beer setting | +| %E | Environment/Room Humidity | | %f | fridge temperature | | %F | fridge setting | | %r | room temperature | | %g | gravity | +| %H | Hostname | +| %h | Chamber humidity | +| %m | Mode in integer: 0:Off ,1: FridgeConst, 2:BeerConst, 3:BeerProfile | +| %M | Mode in character: o, b, f, p | | %p | Plato | +| %P | Pressure reading in PSI | +| %s | State in Integer. 0:IDLE, 1:STATE_OFF,2: DOOR_OPEN, 3:HEATING, 4: COOLING, 5: WAITING_TO_COOL, 6:WAITING_TO_HEAT, 7:WAITING_FOR_PEAK_DETECT, 8:COOLING_MIN_TIME, 9:HEATING_MIN_TIME | | %t | tilt value from iSpindel | -| %a | auxiliary temperature | -| %v | external device voltage | | %u | UNIX timestamp of last gravity update | | %U | 'C' for Celsius or 'F' for Fahrenheit | -| %m | Mode in integer: 0:Off ,1: FridgeConst, 2:BeerConst, 3:BeerProfile | -| %M | Mode in character: o, b, f, p | -| %P | Pressure reading in PSI | +| %v | external device voltage | + For example, let beer setting be `20.0` and beer temperature be `18.3`, if the `format` is `api_key=TheRealApiKeyHere&field1=%B&field2=%b`, the data will be `api_key=TheRealApiKeyHere&field1=20.0&field2=18.3`. @@ -28,10 +33,8 @@ If the method is `GET`, the data will append to the url with additional `?`, so (GET is usually not recommended.) The `Data Type` field is used as "Content-Type" in HTTP protocol. When it is left blank, the default value of `application/x-www-form-urlencoded` will be used. The default type is good for content like `A=V1&B=V2`. -Due to the memory limitation, **HTTPS is not supported.** Therefore, if you want to send data to a service that supports only HTTPS, an additional proxy is needed. +Due to the memory limitation, **HTTPS is not supported on ESP8266.** Therefore, if you want to send data to a service that supports only HTTPS, an additional proxy is needed. You can use Generic HTTP format for thingspeak.com and Brewfather to get exact the same result, but you should use ubidots.com specific settings to setup ubidots.com. It is because that ubidots.com will reject all values if one of them are "null" -*** -[Index](index.md). \ No newline at end of file diff --git a/doc/ubidots.md b/docs/A2.ubidots.md similarity index 96% rename from doc/ubidots.md rename to docs/A2.ubidots.md index c2173c730..345b83540 100644 --- a/doc/ubidots.md +++ b/docs/A2.ubidots.md @@ -7,6 +7,3 @@ You can find the "token" value in your account and the "device" API label in the Default token should work. Please note that ubidots.com rejects null values. Using Generic HTTP format works differently and might not work as expected unless you are sending values that never be invalid. BeerSet will be invalid in fridge constant mode. Gravity value isn't always available. - -*** -[Index](index.md) \ No newline at end of file diff --git a/doc/thingspeak.md b/docs/A3.thingspeak.md similarity index 81% rename from doc/thingspeak.md rename to docs/A3.thingspeak.md index 8b201677d..fa1ff7a36 100644 --- a/doc/thingspeak.md +++ b/docs/A3.thingspeak.md @@ -2,5 +2,3 @@ API key is "Write API key". -*** -[Index](index.md) \ No newline at end of file diff --git a/doc/brewfather.md b/docs/A4.brewfather.md similarity index 93% rename from doc/brewfather.md rename to docs/A4.brewfather.md index 292bcc821..2eb7cefd3 100644 --- a/doc/brewfather.md +++ b/docs/A4.brewfather.md @@ -4,5 +4,3 @@ The ID value is the value after "id=" in the URL of Brewfather's BrewPiLess sett Minimum logging period is 900 seconds, any input value smaller than that will be overwritten to 900s. -*** -[Index](index.md) diff --git a/doc/BeerProfile.md b/docs/B0.BeerProfile.md similarity index 99% rename from doc/BeerProfile.md rename to docs/B0.BeerProfile.md index af92f6c15..3fe19fe08 100644 --- a/doc/BeerProfile.md +++ b/docs/B0.BeerProfile.md @@ -36,5 +36,3 @@ Use `Save As` button to save the edited profile. The saved name should not conta Use `...` button next to `Save As` button to open and close the profile list. After loading the profile by clicking it on the list, you have to **Save** it before **Apply**ing it. -*** -[Index](index.md) diff --git a/doc/iSpindelSupport.md b/docs/C0.iSpindelSupport.md similarity index 60% rename from doc/iSpindelSupport.md rename to docs/C0.iSpindelSupport.md index a9041e0a2..4369c0631 100644 --- a/doc/iSpindelSupport.md +++ b/docs/C0.iSpindelSupport.md @@ -1,29 +1,37 @@ ### Connection setup for iSpindel + BrewPiLess supports iSpindel by accepting data from iSpindel and acting an **AP** for iSpindel to connect to, BrewPiLess and iSpindel can connect to the same router. To support **softAP**, set the correct settings in `System configuration`. Please note that the password(passphrase) should be at least **8** characters. The same password(pass phrase) is used for setting and for connection certification. Default value is `brewpiless`. -![Gravity Sensor](image/gdsetting.jpg?raw=true) +![iSpindel Setup](image/ispindel_setup.jpg) | Setting | Description | | -------------- |:---------------------------------| | iSpindel | To enable iSpindel support. | +| Offset | the offset between reported gravity and "real" gravity" | | Calculated by BPL | Do the conversion from tilt angle to gravity by BrewPiLess. If this option is OFF, all the following options are not used. | -| SG Calibration | Deprecated. | -| Temp. Correction | Apply temperature correction to the calculated gravity reading. Celsius only. Usually it is 20°C(68°F) or 15°C(59°F). | -| Coefficients | The coefficients of the formula to calculate gravity. Note: this set of coefficients is for calcuation of **specific gravity**, **not** plato. Use 0 for x^3 term if quadratic polynomial is used.| +| Calibration points | Calibration data. | +| Coefficients | The coefficients of the formula to calculate gravity. The formula is derived based on calibration points. It is not editable. | | LowPass Filter Coefficient | 0~1. See following description| | Gravity Stability Threshold | Integer value. 1 point = 0.001. | -When running "Brew N Cal", the coefficients of the formula will be updated by the web page frontend. BPL will calculate gravity based on the updated formula automatically. Please note that, due to the limited precision of float on ESP8266, the values might be different from what you can see on the browser. +Offset will be "added" to reported gravity to derive the result gravity. If calculated by BPL is enabled, offset is ignored. To enable calculation, at least two points of calibration points should be entered. -After v2.6, Offset of gravity reading is not available. You can add the offset to the last parameter of the formula,the constant term, and have the same result. +After version 4.4, the calibration data survives through brews. The coefficients(formula) is derived from the calibration data. ### iSpindel Settting - * the **iSpindel Name** must start with `iSpindel`, like `iSpindel000` * Select `Generic HTTP` * Server address set to `192.168.4.1` if iSpindel connect to the AP created by BrewPiless. or use the ip of BrewPiless if iSpindel connects the AP that BrewPiLess connects to. * set url to `/gravity` +BrewPiLess accept post if it contains the following keys/values: +- name +- temperature +- angle +- RSSI +- gravity + + For other iSpindel setting, like network settting, please refer to iSpindel project. ### About low Pass Filter @@ -33,9 +41,14 @@ y = y[i-1] + a ( x - y[i-1] ) It is usually set to 1/f. So, 1/60 for one minute reporting period, and 1/6 for 10 minute reporteing period. -Note: enabling iSpindel setting only enables the initial display of iSpindel status. The gravity report will be processed even when the option is OFF. - [calibrationSG.htm in /extra folder](extra/calibrationSG.htm) is an utility HTML file which can be used to derive the coefficients instead of using the excel from iSpindel. -*** -[Index](index.md) \ No newline at end of file +### iSpindel Dedicated Display + +![iSpindel dedicated display](image/oled_ispindel.jpg) + +The information displayed are + * 1st line: SG and tempemperature + * 2nd line: battery, tilt value, and WiFi signal strength of iSpindel + * 3rd line: time since last seen + * 4th line: IP address and WiFi singal strenth of BPL \ No newline at end of file diff --git a/docs/C1.BrewNCalibrate.md b/docs/C1.BrewNCalibrate.md new file mode 100644 index 000000000..dc8a216c5 --- /dev/null +++ b/docs/C1.BrewNCalibrate.md @@ -0,0 +1,14 @@ +After version 4.4, the calibration data survives through brews. The maximum number of calibration pairs is 10. + +When starting a log, the calibration data available will be written into the log file, so that tilt angles are recorded and gravity can be derived from the tilt angles. Otherwise, gravity data is recorded. + +The "Calculated by BPL" option determines whether or not using the gravity reported directly, while "Record Raw" option when starting logging determines whether or not recording raw data instead of gravity values. These two options are independent but related. + +| Calculated by BPL | Record Raw | Gravity of BPL | Gravity of Log | +| -- | -- | -- | -- | +| ON | ON | calculated by BPL, need calibration data | calculated on the fly, need calibration data | +| ON | OFF |calculated by BPL, need calibration data | gravity calculated by BPL | +| OFF | ON | gravity reported from wireless hydrometer | calculated on the fly, need calibration data. | +| OFF | OFF | gravity reported from wireless hydrometer | gravity from BPL, reported from wireless hydrometer| + +The calculated gravity is always temperature corrected. When inputing new data from main page, corrected gravity will be calculated automatically if beer temperature is available. However, no temperature correction is available if calibration data is input at "gravity device" page. \ No newline at end of file diff --git a/doc/iSpindelAsSensor.md b/docs/C2.iSpindelAsSensor.md similarity index 79% rename from doc/iSpindelAsSensor.md rename to docs/C2.iSpindelAsSensor.md index d514b18f5..257de1d65 100644 --- a/doc/iSpindelAsSensor.md +++ b/docs/C2.iSpindelAsSensor.md @@ -1,8 +1,5 @@ To use the temperature reading of iSpindel as Beer sensor, run `Device Setup`, and assign the *External Sensor* as "Beer Temp". -![ispindel as beer sensor](images/ispindel_sensor.jpg) +![ispindel as beer sensor](image/ispindel_sensor.jpg) The report period of iSpindel should be less than 1-3 minutes.(**To be tested.**) If no report from iSpindel for over 5 minutes, the sensor is considered as disconnected. - -*** -[Index](index.md) \ No newline at end of file diff --git a/docs/D0.TiltHydrometerSupport.md b/docs/D0.TiltHydrometerSupport.md new file mode 100644 index 000000000..981517ed4 --- /dev/null +++ b/docs/D0.TiltHydrometerSupport.md @@ -0,0 +1,9 @@ +# Tilt Hydrometer +[Tilt Hydrometer](https://tilthydrometer.com) broadcasts gravity and temperature in format of iBeacon. ESP32, built in BLE, can receives the iBeacon message and hence supports Tilt Hydrometer, provided close enough for BLE signal. + +![Tilt Setup](image/tilt_setup.jpg) + +Tilt hydrometer and iSpindle are exclusive. ESP8266 doesn't support BLE, and setting Tilt Hydromenter Enabled will be rejected. + +## Using Tilt tempeerature as Beer Temperature +It is possible, by assining "External Sensor" to Beer Temperature. However, it is not recommeded. Tilt broadcasts temperature in integer Farenheit format. The precision won't do a good job in temperature control. \ No newline at end of file diff --git a/docs/D1.RaptPillHydrometerSupport.md b/docs/D1.RaptPillHydrometerSupport.md new file mode 100644 index 000000000..b3f849620 --- /dev/null +++ b/docs/D1.RaptPillHydrometerSupport.md @@ -0,0 +1,30 @@ +# Rapt Pill Hydrometer + +[Rapt Pill](https://www.kegland.com.au/products/yellow-rapt-pill-hydrometer-thermometer-wifi-bluetooth) utilizes the same principle as Tilt and iSpindel. When set Bluetooth/BLE mode, BrewPiLess running on ESP32 can read the bluetooth broadcast informaton. + +Pill broadcasts gravity and tilt angle related information, which make it possible to run "brew and calibrate" like iSpindel. + +![Pill setup](image/pill_setup.jpg) + +| Setting | Description | +| -------------- |:---------------------------------| +| Mac Address | MAC used for registration and real MAC address | +| use Plato | Plato or Specific Gravity(eg. 1.054) | +| Gravity Offset | the offset between reported gravity and "real" gravity" | +| Calculated by BPL | Do the conversion from tilt angle to gravity by BrewPiLess. If this option is OFF, all the following options are not used. | +| Calibration Points | Calibration data. At least two set of data is necessary. | +| Coefficients | The coefficients of the formula to calculate gravity. The formula is derived based on calibration points. It is not editable.| +| LowPass Filter Coefficient | 0~1. See following description| +| Gravity Stability Threshold | Integer value. 1 point = 0.001. | + +Offset will be "added" to reported gravity to derive the result gravity. If calculated by BPL is enabled, offset is ignored. To enable calculation, at least two points of calibration points should be entered. + +After version 4.4, the calibration data survives through brews. The coefficients(formula) is derived from the calibration data. + + + +The MAC address used for registration and displayed on Rapt Pill's Dianostics page is calculated by taking the RAPT Pill's BLE address and subtracting 2 off the last octet. Therefore, thare are TWO addresses displayed. + +To find out Pills, click "Scan" button. The Pills don't broadcast all the time but wakeup and broadcast for a short period according its setting, like one or 15 minutes. It might take some time to "catch" the Pill, wait until the Pill shows up. + +Pills report gravity as well as tilt information. If "Calculated by BPL" is enabled, the gravity is derived from the tilt information. Otherwise, the gravity from Pills will be used. The offset will be added to reported gravity. If "Calculated by BPL" is enabled, at least two sets of calibration data is necessary to derive a formula. Before a valid formula is available, no gravity data will be reported. The calibratin data will survives through brews. If the center of mass of the Pill is altered when opened for charging, the calibration data should be removed manually. \ No newline at end of file diff --git a/doc/ManualGravityInput.md b/docs/E0.ManualGravityInput.md similarity index 98% rename from doc/ManualGravityInput.md rename to docs/E0.ManualGravityInput.md index fd00c05c7..6781fb6a6 100644 --- a/doc/ManualGravityInput.md +++ b/docs/E0.ManualGravityInput.md @@ -11,6 +11,3 @@ Please note that input of OG won't generate a "SG" record. If local logging is s ![Input SG](image/gravity_input.jpg?raw=true) When input SG/OG, the temperature of wort/beer should be input at the same time. BPL will correct the reading based on the correction temperature set in "Gravity Device" and the temperature of Beer Temp. If you correct the hydrometer reading, enter the calibration temperature of your hydrometer. - -*** -[Index](index.md) \ No newline at end of file diff --git a/doc/glycol.md b/docs/F0.glycol.md similarity index 72% rename from doc/glycol.md rename to docs/F0.glycol.md index 85e6999e3..daf469ad4 100644 --- a/doc/glycol.md +++ b/docs/F0.glycol.md @@ -1,26 +1,30 @@ +After 4.3.1, there is an option in System configuration page. By enabling "Glycol Chilling", the fridge sensor will fall back to beer sensor when missing. You might need to disable it if you are not using glycol to chill your fermenting beer. + + The version of BrewPi ported to BrewPiLess is designed to control fermenting temperature in a fridge or freezer. To control glycol cooling, some hacks are necessary: -1. Set minimum cooling/heating on/off time +1. Set "Glycol Chilling" to "enabled" in system config page. + +2. Set minimum cooling/heating on/off time open the page `http://brewpiless.local/testcmd.htm` Set the following options: `minCoolTime`, `minCoolIdleTime`, `minHeatTime`, `minHeatIdleTIme`, `deadTime`. The `deadTime` is the minimum time between cooling and heating. It also defines the minimum waiting time after booting up. Issue a command like this to set minimum cooling on and off to 10 seconds: `j{"minCoolTime":10,"minCoolIdleTime":10}` -2. Set P.I.D. parameter +3. Set P.I.D. parameter Setting all P.I.D. to zero will result in the "fridge set" equal to "beer set". _This might not be necessary._ `j{"Kp":0,"Ki":0,"Kd":0}` You can use `c` (yes, only one single lower case "c" character.) to read back the setting value. If the values don't change, you might need to erase the flash. -3. Use only beer sensor and control the pump. The fridge temperature will read from beer sensor. +4. Use only beer sensor and control the pump. The fridge temperature will read from beer sensor. ### Special Note: You might notice that temperatures of beer and fridge from the same sensor are different. The reason is the values are filtered and and they have different filtering parameters. Those parameters also can be changed by the JSON commands. `fridgeFastFilt`, `fridgeSlowFilt`, `firdgeSlopeFilt`, `beerFastFilt`, `beerSlowFilt`, and `beerSlopeFilt`. + Ref: [JSON commands](JsonCommand.md) +[Parasite Temperature Control](ParasiteTemperatureControl.md) - -*** -[Index](index.md) \ No newline at end of file diff --git a/docs/F1.ParasiteTemperatureControl.md b/docs/F1.ParasiteTemperatureControl.md new file mode 100644 index 000000000..8c8993c7c --- /dev/null +++ b/docs/F1.ParasiteTemperatureControl.md @@ -0,0 +1,24 @@ +# Parasite (Glycol) Temperature Control + +Sometimes an additonal temperature controller to control the temperature of glycol itself is necessary when using glycol to cool beer temperature. BrewPiLess provides a simple temperature control named Parasite Temperature Control, or PTC. + +To use PTC, an additional actuator(control PIN) is needed, and "room" sensor is used to monitor the temperature of glycol. + +PTC is enabled by assigning a control PIN, which should connect to a relay. +![Pin assignment for PTC](image/setup_ptc.jpg?raw=true) + +If PTC is enabled, a section of PTC parameters will show up in Control Page. +![PTC Control](image/control_ptc.jpg?raw=true) + +* Target Temperature +The cooling will stop when the temperature is equal or lower than this value. +* Triggering Temperature +The cooling will be started when the temperature is greater than this value. This value should be at least 0.5 higher than “Target Temperature” +* Minimum Cooling Time +Must be greater than or equal to180 (seconds). +* Minimum Idle Time +Must be greater than or equal to180 (seconds). + +The status of PTC will also show up at the status pane on "Graph" page. + +![PTC Status](image/status_ptc.jpg?raw=true) diff --git a/doc/AutoSpunding.md b/docs/G0.AutoSpunding.md similarity index 99% rename from doc/AutoSpunding.md rename to docs/G0.AutoSpunding.md index a91b8acaa..496d786cb 100644 --- a/doc/AutoSpunding.md +++ b/docs/G0.AutoSpunding.md @@ -24,5 +24,3 @@ Note: to cap, BPL will set the PIN to "active". Most of the solenoids are normal Active="capped". -*** -[Index](index.md) diff --git a/docs/H0.PressureMonitor.md b/docs/H0.PressureMonitor.md new file mode 100644 index 000000000..0f4c193f1 --- /dev/null +++ b/docs/H0.PressureMonitor.md @@ -0,0 +1,89 @@ +#Pressure monitor and Auto Spunding +**_The feature is not yet verified._** + +By using a pressure transducer, BPL can read pressure and **control** the pressure if Auto Spunding(capping) is enabled. + +![Pressure Settings](image/pressure-setting.jpg?raw=true) + +## Hardware Setup +### Transducer +The pressure transducers supported are something like this: [Pressure Transducer](http://www.auberins.com/index.php?main_page=product_info&cPath=38&products_id=311). Using other types might be possible, but the output should be linear voltage. + +### ADC +On-board ADC, A0 of ESP8266, 36 of ESP32, and external ADS1115 can be used to read from the transducer. + +#### ESP8266 bulit-in ADC, A0 +The reading of A0, on-board ADC, is not stable when WiFi is activated, because ESP8266 uses the ADC for WiFi related tasks. Therefore, it is highly recommended to use external ADS1115 when **controlling** is required. + +ADC of ESP8266 reads voltage from 0-1.0V, and there are resistors on D1 mini, and NodeMcu, to make ADC input range 0-3.3v. A resistor might be needed to extend the range 0-5v. + +### ESP32 +Only ADC1 is allowed. Pin 36 is choosen by default. ADC of ESP32 isn't linear, and calibration is necessary. The calibration recommended by the the chip vendor has been adapted. However, the result might not be satisfiying. + +### ADS1115 +Connect I2C of ADS1115, and A0 to the transducer. Connect ADDR, address selection pin, to GND, so that the address is 0x48. +**I2C LCDs of address 0x48 are unusable unless disabling ADS1115 support.** + +**ADS1115 Gain/Max input voltage** should be set according to the real value of the transducer. The bigger the maximum voltage, the lower the resolution. + +| Max Voltage | resolution | +| ------- |---- | +| 6.144 V | 187.5 uV = 0.000187 V | +| 4.096 V | 125 uV = 0.000125 V | +| 2.048 V | 62.5 uV = 0.0000625 V | +| 1.024 V | 31.25 uV = 0.00003125 V | +| 0.512 V | 15.625 uV = 0.000015625 V | +| 0.256 V | 7.8125 uV = 0.0000078125 V | + + +## Conversion +BPL converts ADC readings from pressure transducer into pressure. + +The formula used is + +PSI=(A0_Reading - b) * a + +Take the pressure transducer that I have for example, +output: 0.5 - 4.5v linear +maximum pressure: 80psi (4.5v) + +The output: + +| pressure | voltage | A0 reading | +| ------- | ----- | ----- | +| 0 | 0.5v | 1023 * 0.5/3.3= 155 | +| 40 | 2.5v | 1023 * 2.5/3.3= 775 | +| 80 | 4.5v | 1023 (saturated) | + +Given the fact that I don't really care the reading that exceeds 40psi. I just save a resistor and connect the output direct to A0. My formula is + +PSI=(A0_Reading - 155) * (40-0)/(775-155) +=> PSI=(A0_Reading - 155) * 0.06452 + +example 2: ADS1115 +In my case, **Max input voltage** is set to 4.096V, in which one step increase of ADC value is 0.000125V. So + +| pressure | voltage | ADC reading | +| ------- | ----- | ----- | +| 0 | 0.5v | 0.5/0.000125= 4,000 | +| 40 | 2.5v | 2.5/0.000125= 20,000 | + +The formula would be + +PSI=(ADC_Reading - 4,000) * (40-0)/(20,000-4,000) + => (ADC_Reading - 4,000) * 0.0025 + +### Getting parameters by real readings +In practice, there are errors, and the readings sometimes are not exact the same as expected. A simple way to get the formula is using "calibration" function by +1. Step 1: make sure there is "NO pressure". And click the button to get "b". +2. Step 2: put the transducer under a pressure closer maximum the better. Input the pressure and click "Step 2" button. + +![Pressure Calibration](image/pressure-cal.jpg?raw=true) + +BPL will then derive the parameters automatically. + +## Pressure Control +"Capping control" is necessary to support pressure control. A solenoid is needed to vent the gas/co2 when necessary. The most tricky part is the venting. A small pin hole or gap should work. **Venting flow should be close to the speed of CO2 generation. + +** BPL checks the pressure **every second**, if the pressure is greater than specified value, the solenoid will be open. The less the gas/pressure is released in 1 second, the more precise the pressure control is. It might sound like difficult. The fact is that it is more difficult to make something air tight. A threaded pipe and cap without seal might do the job. + diff --git a/doc/MQTT.md b/docs/I0.MQTT.md similarity index 91% rename from doc/MQTT.md rename to docs/I0.MQTT.md index e506b81b1..331fc3b11 100644 --- a/doc/MQTT.md +++ b/docs/I0.MQTT.md @@ -29,6 +29,9 @@ The topic terminals or the JSON labels are listed in the following table. | tilt | Tilt value of iSpindel | | | pressure | Pressure reading in PSI | | | mode | current running mode| Integer values for "**Whole as JSON**", character values for "**Individual Topic**" | +| state | State in Integer. 0:IDLE, 1:STATE_OFF,2: DOOR_OPEN, 3:HEATING, 4: COOLING, 5: WAITING_TO_COOL, 6:WAITING_TO_HEAT, 7:WAITING_FOR_PEAK_DETECT, 8:COOLING_MIN_TIME, 9:HEATING_MIN_TIME | +| fridgeHumidity | Fridge/Chamber Humidity reading, if available | +| roomHumidity | Room/environment Humidity reading, if available | ## MQTT Remote Control MQTT Remote Control enables controlling BPL by a MQTT server. When enabled, BPL subscribes the specified path and changes the setting accordingly. @@ -72,4 +75,4 @@ Connecting to MQTT server takes up a TCP connection and some resource. The progr There is latency of network and update of data. Therefore, expect some delay after changing the setting. *** -[Index](index.md) [Settings for ubidots.com](MQTT.ubidots.md) +[Settings for ubidots.com](MQTT.ubidots.md) diff --git a/doc/MQTT.ubidots.md b/docs/I1.MQTT.ubidots.md similarity index 100% rename from doc/MQTT.ubidots.md rename to docs/I1.MQTT.ubidots.md diff --git a/doc/OtherURL.md b/docs/J0.OtherUrl.md similarity index 97% rename from doc/OtherURL.md rename to docs/J0.OtherUrl.md index 7f00a56ae..da7f22d9c 100644 --- a/doc/OtherURL.md +++ b/docs/J0.OtherUrl.md @@ -24,5 +24,3 @@ Web-based file manager to manipulate the files directly. The access portal to BrewPi core. The temperature control parameters can be accessed by this page. -*** -[Index](index.md) \ No newline at end of file diff --git a/doc/OverwritePages.md b/docs/K0.OverwritePages.md similarity index 97% rename from doc/OverwritePages.md rename to docs/K0.OverwritePages.md index 850ae989b..e36215785 100644 --- a/doc/OverwritePages.md +++ b/docs/K0.OverwritePages.md @@ -22,5 +22,3 @@ https://github.com/tommueller/BrewPiLess/tree/master/htmljs/dist Tom's work has been merged into this project: https://github.com/vitotai/BrewPiLess/tree/master/htmljs -*** -[Index](index.md) \ No newline at end of file diff --git a/doc/JsonCommand.md b/docs/L0.JsonCommand.md similarity index 93% rename from doc/JsonCommand.md rename to docs/L0.JsonCommand.md index ca54c2eaa..8ed474a4c 100644 --- a/doc/JsonCommand.md +++ b/docs/L0.JsonCommand.md @@ -1,3 +1,5 @@ +After 4.3.1, you can use web interface, in "System" page, to modify these temperature control settings. However, knowledge about the settings is necessary. + By using `http://brewpiless.local/testcmd.htm`, you can control BrewPi core directly. For example, to set temperature to Fahrenheit. Open the testcm.htm page, and enter the following string, and send. `j{"tempFormat":"F"}` @@ -5,6 +7,7 @@ By using `http://brewpiless.local/testcmd.htm`, you can control BrewPi core dire You can set multiple parameters in one command. The command after `j` is in formal JSON format. Please include the double quote(") for key and string value. +_Don't forget to change **tempSetMin** and **tempSetMax** after chaning temperature unit._ | Key | Meaning | Note | | -------------- |:-------------:| :--------------------| @@ -34,14 +37,13 @@ You can set multiple parameters in one command. The command after `j` is in form | hs | Rotary encoder trigger step | When you feel like you have to turn your rotary encoder two steps for every trigger, set this to half step. 0 = Full step, 1 = Half step | | heatEst | Heating overshoot estimator | This is a self learning estimator for the overshoot when turning the heater off. It is adjusted automatically, but you can set adjust it manually here. This does not stop further automatic adjustment. | | coolEst | Cooling overshoot estimator | This is a self learning estimator for the overshoot when turning the cooler off. It is adjusted automatically, but you can set adjust it manually here. This does not stop further automatic adjustment. | -| minCoolTime | Minimum cooling time |*1 | -| minCoolIdleTime | Minimum idle time before cooling |*1 | -| minHeatTime | Minimum heating time |*1 | -| minHeatIdleTime | Minimum idle time before heating |*1 | -| deadTime | Minimum idle time between switch of heating and cooling. |*1 | +| minCoolTime | Minimum cooling time | | +| minCoolIdleTime | Minimum idle time before cooling | | +| minHeatTime | Minimum heating time | | +| minHeatIdleTime | Minimum idle time before heating | | +| deadTime | Minimum idle time between switch of heating and cooling. | | -*1: Available if SettableMinimumCoolTime option is set to true, or EnableGlycol is set to true. After v2.4, it is enabled by default. To view current temperature control setting, issue a single character @@ -59,6 +61,3 @@ and send. ## A note about PID control The fridge temperature is controlled with PID. The fridge setting = beer setting + PID. The proportional part is linear with the temperature error. The integral part slowly increases when an error stays present, this prevents steady state errors. The derivative part is in the opposite direction to the proportional part. This prevents overshoot: it lowers the PID value when there's 'momentum' in the right direction. - -*** -[Index](index.md) \ No newline at end of file diff --git a/docs/M0.Humidity.md b/docs/M0.Humidity.md new file mode 100644 index 000000000..8f70d4bfa --- /dev/null +++ b/docs/M0.Humidity.md @@ -0,0 +1,43 @@ +**Humidity monitoring and control is in preliminary development stage.** +# DHT11/DHT21(AM2301)/DHT22 sensors +DHT sensor family uses proprietary onewire protocol. For maximum flexibility, we don't allocate a dedidcated pin for it. +Generic PINs that are used for actuators(cooling, heating, and etc.) can be used for DHTxx sensors. +Once assigned, the humidity reading is then available. + +DHT sensors also report temperature, and the temperature sensor is available after a PIN is assigned to the DHTxx sensor. + +NOTE: +* The humidity sensor must be assigned to a slot numebr that is **smaller** than the temperature sensor of the humidity sensor. +* I don't get stable readings from my DHT21 sensor. I had on in my fridge, and the reading changes dramatically when cooling. I couldn't get readings when fermenting lager at 10C. Maybe some fine tuning is needed, or it is the nature of DHT21. Don't trust the temperature reading of DHTxx sensor before verifying. +* I have to supply 5V to my DHT21/AM2301 sensor when the "line" is too long, like 1 meter(3 feet). + +# BME280 sensors +BME280 utilizes I2C for communication. No extra PINs are required. Howerver, I2C addresses of 0x77 and 0x76 are reserved for BME280, so if the LCD uses one of these addresses, it won't be detected. + +If BME280 is present, it should be detected when listing devices. + + +# Humidity Control +Humidity control runs similar algorithm as temperature control. The parameters are currently predefined and can be changed only by modification of source code.. +"Humidifer" and/or "Dehumidifer" must be set-up for humidity control. + +| Parameter | Usage | Default value | +| -------------- |:-------------:| :--------------------| +| IdleLow | maximum difference before Humidifying starts | 3% | +| IdleHigh | maximum difference before Dehumidifying starts | 3% | +| HumidifyingTargetHigh | the minimum difference before stopping humidifying | 5% | +| DehumidifyingTargetLow | the minimum difference before stopping dehumidifying | 5% | +| MinimumHumidifyingRunningTime | Minimum humidifying running time | 60 secs | +| MinimumHumidifyingIdleTime | Minimum humidifying Idle time | 60 secs | +| MinimumDehumidifyingRunningTime | Minimum dehumidifying running time | 300 secs | +| MinimumDehumidifyingIdleTime | Minimum dehumidifying idle time | 300 secs | +| MinimumDeadTime | Minimum idle time between humidifying and defhumdifying | 600 secs | + + +Eg. for humdifying, +* humidifier is started when the current humidity is lower than (TargetHumidity - IdleLow) +* humidifier is stopped when the current humidity is higher than (TargetHumidity + HumidifyingTargetHight) + +for dehumdifying, +* dehumidifier is started when the current humidity is higher than (TargetHumidity + IdleHigh) +* dehumidifier is stopped when the current humidity is lower than (TargetHumidity - DehumidifyingTargetLow) diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 000000000..342505ee8 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,44 @@ +* [Hardware Setup](10.HardwareGeneral.md) + * [Example#1](11.HardwareExample1.md) + * [SONOFF](12.HarddwareSONOFF.md) + * [Thorrax’s Board](https://github.com/thorrak/brewpi-esp8266) + * [ESP32](13.ESP32Pins.md) + * [ESP32 Build](14.ESP32BuildInstructions.md) +* [Localization of web frontend](20.LocalizationWebPage.md) +* [Flash layout and New Frontend](30.FlashLayoutAndNewUI.md) +* [Software Installation](40.SoftwareInstallation.md) + * [Software Configuration](41.SoftwareConfiguration.md) +* [WiFi Setup](50.WiFiSetupV31.md) +* [System Setup](60.SystemSetup.md) + * [SoftAP mode](61.SoftAPMode.md) +* [Device Setup](70.DeviceSetup.md) +* [Using Buttons & Menu](80.UsingButtonsAndUI.md) +* [Temperature Logging](90.TemperatureLogging.md) +* [Cloud Logging](A0.CloudLogging.md) + * [Generic HTTP](A1.GenericHttpLogging.md) + * [ubidots.com](A2.ubidots.md) + * [thingspeak.com](A3.thingspeak.md) + * [Brewfather](A4.brewfather.md) +* [Beer Profile](B0.BeerProfile.md) +* [iSpindel Support](C0.iSpindelSupport.md) + * [Brew and Calibrate](C1.BrewNCalibrate.md) + * [iSpindel as Beer Sensor](C2.iSpindelAsSensor.md) +* [Tilt Hydrometer Support on ESP32](D0.TiltHydrometerSupport.md) +* [Rapt Pill wireless Hydrometer Support](D1.RaptPillHydrometerSupport.md) +* [Manual Gravity Logging](E0.ManualGravityInput.md) +* [Use with Glycol](F0.glycol.md) + * [Parasite Temperature Control](F1.ParasiteTemperatureControl.md) +* [Auto Capping(Spunding)](G0.AutoSpunding.md) +* [Pressure Monitor and Control](H0.PressureMonitor.md) +* [MQTT Remote Control](I0.MQTT.md) + * [ubidots.com](I1.MQTT.ubidots.md) +* [Other URLs](J0.OtherUrl.md) + * Clear WiFi setting + * Format file system + * OTA update +* [Overwrite pages](K0.OverwritePages.md) +* [JSON Commands](L0.JsonCommand.md) + * Temperature Unit + * Sensor Calibration +* [Humidity](M0.Humidity.md) +* [FAQ](Z0.FAQ.md) \ No newline at end of file diff --git a/doc/FAQ.md b/docs/Z0.FAQ.md similarity index 93% rename from doc/FAQ.md rename to docs/Z0.FAQ.md index 700f10319..03fac804f 100644 --- a/doc/FAQ.md +++ b/docs/Z0.FAQ.md @@ -26,10 +26,6 @@ A: "Erase Setting". The hardware configuration will be gone after erasing. You might need to save the hardware configuration and restore after erashing. -* Q: What is "Parasite Temperature Control"? - - A: http://vito.tw/?p=836 - * Q: BrewPiLess can't find my sensors. A: Check if they are parasitic power only version. @@ -37,5 +33,3 @@ [REF#2](https://www.homebrewtalk.com/forum/threads/howto-make-a-brewpi-fermentation-controller-for-cheap.466106/page-136#post-7556259) - *** -[Index](index.md) \ No newline at end of file diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 000000000..2f7efbeab --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-minimal \ No newline at end of file diff --git a/doc/image/BPL_simple.jpg b/docs/image/BPL_simple.jpg similarity index 100% rename from doc/image/BPL_simple.jpg rename to docs/image/BPL_simple.jpg diff --git a/doc/image/beerprofileapply.jpg b/docs/image/beerprofileapply.jpg similarity index 100% rename from doc/image/beerprofileapply.jpg rename to docs/image/beerprofileapply.jpg diff --git a/doc/image/beerprofilev21.jpg b/docs/image/beerprofilev21.jpg similarity index 100% rename from doc/image/beerprofilev21.jpg rename to docs/image/beerprofilev21.jpg diff --git a/doc/image/bpl_wifi_address.jpg b/docs/image/bpl_wifi_address.jpg similarity index 100% rename from doc/image/bpl_wifi_address.jpg rename to docs/image/bpl_wifi_address.jpg diff --git a/doc/image/bpl_wifi_setup.jpg b/docs/image/bpl_wifi_setup.jpg similarity index 100% rename from doc/image/bpl_wifi_setup.jpg rename to docs/image/bpl_wifi_setup.jpg diff --git a/doc/image/bplmain.jpg b/docs/image/bplmain.jpg similarity index 100% rename from doc/image/bplmain.jpg rename to docs/image/bplmain.jpg diff --git a/doc/image/brewpiless125.jpg b/docs/image/brewpiless125.jpg similarity index 100% rename from doc/image/brewpiless125.jpg rename to docs/image/brewpiless125.jpg diff --git a/doc/image/brewpiless126p1.jpg b/docs/image/brewpiless126p1.jpg similarity index 100% rename from doc/image/brewpiless126p1.jpg rename to docs/image/brewpiless126p1.jpg diff --git a/doc/image/calibration.jpg b/docs/image/calibration.jpg similarity index 100% rename from doc/image/calibration.jpg rename to docs/image/calibration.jpg diff --git a/doc/image/capping_info.jpg b/docs/image/capping_info.jpg similarity index 100% rename from doc/image/capping_info.jpg rename to docs/image/capping_info.jpg diff --git a/doc/image/capping_setup.jpg b/docs/image/capping_setup.jpg similarity index 100% rename from doc/image/capping_setup.jpg rename to docs/image/capping_setup.jpg diff --git a/doc/image/configv25.jpg b/docs/image/configv25.jpg similarity index 100% rename from doc/image/configv25.jpg rename to docs/image/configv25.jpg diff --git a/doc/image/configv251.jpg b/docs/image/configv251.jpg similarity index 100% rename from doc/image/configv251.jpg rename to docs/image/configv251.jpg diff --git a/docs/image/configv42.jpg b/docs/image/configv42.jpg new file mode 100644 index 000000000..6bc0fa20c Binary files /dev/null and b/docs/image/configv42.jpg differ diff --git a/docs/image/control_capping.jpg b/docs/image/control_capping.jpg new file mode 100644 index 000000000..92b83c3a4 Binary files /dev/null and b/docs/image/control_capping.jpg differ diff --git a/docs/image/control_ptc.jpg b/docs/image/control_ptc.jpg new file mode 100644 index 000000000..c1175a95b Binary files /dev/null and b/docs/image/control_ptc.jpg differ diff --git a/doc/image/devicesetup.jpg b/docs/image/devicesetup.jpg similarity index 100% rename from doc/image/devicesetup.jpg rename to docs/image/devicesetup.jpg diff --git a/docs/image/gdsetting.jpg b/docs/image/gdsetting.jpg new file mode 100644 index 000000000..64ec7e4ea Binary files /dev/null and b/docs/image/gdsetting.jpg differ diff --git a/docs/image/gravity_input.jpg b/docs/image/gravity_input.jpg new file mode 100644 index 000000000..ed22e660d Binary files /dev/null and b/docs/image/gravity_input.jpg differ diff --git a/doc/image/inputgravity.jpg b/docs/image/inputgravity.jpg similarity index 100% rename from doc/image/inputgravity.jpg rename to docs/image/inputgravity.jpg diff --git a/doc/image/ispindel_calibrating.jpg b/docs/image/ispindel_calibrating.jpg similarity index 100% rename from doc/image/ispindel_calibrating.jpg rename to docs/image/ispindel_calibrating.jpg diff --git a/doc/image/ispindel_formula.jpg b/docs/image/ispindel_formula.jpg similarity index 100% rename from doc/image/ispindel_formula.jpg rename to docs/image/ispindel_formula.jpg diff --git a/doc/image/ispindel_sensor.jpg b/docs/image/ispindel_sensor.jpg similarity index 100% rename from doc/image/ispindel_sensor.jpg rename to docs/image/ispindel_sensor.jpg diff --git a/docs/image/ispindel_setup.jpg b/docs/image/ispindel_setup.jpg new file mode 100644 index 000000000..b5e9d638c Binary files /dev/null and b/docs/image/ispindel_setup.jpg differ diff --git a/doc/image/log_general.jpg b/docs/image/log_general.jpg similarity index 100% rename from doc/image/log_general.jpg rename to docs/image/log_general.jpg diff --git a/doc/image/log_thingSpeak.jpg b/docs/image/log_thingSpeak.jpg similarity index 100% rename from doc/image/log_thingSpeak.jpg rename to docs/image/log_thingSpeak.jpg diff --git a/doc/image/log_ubidots.jpg b/docs/image/log_ubidots.jpg similarity index 100% rename from doc/image/log_ubidots.jpg rename to docs/image/log_ubidots.jpg diff --git a/doc/image/lowpassfilter.jpg b/docs/image/lowpassfilter.jpg similarity index 100% rename from doc/image/lowpassfilter.jpg rename to docs/image/lowpassfilter.jpg diff --git a/doc/image/mqtt.remote.jpg b/docs/image/mqtt.remote.jpg similarity index 100% rename from doc/image/mqtt.remote.jpg rename to docs/image/mqtt.remote.jpg diff --git a/doc/image/networkselect.jpg b/docs/image/networkselect.jpg similarity index 100% rename from doc/image/networkselect.jpg rename to docs/image/networkselect.jpg diff --git a/docs/image/oled_ispindel.jpg b/docs/image/oled_ispindel.jpg new file mode 100644 index 000000000..99480814b Binary files /dev/null and b/docs/image/oled_ispindel.jpg differ diff --git a/docs/image/pill_setup.jpg b/docs/image/pill_setup.jpg new file mode 100644 index 000000000..958a574de Binary files /dev/null and b/docs/image/pill_setup.jpg differ diff --git a/doc/image/pressure-cal.jpg b/docs/image/pressure-cal.jpg similarity index 100% rename from doc/image/pressure-cal.jpg rename to docs/image/pressure-cal.jpg diff --git a/docs/image/pressure-setting.jpg b/docs/image/pressure-setting.jpg new file mode 100644 index 000000000..701517739 Binary files /dev/null and b/docs/image/pressure-setting.jpg differ diff --git a/doc/image/remote.log.brewfather.jpg b/docs/image/remote.log.brewfather.jpg similarity index 100% rename from doc/image/remote.log.brewfather.jpg rename to docs/image/remote.log.brewfather.jpg diff --git a/doc/image/remote.log.generichttp.jpg b/docs/image/remote.log.generichttp.jpg similarity index 100% rename from doc/image/remote.log.generichttp.jpg rename to docs/image/remote.log.generichttp.jpg diff --git a/doc/image/remote.log.thingspeak.jpg b/docs/image/remote.log.thingspeak.jpg similarity index 100% rename from doc/image/remote.log.thingspeak.jpg rename to docs/image/remote.log.thingspeak.jpg diff --git a/doc/image/remote.log.ubidots.jpg b/docs/image/remote.log.ubidots.jpg similarity index 100% rename from doc/image/remote.log.ubidots.jpg rename to docs/image/remote.log.ubidots.jpg diff --git a/doc/image/reuse_profiles.jpg b/docs/image/reuse_profiles.jpg similarity index 100% rename from doc/image/reuse_profiles.jpg rename to docs/image/reuse_profiles.jpg diff --git a/docs/image/setup_ptc.jpg b/docs/image/setup_ptc.jpg new file mode 100644 index 000000000..2b6ae8edd Binary files /dev/null and b/docs/image/setup_ptc.jpg differ diff --git a/docs/image/status_ptc.jpg b/docs/image/status_ptc.jpg new file mode 100644 index 000000000..eaae4a15b Binary files /dev/null and b/docs/image/status_ptc.jpg differ diff --git a/doc/image/systemconfig.jpg b/docs/image/systemconfig.jpg similarity index 100% rename from doc/image/systemconfig.jpg rename to docs/image/systemconfig.jpg diff --git a/docs/image/tilt_setup.jpg b/docs/image/tilt_setup.jpg new file mode 100644 index 000000000..96ae51724 Binary files /dev/null and b/docs/image/tilt_setup.jpg differ diff --git a/doc/image/ubidots-api-credentials.jpg b/docs/image/ubidots-api-credentials.jpg similarity index 100% rename from doc/image/ubidots-api-credentials.jpg rename to docs/image/ubidots-api-credentials.jpg diff --git a/doc/image/ubidots-api-token.jpg b/docs/image/ubidots-api-token.jpg similarity index 100% rename from doc/image/ubidots-api-token.jpg rename to docs/image/ubidots-api-token.jpg diff --git a/doc/image/ubidots.add.control.jpg b/docs/image/ubidots.add.control.jpg similarity index 100% rename from doc/image/ubidots.add.control.jpg rename to docs/image/ubidots.add.control.jpg diff --git a/doc/image/ubidots.control.widget.jpg b/docs/image/ubidots.control.widget.jpg similarity index 100% rename from doc/image/ubidots.control.widget.jpg rename to docs/image/ubidots.control.widget.jpg diff --git a/doc/image/ubidots.mqtt.settings.jpg b/docs/image/ubidots.mqtt.settings.jpg similarity index 100% rename from doc/image/ubidots.mqtt.settings.jpg rename to docs/image/ubidots.mqtt.settings.jpg diff --git a/doc/image/ubidots.variable.jpg b/docs/image/ubidots.variable.jpg similarity index 100% rename from doc/image/ubidots.variable.jpg rename to docs/image/ubidots.variable.jpg diff --git a/doc/image/ubidots.widget.creation.jpg b/docs/image/ubidots.widget.creation.jpg similarity index 100% rename from doc/image/ubidots.widget.creation.jpg rename to docs/image/ubidots.widget.creation.jpg diff --git a/docs/image/volume2psi.jpg b/docs/image/volume2psi.jpg new file mode 100644 index 000000000..4803a2baa Binary files /dev/null and b/docs/image/volume2psi.jpg differ diff --git a/extra/BPLLogViewer.htm b/extra/BPLLogViewer.htm deleted file mode 100644 index 7006bda28..000000000 --- a/extra/BPLLogViewer.htm +++ /dev/null @@ -1,134 +0,0 @@ - - - -BrewPiLess Log Viewer - - - - - -
- or Drop File Here. -
-
-Start Time: - -
-
-
-
-
Date/Time
-
-
-
-
Beer Temp
-
--
-
-
-
-
-
Beer Set
-
--
-
-
-
-
-
Fridge Temp
-
--
-
-
-
-
-
Fridge Set
-
--
-
-
-
-
-
Room Temp
-
--
-
-
-
-
-
Aux Temp
-
--
-
-
-
-
-
Gravity
-
--
-
-
-
-
state
-
-
-
-
-
- - diff --git a/extra/BPLLogViewerV2.htm b/extra/BPLLogViewerV2.htm deleted file mode 100644 index 69ba5f32b..000000000 --- a/extra/BPLLogViewerV2.htm +++ /dev/null @@ -1,244 +0,0 @@ - - - -BrewPiLess Log Viewer - - - - - - -
- or Drop File Here. - -
-
-
-Start Time: - -
-
-
-
-
Date/Time
-
-
-
-
Beer Temp
-
--
-
-
-
-
-
Beer Set
-
--
-
-
-
-
-
Fridge Temp
-
--
-
-
-
-
-
Fridge Set
-
--
-
-
-
-
-
Room Temp
-
--
-
-
-
-
-
Aux Temp
-
--
-
-
-
-
-
Gravity
-
--
-
-
-
-
-
FilteredSG
-
--
-
-
- -
-
state
-
-
-
-
-
- - diff --git a/extra/BPLLogViewerV23.htm b/extra/BPLLogViewerV23.htm deleted file mode 100644 index ca27aaab3..000000000 --- a/extra/BPLLogViewerV23.htm +++ /dev/null @@ -1,263 +0,0 @@ - - - - - BrewPiLess Log Viewer - - - - - - - -
- or Drop File Here. - -
-
-
- Start Time: - -
-
-
-
-
Date/Time
-
-
-
-
Beer Temp
-
--
-
-
-
-
-
Beer Set
-
--
-
-
-
-
-
Fridge Temp
-
--
-
-
-
-
-
Fridge Set
-
--
-
-
-
-
-
Room Temp
-
--
-
-
-
-
-
Aux Temp
-
--
-
-
-
-
-
Gravity
-
--
-
-
-
-
-
FilteredSG
-
--
-
-
- -
-
state
-
-
-
-
-
- - - \ No newline at end of file diff --git a/extra/BPLLogViewerV24n.htm b/extra/BPLLogViewerV24n.htm deleted file mode 100644 index 621307b79..000000000 --- a/extra/BPLLogViewerV24n.htm +++ /dev/null @@ -1,88 +0,0 @@ - - - - -BrewPiLess Log Viewer v2.4 - - - - - - - -
-

BPL LogViewer v2.4

-
- -
-Crop to -Export -
-
-
-
-
-
    -
  • Date/Time state
  • -
  • -
  • --
  • -
  • -
    --
    -
  • -
  • -
    --
    -
  • -
  • -
    --
    -
  • -
  • -
    --
    -
  • -
  • -
    --
    -
  • -
  • -
    --
    -
  • -
  • -
    --
    -
  • -
  • -
    --
    -
  • -
  • f
  • -
-
-
-
- - - \ No newline at end of file diff --git a/extra/BPLLogViewerV26.htm b/extra/BPLLogViewerV26.htm deleted file mode 100644 index aa91fc79b..000000000 --- a/extra/BPLLogViewerV26.htm +++ /dev/null @@ -1,959 +0,0 @@ - - - - - - BrewPiLess Log Viewer v2.6 - - - - - - - - - -
-

BPL LogViewer v2.4

-
- -
- Crop to - Export -
-
-
-
-
-
    -
  • Date/Time state
  • -
  • -
  • --
  • -
  • -
    --
    -
  • -
  • -
    --
    -
  • -
  • -
    --
    -
  • -
  • -
    --
    -
  • -
  • -
    --
    -
  • -
  • -
    --
    -
  • -
  • -
    --
    -
  • -
  • -
    --
    -
  • -
  • f
  • -
-
-
-
- - - - - - \ No newline at end of file diff --git a/extra/README.md b/extra/README.md new file mode 100644 index 000000000..4e2aef4ee --- /dev/null +++ b/extra/README.md @@ -0,0 +1,26 @@ +# Utitlities that might help + +Log Viewers are moved to htmljs/dist/english/BPLLogViewer.htm + +## backup.htm +The utilities to backup/restore settings, includes +System Configuration, Gravity Device, Remote Logging, Pressure tranducer, and MQTT. + +Use filemanager(http://brewpiless.local:8008/filemanager) to upload this html file. +Go to this file http://brewpiless.local/backup.htm +"Retrieve from Controller", and then "Save..". +The downloaed file, bpl.settings.json, will be saved to your computer. + +To Restore, +Select file to "Load from", enter "username/password", and then "Restore..". + +In the future, this funcion will be embedded. Before that, you need to upload this file again if the FileSystem is erased during upgrading firmware. + +## brewpimon.php +A small simple script that I used to monitor whether or not my BrewPiLess is still alive. + +## calibrationSG.htm +Calibration tool for iSpindel. It's essentially the same as the one on Sam's Github repository. + +## iSpindel-BPL.5.12.bin +The golden version of my iSpindel. diff --git a/extra/backup.htm b/extra/backup.htm new file mode 100644 index 000000000..1c8ca0377 --- /dev/null +++ b/extra/backup.htm @@ -0,0 +1,289 @@ + + + Setting Backup/Restore + + + + + Save.. +
+Username: Password: +
+Load from: + +
+Date: +
+ + + + + + + + +
Gravity Device
Remote Logging
Pressure Transducer
MQTT
System Config
+ + + + diff --git a/extra/calibrationSG.htm b/extra/calibrationSG.htm index 6dca12b99..a1f8c19e2 100644 --- a/extra/calibrationSG.htm +++ b/extra/calibrationSG.htm @@ -1,4 +1,4 @@ - + iSpindel Calibration @@ -259,9 +259,18 @@ var sgn = BrewMath.plato2sg(bx); setSg(sgn, bx); } - + function formatEquation(equ){ + str="" + equ[0]; + for(var i=1;i< equ.length;i++){ + var term=""; + for(var x=0;x0)? " + ":"") + equ[i] +" " + term; + } + return str; + } var TiltPoints = { points: [], + eq1st:null, clear: function() { var tbody = document.getElementById("pointlist").getElementsByTagName("tbody")[0]; var rl = tbody.getElementsByTagName("tr"); @@ -298,30 +307,39 @@ var td4 = document.createElement("td"); td4.className = "pl_sg"; td4.innerHTML = this.points[i][1].toFixed(precision); + + var tdfi = document.createElement("td"); + tdfi.className = "pl_1stvalue"; + tdfi.innerHTML = (typeof window.firstValue != "undefined")? window.firstValue[i].toFixed(precision):"-"; + + + var tdf = document.createElement("td"); + tdf.className = "pl_1sterror"; + tdf.innerHTML =(typeof window.firstError != "undefined")? window.firstError[i].toFixed(precision):"-"; + + var td5i = document.createElement("td"); td5i.className = "pl_2ndvalue"; - if (typeof window.secValue != "undefined") - td5i.innerHTML = window.secValue[i].toFixed(precision); + td5i.innerHTML = (typeof window.secValue != "undefined")? window.secValue[i].toFixed(precision):"-"; var td5 = document.createElement("td"); td5.className = "pl_2nderror"; - if (typeof window.secondError != "undefined") - td5.innerHTML = window.secondError[i].toFixed(precision); + td5.innerHTML =(typeof window.secondError != "undefined")? window.secondError[i].toFixed(precision):"-"; var td6i = document.createElement("td"); td6i.className = "pl_3rdvalue"; - if (typeof window.thirdValue != "undefined") - td6i.innerHTML = window.thirdValue[i].toFixed(precision); + td6i.innerHTML =(typeof window.thirdValue != "undefined")? window.thirdValue[i].toFixed(precision):"-"; var td6 = document.createElement("td"); td6.className = "pl_3rderror"; - if (typeof window.thirdError != "undefined") - td6.innerHTML = window.thirdError[i].toFixed(precision); + td6.innerHTML =(typeof window.thirdError != "undefined")? window.thirdError[i].toFixed(precision):"-"; tr.appendChild(td1); tr.appendChild(td2); tr.appendChild(td4); + tr.appendChild(tdfi); + tr.appendChild(tdf); tr.appendChild(td5i); tr.appendChild(td5); tr.appendChild(td6i); @@ -336,22 +354,32 @@ } }, regression: function() { - if (this.points.length < 2) return; + $("#firstpoly").html(""); + $("#secondpoly").html(""); + $("#thirdpoly").html(""); - var thirdRegression = regression('polynomial', this.points, 3, { + if (this.points.length < 2) return; + var firstRegression =regression('polynomial', this.points, 1, { precision: 9 }); - var secondRegression = regression('polynomial', this.points, 2, { + var secondRegression,thirdRegression; + if(this.points.length > 2){ + secondRegression = regression('polynomial', this.points, 2, { precision: 9 }); + } + if(this.points.length > 3){ + thirdRegression = regression('polynomial', this.points, 3, { + precision: 9 + }); + } + // Plot the result - $.plot($('#graph'), [{ - data: thirdRegression.points, - label: '3rd' - }, { - data: secondRegression.points, - label: '2nd' - }, { + var lines=[ { + data: firstRegression.points, + label: '1st' + }, + { data: this.points, lines: { show: false @@ -359,34 +387,104 @@ points: { show: true } - }, ]); - $("#secondpoly").html(secondRegression.string); - $("#thirdpoly").html(thirdRegression.string); + } ]; + if(this.points.length > 2){ + lines.push({ + data: secondRegression.points, + label: '2nd' + }); + } + if(this.points.length > 3){ + lines.push( { + data: thirdRegression.points, + label: '3rd' + }); + } + + $.plot($('#graph'), lines); + /* + $("#firstpoly").html(toTilt(firstRegression.string)); + if(this.points.length > 2) $("#secondpoly").html(toTilt(secondRegression.string)); + if(this.points.length > 3) $("#thirdpoly").html(toTilt(thirdRegression.string)); + */ + $("#firstpoly").html(formatEquation(firstRegression.equation)); + this.eq1st=firstRegression.equation; + if(this.points.length > 2){ + $("#secondpoly").html(formatEquation(secondRegression.equation)); + this.eq2nd=secondRegression.equation; + }else{ + $("#secondpoly").html(""); + this.eq2nd=null; + } + if(this.points.length > 3){ + $("#thirdpoly").html(formatEquation(thirdRegression.equation)); + this.eq3rd=thirdRegression.equation; + }else{ + $("#thirdpoly").html(""); + this.eq3rd=null; + } + this.calulate(); // caluate errors + + var secoe, thridoe; + + var first_error = []; + var first_value = []; + var firstoe = firstRegression.equation; + var sec_error = []; var sec_value = []; - var secoe = secondRegression.equation; + if(this.points.length > 2) secoe = secondRegression.equation; + var third_error = []; var third_value = []; - var thirdcoe = thirdRegression.equation; + if(this.points.length > 3) thirdcoe = thirdRegression.equation; + for (var i = 0; i < this.points.length; i++) { var x = this.points[i][0]; var x2 = x * x; var x3 = x2 * x; - var y = this.points[i][1] - var s = secoe[0] + secoe[1] * x + secoe[2] * x2; - var t = thirdcoe[0] + thirdcoe[1] * x + thirdcoe[2] * x2 + thirdcoe[3] * x3; - sec_error.push(s - y); - third_error.push(t - y); - sec_value.push(s); - third_value.push(t); + var y = this.points[i][1]; + + var f = firstoe[0] + firstoe[1] * x; + first_error.push(f - y); + first_value.push(f); + + if(this.points.length > 2){ + var s = secoe[0] + secoe[1] * x + secoe[2] * x2; + sec_error.push(s - y); + sec_value.push(s); + } + + if(this.points.length > 3){ + var t = thirdcoe[0] + thirdcoe[1] * x + thirdcoe[2] * x2 + thirdcoe[3] * x3; + third_error.push(t - y); + third_value.push(t); + } + } + window.firstError = first_error; + window.equation1st = firstoe; + window.firstValue = first_value; + if(this.points.length > 2){ + window.secondError = sec_error; + window.equation2nd = secoe; + window.secValue = sec_value; + }else if (typeof window.secondError != "undefined"){ + delete( window.secondError); + delete( window.equation2nd); + delete( window.secValue); } - window.secondError = sec_error; - window.thirdError = third_error; - window.equation2nd = secoe; - window.equation3rd = thirdcoe; - window.secValue = sec_value; - window.thirdValue = third_value; + + if(this.points.length > 3){ + window.equation3rd = thirdcoe; + window.thirdValue = third_value; + window.thirdError = third_error; + }else if (typeof window.equation3rd != "undefined"){ + delete( window.equation3rd); + delete( window.thirdValue); + delete( window.thirdError); + } + }, adddata: function() { var tilt = parseFloat($("#tiltinput").val()); @@ -401,12 +499,48 @@ }); this.list(); }, + load:function(data){ + try{ + var list=JSON.parse(data); + this.points = list; + this.list(); + }catch(e){ + return false; + } + return true; + }, + export:function(){ + if(this.points.length>0) return JSON.stringify(this.points); + return false; + }, change_gu: function() { for (var i = 0; i < this.points.length; i++) { this.points[i][1] = window.use_plato ? BrewMath.sg2plato(this.points[i][1]) : BrewMath.plato2sg(this.points[i][1]); } this.list(); + }, + calulate:function(){ + var tilt = parseFloat($("#tilt-input").val()); + if(isNaN(tilt)){ + $("#value-1").text(""); + $("#value-2").text(""); + $("#value-3").text(""); + return; + } + var t=this; + if(t.eq1st){ + var v= t.eq1st[0] + t.eq1st[1] * tilt; + $("#value-1").text( v.toFixed(4)); + }else $("#value-1").text(""); + if(t.eq2nd){ + var v= t.eq2nd[0] + t.eq2nd[1] * tilt + t.eq2nd[2] * tilt * tilt; + $("#value-2").text( v.toFixed(4)); + }else $("#value-2").text(""); + if(t.eq3rd){ + var v= t.eq3rd[0] + t.eq3rd[1] * tilt + t.eq3rd[2] * tilt * tilt + t.eq3rd[3] * tilt * tilt * tilt; + $("#value-3").text( v.toFixed(4)); + }else $("#value-3").text(""); } }; @@ -456,7 +590,47 @@ //default to sg using_plato(false); instrument(true); + + $('#fileinput').change(function(evt) { + //Retrieve the first (and only!) File from the FileList object + var f = evt.target.files[0]; + if (f) { + var r = new FileReader(); + r.onload = function(e) { + window.file = f; + //chart.clear(); + if(! TiltPoints.load(e.target.result)){ + alert("File not reconized!"); + } + }; + r.readAsText(f); + } else { + alert("File not opened!"); + } + }); + $("#savetofile").click(function(){ + var json=TiltPoints.export(); + if(json) download(json,'calibration.dat'); + else alert("no data to be exported!"); + }); + + $("#tilt-input").change(function(){ + TiltPoints.calulate(); + }); } + function download(text,filename) { + var element = document.createElement('a'); + element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text)); + element.setAttribute('download', filename); + + element.style.display = 'none'; + document.body.appendChild(element); + + element.click(); + + document.body.removeChild(element); + } + @@ -576,6 +755,17 @@ + + + + + + + + Load: + + + @@ -583,6 +773,8 @@ + + @@ -593,12 +785,21 @@ - + + + + + + + + - + + - + +
Tilt Plato SG Degree 1 ValueDegree 1 Error Degree 2 Value Degree 2 Error Degree 3 Value
Tilt:
Degree 1:
Degree 2:Degree 2:
Degree 3:Degree 3:
diff --git a/extra/edit.htm.gz b/extra/edit.htm.gz deleted file mode 100755 index 9ee1b81f0..000000000 Binary files a/extra/edit.htm.gz and /dev/null differ diff --git a/extra/lcd.htm.gz b/extra/lcd.htm.gz deleted file mode 100755 index 2a0230177..000000000 Binary files a/extra/lcd.htm.gz and /dev/null differ diff --git a/extra/logdata.php b/extra/logdata.php deleted file mode 100644 index 3c54ab2bd..000000000 --- a/extra/logdata.php +++ /dev/null @@ -1,38 +0,0 @@ - $para["bt"], - 'bs' => $para["bs"], - 'ft' => $para["ft"], - 'fs' => $para["fs"], - 'ss' => $para["ss"], - 'st' => $para["st"], - 'pc' => $para["pc"]); -// use key 'http' even if you send the request to https://... -$options = array( - 'http' => array( - 'header' => "Content-type: application/x-www-form-urlencoded\r\n", - 'method' => 'POST', - 'content' => http_build_query($data) - ) -); -$context = stream_context_create($options); -$result = file_get_contents($url, false, $context); -//if ($result === FALSE) { /* Handle error */ } - -touch(TMP_FILE_PATH . FILE_PREFIX . $para["st"]); - -?> \ No newline at end of file diff --git a/extra/paractrl.htm b/extra/paractrl.htm deleted file mode 100644 index e2840ec64..000000000 --- a/extra/paractrl.htm +++ /dev/null @@ -1,125 +0,0 @@ - - - - Parasite Temperature Control Setup v0.2a - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
Parasite Control PINASSIGNEDUNASSIGNED
Target Temperature °C
Triggering Temperauture °C
Minimum Cooling TimeSeconds
Miminum Idle TimeSeconds
Save Change -
-
- - - \ No newline at end of file diff --git a/htmljs/dist/chinese/BPLLogViewer.htm b/htmljs/dist/chinese/BPLLogViewer.htm index d7eee9d22..43a996c35 100644 --- a/htmljs/dist/chinese/BPLLogViewer.htm +++ b/htmljs/dist/chinese/BPLLogViewer.htm @@ -1,124 +1 @@ -BrewPiLess Log Viewer v3.0

BPL LogViewer v3.0

截存 輸出
溫度比重
  • 日期時間狀態
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • formula
\ No newline at end of file +BrewPiLess Log Viewer v4.4

BPL LogViewer v4.2

截存 輸出
溫度比重壓力(psi)CO2氣體數相對濕度比重變化
  • 日期時間狀態
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • formula
\ No newline at end of file diff --git a/htmljs/dist/chinese/BPLLogViewer.htm.gz b/htmljs/dist/chinese/BPLLogViewer.htm.gz index 1180b33f0..44d895131 100644 Binary files a/htmljs/dist/chinese/BPLLogViewer.htm.gz and b/htmljs/dist/chinese/BPLLogViewer.htm.gz differ diff --git a/htmljs/dist/chinese/BPLog.htm b/htmljs/dist/chinese/BPLog.htm deleted file mode 100644 index 0d8d4f955..000000000 --- a/htmljs/dist/chinese/BPLog.htm +++ /dev/null @@ -1,124 +0,0 @@ -BPL Log Viewer v3.0 - online
溫度比重
  • 日期時間狀態
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
\ No newline at end of file diff --git a/htmljs/dist/chinese/BPLog.htm.gz b/htmljs/dist/chinese/BPLog.htm.gz deleted file mode 100644 index 1fa51e749..000000000 Binary files a/htmljs/dist/chinese/BPLog.htm.gz and /dev/null differ diff --git a/htmljs/dist/chinese/BPLogWebViewer.htm b/htmljs/dist/chinese/BPLogWebViewer.htm new file mode 100644 index 000000000..9d91499a7 --- /dev/null +++ b/htmljs/dist/chinese/BPLogWebViewer.htm @@ -0,0 +1 @@ +BPL Log Viewer v4.4 - online
溫度比重壓力(psi)CO2氣體數相對濕度比重變化
  • 日期時間狀態
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
\ No newline at end of file diff --git a/htmljs/dist/chinese/BPLogWebViewer.htm.gz b/htmljs/dist/chinese/BPLogWebViewer.htm.gz new file mode 100644 index 000000000..2fe266a57 Binary files /dev/null and b/htmljs/dist/chinese/BPLogWebViewer.htm.gz differ diff --git a/htmljs/dist/chinese/classic-config.htm b/htmljs/dist/chinese/classic-config.htm deleted file mode 100644 index 8aa8638c6..000000000 --- a/htmljs/dist/chinese/classic-config.htm +++ /dev/null @@ -1 +0,0 @@ - BrewPiLess系統組態
設定已儲存,等待重新啓動中。請注意:如果有更改主機名稱,自動載入不會成功。
LCD自動關閉
網頁名稱
網路主機名稱
HTTP Port
使用者名稱
密碼
全部頁面要求密碼
網路模式
網路設定
IP
儲存變更
\ No newline at end of file diff --git a/htmljs/dist/chinese/classic-config.htm.gz b/htmljs/dist/chinese/classic-config.htm.gz deleted file mode 100644 index d92a3f2e8..000000000 Binary files a/htmljs/dist/chinese/classic-config.htm.gz and /dev/null differ diff --git a/htmljs/dist/chinese/classic-gdc.htm b/htmljs/dist/chinese/classic-gdc.htm deleted file mode 100644 index 43c7884f2..000000000 --- a/htmljs/dist/chinese/classic-gdc.htm +++ /dev/null @@ -1 +0,0 @@ - 比重計
單位使用Plato
iSpindel
由BPL計算比重
公式係數 *x^3 + *x^2+ *x +
溫度修正 @ °C
低通過濾參數
比重穩定範圍 點數,1點= 0.001比重,或0.1°P
儲存變更
\ No newline at end of file diff --git a/htmljs/dist/chinese/classic-gdc.htm.gz b/htmljs/dist/chinese/classic-gdc.htm.gz deleted file mode 100644 index 382aad1e7..000000000 Binary files a/htmljs/dist/chinese/classic-gdc.htm.gz and /dev/null differ diff --git a/htmljs/dist/chinese/classic-index.htm b/htmljs/dist/chinese/classic-index.htm deleted file mode 100644 index 53a54e7a7..000000000 --- a/htmljs/dist/chinese/classic-index.htm +++ /dev/null @@ -1,124 +0,0 @@ - BrewPiLess執行中!
溫度比重
Live LCD waiting for update from script...

OG: -- °P
SG: -- °P
發酵度: --%
酒精: --%
電池: --
Tilt角度:
@--
PTC
TEMP
11 °C
100H59M32S
日期時間
啤酒溫度
--

啤酒設定
--

冰箱溫度
--

冰箱設定
--

室內溫度
--

其他溫度
--

比重
--

均化比重
--

狀態

f

開始日期:
°C 條件 天數 比重 比重穩定 開始時間
19
升降溫
7
啤酒溫度設為: °C
冰箱溫度設為: °C
關閉溫控
Cap when gravity is less than
Cap after
Capped
\ No newline at end of file diff --git a/htmljs/dist/chinese/classic-index.htm.gz b/htmljs/dist/chinese/classic-index.htm.gz deleted file mode 100644 index a19380c23..000000000 Binary files a/htmljs/dist/chinese/classic-index.htm.gz and /dev/null differ diff --git a/htmljs/dist/chinese/classic-log.htm b/htmljs/dist/chinese/classic-log.htm deleted file mode 100644 index 007226bcd..000000000 --- a/htmljs/dist/chinese/classic-log.htm +++ /dev/null @@ -1,124 +0,0 @@ - BrewPiless記錄設定
雲端記錄
  • 啓用:
  • 記錄時間間隔:
  • Service Type:
  • Stream URL:
  • Beer:
  • Gravity Unit
  • Write API Key:
  • Fields:

  • ID:
  • Device Label:
  • Account:
  • Token:
  • Device:
  • Method:Get Post Put
  • URL:
  • DataType:
  • 符號...
  • 格式:
  • 字元數:

本地記錄
新記錄檔名:
選項:
校正iSpindel
在水中的Tilt值 比重計讀數: , 或是水溫 @ ° 比重計修正溫度 °
可使用空間: 0 Bytes, 已使用空間: 0 Bytes, 全部空間: 0 Bytes
記錄 日期 動作
%b 啤酒溫度
%B 啤酒設定溫度
%f 冰箱溫度
%F 冰箱設定溫度
%r 室溫
%g 比重
%p Plato
%a iSpindel溫度
%v iSpindel電壓
%t Tilt值
%u 最後一次回報比重的時間
%U Temperature in C or F
%m mode in integer
%M mode in character
%P Pressure in PSI
\ No newline at end of file diff --git a/htmljs/dist/chinese/classic-log.htm.gz b/htmljs/dist/chinese/classic-log.htm.gz deleted file mode 100644 index 3b9bb0259..000000000 Binary files a/htmljs/dist/chinese/classic-log.htm.gz and /dev/null differ diff --git a/htmljs/dist/chinese/classic-setup.htm b/htmljs/dist/chinese/classic-setup.htm deleted file mode 100644 index bafe587bb..000000000 --- a/htmljs/dist/chinese/classic-setup.htm +++ /dev/null @@ -1 +0,0 @@ - BrewPiLess 設定!
己安裝的設備
偵測到的設備

設備編號slot
硬體類型外部感測器
控制腳位
數值--
功能

設備編號slot
硬體類型感測器
位址
控制腳位
數值
功能

設備編號slot
硬體類型腳位
腳位類型
控制腳位
數值
功能

設備編號slot
硬體類型1-wire actuator
位址
Channel
控制腳位N
數值
功能
腳位類型
\ No newline at end of file diff --git a/htmljs/dist/chinese/classic-setup.htm.gz b/htmljs/dist/chinese/classic-setup.htm.gz deleted file mode 100644 index 7144d8c86..000000000 Binary files a/htmljs/dist/chinese/classic-setup.htm.gz and /dev/null differ diff --git a/htmljs/dist/chinese/config.htm b/htmljs/dist/chinese/config.htm index c27b9d331..2bdeee0f6 100644 --- a/htmljs/dist/chinese/config.htm +++ b/htmljs/dist/chinese/config.htm @@ -1,124 +1 @@ - BrewPiLess系統組態

BrewPiLess

BrewPiLess系統組態
LCD自動關閉
網頁名稱
網路主機名稱
HTTP Port
使用者名稱
密碼
全部頁面要求密碼
網路模式
網路設定
IP
MQTT遠端控制
啓用:
MQTT Server:
MQTT Port:
Username:
Password:
模式 Path:
設定溫度Path:
加蓋Path:
冷水溫度Path:
\ No newline at end of file + BrewPiLess系統組態

BrewPiLess

BrewPiLess系統組態
LCD自動關閉
LCD顯示
Glycol Chilling
網頁名稱
網路主機名稱
HTTP Port
使用者名稱
密碼
全部頁面要求密碼
網路模式
AP模式使用密碼
網路設定
IP
\ No newline at end of file diff --git a/htmljs/dist/chinese/config.htm.gz b/htmljs/dist/chinese/config.htm.gz index 8ae34f012..fb67364b2 100644 Binary files a/htmljs/dist/chinese/config.htm.gz and b/htmljs/dist/chinese/config.htm.gz differ diff --git a/htmljs/dist/chinese/control.htm b/htmljs/dist/chinese/control.htm index da87ae5eb..b410b763d 100644 --- a/htmljs/dist/chinese/control.htm +++ b/htmljs/dist/chinese/control.htm @@ -1,124 +1 @@ - BrewPiLess控制中心

BrewPiLess

開始日期:
°C 條件 天數 比重 比重穩定 開始時間
19
升降溫
71.01
啤酒溫度設為:°C
冰箱溫度設為:°C
關閉溫控
CAPPING CONTROL
Cap when gravity is less than @ psi
Cap after @ psi
@ psi
Glycol Temperature Control
Target Temperature
°C
Triggering Temperauture
°C
Minimum Cooling Time
Seconds
Miminum Idle Time
Seconds
\ No newline at end of file + BrewPiLess控制中心

BrewPiLess

開始日期:
°C 條件 天數 比重 比重穩定 開始時間
19
升降溫
71.01
啤酒溫度設為:°C
冰箱溫度設為:°C
關閉溫控
蓄壓控制
如果比重更小開始蓄壓
to psi
Glycol溫控設定
目標溫度
°C
啓動溫度
°C
最小啓動時間
最小停止間隔
Humidity Control
Mode
Target Relative Humidity
%
\ No newline at end of file diff --git a/htmljs/dist/chinese/control.htm.gz b/htmljs/dist/chinese/control.htm.gz index 07709a681..a367f8ad2 100644 Binary files a/htmljs/dist/chinese/control.htm.gz and b/htmljs/dist/chinese/control.htm.gz differ diff --git a/htmljs/dist/chinese/gravity.htm b/htmljs/dist/chinese/gravity.htm index 1d4c9143b..3a05a85ac 100644 --- a/htmljs/dist/chinese/gravity.htm +++ b/htmljs/dist/chinese/gravity.htm @@ -1,124 +1 @@ - 比重計

BrewPiLess

單位使用Plato
iSpindel
由BPL計算比重
溫度修正
°C
公式係數
x³ +
x² +
x +
低通過濾參數
比重穩定範圍
點數,1點= 0.001比重,或0.1°P
\ No newline at end of file + 比重計

BrewPiLess

iSpindel
單位使用Plato
比重誤差
由BPL計算比重
校正資料
公式係數
x³ +
x² +
x +
低通過濾參數
比重穩定範圍
點數,1點= 0.001比重,或0.1°P
\ No newline at end of file diff --git a/htmljs/dist/chinese/gravity.htm.gz b/htmljs/dist/chinese/gravity.htm.gz index d7f4ea464..b1665e1dd 100644 Binary files a/htmljs/dist/chinese/gravity.htm.gz and b/htmljs/dist/chinese/gravity.htm.gz differ diff --git a/htmljs/dist/chinese/index.htm b/htmljs/dist/chinese/index.htm index 1d66ac841..b098f4b92 100644 --- a/htmljs/dist/chinese/index.htm +++ b/htmljs/dist/chinese/index.htm @@ -1,124 +1 @@ - BrewPiLess執行中!

BrewPiLess

溫度比重
  • 目前狀態:
  • 模式:
  • 啤酒溫度:
  • 啤酒設定:
  • 冰箱溫度:
  • 冰箱設定:
  • 室內溫度:
  • 比重資訊:
  • 原始比重(OG):--°P
  • 現在比重(SG)--°P
  • 發酵完成度:
  • 發酵度:--%
  • 酒精:--%
  • iSpindel資訊:
  • Tilt角度:--
  • 電池:--
  • WiFi:
  • 最後更新:--
  • Capping Status:
    OpenCapped
  • 條件:
    gravity <= after Manual cappedManual Open
  • Pressure psi
  • 系統:
  • 記錄檔:
  • WiFi:
  • 日期時間狀態
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
等待連線中 ...
無法連線成功.
控制器沒有更新資訊.
\ No newline at end of file + BrewPiLess執行中!

BrewPiLess

溫度比重壓力(psi)CO2氣體數相對濕度
  • 目前狀態:
  • 模式:
  • 啤酒溫度:
  • 啤酒設定:
  • 冰箱溫度:
  • 冰箱設定:
  • 室內溫度:
  • 發酵室濕度
  • 室內濕度
  • 比重資訊:
  • 原始比重(OG):--°P
  • 現在比重(SG)--°P
  • 比重變化(48/24/12H):
  • 發酵度:--%
  • 酒精:--%
  • iSpindel資訊:Tilt™ Hydrometer RAPT Pill Hydrometer
  • 傾斜角度:--
  • 電池:--
  • 原始比重--
  • 溫度--
  • RSSI
  • 最後更新:--
  • Spunding狀態:
    排氣中蓄壓中
  • 條件:
    gravity <= after 手動蓄壓手動排氣
  • Pressure psi
  • 系統:
  • 記錄檔:
  • WiFi:
  • 日期時間狀態
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
等待連線中 ...
無法連線成功.
控制器沒有更新資訊.
\ No newline at end of file diff --git a/htmljs/dist/chinese/index.htm.gz b/htmljs/dist/chinese/index.htm.gz index f1fb8dcd7..6811f05e1 100644 Binary files a/htmljs/dist/chinese/index.htm.gz and b/htmljs/dist/chinese/index.htm.gz differ diff --git a/htmljs/dist/chinese/logging.htm b/htmljs/dist/chinese/logging.htm index 3092e3b31..217b0ee18 100644 --- a/htmljs/dist/chinese/logging.htm +++ b/htmljs/dist/chinese/logging.htm @@ -1,124 +1 @@ - BrewPiless記錄設定

BrewPiLess

BrewPiless記錄設定

雲端記錄
記錄時間間隔:
Service Type:
Stream URL:
Beer:
Gravity Unit
Write API Key:
Fields:


ID:
Device Label:
Account:
Token:
Device:
Method:
URL:
Data Type:

JSON:"application/json", Form Type:"application/x-www-form-urlencoded"

格式:
符號... 字元數: 0/256
本地記錄
新記錄檔名:
選項:
校正iSpindel
在水中的Tilt值
比重計讀數:
, 或是水溫 @
° 比重計修正溫度 °
可使用空間: 0 Bytes, 已使用空間: 0 Bytes, 全部空間: 0 Bytes
記錄檔案
記錄 日期 動作
%b 啤酒溫度
%B 啤酒設定溫度
%f 冰箱溫度
%F 冰箱設定溫度
%r 室溫
%g 比重
%p Plato
%a iSpindel溫度
%v iSpindel電壓
%t Tilt值
%u 最後一次回報比重的時間
%U Temperature in C or F
%m mode in integer
%M mode in character
%P Pressure in PSI
\ No newline at end of file + BrewPiless記錄設定

BrewPiLess

BrewPiless記錄設定

本地記錄
新記錄檔名:
選項:
Write on Buffer Full
記錄原始資訊
可使用空間: 0 Bytes, 已使用空間: 0 Bytes, 全部空間: 0 Bytes
記錄檔案
記錄 日期 動作
雲端記錄
記錄時間間隔:
遠端服務類型:
API Key:
Beer:
Gravity Unit
Write API Key:
Fields:


ID:
Device Label:
Account:
Token:
Device:
Method:
URL:
Data Type:

JSON:"application/json", Form Type:"application/x-www-form-urlencoded"

格式:
符號... 字元數: 0/256

MQTT設定

Broker Settings
MQTT Broker:
MQTT Port:
Username:
Password:
回報資訊
更新週期
基本路徑
資料格式
MQTT遠端控制
模式 Path:
啤酒設定溫度Path:
冰箱設定溫度Path:
壓力控制Path:
冷水溫度Path:
%b 啤酒溫度
%B 啤酒設定溫度
%f 冰箱溫度
%F 冰箱設定溫度
%r 室溫
%g 比重
%p Plato
%a iSpindel溫度
%v iSpindel電壓
%t Tilt值
%u 最後一次回報比重的時間
%U 溫度單位使用C或F
%m mode用整數表示
%M mode用字元表示
%P 壓力PSI
%HHostname
\ No newline at end of file diff --git a/htmljs/dist/chinese/logging.htm.gz b/htmljs/dist/chinese/logging.htm.gz index 24c622f1a..0edba070d 100644 Binary files a/htmljs/dist/chinese/logging.htm.gz and b/htmljs/dist/chinese/logging.htm.gz differ diff --git a/htmljs/dist/chinese/pressure.htm b/htmljs/dist/chinese/pressure.htm index b79944bd4..25d25fcb6 100644 --- a/htmljs/dist/chinese/pressure.htm +++ b/htmljs/dist/chinese/pressure.htm @@ -1,124 +1 @@ - 壓力感測器設定

BrewPiLess

啓用:
控製壓力:
壓力換算參數:
PSI= (A0_reading - b) * a
b: a:
\ No newline at end of file + 壓力感測器設定

BrewPiLess

啓用:
使用ADS1115
ADS1115增益/最大電壓
控製壓力:
壓力換算參數:
PSI= (A0_reading - b) * a
b: a:
\ No newline at end of file diff --git a/htmljs/dist/chinese/pressure.htm.gz b/htmljs/dist/chinese/pressure.htm.gz index e766b6b7c..6978fce73 100644 Binary files a/htmljs/dist/chinese/pressure.htm.gz and b/htmljs/dist/chinese/pressure.htm.gz differ diff --git a/htmljs/dist/chinese/setup.htm b/htmljs/dist/chinese/setup.htm index 691112ca3..9d5bfd0a6 100644 --- a/htmljs/dist/chinese/setup.htm +++ b/htmljs/dist/chinese/setup.htm @@ -1,124 +1 @@ - BrewPiLess 設定!

BrewPiLess

己安裝的設備
偵測到的設備

設備編號slot
硬體類型外部感測器
控制腳位
數值--
功能

設備編號slot
硬體類型感測器
位址
控制腳位
數值
功能

設備編號slot
硬體類型腳位
腳位類型
控制腳位
數值
功能

設備編號slot
硬體類型1-wire actuator
位址
Channel
控制腳位N
數值
功能
腳位類型
\ No newline at end of file + BrewPiLess 設定!

BrewPiLess

己安裝的設備
偵測到的設備

設備編號slot
硬體類型外部感測器
控制腳位
數值--
Calibration
功能

設備編號slot
硬體類型Humidity Temp sensor
Sensor LocationChamber Room
數值--
Calibration
功能

設備編號slot
硬體類型感測器
位址
控制腳位
數值
Calibration
功能

設備編號slot
硬體類型腳位
腳位類型
控制腳位
數值
Calibration
功能

設備編號slot
硬體類型1-wire actuator
位址
Channel
控制腳位N
數值
功能
腳位類型

設備編號slot
硬體類型BME280
位址
數值
Calibration
功能
\ No newline at end of file diff --git a/htmljs/dist/chinese/setup.htm.gz b/htmljs/dist/chinese/setup.htm.gz index 141b89ce6..e8f3cef66 100644 Binary files a/htmljs/dist/chinese/setup.htm.gz and b/htmljs/dist/chinese/setup.htm.gz differ diff --git a/htmljs/dist/english/BPLLogViewer.htm b/htmljs/dist/english/BPLLogViewer.htm index 956194bb2..39e383c42 100644 --- a/htmljs/dist/english/BPLLogViewer.htm +++ b/htmljs/dist/english/BPLLogViewer.htm @@ -1,124 +1 @@ -BrewPiLess Log Viewer v3.0

BPL LogViewer v3.0

Crop to Export
TemperatureGravity
  • Date / Timestate
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • formula
\ No newline at end of file +BrewPiLess Log Viewer v4.4

BPL LogViewer v4.2

Crop to Export
TemperatureGravityPressure(psi)CO2 VolRelative HumidityGravity Change
  • Date / Timestate
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • formula
\ No newline at end of file diff --git a/htmljs/dist/english/BPLLogViewer.htm.gz b/htmljs/dist/english/BPLLogViewer.htm.gz index b98a96ad6..68a5de9a9 100644 Binary files a/htmljs/dist/english/BPLLogViewer.htm.gz and b/htmljs/dist/english/BPLLogViewer.htm.gz differ diff --git a/htmljs/dist/english/BPLog.htm b/htmljs/dist/english/BPLog.htm deleted file mode 100644 index e70de0926..000000000 --- a/htmljs/dist/english/BPLog.htm +++ /dev/null @@ -1,124 +0,0 @@ -BPL Log Viewer v3.0 - online
TemperatureGravity
  • Date / Timestate
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
\ No newline at end of file diff --git a/htmljs/dist/english/BPLog.htm.gz b/htmljs/dist/english/BPLog.htm.gz deleted file mode 100644 index 196925de4..000000000 Binary files a/htmljs/dist/english/BPLog.htm.gz and /dev/null differ diff --git a/htmljs/dist/english/BPLogWebViewer.htm b/htmljs/dist/english/BPLogWebViewer.htm new file mode 100644 index 000000000..5a08b16c0 --- /dev/null +++ b/htmljs/dist/english/BPLogWebViewer.htm @@ -0,0 +1 @@ +BPL Log Viewer v4.4 - online
TemperatureGravityPressure(psi)CO2 VolRelative HumidityGravity Change
  • Date / Timestate
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
\ No newline at end of file diff --git a/htmljs/dist/english/BPLogWebViewer.htm.gz b/htmljs/dist/english/BPLogWebViewer.htm.gz new file mode 100644 index 000000000..310bcc250 Binary files /dev/null and b/htmljs/dist/english/BPLogWebViewer.htm.gz differ diff --git a/htmljs/dist/english/classic-config.htm b/htmljs/dist/english/classic-config.htm deleted file mode 100644 index e409cf66c..000000000 --- a/htmljs/dist/english/classic-config.htm +++ /dev/null @@ -1 +0,0 @@ - BrewPiLess Configuration
Congfiuration saved. Wait for restart... (note: if the hostname is changed, the page won't be reloaded.)
LCD auto off seconds
Title
Host/Network Name
HTTP Port
User Name
Password
Always ask for password
Network Mode
Network
IP
Save Change
\ No newline at end of file diff --git a/htmljs/dist/english/classic-config.htm.gz b/htmljs/dist/english/classic-config.htm.gz deleted file mode 100644 index d069c4eb7..000000000 Binary files a/htmljs/dist/english/classic-config.htm.gz and /dev/null differ diff --git a/htmljs/dist/english/classic-gdc.htm b/htmljs/dist/english/classic-gdc.htm deleted file mode 100644 index fedac3c2b..000000000 --- a/htmljs/dist/english/classic-gdc.htm +++ /dev/null @@ -1 +0,0 @@ - Gravity Device
Use Plato
iSpindel
Calculated by BPL
Coefficients *x^3 + *x^2+ *x +
Temp. Correction @ °C
LowPass Filter Coefficient
Gravity Stability Threshold point, 1= 0.001 for SG, or 0.1°P for Plato
Save Change
\ No newline at end of file diff --git a/htmljs/dist/english/classic-gdc.htm.gz b/htmljs/dist/english/classic-gdc.htm.gz deleted file mode 100644 index 9abac544d..000000000 Binary files a/htmljs/dist/english/classic-gdc.htm.gz and /dev/null differ diff --git a/htmljs/dist/english/classic-index.htm b/htmljs/dist/english/classic-index.htm deleted file mode 100644 index eb76f00c5..000000000 --- a/htmljs/dist/english/classic-index.htm +++ /dev/null @@ -1,124 +0,0 @@ - BrewPiLess reporting for duty!
TemperatureGravity
Live LCD waiting for update from script...

OG: -- °P
SG: -- °P
ATT: --%
ABV: --%
Battery: --
Tilt:
@--
PTC
TEMP
11 °C
100H59M32S
Date / Time
Beer Temp
--

Beer Set
--

Fridge Temp
--

Fridge Set
--

Room Temp
--

Aux Temp
--

Gravity
--

Filtered SG
--

state

f

Start Date:
°C Condition Days SG Stable Start Time
19
Ramp
7
Set Beer Temp: °C
Set Fridge temp: °C
Turning temperature control off.
Cap when gravity is less than
Cap after
Capped
\ No newline at end of file diff --git a/htmljs/dist/english/classic-index.htm.gz b/htmljs/dist/english/classic-index.htm.gz deleted file mode 100644 index 3173804d2..000000000 Binary files a/htmljs/dist/english/classic-index.htm.gz and /dev/null differ diff --git a/htmljs/dist/english/classic-log.htm b/htmljs/dist/english/classic-log.htm deleted file mode 100644 index 267defcfd..000000000 --- a/htmljs/dist/english/classic-log.htm +++ /dev/null @@ -1,124 +0,0 @@ - BrewPiless Logging Setting
Remote Log
  • Enabled:
  • Log time period: Seconds
  • Service Type:
  • Stream URL:
  • Beer:
  • Gravity Unit
  • Write API Key:
  • Fields:

  • ID:
  • Device Label:
  • Account:
  • Token:
  • Device:
  • Method:Get Post Put
  • URL:
  • DataType:
  • Notations...
  • Format:
  • Characters:

Local Log
New Log Name:
Options:
Calibrate iSpindel
Tilt value in water Hydrometer reading: , or water @ ° calibrated °
Free Space: 0 Bytes, Used Space: 0 Bytes, Total Space: 0 Bytes
Log Date Action
%b Beer Temperature
%B Beer Setting
%f Fridge Temperature
%F Fridge Setting
%r Room Temperature
%g Gravity
%p Plato
%a iSpindel Temperature
%v iSpindel voltage
%t Tilt value
%u Unix timestamp of last gravity update
%U Temperature Unit
%m mode in integer
%M mode in character
%P Pressure in PSI
\ No newline at end of file diff --git a/htmljs/dist/english/classic-log.htm.gz b/htmljs/dist/english/classic-log.htm.gz deleted file mode 100644 index 484e38b2c..000000000 Binary files a/htmljs/dist/english/classic-log.htm.gz and /dev/null differ diff --git a/htmljs/dist/english/classic-setup.htm b/htmljs/dist/english/classic-setup.htm deleted file mode 100644 index 5929fb954..000000000 --- a/htmljs/dist/english/classic-setup.htm +++ /dev/null @@ -1 +0,0 @@ - BrewPiLess setup!
Installed Device
Detected Device

Device slot
Hardware TypeExternal Sensor
Controller PIN
Value--
Function

Device slot
Hardware TypeSensor
Address
Controller PIN
Value
Function

Device slot
Hardware TypePIN
Pin type
Controller PIN
Value
Function

Device slot
Hardware Type1-wire actuator
Address
Channel
Controller PINN
Value
Function
Pin type
\ No newline at end of file diff --git a/htmljs/dist/english/classic-setup.htm.gz b/htmljs/dist/english/classic-setup.htm.gz deleted file mode 100644 index 37f190cfe..000000000 Binary files a/htmljs/dist/english/classic-setup.htm.gz and /dev/null differ diff --git a/htmljs/dist/english/config.htm b/htmljs/dist/english/config.htm index 636395776..b53575df7 100644 --- a/htmljs/dist/english/config.htm +++ b/htmljs/dist/english/config.htm @@ -1,124 +1 @@ - BrewPiLess Configuration

BrewPiLess

BrewPiLess Configuration
LCD auto off
Title
Host/Network Name
HTTP Port
User Name
Password
Always ask for password
Network Mode
Network
IP
MQTT Remote Control
Enabled:
MQTT Server:
MQTT Port:
Username:
Password:
Path for mode:
Path for setting temperature:
Path for capping control:
Path for PTC temperature:
\ No newline at end of file + BrewPiLess Configuration

BrewPiLess

BrewPiLess Configuration
LCD auto off
LCD Display
Glycol Chilling
Title
Host/Network Name
HTTP Port
User Name
Password
Always ask for password
Network Mode
Enable AP Password
Network
IP
\ No newline at end of file diff --git a/htmljs/dist/english/config.htm.gz b/htmljs/dist/english/config.htm.gz index 3b8c94a8b..64751421a 100644 Binary files a/htmljs/dist/english/config.htm.gz and b/htmljs/dist/english/config.htm.gz differ diff --git a/htmljs/dist/english/control.htm b/htmljs/dist/english/control.htm index 8536d7d53..f0e5d3f4f 100644 --- a/htmljs/dist/english/control.htm +++ b/htmljs/dist/english/control.htm @@ -1,124 +1 @@ - BrewPiLess control-center!

BrewPiLess

Start Date:
°C Condition Days SG Stable Start Time
19
Ramp
71.01
Set Beer Temp:°C
Set Fridge temp:°C
Turning temperature control off.
CAPPING CONTROL
Cap when gravity is less than @ psi
Cap after @ psi
@ psi
Glycol Temperature Control
Target Temperature
°C
Triggering Temperauture
°C
Minimum Cooling Time
Seconds
Miminum Idle Time
Seconds
\ No newline at end of file + BrewPiLess control-center!

BrewPiLess

Start Date:
°C Condition Days SG Stable Start Time
19
Ramp
71.01
Set Beer Temp:°C
Set Fridge temp:°C
Turning temperature control off.
CAPPING CONTROL
Spunding when gravity is less than
to psi
Glycol Temperature Control
Target Temperature
°C
Triggering Temperauture
°C
Minimum Cooling Time
Seconds
Miminum Idle Time
Seconds
Humidity Control
Mode
Target Relative Humidity
%
\ No newline at end of file diff --git a/htmljs/dist/english/control.htm.gz b/htmljs/dist/english/control.htm.gz index f0c71d38f..7e47c141a 100644 Binary files a/htmljs/dist/english/control.htm.gz and b/htmljs/dist/english/control.htm.gz differ diff --git a/htmljs/dist/english/gravity.htm b/htmljs/dist/english/gravity.htm index 7770697f7..348c60d87 100644 --- a/htmljs/dist/english/gravity.htm +++ b/htmljs/dist/english/gravity.htm @@ -1,124 +1 @@ - Gravity Device

BrewPiLess

Use Plato
iSpindel
Calculated by BPL
Temp. Correction
°C
Coefficients
x³ +
x² +
x +
LowPass Filter Coefficient
Gravity Stability Threshold
point, 1= 0.001 for SG, or 0.1°P for Plato
\ No newline at end of file + Gravity Device

BrewPiLess

iSpindel
Use Plato
Gravity Offset
Calculated by BPL
Calibration
Coefficients
x³ +
x² +
x +
LowPass Filter Coefficient
Gravity Stability Threshold
point, 1= 0.001 for SG, or 0.1°P for Plato
\ No newline at end of file diff --git a/htmljs/dist/english/gravity.htm.gz b/htmljs/dist/english/gravity.htm.gz index a22640b7d..b72eee140 100644 Binary files a/htmljs/dist/english/gravity.htm.gz and b/htmljs/dist/english/gravity.htm.gz differ diff --git a/htmljs/dist/english/index.htm b/htmljs/dist/english/index.htm index 129837d68..b6f998120 100644 --- a/htmljs/dist/english/index.htm +++ b/htmljs/dist/english/index.htm @@ -1,124 +1 @@ - BrewPiLess reporting for duty!

BrewPiLess

TemperatureGravity
  • Status:
  • Mode:
  • Beer Temp:
  • Beer Set:
  • Fridge Temp:
  • Fridge Set:
  • Room Temp:
  • gravity data:
  • Original Gravity:--°P
  • Specific Gravity--°P
  • Final Gravity State:
  • ATT:--%
  • ABV:--%
  • iSpindel data:
  • Tilt:--
  • Battery:--
  • WiFi:
  • Last Update:--
  • Capping Status:
    OpenCapped
  • Condition:
    gravity <= after Manual cappedManual Open
  • Pressure psi
  • System:
  • Writing Log:
  • WiFi:
  • Date / Timestate
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
waiting for update from script ...
Failed to connect to server.
Controller not updating data.
\ No newline at end of file + BrewPiLess reporting for duty!

BrewPiLess

TemperatureGravityPressure(psi)CO2 VolRelative Humidity
  • Status:
  • Mode:
  • Beer Temp:
  • Beer Set:
  • Fridge Temp:
  • Fridge Set:
  • Room Temp:
  • Chamber Humidity
  • Room Humidity
  • gravity data:
  • Original Gravity:--°P
  • Specific Gravity--°P
  • SG Changed(48/24/12H):
  • ATT:--%
  • ABV:--%
  • iSpindel data:Tilt™ Hydrometer RAPT Pill Hydrometer
  • Tilt:--
  • Battery:--
  • Raw SG--
  • Temperature--
  • RSSI
  • Last Update:--
  • Spunding Status:
    OpenSpunding
  • Condition:
    gravity <= after Manual SpundingManual Open
  • Pressure psi
  • System:
  • Writing Log:
  • WiFi:
  • Date / Timestate
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
waiting for update from script ...
Failed to connect to server.
Controller not updating data.
\ No newline at end of file diff --git a/htmljs/dist/english/index.htm.gz b/htmljs/dist/english/index.htm.gz index 269f01337..17311a00b 100644 Binary files a/htmljs/dist/english/index.htm.gz and b/htmljs/dist/english/index.htm.gz differ diff --git a/htmljs/dist/english/logging.htm b/htmljs/dist/english/logging.htm index 38e964dab..31d76686b 100644 --- a/htmljs/dist/english/logging.htm +++ b/htmljs/dist/english/logging.htm @@ -1,124 +1 @@ - BrewPiless Logging Setting

BrewPiLess

BrewPiless Logging Setting

Remote Log
Log time period:
Seconds
Service Type:
Stream URL:
Beer:
Gravity Unit
Write API Key:
Fields:


ID:
Device Label:
Account:
Token:
Device:
Method:
URL:
Data Type:

JSON:"application/json", Form Type:"application/x-www-form-urlencoded"

Format:
Notations... Characters: 0/256
Local Log
New Log Name:
Options:
Calibrate iSpindel
Tilt value in water
Hydrometer reading:
, or water @
° calibrated °
Free Space: 0 Bytes, Used Space: 0 Bytes, Total Space: 0 Bytes
Recorded Log
Log Date Action
%b Beer Temperature
%B Beer Setting
%f Fridge Temperature
%F Fridge Setting
%r Room Temperature
%g Gravity
%p Plato
%a iSpindel Temperature
%v iSpindel voltage
%t Tilt value
%u Unix timestamp of last gravity update
%U Temperature Unit
%m mode in integer
%M mode in character
%P Pressure in PSI
\ No newline at end of file + BrewPiless Logging Setting

BrewPiLess

BrewPiless Logging Setting

Local Log
New Log Name:
Options:
Write on Buffer Full
Record Angle/Raw
Free Space: 0 Bytes, Used Space: 0 Bytes, Total Space: 0 Bytes
Recorded Log
Log Date Action
Remote Log
Log time period:
Seconds
Service Type:
API Key:
Beer:
Gravity Unit
Write API Key:
Fields:


ID:
Device Label:
Account:
Token:
Device:
Method:
URL:
Data Type:

JSON:"application/json", Form Type:"application/x-www-form-urlencoded"

Format:
Notations... Characters: 0/256

MQTT Settings

Broker Settings
MQTT Broker:
MQTT Port:
Username:
Password:
Reporting
Publish Period
Seconds
Base Path
Report data as
MQTT Remote Control
Path for mode:
Path for beerSet:
Path for fridgeSet:
Path for Spunding control:
Path for PTC temperature:
%b Beer Temperature
%B Beer Setting
%f Fridge Temperature
%F Fridge Setting
%r Room Temperature
%g Gravity
%p Plato
%a iSpindel Temperature
%v iSpindel voltage
%t Tilt value
%u Unix timestamp of last gravity update
%U Temperature Unit
%m mode in integer
%M mode in character
%P Pressure in PSI
%HHostname
\ No newline at end of file diff --git a/htmljs/dist/english/logging.htm.gz b/htmljs/dist/english/logging.htm.gz index 0fbd1116c..fe363aeae 100644 Binary files a/htmljs/dist/english/logging.htm.gz and b/htmljs/dist/english/logging.htm.gz differ diff --git a/htmljs/dist/english/pressure.htm b/htmljs/dist/english/pressure.htm index c92443a4f..5956833a3 100644 --- a/htmljs/dist/english/pressure.htm +++ b/htmljs/dist/english/pressure.htm @@ -1,124 +1 @@ - Pressure Transducer Settings

BrewPiLess

Enable Pressure Transducer:
Control Pressure:
Pressure Conversion parameters:
Pressure in PSI= (A0_reading - b) * a
b: a:
\ No newline at end of file + Pressure Transducer Settings

BrewPiLess

Enable Pressure Transducer:
Use ADS1115
ADS1115 Gain/Max input voltage
Control Pressure:
Pressure Conversion parameters:
Pressure in PSI= (A0_reading - b) * a
b: a:
\ No newline at end of file diff --git a/htmljs/dist/english/pressure.htm.gz b/htmljs/dist/english/pressure.htm.gz index 55cba08ac..0eaa4767f 100644 Binary files a/htmljs/dist/english/pressure.htm.gz and b/htmljs/dist/english/pressure.htm.gz differ diff --git a/htmljs/dist/english/setup.htm b/htmljs/dist/english/setup.htm index 79ebbee6b..8ab0cefc6 100644 --- a/htmljs/dist/english/setup.htm +++ b/htmljs/dist/english/setup.htm @@ -1,124 +1 @@ - BrewPiLess setup!

BrewPiLess

Installed Device
Detected Device

Device slot
Hardware TypeExternal Sensor
Controller PIN
Value--
Function

Device slot
Hardware TypeSensor
Address
Controller PIN
Value
Function

Device slot
Hardware TypePIN
Pin type
Controller PIN
Value
Function

Device slot
Hardware Type1-wire actuator
Address
Channel
Controller PINN
Value
Function
Pin type
\ No newline at end of file + BrewPiLess setup!

BrewPiLess

Installed Device
Detected Device

Device slot
Hardware TypeExternal Sensor
Controller PIN
Value--
Calibration
Function

Device slot
Hardware TypeHumidity Temp sensor
Sensor LocationChamber Room
Value--
Calibration
Function

Device slot
Hardware TypeSensor
Address
Controller PIN
Value
Calibration
Function

Device slot
Hardware TypePIN
Pin type
Controller PIN
Value
Calibration
Function

Device slot
Hardware Type1-wire actuator
Address
Channel
Controller PINN
Value
Function
Pin type

Device slot
Hardware TypeBME280
Address
Value
Calibration
Function
\ No newline at end of file diff --git a/htmljs/dist/english/setup.htm.gz b/htmljs/dist/english/setup.htm.gz index 4d3c860c5..7f83a8c47 100644 Binary files a/htmljs/dist/english/setup.htm.gz and b/htmljs/dist/english/setup.htm.gz differ diff --git a/htmljs/dist/italian/BPLLogViewer.htm b/htmljs/dist/italian/BPLLogViewer.htm new file mode 100644 index 000000000..d8d61e2fd --- /dev/null +++ b/htmljs/dist/italian/BPLLogViewer.htm @@ -0,0 +1 @@ +BrewPiLess Log Viewer v4.4

BPL LogViewer v4.2

Taglia a Esporta
TemperaturaDensitàPressione(psi)CO2 VolRelative HumidityGravity Change
  • Data / Orastato
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • formula
\ No newline at end of file diff --git a/htmljs/dist/italian/BPLLogViewer.htm.gz b/htmljs/dist/italian/BPLLogViewer.htm.gz new file mode 100644 index 000000000..82e073c5a Binary files /dev/null and b/htmljs/dist/italian/BPLLogViewer.htm.gz differ diff --git a/htmljs/dist/italian/BPLogWebViewer.htm b/htmljs/dist/italian/BPLogWebViewer.htm new file mode 100644 index 000000000..5443161c1 --- /dev/null +++ b/htmljs/dist/italian/BPLogWebViewer.htm @@ -0,0 +1 @@ +BPL Log Viewer v4.4 - online
TemperaturaDensitàPressione(psi)CO2 VolRelative HumidityGravity Change
  • Data / Orastato
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
\ No newline at end of file diff --git a/htmljs/dist/italian/BPLogWebViewer.htm.gz b/htmljs/dist/italian/BPLogWebViewer.htm.gz new file mode 100644 index 000000000..b134c3ec2 Binary files /dev/null and b/htmljs/dist/italian/BPLogWebViewer.htm.gz differ diff --git a/htmljs/dist/italian/config.htm b/htmljs/dist/italian/config.htm new file mode 100644 index 000000000..90d1a4a5e --- /dev/null +++ b/htmljs/dist/italian/config.htm @@ -0,0 +1 @@ + BrewPiLess Configurazione

BrewPiLess

BrewPiLess Configurazione
LCD auto off
LCD Display
Glycol Chilling
Titolo
Host/Rete Nome
HTTP Porta
User Name
Password
Chiedi sempre la password
Modalità rete
Enable AP Password
Rete
IP
\ No newline at end of file diff --git a/htmljs/dist/italian/config.htm.gz b/htmljs/dist/italian/config.htm.gz new file mode 100644 index 000000000..5a507523b Binary files /dev/null and b/htmljs/dist/italian/config.htm.gz differ diff --git a/htmljs/dist/italian/control.htm b/htmljs/dist/italian/control.htm new file mode 100644 index 000000000..1043bc778 --- /dev/null +++ b/htmljs/dist/italian/control.htm @@ -0,0 +1 @@ + BrewPiLess centro di controllo!

BrewPiLess

Data inizio:
°C Condizioni Giorni SG Stabile Inizio ora
19
Rampa
71.01
Imposta temperatura birra:°C
Imposta temperatura frigo:°C
Dissativa controllo temperatura.
CONTROLLO CAPP
Tappa quando densità e inferiore a
to psi
Controllo Temperatura glicole
Temperatura obiettivo
°C
Temperatura d'innesco
°C
Tempo minimo di raffredamento
Secondi
Tempo minimo d'attesa
Secondi
Humidity Control
Mode
Target Relative Humidity
%
\ No newline at end of file diff --git a/htmljs/dist/italian/control.htm.gz b/htmljs/dist/italian/control.htm.gz new file mode 100644 index 000000000..9e8303ad7 Binary files /dev/null and b/htmljs/dist/italian/control.htm.gz differ diff --git a/htmljs/dist/italian/gravity.htm b/htmljs/dist/italian/gravity.htm new file mode 100644 index 000000000..a9ac98973 --- /dev/null +++ b/htmljs/dist/italian/gravity.htm @@ -0,0 +1 @@ + Dispositivo densità

BrewPiLess

iSpindel
Usa Plato
Compensazione della gravità
Calcolato da BPL
Calibrazione
Coefficiente
x³ +
x² +
x +
Coefficiente banda inferiore filtro
Soglia densità stabile
punti, 1= 0.001 per SG, e 0.1°P per Plato
\ No newline at end of file diff --git a/htmljs/dist/italian/gravity.htm.gz b/htmljs/dist/italian/gravity.htm.gz new file mode 100644 index 000000000..bf4058616 Binary files /dev/null and b/htmljs/dist/italian/gravity.htm.gz differ diff --git a/htmljs/dist/italian/index.htm b/htmljs/dist/italian/index.htm new file mode 100644 index 000000000..1254d0525 --- /dev/null +++ b/htmljs/dist/italian/index.htm @@ -0,0 +1 @@ + BrewPiLess in servizio!

BrewPiLess

TemperaturaDensitàPressione(psi)CO2 VolRelative Humidity
  • Stato:
  • Modo:
  • Temp. birra:
  • Imp. frigo:
  • Temp. frigo:
  • Imp. frigo:
  • Temp. ambiente:
  • Chamber Humidity
  • Room Humidity
  • dati densità:
  • Densità OG:--°P
  • Densità SG:--°P
  • Densità modificata(48/24/12O):
  • ATT:--%
  • ABV:--%
  • iSpindel dati:Tilt™ Hydrometer RAPT Pill Hydrometer
  • Angolo:--
  • Batteria:--
  • Prima SG--
  • Temperatura--
  • RSSI
  • Ultimo aggiornamento:--
  • Stato limitazione pressione (Spunding):
    ApertoLimitazione pressione (Spunding)
  • Condizioni:
    gravity <= after Limitazione pressione manualeApertura manuale
  • Pressure psi
  • Sistema:
  • Scrivendo Log:
  • WiFi:
  • Data / Orastato
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
in attesa di aggiornamenti da script ...
Connessione al server fallita.
Controller non aggiorna i dati.
\ No newline at end of file diff --git a/htmljs/dist/italian/index.htm.gz b/htmljs/dist/italian/index.htm.gz new file mode 100644 index 000000000..e9453ad73 Binary files /dev/null and b/htmljs/dist/italian/index.htm.gz differ diff --git a/htmljs/dist/italian/logging.htm b/htmljs/dist/italian/logging.htm new file mode 100644 index 000000000..e03d9930e --- /dev/null +++ b/htmljs/dist/italian/logging.htm @@ -0,0 +1 @@ + BrewPiless impostazioni Logging

BrewPiLess

BrewPiless impostazioni Logging

Log locale
Nuovo nome log:
Opzioni:
Write on Buffer Full
Registrare i dati grezzi
Sapzio libero: 0 Bytes, Spazio usato: 0 Bytes, Spazio totale: 0 Bytes
Log registrati
Log Data Azione
Log remoto
Durata Log:
Secondi
Tipo di servizio:
API Key:
Birra:
Unità densità
Scrivi chiave API:
Campi:


ID:
Ettichetta dispositivo:
Account:
Token:
Dispositivo:
Metodo:
URL:
Data Type:

JSON:"application/json", Form Type:"application/x-www-form-urlencoded"

Formato:
Notazioni... Caratteri: 0/256

Impostazioni MQTT

Impostazioni Mediatore
Mediatore MQTT:
Porta MQTT:
Username:
Password:
Segnalazione
Periodo di Pubblicazione
Secondi
Percorso Base
Pubblica data come
Controllo remoto MQTT
Percorso per modalità:
Percorso per Imp. birra:
Percorso per Imp. frigo:
Percorso per controllo limitazione pressione:
Percorso per temperatura PTC:
%b Temperatura birra
%B Impostazioni birra
%f Temperatura frigo
%F Impostazioni frigo
%r Temperatura ambiente
%g Densità
%p Plato
%a Temperatura iSpindel
%v voltaggio iSpindel
%t valore angolo
%u timestamp unix dall'ultima lettura densità
%U Unità temperatura
%m modo numerico
%M modo caratteri
%P Pressione in PSI
%HHostname
\ No newline at end of file diff --git a/htmljs/dist/italian/logging.htm.gz b/htmljs/dist/italian/logging.htm.gz new file mode 100644 index 000000000..81b07c1c6 Binary files /dev/null and b/htmljs/dist/italian/logging.htm.gz differ diff --git a/htmljs/dist/italian/pressure.htm b/htmljs/dist/italian/pressure.htm new file mode 100644 index 000000000..74af1e60b --- /dev/null +++ b/htmljs/dist/italian/pressure.htm @@ -0,0 +1 @@ + Trasduttore di pressione impostazioni

BrewPiLess

Abilita trasduttore di pressione:
Usa ADS1115
ADS1115 Gain/Max input voltage
Controllo Pressione:
Conversione parametri pressione:
Pressione in PSI= (A0_lettura - b) * a
b: a:
\ No newline at end of file diff --git a/htmljs/dist/italian/pressure.htm.gz b/htmljs/dist/italian/pressure.htm.gz new file mode 100644 index 000000000..7a5c6d16e Binary files /dev/null and b/htmljs/dist/italian/pressure.htm.gz differ diff --git a/htmljs/dist/italian/setup.htm b/htmljs/dist/italian/setup.htm new file mode 100644 index 000000000..2b1f9d754 --- /dev/null +++ b/htmljs/dist/italian/setup.htm @@ -0,0 +1 @@ + BrewPiLess setup!

BrewPiLess

Dispositivi installati
Dispositivi riconosciuti

Slot dispositivo
Tipo di HardwareSensore esterno
Controller PIN
Valore--
Calibrazione
Funzione

Slot dispositivo
Tipo di HardwareHumidity Temp sensor
Sensor LocationChamber Room
Valore--
Calibrazione
Funzione

Slot dispositivo
Tipo di HardwareSensore
Indirizzo
Controller PIN
Valore
Calibrazione
Funzione

Slot dispositivo
Tipo di HardwarePIN
Pin tipo
Controller PIN
Valore
Calibrazione
Funzione

Slot dispositivo
Tipo di Hardwareattuatore 1-wire
Indirizzo
Canale
Controller PINN
Valore
Funzione
Pin tipo

Slot dispositivo
Tipo di HardwareBME280
Indirizzo
Valore
Calibrazione
Funzione
\ No newline at end of file diff --git a/htmljs/dist/italian/setup.htm.gz b/htmljs/dist/italian/setup.htm.gz new file mode 100644 index 000000000..79d6d64c9 Binary files /dev/null and b/htmljs/dist/italian/setup.htm.gz differ diff --git a/htmljs/dist/lcd.htm.gz b/htmljs/dist/lcd.htm.gz new file mode 100644 index 000000000..ffa221198 Binary files /dev/null and b/htmljs/dist/lcd.htm.gz differ diff --git a/htmljs/dist/norwegian/BPLLogViewer.htm b/htmljs/dist/norwegian/BPLLogViewer.htm new file mode 100644 index 000000000..3b218ff88 --- /dev/null +++ b/htmljs/dist/norwegian/BPLLogViewer.htm @@ -0,0 +1 @@ +BrewPiLess Log Viewer v4.4

BPL LogViewer v4.2

Beskjær til Eksporter
TempraturHydrometerTrykk(psi)CO2 VolRelative HumidityGravity Change
  • Dato / tidtilstand
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • formula
\ No newline at end of file diff --git a/htmljs/dist/norwegian/BPLLogViewer.htm.gz b/htmljs/dist/norwegian/BPLLogViewer.htm.gz new file mode 100644 index 000000000..bb90f275e Binary files /dev/null and b/htmljs/dist/norwegian/BPLLogViewer.htm.gz differ diff --git a/htmljs/dist/norwegian/BPLogWebViewer.htm b/htmljs/dist/norwegian/BPLogWebViewer.htm new file mode 100644 index 000000000..2240c6ae7 --- /dev/null +++ b/htmljs/dist/norwegian/BPLogWebViewer.htm @@ -0,0 +1 @@ +BPL Log Viewer v4.4 - online
TempraturHydrometerTrykk(psi)CO2 VolRelative HumidityGravity Change
  • Dato / tidtilstand
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
\ No newline at end of file diff --git a/htmljs/dist/norwegian/BPLogWebViewer.htm.gz b/htmljs/dist/norwegian/BPLogWebViewer.htm.gz new file mode 100644 index 000000000..8e7b28612 Binary files /dev/null and b/htmljs/dist/norwegian/BPLogWebViewer.htm.gz differ diff --git a/htmljs/dist/norwegian/config.htm b/htmljs/dist/norwegian/config.htm new file mode 100644 index 000000000..63aadc11f --- /dev/null +++ b/htmljs/dist/norwegian/config.htm @@ -0,0 +1 @@ + BrewPiLess Konfigurasjon

BrewPiLess

BrewPiLess Konfigurasjon
LCD auto av
LCD Display
Glycol Chilling
Tittel
Verts- / nettverksnavn
HTTP-port
Brukernavn
Passord
Be alltid om passord
Nettverksmodus
Enable AP Password
Nettverk
IP
\ No newline at end of file diff --git a/htmljs/dist/norwegian/config.htm.gz b/htmljs/dist/norwegian/config.htm.gz new file mode 100644 index 000000000..e70102bee Binary files /dev/null and b/htmljs/dist/norwegian/config.htm.gz differ diff --git a/htmljs/dist/norwegian/control.htm b/htmljs/dist/norwegian/control.htm new file mode 100644 index 000000000..a0c60ae87 --- /dev/null +++ b/htmljs/dist/norwegian/control.htm @@ -0,0 +1 @@ + BrewPiLess kontrollsenter!

BrewPiLess

Startdato:
°C Tilstand Dager SG Stabil Starttid
19
Rampe
71.01
Angi øltemp:°C
Angi kjøleskapstemp:°C
Slå temperaturkontroll off.
CAPPING CONTROL
Lukk når OG er mindre enn
to psi
Glycol tempratur kontroller
Ønsket Tempratur
°C
Utløsende temperatur
°C
Minimum kjøle tid
Sekunder
Miminum vente tid
Sekunder
Humidity Control
Mode
Target Relative Humidity
%
\ No newline at end of file diff --git a/htmljs/dist/norwegian/control.htm.gz b/htmljs/dist/norwegian/control.htm.gz new file mode 100644 index 000000000..f48265c76 Binary files /dev/null and b/htmljs/dist/norwegian/control.htm.gz differ diff --git a/htmljs/dist/norwegian/control_s.htm b/htmljs/dist/norwegian/control_s.htm new file mode 100644 index 000000000..4dc5d271b --- /dev/null +++ b/htmljs/dist/norwegian/control_s.htm @@ -0,0 +1 @@ + BrewPiLess kontrollsenter!

BrewPiLess

Startdato:
°C Tilstand Dager SG Stabil Starttid
19
Rampe
71.01
Angi øltemp:°C
Angi kjøleskapstemp:°C
Slå temperaturkontroll off.
CAPPING CONTROL
Lukk når OG er mindre enn
to psi
Glycol tempratur kontroller
Ønsket Tempratur
°C
Utløsende temperatur
°C
Minimum kjøle tid
Sekunder
Miminum vente tid
Sekunder
Humidity Control
Mode
Target Relative Humidity
%
\ No newline at end of file diff --git a/htmljs/dist/norwegian/control_s.htm.gz b/htmljs/dist/norwegian/control_s.htm.gz new file mode 100644 index 000000000..8093e2218 Binary files /dev/null and b/htmljs/dist/norwegian/control_s.htm.gz differ diff --git a/htmljs/dist/norwegian/gravity.htm b/htmljs/dist/norwegian/gravity.htm new file mode 100644 index 000000000..3b4849ef5 --- /dev/null +++ b/htmljs/dist/norwegian/gravity.htm @@ -0,0 +1 @@ + Enhet egenvekt

BrewPiLess

iSpindel
Bruk Platon
gravitasjonsforskyvning
Beregnet av BPL
Kalibrering
Faktor
x³ +
x² +
x +
Faktor for LowPass-filter
Stabilitetsgrense for egenvekt
verdi, 1 = 0,001 for SG, eller 0,1 og P; for Platon
\ No newline at end of file diff --git a/htmljs/dist/norwegian/gravity.htm.gz b/htmljs/dist/norwegian/gravity.htm.gz new file mode 100644 index 000000000..808a91d58 Binary files /dev/null and b/htmljs/dist/norwegian/gravity.htm.gz differ diff --git a/htmljs/dist/norwegian/gravity_e32.htm b/htmljs/dist/norwegian/gravity_e32.htm new file mode 100644 index 000000000..531c0a9dc --- /dev/null +++ b/htmljs/dist/norwegian/gravity_e32.htm @@ -0,0 +1 @@ + Enhet egenvekt

BrewPiLess

Trådløst hydrometer
Rapt Pill Hydrometer
MAC Address
Tilt Hydrometer
Tilt™ Color
iSpindel
Bruk Platon
gravitasjonsforskyvning
Beregnet av BPL
Kalibrering
Faktor
x³ +
x² +
x +
Faktor for LowPass-filter
Stabilitetsgrense for egenvekt
verdi, 1 = 0,001 for SG, eller 0,1 og P; for Platon
\ No newline at end of file diff --git a/htmljs/dist/norwegian/gravity_e32.htm.gz b/htmljs/dist/norwegian/gravity_e32.htm.gz new file mode 100644 index 000000000..196f06f88 Binary files /dev/null and b/htmljs/dist/norwegian/gravity_e32.htm.gz differ diff --git a/htmljs/dist/norwegian/index.htm b/htmljs/dist/norwegian/index.htm new file mode 100644 index 000000000..a0ae7d17a --- /dev/null +++ b/htmljs/dist/norwegian/index.htm @@ -0,0 +1 @@ + BrewPiLess til tjeneste!

BrewPiLess

TempraturHydrometerTrykk(psi)CO2 VolRelative Humidity
  • Status:
  • Mode:
  • Øl temp:
  • Øl sett:
  • Kjøleskapstemperatur:
  • Kjøleskapssett:
  • Romtemp:
  • Chamber Humidity
  • Room Humidity
  • Egenvekt:
  • Egenvekt start OG:--°P
  • Egenvekt målt SG--°P
  • Tetthet endret(48/24/12T):
  • ATT:--%
  • ABV:--%
  • iSpindel data:Tilt™ Hydrometer RAPT Pill Hydrometer
  • Tilt:--
  • Batteri:--
  • Rå SG--
  • Temperatur--
  • RSSI
  • Siste oppdatering:--
  • Lullet Status:
    OpenLukket
  • Tilstand:
    gravity <= after Manuelt lukketManuelt åpen
  • Pressure psi
  • System:
  • Skrive logg:
  • WiFi:
  • Dato / tidtilstand
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
venter på oppdatering fra skript ...
Kunne ikke koble til serveren.
Kontrolleren oppdaterer ikke data.
\ No newline at end of file diff --git a/htmljs/dist/norwegian/index.htm.gz b/htmljs/dist/norwegian/index.htm.gz new file mode 100644 index 000000000..93fd88f6c Binary files /dev/null and b/htmljs/dist/norwegian/index.htm.gz differ diff --git a/htmljs/dist/norwegian/index_s.htm b/htmljs/dist/norwegian/index_s.htm new file mode 100644 index 000000000..73012bff0 --- /dev/null +++ b/htmljs/dist/norwegian/index_s.htm @@ -0,0 +1 @@ + BrewPiLess til tjeneste!

BrewPiLess

TempraturHydrometerTrykk(psi)CO2 VolRelative Humidity
  • Status:
  • Mode:
  • Øl temp:
  • Øl sett:
  • Kjøleskapstemperatur:
  • Kjøleskapssett:
  • Romtemp:
  • Chamber Humidity
  • Room Humidity
  • Egenvekt:
  • Egenvekt start OG:--°P
  • Egenvekt målt SG--°P
  • Tetthet endret(48/24/12T):
  • ATT:--%
  • ABV:--%
  • iSpindel data:Tilt™ Hydrometer RAPT Pill Hydrometer
  • Tilt:--
  • Batteri:--
  • Rå SG--
  • Temperatur--
  • RSSI
  • Siste oppdatering:--
  • Lullet Status:
    OpenLukket
  • Tilstand:
    gravity <= after Manuelt lukketManuelt åpen
  • Pressure psi
  • System:
  • Skrive logg:
  • WiFi:
  • Dato / tidtilstand
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
venter på oppdatering fra skript ...
Kunne ikke koble til serveren.
Kontrolleren oppdaterer ikke data.
\ No newline at end of file diff --git a/htmljs/dist/norwegian/index_s.htm.gz b/htmljs/dist/norwegian/index_s.htm.gz new file mode 100644 index 000000000..7ae1f8c67 Binary files /dev/null and b/htmljs/dist/norwegian/index_s.htm.gz differ diff --git a/htmljs/dist/norwegian/logging.htm b/htmljs/dist/norwegian/logging.htm new file mode 100644 index 000000000..6a96df2eb --- /dev/null +++ b/htmljs/dist/norwegian/logging.htm @@ -0,0 +1 @@ + Innstilling av BrewPiless Logging

BrewPiLess

Innstilling av BrewPiless Logging

Lokal logg
Nytt loggnavn:
Alternativer:
Write on Buffer Full
Registrere rådata
Ledig plass: 0 Bytes, Brukt plass: 0 Bytes, Total plass: 0 Bytes
Innspilt logg
Logg Dato Handling
Fjernlogg
Loggperiode:
Sekunder
Tjenestetype:
API Key:
Øl:
Enhet for egenvekt
Skriv API-nøkkel:
Felt:


ID:
Enhetsetikett:
Konto:
Token:
Enhet:
Metode:
URL:
Data Type:

JSON:"application/json", Form Type:"application/x-www-form-urlencoded"

Format:
Notasjoner ... Tegn: 0/256

MQTT-innstillinger

Meglerinnstillinger
MQTT Megler:
MQTT-port:
Brukernavn:
Passord:
Rapportering
Publiser periode
Sekunder
Grunnsti
Rapporter data som
MQTT fjernkontroll
Sti for modus:
Sti for ølSett:
Sti for kjøleskapSet:
Sti for å avdekke kontroll:
Sti for PTC-temperatur:
%b Øl temperatur
%B Øl innstilling
%f Kjøleskapstemperatur
%F Innstilling av kjøleskap
%r Romtemperatur
%g Egenvekt
%p Platon
%a iSpindeltemperatur
%v iSpindelspenning
%t Vinkelverdi
%u Unix tidsstempel for siste egenvekts oppdatering
%U Temperaturenhet
%m modus i heltall
%M modus i karakter
%P Trykk i PSI
%HHostname
\ No newline at end of file diff --git a/htmljs/dist/norwegian/logging.htm.gz b/htmljs/dist/norwegian/logging.htm.gz new file mode 100644 index 000000000..d32b1a65e Binary files /dev/null and b/htmljs/dist/norwegian/logging.htm.gz differ diff --git a/htmljs/dist/norwegian/pressure.htm b/htmljs/dist/norwegian/pressure.htm new file mode 100644 index 000000000..f3915c9f7 --- /dev/null +++ b/htmljs/dist/norwegian/pressure.htm @@ -0,0 +1 @@ + Trasduttore di pressione impostazioni

BrewPiLess

Aktiver trykktransduser:
Bruk ADS1115
ADS1115 Gain/Max volt inn
Kontrolltrykk:
Conversione parametri pressione:
Pressione in PSI= (A0_lettura - b) * a
b: a:
\ No newline at end of file diff --git a/htmljs/dist/norwegian/pressure.htm.gz b/htmljs/dist/norwegian/pressure.htm.gz new file mode 100644 index 000000000..7981546aa Binary files /dev/null and b/htmljs/dist/norwegian/pressure.htm.gz differ diff --git a/htmljs/dist/norwegian/setup.htm b/htmljs/dist/norwegian/setup.htm new file mode 100644 index 000000000..f50c8c8b4 --- /dev/null +++ b/htmljs/dist/norwegian/setup.htm @@ -0,0 +1 @@ + BrewPiLess oppsett!

BrewPiLess

Installert enhet
Oppdaget enhet

Enhetsplass
MaskinvaretypeEkstern sensor
PIN-kode for kontroller
Verdi--
Kalibrering
Funksjon

Enhetsplass
MaskinvaretypeHumidity Temp sensor
Sensor LocationChamber Room
Verdi--
Kalibrering
Funksjon

Enhetsplass
MaskinvaretypeSensor
Adresse
PIN-kode for kontroller
Verdi
Kalibrering
Funksjon

Enhetsplass
MaskinvaretypePIN
Pin type
PIN-kode for kontroller
Verdi
Kalibrering
Funksjon

Enhetsplass
Maskinvaretype1-tråds aktuator
Adresse
Channel
PIN-kode for kontrollerN
Verdi
Funksjon
Pin type

Enhetsplass
MaskinvaretypeBME280
Adresse
Verdi
Kalibrering
Funksjon
\ No newline at end of file diff --git a/htmljs/dist/norwegian/setup.htm.gz b/htmljs/dist/norwegian/setup.htm.gz new file mode 100644 index 000000000..3e394524f Binary files /dev/null and b/htmljs/dist/norwegian/setup.htm.gz differ diff --git a/htmljs/dist/portuguese-br/BPLLogViewer.htm b/htmljs/dist/portuguese-br/BPLLogViewer.htm index e20548807..1aac598fc 100644 --- a/htmljs/dist/portuguese-br/BPLLogViewer.htm +++ b/htmljs/dist/portuguese-br/BPLLogViewer.htm @@ -1,124 +1 @@ -BrewPiLess Log Viewer v3.0

BPL LogViewer v3.0

Cortar para Exportar
TemperaturaDensidade
  • Data/Horastatus
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • formula
\ No newline at end of file +BrewPiLess Log Viewer v4.4

BPL LogViewer v4.2

Cortar para Exportar
TemperaturaDensidadePressure(psi)CO2 VolRelative HumidityGravity Change
  • Data/Horastatus
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • formula
\ No newline at end of file diff --git a/htmljs/dist/portuguese-br/BPLLogViewer.htm.gz b/htmljs/dist/portuguese-br/BPLLogViewer.htm.gz index f4ce7818d..4bbf7d1b4 100644 Binary files a/htmljs/dist/portuguese-br/BPLLogViewer.htm.gz and b/htmljs/dist/portuguese-br/BPLLogViewer.htm.gz differ diff --git a/htmljs/dist/portuguese-br/BPLog.htm b/htmljs/dist/portuguese-br/BPLog.htm deleted file mode 100644 index 7018b8385..000000000 --- a/htmljs/dist/portuguese-br/BPLog.htm +++ /dev/null @@ -1,124 +0,0 @@ -BPL Log Viewer v3.0 - online
TemperaturaDensidade
  • Data/Horastatus
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
\ No newline at end of file diff --git a/htmljs/dist/portuguese-br/BPLog.htm.gz b/htmljs/dist/portuguese-br/BPLog.htm.gz deleted file mode 100644 index 6a0cbd22b..000000000 Binary files a/htmljs/dist/portuguese-br/BPLog.htm.gz and /dev/null differ diff --git a/htmljs/dist/portuguese-br/BPLogWebViewer.htm b/htmljs/dist/portuguese-br/BPLogWebViewer.htm new file mode 100644 index 000000000..63d84c10f --- /dev/null +++ b/htmljs/dist/portuguese-br/BPLogWebViewer.htm @@ -0,0 +1 @@ +BPL Log Viewer v4.4 - online
TemperaturaDensidadePressure(psi)CO2 VolRelative HumidityGravity Change
  • Data/Horastatus
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
\ No newline at end of file diff --git a/htmljs/dist/portuguese-br/BPLogWebViewer.htm.gz b/htmljs/dist/portuguese-br/BPLogWebViewer.htm.gz new file mode 100644 index 000000000..cd09fb7f4 Binary files /dev/null and b/htmljs/dist/portuguese-br/BPLogWebViewer.htm.gz differ diff --git a/htmljs/dist/portuguese-br/classic-config.htm b/htmljs/dist/portuguese-br/classic-config.htm deleted file mode 100644 index e2bfe4e4b..000000000 --- a/htmljs/dist/portuguese-br/classic-config.htm +++ /dev/null @@ -1 +0,0 @@ - BrewPiLess | Configuração de rede
Configuração salva. Aguarde a reinicialização... (Observação: se o nome do host for alterado, a página não será recarregada).
Desligar LCD segundos
Nome do equipamento
Host/Nome de rede
Porta HTTP
Nome de usuário
Senha
Sempre solicitar senha
Modo de rede
Rede (SSID)
IP
Salvar alterações
\ No newline at end of file diff --git a/htmljs/dist/portuguese-br/classic-config.htm.gz b/htmljs/dist/portuguese-br/classic-config.htm.gz deleted file mode 100644 index ea5847c68..000000000 Binary files a/htmljs/dist/portuguese-br/classic-config.htm.gz and /dev/null differ diff --git a/htmljs/dist/portuguese-br/classic-gdc.htm b/htmljs/dist/portuguese-br/classic-gdc.htm deleted file mode 100644 index 86654a540..000000000 --- a/htmljs/dist/portuguese-br/classic-gdc.htm +++ /dev/null @@ -1 +0,0 @@ - BrewPiLess | Densidade
Usar Plato
iSpindel
Calculado pelo BrewPiLess
Coeficientes *x^3 + *x^2+ *x +
Correção de Temp. @ °C
Coeficiente do Filtro passa-baixa
Limite da Densidade Estabilizada ponto, 1= 0.001 para SG, ou 0.1°P para Plato
Salvar alterações
\ No newline at end of file diff --git a/htmljs/dist/portuguese-br/classic-gdc.htm.gz b/htmljs/dist/portuguese-br/classic-gdc.htm.gz deleted file mode 100644 index 6524f2224..000000000 Binary files a/htmljs/dist/portuguese-br/classic-gdc.htm.gz and /dev/null differ diff --git a/htmljs/dist/portuguese-br/classic-index.htm b/htmljs/dist/portuguese-br/classic-index.htm deleted file mode 100644 index fce1525ba..000000000 --- a/htmljs/dist/portuguese-br/classic-index.htm +++ /dev/null @@ -1,124 +0,0 @@ - BrewPiLess em serviço!
TemperaturaDensidade
LCD aguardando atualização do script...

OG: -- °P
SG: -- °P
Aten.: --%
ABV: --%
Bateria: --
Inclinação:
@--
PTC
TEMP
11 °C
100H59M32S
Data/Hora
Temp. Cerveja
--

SP Cerveja
--

Temp. Refrig.
--

SP Refrig.
--

Temp. Amb.
--

Temp. Aux.
--

Densidade
--

SG Ajustada
--

status

f

Início Data/Hora:
°C Função Dias SG Estável Início Data/Hora
19
Rampa
7
Defina o controle de temperatura pelo sensor da cerveja: °C
Defina o controle de temperatura pelo sensor da refrigeração: °C
Desativar controle de temperatura
Fechar quando a densidade for menor que:
Fechar depois de:
Fechada
\ No newline at end of file diff --git a/htmljs/dist/portuguese-br/classic-index.htm.gz b/htmljs/dist/portuguese-br/classic-index.htm.gz deleted file mode 100644 index fd53f901a..000000000 Binary files a/htmljs/dist/portuguese-br/classic-index.htm.gz and /dev/null differ diff --git a/htmljs/dist/portuguese-br/classic-log.htm b/htmljs/dist/portuguese-br/classic-log.htm deleted file mode 100644 index 4f836ab47..000000000 --- a/htmljs/dist/portuguese-br/classic-log.htm +++ /dev/null @@ -1,124 +0,0 @@ - BrewPiLess | Registros
Registro Remoto
  • Habilitar
  • Intervalo de registro: segundos
  • Tipo de Serviço:
  • Stream URL:
  • Beer:
  • Gravity Unit
  • Write API Key:
  • Fields:

  • ID:
  • Device Label:
  • Account:
  • Token:
  • Device:
  • Método:Get Post Put
  • URL:
  • DataType:
  • Especificadores de formato...
  • Formato:
  • Caracteres:

Registro Local
Nome do novo registro:
Opções:
Calibrar iSpindel
Inclinação na água: Densidade medida: , ou água @ ° calibrado °
Memória Livre: 0 Bytes, Memória Utilizada: 0 Bytes, Memória Total: 0 Bytes
Nome do novo registro: Data Ação
%b Temp. Cerv.:
%B SP Cerv.:
%f Temp. Refrig.:
%F SP Refrig.:
%r Temp. Ambiente:
%g Densidade
%p Plato
%a Temp. iSpindel
%v Voltagem iSpindel
%t Inclinação
%u Registro de data/hora da última atualização de densidade
%U Temperatura em C or F
%m modo em números inteiros
%M modo em caracteres especiais
%P Pressão em PSI
\ No newline at end of file diff --git a/htmljs/dist/portuguese-br/classic-log.htm.gz b/htmljs/dist/portuguese-br/classic-log.htm.gz deleted file mode 100644 index 1e91eb7ac..000000000 Binary files a/htmljs/dist/portuguese-br/classic-log.htm.gz and /dev/null differ diff --git a/htmljs/dist/portuguese-br/classic-setup.htm b/htmljs/dist/portuguese-br/classic-setup.htm deleted file mode 100644 index e31d04950..000000000 --- a/htmljs/dist/portuguese-br/classic-setup.htm +++ /dev/null @@ -1 +0,0 @@ - BrewPiLess | Ajustes
Dispositivos Instalados
Dispositivos Detectados

Slot do Dispositivo
Tipo de HardwareSensor Externo
Pino de Controle
Valor--
Função

Slot do Dispositivo
Tipo de HardwareSensor
Endereço
Pino de Controle
Valor
Função

Slot do Dispositivo
Tipo de HardwarePino
Atuador
Pino de Controle
Valor
Função

Slot do Dispositivo
Tipo de HardwareAtuador 1-wire
Endereço
Canal
Pino de ControleN
Valor
Função
Atuador
\ No newline at end of file diff --git a/htmljs/dist/portuguese-br/classic-setup.htm.gz b/htmljs/dist/portuguese-br/classic-setup.htm.gz deleted file mode 100644 index 0e14852d6..000000000 Binary files a/htmljs/dist/portuguese-br/classic-setup.htm.gz and /dev/null differ diff --git a/htmljs/dist/portuguese-br/config.htm b/htmljs/dist/portuguese-br/config.htm index ee296de00..25cb3e496 100644 --- a/htmljs/dist/portuguese-br/config.htm +++ b/htmljs/dist/portuguese-br/config.htm @@ -1,124 +1 @@ - BrewPiLess | Configuração de rede

BrewPiLess

BrewPiLess | Configuração de rede
Desligar LCD
Nome do equipamento
Host/Nome de rede
Porta HTTP
Nome de usuário
Senha
Sempre solicitar senha
Modo de rede
Rede (SSID)
IP
MQTT Controle Remoto
Ativado:
MQTT Servidor:
MQTT Porta:
Nome de usuário:
Senha:
Caminho para o modo:
Caminho para configuração de temperatura:
Caminho para controle Válv. CO2:
Caminho para temperatura PTC:
\ No newline at end of file + BrewPiLess | Configuração de rede

BrewPiLess

BrewPiLess | Configuração de rede
Desligar LCD
LCD Display
Glycol Chilling
Nome do equipamento
Host/Nome de rede
Porta HTTP
Nome de usuário
Senha
Sempre solicitar senha
Modo de rede
Enable AP Password
Rede (SSID)
IP
\ No newline at end of file diff --git a/htmljs/dist/portuguese-br/config.htm.gz b/htmljs/dist/portuguese-br/config.htm.gz index 18dc647a7..7ebfc7fd9 100644 Binary files a/htmljs/dist/portuguese-br/config.htm.gz and b/htmljs/dist/portuguese-br/config.htm.gz differ diff --git a/htmljs/dist/portuguese-br/control.htm b/htmljs/dist/portuguese-br/control.htm index ff3621224..38ffbfe11 100644 --- a/htmljs/dist/portuguese-br/control.htm +++ b/htmljs/dist/portuguese-br/control.htm @@ -1,124 +1 @@ - BrewPiLess | Modos de Fermentação

BrewPiLess

Início Data/Hora:
°C Função Dias SG Estável Início Data/Hora
19
Rampa
71.01
Defina o controle de temperatura pelo sensor da cerveja:°C
Defina o controle de temperatura pelo sensor da refrigeração:°C
Desativar controle de temperatura
CONTROLE SPUNDING
Fechar quando a densidade for menor que: @ psi
Fechar depois de: @ psi
@ psi
Glycol Temperature Control
Target Temperature
°C
Triggering Temperauture
°C
Minimum Cooling Time
Seconds
Miminum Idle Time
Seconds
\ No newline at end of file + BrewPiLess | Modos de Fermentação

BrewPiLess

Início Data/Hora:
°C Função Dias SG Estável Início Data/Hora
19
Rampa
71.01
Defina o controle de temperatura pelo sensor da cerveja:°C
Defina o controle de temperatura pelo sensor da refrigeração:°C
Desativar controle de temperatura
CONTROLE SPUNDING
Fechar quando a densidade for menor que:
to psi
Glycol Temperature Control
Target Temperature
°C
Triggering Temperauture
°C
Minimum Cooling Time
segundos
Miminum Idle Time
segundos
Humidity Control
Mode
Target Relative Humidity
%
\ No newline at end of file diff --git a/htmljs/dist/portuguese-br/control.htm.gz b/htmljs/dist/portuguese-br/control.htm.gz index f812a0783..a9a5c1b30 100644 Binary files a/htmljs/dist/portuguese-br/control.htm.gz and b/htmljs/dist/portuguese-br/control.htm.gz differ diff --git a/htmljs/dist/portuguese-br/control_s.htm b/htmljs/dist/portuguese-br/control_s.htm index 1f3b1fcde..d1c0ed23e 100644 --- a/htmljs/dist/portuguese-br/control_s.htm +++ b/htmljs/dist/portuguese-br/control_s.htm @@ -1,124 +1 @@ - BrewPiLess | Modos de Fermentação

BrewPiLess

Início Data/Hora:
°C Função Dias SG Estável Início Data/Hora
19
Rampa
71.01
Defina o controle de temperatura pelo sensor da cerveja:°C
Defina o controle de temperatura pelo sensor da refrigeração:°C
Desativar controle de temperatura
CONTROLE SPUNDING
Fechar quando a densidade for menor que: @ psi
Fechar depois de: @ psi
@ psi
Glycol Temperature Control
Target Temperature
°C
Triggering Temperauture
°C
Minimum Cooling Time
Seconds
Miminum Idle Time
Seconds
\ No newline at end of file + BrewPiLess | Modos de Fermentação

BrewPiLess

Início Data/Hora:
°C Função Dias SG Estável Início Data/Hora
19
Rampa
71.01
Defina o controle de temperatura pelo sensor da cerveja:°C
Defina o controle de temperatura pelo sensor da refrigeração:°C
Desativar controle de temperatura
CONTROLE SPUNDING
Fechar quando a densidade for menor que:
to psi
Glycol Temperature Control
Target Temperature
°C
Triggering Temperauture
°C
Minimum Cooling Time
segundos
Miminum Idle Time
segundos
Humidity Control
Mode
Target Relative Humidity
%
\ No newline at end of file diff --git a/htmljs/dist/portuguese-br/control_s.htm.gz b/htmljs/dist/portuguese-br/control_s.htm.gz index 86157ac4c..3fe722cdc 100644 Binary files a/htmljs/dist/portuguese-br/control_s.htm.gz and b/htmljs/dist/portuguese-br/control_s.htm.gz differ diff --git a/htmljs/dist/portuguese-br/gravity.htm b/htmljs/dist/portuguese-br/gravity.htm index 4195020e6..46e4904fb 100644 --- a/htmljs/dist/portuguese-br/gravity.htm +++ b/htmljs/dist/portuguese-br/gravity.htm @@ -1,124 +1 @@ - BrewPiLess | Densidade

BrewPiLess

Usar Plato
iSpindel
Calculado pelo BrewPiLess
Correção de Temp.
°C
Coeficientes
x³ +
x² +
x +
Coeficiente do Filtro passa-baixa
Limite da Densidade Estabilizada
ponto, 1= 0.001 para SG, ou 0.1°P para Plato
\ No newline at end of file + BrewPiLess | Densidade

BrewPiLess

iSpindel
Usar Plato
compensação de gravidade
Calculado pelo BrewPiLess
Calibração
Coeficientes
x³ +
x² +
x +
Coeficiente do Filtro passa-baixa
Limite da Densidade Estabilizada
ponto, 1= 0.001 para SG, ou 0.1°P para Plato
\ No newline at end of file diff --git a/htmljs/dist/portuguese-br/gravity.htm.gz b/htmljs/dist/portuguese-br/gravity.htm.gz index c7d076f2e..e6629461a 100644 Binary files a/htmljs/dist/portuguese-br/gravity.htm.gz and b/htmljs/dist/portuguese-br/gravity.htm.gz differ diff --git a/htmljs/dist/portuguese-br/index.htm b/htmljs/dist/portuguese-br/index.htm index f64e6019d..8b0124611 100644 --- a/htmljs/dist/portuguese-br/index.htm +++ b/htmljs/dist/portuguese-br/index.htm @@ -1,124 +1 @@ - BrewPiLess em serviço!

BrewPiLess

TemperaturaDensidade
  • Estado:
  • Modo:
  • Temp. Cerveja:
  • SP Cerveja:
  • Temp. Refrigeração:
  • SP Refrigeração:
  • Temp. Ambiente:
  • Densidade:
  • Densidade Original (OG):--°P
  • Densidade Específica (SG):--°P
  • Densidade Final (FG):
  • Aten.:--%
  • ABV:--%
  • iSpindel:
  • Inclinação:--
  • Bateria:--
  • Qualidade do Sinal (Wi-Fi):
  • Última Atualização:--
  • Válv. CO2 (Spunding):
    AbertaFechada
  • Condição:
    gravity <= after Fechada ManualAberta Manual
  • Pressure psi
  • Geral:
  • Registro:
  • Qualidade do Sinal (Wi-Fi):
  • Data/Horastatus
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
Aguardando atualização do script...
Falha de conexão com o servidor.
Controlador não atualiza dados.
\ No newline at end of file + BrewPiLess em serviço!

BrewPiLess

TemperaturaDensidadePressure(psi)CO2 VolRelative Humidity
  • Estado:
  • Modo:
  • Temp. Cerveja:
  • SP Cerveja:
  • Temp. Refrigeração:
  • SP Refrigeração:
  • Temp. Ambiente:
  • Chamber Humidity
  • Room Humidity
  • Densidade:
  • Densidade Original (OG):--°P
  • Densidade Específica (SG):--°P
  • Densidade alterada(48/24/12H):
  • Aten.:--%
  • ABV:--%
  • iSpindel:Tilt™ Hydrometer RAPT Pill Hydrometer
  • Inclinação:--
  • Bateria:--
  • SG bruto--
  • Temperatura--
  • RSSI
  • Última Atualização:--
  • Válv. CO2 (Spunding):
    AbertaFechada
  • Condição:
    gravity <= after Fechada ManualAberta Manual
  • Pressure psi
  • Geral:
  • Registro:
  • Qualidade do Sinal (Wi-Fi):
  • Data/Horastatus
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
Aguardando atualização do script...
Falha de conexão com o servidor.
Controlador não atualiza dados.
\ No newline at end of file diff --git a/htmljs/dist/portuguese-br/index.htm.gz b/htmljs/dist/portuguese-br/index.htm.gz index 3e6c99fe4..2830db08b 100644 Binary files a/htmljs/dist/portuguese-br/index.htm.gz and b/htmljs/dist/portuguese-br/index.htm.gz differ diff --git a/htmljs/dist/portuguese-br/index_s.htm b/htmljs/dist/portuguese-br/index_s.htm index 574f97c7f..6e75e82ad 100644 --- a/htmljs/dist/portuguese-br/index_s.htm +++ b/htmljs/dist/portuguese-br/index_s.htm @@ -1,124 +1 @@ - BrewPiLess em serviço!

BrewPiLess

TemperaturaDensidade
  • Estado:
  • Modo:
  • Temp. Cerveja:
  • SP Cerveja:
  • Temp. Refrigeração:
  • SP Refrigeração:
  • Temp. Ambiente:
  • Densidade:
  • Densidade Original (OG):--°P
  • Densidade Específica (SG):--°P
  • Densidade Final (FG):
  • Aten.:--%
  • ABV:--%
  • iSpindel:
  • Inclinação:--
  • Bateria:--
  • Qualidade do Sinal (Wi-Fi):
  • Última Atualização:--
  • Válv. CO2 (Spunding):
    AbertaFechada
  • Condição:
    gravity <= after Fechada ManualAberta Manual
  • Pressure psi
  • Geral:
  • Registro:
  • Qualidade do Sinal (Wi-Fi):
  • Data/Horastatus
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
Aguardando atualização do script...
Falha de conexão com o servidor.
Controlador não atualiza dados.
\ No newline at end of file + BrewPiLess em serviço!

BrewPiLess

TemperaturaDensidadePressure(psi)CO2 VolRelative Humidity
  • Estado:
  • Modo:
  • Temp. Cerveja:
  • SP Cerveja:
  • Temp. Refrigeração:
  • SP Refrigeração:
  • Temp. Ambiente:
  • Chamber Humidity
  • Room Humidity
  • Densidade:
  • Densidade Original (OG):--°P
  • Densidade Específica (SG):--°P
  • Densidade alterada(48/24/12H):
  • Aten.:--%
  • ABV:--%
  • iSpindel:Tilt™ Hydrometer RAPT Pill Hydrometer
  • Inclinação:--
  • Bateria:--
  • SG bruto--
  • Temperatura--
  • RSSI
  • Última Atualização:--
  • Válv. CO2 (Spunding):
    AbertaFechada
  • Condição:
    gravity <= after Fechada ManualAberta Manual
  • Pressure psi
  • Geral:
  • Registro:
  • Qualidade do Sinal (Wi-Fi):
  • Data/Horastatus
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
Aguardando atualização do script...
Falha de conexão com o servidor.
Controlador não atualiza dados.
\ No newline at end of file diff --git a/htmljs/dist/portuguese-br/index_s.htm.gz b/htmljs/dist/portuguese-br/index_s.htm.gz index 750a22dbd..272a9e1c5 100644 Binary files a/htmljs/dist/portuguese-br/index_s.htm.gz and b/htmljs/dist/portuguese-br/index_s.htm.gz differ diff --git a/htmljs/dist/portuguese-br/logging.htm b/htmljs/dist/portuguese-br/logging.htm index 8e565b48a..d0de7b546 100644 --- a/htmljs/dist/portuguese-br/logging.htm +++ b/htmljs/dist/portuguese-br/logging.htm @@ -1,124 +1 @@ - BrewPiLess | Registros

BrewPiLess

BrewPiLess | Registros

Registro Remoto
Intervalo de registro:
segundos
Tipo de Serviço:
Stream URL:
Beer:
Gravity Unit
Write API Key:
Fields:


ID:
Device Label:
Account:
Token:
Device:
Método:
URL:
Data Type:

JSON:"application/json", Form Type:"application/x-www-form-urlencoded"

Formato:
Especificadores de formato... Caracteres: 0/256
Registro Local
Nome do novo registro:
Opções:
Calibrar iSpindel
Inclinação na água:
Densidade medida:
, ou água @
° calibrado °
Memória Livre: 0 Bytes, Memória Utilizada: 0 Bytes, Memória Total: 0 Bytes
Registros Salvos
Nome do novo registro: Data Ação
%b Temp. Cerv.:
%B SP Cerv.:
%f Temp. Refrig.:
%F SP Refrig.:
%r Temp. Ambiente:
%g Densidade
%p Plato
%a Temp. iSpindel
%v Voltagem iSpindel
%t Inclinação
%u Registro de data/hora da última atualização de densidade
%U Temperatura em C or F
%m modo em números inteiros
%M modo em caracteres especiais
%P Pressão em PSI
\ No newline at end of file + BrewPiLess | Registros

BrewPiLess

BrewPiLess | Registros

Registro Local
Nome do novo registro:
Opções:
Write on Buffer Full
registrar dados brutos
Memória Livre: 0 Bytes, Memória Utilizada: 0 Bytes, Memória Total: 0 Bytes
Registros Salvos
Nome do novo registro: Data Ação
Registro Remoto
Intervalo de registro:
segundos
Tipo de Serviço:
API Key:
Beer:
Gravity Unit
Write API Key:
Fields:


ID:
Device Label:
Account:
Token:
Device:
Método:
URL:
Data Type:

JSON:"application/json", Form Type:"application/x-www-form-urlencoded"

Formato:
Especificadores de formato... Caracteres: 0/256

MQTT Settings

Broker Settings
MQTT Corretor:
MQTT Porta:
Nome de usuário:
Senha:
Reporting
Publish Period
segundos
Base Path
Report data as
MQTT Controle Remoto
Caminho para o modo:
Caminho para configuração de beerSet:
Caminho para configuração de fridgeSet:
Caminho para controle Válv. CO2:
Caminho para temperatura PTC:
%b Temp. Cerv.:
%B SP Cerv.:
%f Temp. Refrig.:
%F SP Refrig.:
%r Temp. Ambiente:
%g Densidade
%p Plato
%a Temp. iSpindel
%v Voltagem iSpindel
%t Inclinação
%u Registro de data/hora da última atualização de densidade
%U Temperatura em C or F
%m modo em números inteiros
%M modo em caracteres especiais
%P Pressão em PSI
%HHostname
\ No newline at end of file diff --git a/htmljs/dist/portuguese-br/logging.htm.gz b/htmljs/dist/portuguese-br/logging.htm.gz index dc4808688..a2b5f44bc 100644 Binary files a/htmljs/dist/portuguese-br/logging.htm.gz and b/htmljs/dist/portuguese-br/logging.htm.gz differ diff --git a/htmljs/dist/portuguese-br/pressure.htm b/htmljs/dist/portuguese-br/pressure.htm index 5a3f2d715..e94532a8e 100644 --- a/htmljs/dist/portuguese-br/pressure.htm +++ b/htmljs/dist/portuguese-br/pressure.htm @@ -1,124 +1 @@ - Configuração Transdutor de Pressão

BrewPiLess

Ativar Transdutor de Pressão:
Controle de Pressão:
Parâmetros de conversão de pressão:
Pressão em PSI= (A0_reading - b) * a
b: a:
\ No newline at end of file + Configuração Transdutor de Pressão

BrewPiLess

Ativar Transdutor de Pressão:
Use ADS1115
ADS1115 Gain/Max input voltage
Controle de Pressão:
Parâmetros de conversão de pressão:
Pressão em PSI= (A0_reading - b) * a
b: a:
\ No newline at end of file diff --git a/htmljs/dist/portuguese-br/pressure.htm.gz b/htmljs/dist/portuguese-br/pressure.htm.gz index 2b34dbd8f..6d83c6437 100644 Binary files a/htmljs/dist/portuguese-br/pressure.htm.gz and b/htmljs/dist/portuguese-br/pressure.htm.gz differ diff --git a/htmljs/dist/portuguese-br/setup.htm b/htmljs/dist/portuguese-br/setup.htm index e92525e50..e870e5341 100644 --- a/htmljs/dist/portuguese-br/setup.htm +++ b/htmljs/dist/portuguese-br/setup.htm @@ -1,124 +1 @@ - BrewPiLess | Ajustes

BrewPiLess

Dispositivos Instalados
Dispositivos Detectados

Slot do Dispositivo
Tipo de HardwareSensor Externo
Pino de Controle
Valor--
Função

Slot do Dispositivo
Tipo de HardwareSensor
Endereço
Pino de Controle
Valor
Função

Slot do Dispositivo
Tipo de HardwarePino
Atuador
Pino de Controle
Valor
Função

Slot do Dispositivo
Tipo de HardwareAtuador 1-wire
Endereço
Canal
Pino de ControleN
Valor
Função
Atuador
\ No newline at end of file + BrewPiLess | Ajustes

BrewPiLess

Dispositivos Instalados
Dispositivos Detectados

Slot do Dispositivo
Tipo de HardwareSensor Externo
Pino de Controle
Valor--
Calibration
Função

Slot do Dispositivo
Tipo de HardwareHumidity Temp sensor
Sensor LocationChamber Room
Valor--
Calibration
Função

Slot do Dispositivo
Tipo de HardwareSensor
Endereço
Pino de Controle
Valor
Calibration
Função

Slot do Dispositivo
Tipo de HardwarePino
Atuador
Pino de Controle
Valor
Calibration
Função

Slot do Dispositivo
Tipo de HardwareAtuador 1-wire
Endereço
Canal
Pino de ControleN
Valor
Função
Atuador

Slot do Dispositivo
Tipo de HardwareBME280
Endereço
Valor
Calibration
Função
\ No newline at end of file diff --git a/htmljs/dist/portuguese-br/setup.htm.gz b/htmljs/dist/portuguese-br/setup.htm.gz index 7d93aca5e..20845d61c 100644 Binary files a/htmljs/dist/portuguese-br/setup.htm.gz and b/htmljs/dist/portuguese-br/setup.htm.gz differ diff --git a/htmljs/dist/slovak/BPLLogViewer.htm b/htmljs/dist/slovak/BPLLogViewer.htm index 0d4c2f2ad..cc2763cd4 100644 --- a/htmljs/dist/slovak/BPLLogViewer.htm +++ b/htmljs/dist/slovak/BPLLogViewer.htm @@ -1,124 +1 @@ -BrewPiLess Log Viewer v3.0

BPL LogViewer v3.0

Crop to Exportovanie
TeplotaHustota
  • Dátum / Čashodnota
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • formula
\ No newline at end of file +BrewPiLess Log Viewer v4.4

BPL LogViewer v4.2

Crop to Exportovanie
TeplotaHustotaTlak(psi)Objem CO2Relative HumidityGravity Change
  • Dátum / Čashodnota
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • formula
\ No newline at end of file diff --git a/htmljs/dist/slovak/BPLLogViewer.htm.gz b/htmljs/dist/slovak/BPLLogViewer.htm.gz index e3fd43b4c..7de60126a 100644 Binary files a/htmljs/dist/slovak/BPLLogViewer.htm.gz and b/htmljs/dist/slovak/BPLLogViewer.htm.gz differ diff --git a/htmljs/dist/slovak/BPLog.htm b/htmljs/dist/slovak/BPLog.htm deleted file mode 100644 index fb1a806e4..000000000 --- a/htmljs/dist/slovak/BPLog.htm +++ /dev/null @@ -1,124 +0,0 @@ -BPL Log Viewer v3.0 - online
TeplotaHustota
  • Dátum / Čashodnota
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
\ No newline at end of file diff --git a/htmljs/dist/slovak/BPLog.htm.gz b/htmljs/dist/slovak/BPLog.htm.gz deleted file mode 100644 index 57b2b77fb..000000000 Binary files a/htmljs/dist/slovak/BPLog.htm.gz and /dev/null differ diff --git a/htmljs/dist/slovak/BPLogWebViewer.htm b/htmljs/dist/slovak/BPLogWebViewer.htm new file mode 100644 index 000000000..074db70af --- /dev/null +++ b/htmljs/dist/slovak/BPLogWebViewer.htm @@ -0,0 +1 @@ +BPL Log Viewer v4.4 - online
TeplotaHustotaTlak(psi)Objem CO2Relative HumidityGravity Change
  • Dátum / Čashodnota
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
\ No newline at end of file diff --git a/htmljs/dist/slovak/BPLogWebViewer.htm.gz b/htmljs/dist/slovak/BPLogWebViewer.htm.gz new file mode 100644 index 000000000..bdf4fb2b0 Binary files /dev/null and b/htmljs/dist/slovak/BPLogWebViewer.htm.gz differ diff --git a/htmljs/dist/slovak/classic-config.htm b/htmljs/dist/slovak/classic-config.htm deleted file mode 100644 index 1981dd7d1..000000000 --- a/htmljs/dist/slovak/classic-config.htm +++ /dev/null @@ -1 +0,0 @@ - BrewPiLess konfigurácia
Konfigurácia uložená. Počkajte na reštart... (poznámka: ak zmeníte názov hostiteľa, stránka sa znovu nenačíta.)
Auto. vypnutie LCD sekundy
Nadpis
Meno hostiteľa/siete
HTTP Port
Používateľské meno
Heslo
Vždy vyžadovať heslo
Sieťový mód
Sieť
IP
Uložiť zmeny
\ No newline at end of file diff --git a/htmljs/dist/slovak/classic-config.htm.gz b/htmljs/dist/slovak/classic-config.htm.gz deleted file mode 100644 index a696304b5..000000000 Binary files a/htmljs/dist/slovak/classic-config.htm.gz and /dev/null differ diff --git a/htmljs/dist/slovak/classic-gdc.htm b/htmljs/dist/slovak/classic-gdc.htm deleted file mode 100644 index c62cd9313..000000000 --- a/htmljs/dist/slovak/classic-gdc.htm +++ /dev/null @@ -1 +0,0 @@ - Zariadenie na meranie hustoty
Použiť Plato
iSpindel
Vypočítané pomocou BPL
Koeficienty *x^3 + *x^2+ *x +
Korekcia Teploty @ °C
LowPass Filter koeficient
Prah stability hustoty bod, 1= 0.001 pre SG, alebo 0.1°P pre Plato
Uložiť zmeny
\ No newline at end of file diff --git a/htmljs/dist/slovak/classic-gdc.htm.gz b/htmljs/dist/slovak/classic-gdc.htm.gz deleted file mode 100644 index 3a32b0f60..000000000 Binary files a/htmljs/dist/slovak/classic-gdc.htm.gz and /dev/null differ diff --git a/htmljs/dist/slovak/classic-index.htm b/htmljs/dist/slovak/classic-index.htm deleted file mode 100644 index dbea626de..000000000 --- a/htmljs/dist/slovak/classic-index.htm +++ /dev/null @@ -1,124 +0,0 @@ - BrewPiLess v prevádzke!
TeplotaHustota
LCD čaká na aktualizáciu zo skriptu...

OG: -- °P
SG: -- °P
ATT: --%
ABV: --%
Batérie: --
Náklon:
@--
PTC
Tepl.
11 °C
100H59M32S
Dátum / Čas
Teplota piva
--

Nastavená teplota piva
--

Teplota chladničky
--

Nastavená teplota chladničky
--

Teplota v miestnosti
--

Aux teplota
--

Hustota
--

Filtrované SG
--

hodnota

f

Dátum začiatku:
°C Podmienka Dni SG Stabilný Čas začiatku
19
Krivka
7
Nastaviť teplotu piva: °C
Nastaviť teplotu chladničky: °C
Vypnúť kontrolovanie teploty.
Uzavrieť, ak je hustota menšia ako
Uzavrieť po
Uzavreté
\ No newline at end of file diff --git a/htmljs/dist/slovak/classic-index.htm.gz b/htmljs/dist/slovak/classic-index.htm.gz deleted file mode 100644 index 4c64e1439..000000000 Binary files a/htmljs/dist/slovak/classic-index.htm.gz and /dev/null differ diff --git a/htmljs/dist/slovak/classic-log.htm b/htmljs/dist/slovak/classic-log.htm deleted file mode 100644 index fb5246469..000000000 --- a/htmljs/dist/slovak/classic-log.htm +++ /dev/null @@ -1,124 +0,0 @@ - BrewPiless nastavenie záznamov
Vzdialený záznam
  • Povolené:
  • Doba záznamu: Sekundy
  • Typ služby:
  • Stream URL:
  • Beer:
  • Gravity Unit
  • Zapísať API kľúč:
  • Polia:

  • ID:
  • Označenie zariadenia:
  • Účet:
  • Token:
  • Zariadenie:
  • Metóda:Get Post Put
  • URL:
  • DataType:
  • Notácie...
  • Formát:
  • Znaky:

Lokálny záznam
Názov nového záznamu:
Možnosti:
Kalibrovať iSpindel
Hodnota naklonenia vo vode Nameraná hustota: , alebo voda @ ° kalibrovaná °
Voľné miesto: 0 Bytes, Použité miesto: 0 Bytes, Celkové miesto: 0 Bytes
Záznam Dátum Akcia
%b Teplota piva
%B Nastavená teplota piva
%f Teplota chladničky
%F Nastavená teplota chladničky
%r Teplota v miestnosti
%g Hustota
%p Plato
%a Teplota iSpindel
%v Napätie iSpindel
%t Hodnota naklonenia
%u Časový údaj poslednej aktualizácie hustoty
%U Temperature in C or F
%m mode in integer
%M mode in character
%P Pressure in PSI
\ No newline at end of file diff --git a/htmljs/dist/slovak/classic-log.htm.gz b/htmljs/dist/slovak/classic-log.htm.gz deleted file mode 100644 index bc161cc49..000000000 Binary files a/htmljs/dist/slovak/classic-log.htm.gz and /dev/null differ diff --git a/htmljs/dist/slovak/classic-setup.htm b/htmljs/dist/slovak/classic-setup.htm deleted file mode 100644 index efe734ecd..000000000 --- a/htmljs/dist/slovak/classic-setup.htm +++ /dev/null @@ -1 +0,0 @@ - Nastavenie BrewPiLess!
Nainštalované zariadenie
Zistené zariadenie

Slot zariadenia
Typ hardvéruExterný senzor
PIN riadiacej jednotky
Hodnota--
Funkcia

Slot zariadenia
Typ hardvéruSenzor
Adresa
PIN riadiacej jednotky
Hodnota
Funkcia

Slot zariadenia
Typ hardvéruPIN
Typ pinu
PIN riadiacej jednotky
Hodnota
Funkcia

Slot zariadenia
Typ hardvéru1-vodičový pohon
Adresa
Kanál
PIN riadiacej jednotkyN
Hodnota
Funkcia
Typ pinu
\ No newline at end of file diff --git a/htmljs/dist/slovak/classic-setup.htm.gz b/htmljs/dist/slovak/classic-setup.htm.gz deleted file mode 100644 index e620792d9..000000000 Binary files a/htmljs/dist/slovak/classic-setup.htm.gz and /dev/null differ diff --git a/htmljs/dist/slovak/config.htm b/htmljs/dist/slovak/config.htm index f7b7cece8..20ff2c92f 100644 --- a/htmljs/dist/slovak/config.htm +++ b/htmljs/dist/slovak/config.htm @@ -1,124 +1 @@ - BrewPiLess konfigurácia

BrewPiLess

BrewPiLess konfigurácia
Auto. vypnutie LCD
Nadpis
Meno hostiteľa/siete
HTTP Port
Používateľské meno
Heslo
Vždy vyžadovať heslo
Sieťový mód
Sieť
IP
MQTT Remote Control
Enabled:
MQTT Server:
MQTT Port:
Username:
Password:
Path for mode:
Path for setting temperature:
Path for capping control:
Path for PTC temperature:
\ No newline at end of file + BrewPiLess konfigurácia

BrewPiLess

BrewPiLess konfigurácia
Auto. vypnutie LCD
LCD Display
Glycol Chilling
Nadpis
Meno hostiteľa/siete
HTTP Port
Používateľské meno
Heslo
Vždy vyžadovať heslo
Sieťový mód
Enable AP Password
Sieť
IP
\ No newline at end of file diff --git a/htmljs/dist/slovak/config.htm.gz b/htmljs/dist/slovak/config.htm.gz index c62bb00ba..34e91dcbb 100644 Binary files a/htmljs/dist/slovak/config.htm.gz and b/htmljs/dist/slovak/config.htm.gz differ diff --git a/htmljs/dist/slovak/control.htm b/htmljs/dist/slovak/control.htm index b39f4b8a0..2a9029f69 100644 --- a/htmljs/dist/slovak/control.htm +++ b/htmljs/dist/slovak/control.htm @@ -1,124 +1 @@ - Riadiace centrum BrewPiLess!

BrewPiLess

Dátum začiatku:
°C Podmienka Dni SG Stabilný Čas začiatku
19
Krivka
71.01
Nastaviť teplotu piva:°C
Nastaviť teplotu chladničky:°C
Vypnúť kontrolovanie teploty.
Ovládanie uzáveru
Uzavrieť, ak je hustota menšia ako @ psi
Uzavrieť po @ psi
@ psi
Glycol Temperature Control
Target Temperature
°C
Triggering Temperauture
°C
Minimum Cooling Time
Seconds
Miminum Idle Time
Seconds
\ No newline at end of file + Riadiace centrum BrewPiLess!

BrewPiLess

Dátum začiatku:
°C Podmienka Dni SG Stabilný Čas začiatku
19
Krivka
71.01
Nastaviť teplotu piva:°C
Nastaviť teplotu chladničky:°C
Vypnúť kontrolovanie teploty.
Ovládanie uzáveru
Uzavrieť, ak je hustota menšia ako
to psi
Kontrola teploty glykolu
Cieľová teplota
°C
Spúšťacia teplota
°C
Minimálny čas chladenia
Sekundy
Minimálny čas nečinnosti
Sekundy
Humidity Control
Mode
Target Relative Humidity
%
\ No newline at end of file diff --git a/htmljs/dist/slovak/control.htm.gz b/htmljs/dist/slovak/control.htm.gz index d6b2628f5..5f31fad63 100644 Binary files a/htmljs/dist/slovak/control.htm.gz and b/htmljs/dist/slovak/control.htm.gz differ diff --git a/htmljs/dist/slovak/control_s.htm b/htmljs/dist/slovak/control_s.htm index 786554b5f..976f9a30a 100644 --- a/htmljs/dist/slovak/control_s.htm +++ b/htmljs/dist/slovak/control_s.htm @@ -1,124 +1 @@ - Riadiace centrum BrewPiLess!

BrewPiLess

Dátum začiatku:
°C Podmienka Dni SG Stabilný Čas začiatku
19
Krivka
71.01
Nastaviť teplotu piva:°C
Nastaviť teplotu chladničky:°C
Vypnúť kontrolovanie teploty.
Ovládanie uzáveru
Uzavrieť, ak je hustota menšia ako @ psi
Uzavrieť po @ psi
@ psi
Glycol Temperature Control
Target Temperature
°C
Triggering Temperauture
°C
Minimum Cooling Time
Seconds
Miminum Idle Time
Seconds
\ No newline at end of file + Riadiace centrum BrewPiLess!

BrewPiLess

Dátum začiatku:
°C Podmienka Dni SG Stabilný Čas začiatku
19
Krivka
71.01
Nastaviť teplotu piva:°C
Nastaviť teplotu chladničky:°C
Vypnúť kontrolovanie teploty.
Ovládanie uzáveru
Uzavrieť, ak je hustota menšia ako
to psi
Kontrola teploty glykolu
Cieľová teplota
°C
Spúšťacia teplota
°C
Minimálny čas chladenia
Sekundy
Minimálny čas nečinnosti
Sekundy
Humidity Control
Mode
Target Relative Humidity
%
\ No newline at end of file diff --git a/htmljs/dist/slovak/control_s.htm.gz b/htmljs/dist/slovak/control_s.htm.gz index a30979d28..ff41d9b1e 100644 Binary files a/htmljs/dist/slovak/control_s.htm.gz and b/htmljs/dist/slovak/control_s.htm.gz differ diff --git a/htmljs/dist/slovak/gravity.htm b/htmljs/dist/slovak/gravity.htm index fe9ed2a4c..0606d3e3f 100644 --- a/htmljs/dist/slovak/gravity.htm +++ b/htmljs/dist/slovak/gravity.htm @@ -1,124 +1 @@ - Zariadenie na meranie hustoty

BrewPiLess

Použiť Plato
iSpindel
Vypočítané pomocou BPL
Korekcia Teploty
°C
Koeficienty
x³ +
x² +
x +
LowPass Filter koeficient
Prah stability hustoty
bod, 1= 0.001 pre SG, alebo 0.1°P pre Plato
\ No newline at end of file + Zariadenie na meranie hustoty

BrewPiLess

iSpindel
Použiť Plato
gravitačný posun
Vypočítané pomocou BPL
Kalibrácia
Koeficienty
x³ +
x² +
x +
LowPass Filter koeficient
Prah stability hustoty
bod, 1= 0.001 pre SG, alebo 0.1°P pre Plato
\ No newline at end of file diff --git a/htmljs/dist/slovak/gravity.htm.gz b/htmljs/dist/slovak/gravity.htm.gz index 05e799199..d85533df1 100644 Binary files a/htmljs/dist/slovak/gravity.htm.gz and b/htmljs/dist/slovak/gravity.htm.gz differ diff --git a/htmljs/dist/slovak/index.htm b/htmljs/dist/slovak/index.htm index 12927b234..c97723932 100644 --- a/htmljs/dist/slovak/index.htm +++ b/htmljs/dist/slovak/index.htm @@ -1,124 +1 @@ - BrewPiLess v prevádzke!

BrewPiLess

TeplotaHustota
  • Stav:
  • Režim:
  • Teplota piva:
  • Nastavená teplota piva:
  • Teplota chladničky:
  • Nastavená teplota chladničky:
  • Teplota v miestnosti:
  • Údaje hustoty:
  • Pôvodná hustota (OG):--°P
  • Špecifická hustota (SG)--°P
  • Konečný stav hustoty:
  • ATT:--%
  • ABV:--%
  • iSpindel údaje:
  • Náklon:--
  • Batérie:--
  • WiFi:
  • Posledná aktualizácia:--
  • Stav uzáveru:
    OtvoriťUzavreté
  • Podmienka:
    gravity <= after Manuálne uzavretéManuálne otvorené
  • Pressure psi
  • Systém:
  • Zapisujem záznam:
  • WiFi:
  • Dátum / Čashodnota
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
čaká na aktualizáciu zo skriptu ...
Nepodarilo sa pripojiť k serveru.
Riadiaca jednotka neaktualizuje údaje.
\ No newline at end of file + BrewPiLess v prevádzke!

BrewPiLess

TeplotaHustotaTlak(psi)Objem CO2Relative Humidity
  • Stav:
  • Režim:
  • Teplota piva:
  • Nastavená teplota piva:
  • Teplota chladničky:
  • Nastavená teplota chladničky:
  • Teplota v miestnosti:
  • Chamber Humidity
  • Room Humidity
  • Údaje hustoty:
  • Pôvodná hustota (OG):--°P
  • Špecifická hustota (SG)--°P
  • Zmenila sa hustota(48/24/12H):
  • ATT:--%
  • ABV:--%
  • iSpindel údaje:Tilt™ Hydrometer RAPT Pill Hydrometer
  • Náklon:--
  • Batérie:--
  • nespracované SG--
  • teplota--
  • RSSI
  • Posledná aktualizácia:--
  • Stav uzáveru:
    OtvoriťUzavreté
  • Podmienka:
    gravity <= after Manuálne uzavretéManuálne otvorené
  • Pressure psi
  • Systém:
  • Zapisujem záznam:
  • WiFi:
  • Dátum / Čashodnota
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
čaká na aktualizáciu zo skriptu ...
Nepodarilo sa pripojiť k serveru.
Riadiaca jednotka neaktualizuje údaje.
\ No newline at end of file diff --git a/htmljs/dist/slovak/index.htm.gz b/htmljs/dist/slovak/index.htm.gz index 3d5bc7847..5daf780bc 100644 Binary files a/htmljs/dist/slovak/index.htm.gz and b/htmljs/dist/slovak/index.htm.gz differ diff --git a/htmljs/dist/slovak/index_s.htm b/htmljs/dist/slovak/index_s.htm index d479e6e35..072e96d03 100644 --- a/htmljs/dist/slovak/index_s.htm +++ b/htmljs/dist/slovak/index_s.htm @@ -1,124 +1 @@ - BrewPiLess v prevádzke!

BrewPiLess

TeplotaHustota
  • Stav:
  • Režim:
  • Teplota piva:
  • Nastavená teplota piva:
  • Teplota chladničky:
  • Nastavená teplota chladničky:
  • Teplota v miestnosti:
  • Údaje hustoty:
  • Pôvodná hustota (OG):--°P
  • Špecifická hustota (SG)--°P
  • Konečný stav hustoty:
  • ATT:--%
  • ABV:--%
  • iSpindel údaje:
  • Náklon:--
  • Batérie:--
  • WiFi:
  • Posledná aktualizácia:--
  • Stav uzáveru:
    OtvoriťUzavreté
  • Podmienka:
    gravity <= after Manuálne uzavretéManuálne otvorené
  • Pressure psi
  • Systém:
  • Zapisujem záznam:
  • WiFi:
  • Dátum / Čashodnota
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
čaká na aktualizáciu zo skriptu ...
Nepodarilo sa pripojiť k serveru.
Riadiaca jednotka neaktualizuje údaje.
\ No newline at end of file + BrewPiLess v prevádzke!

BrewPiLess

TeplotaHustotaTlak(psi)Objem CO2Relative Humidity
  • Stav:
  • Režim:
  • Teplota piva:
  • Nastavená teplota piva:
  • Teplota chladničky:
  • Nastavená teplota chladničky:
  • Teplota v miestnosti:
  • Chamber Humidity
  • Room Humidity
  • Údaje hustoty:
  • Pôvodná hustota (OG):--°P
  • Špecifická hustota (SG)--°P
  • Zmenila sa hustota(48/24/12H):
  • ATT:--%
  • ABV:--%
  • iSpindel údaje:Tilt™ Hydrometer RAPT Pill Hydrometer
  • Náklon:--
  • Batérie:--
  • nespracované SG--
  • teplota--
  • RSSI
  • Posledná aktualizácia:--
  • Stav uzáveru:
    OtvoriťUzavreté
  • Podmienka:
    gravity <= after Manuálne uzavretéManuálne otvorené
  • Pressure psi
  • Systém:
  • Zapisujem záznam:
  • WiFi:
  • Dátum / Čashodnota
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
čaká na aktualizáciu zo skriptu ...
Nepodarilo sa pripojiť k serveru.
Riadiaca jednotka neaktualizuje údaje.
\ No newline at end of file diff --git a/htmljs/dist/slovak/index_s.htm.gz b/htmljs/dist/slovak/index_s.htm.gz index 367cd6f20..87b69f850 100644 Binary files a/htmljs/dist/slovak/index_s.htm.gz and b/htmljs/dist/slovak/index_s.htm.gz differ diff --git a/htmljs/dist/slovak/logging.htm b/htmljs/dist/slovak/logging.htm index 7afd39a0e..a6c20ec96 100644 --- a/htmljs/dist/slovak/logging.htm +++ b/htmljs/dist/slovak/logging.htm @@ -1,124 +1 @@ - BrewPiless nastavenie záznamov

BrewPiLess

BrewPiless nastavenie záznamov

Vzdialený záznam
Doba záznamu:
Sekundy
Typ služby:
Stream URL:
Beer:
Gravity Unit
Zapísať API kľúč:
Polia:


ID:
Označenie zariadenia:
Účet:
Token:
Zariadenie:
Metóda:
URL:
Data Type:

JSON:"application/json", Form Type:"application/x-www-form-urlencoded"

Formát:
Notácie... Znaky: 0/256
Lokálny záznam
Názov nového záznamu:
Možnosti:
Kalibrovať iSpindel
Hodnota naklonenia vo vode
Nameraná hustota:
, alebo voda @
° kalibrovaná °
Voľné miesto: 0 Bytes, Použité miesto: 0 Bytes, Celkové miesto: 0 Bytes
Zaznamenaný záznam
Záznam Dátum Akcia
%b Teplota piva
%B Nastavená teplota piva
%f Teplota chladničky
%F Nastavená teplota chladničky
%r Teplota v miestnosti
%g Hustota
%p Plato
%a Teplota iSpindel
%v Napätie iSpindel
%t Hodnota naklonenia
%u Časový údaj poslednej aktualizácie hustoty
%U Temperature in C or F
%m mode in integer
%M mode in character
%P Pressure in PSI
\ No newline at end of file + BrewPiless nastavenie záznamov

BrewPiLess

BrewPiless nastavenie záznamov

Lokálny záznam
Názov nového záznamu:
Možnosti:
Write on Buffer Full
zaznamenávať nespracované údaje
Voľné miesto: 0 Bytes, Použité miesto: 0 Bytes, Celkové miesto: 0 Bytes
Zaznamenaný záznam
Záznam Dátum Akcia
Vzdialený záznam
Doba záznamu:
Sekundy
Typ služby:
API Key:
Pivo:
Jednotka hustoty
Zapísať API kľúč:
Polia:


ID:
Označenie zariadenia:
Účet:
Token:
Zariadenie:
Metóda:
URL:
Data Type:

JSON:"application/json", Form Type:"application/x-www-form-urlencoded"

Formát:
Notácie... Znaky: 0/256

Nastavenie MQTT

Broker Settings
MQTT Server:
MQTT Port:
Používateľské meno:
Heslo:
Oznamovanie
Doba zverejnenia
Sekundy
Základná cesta
Nahlásiť údaje ako
MQTT vzdialené ovládanie
Cesta pre režim:
Cesta pre nastavenie teploty piva:
Cesta pre nastavenie teploty chladničky:
Cesta pre ovládanie uzáveru:
Cesta pre teplotu PTC:
%b Teplota piva
%B Nastavená teplota piva
%f Teplota chladničky
%F Nastavená teplota chladničky
%r Teplota v miestnosti
%g Hustota
%p Plato
%a Teplota iSpindel
%v Napätie iSpindel
%t Hodnota naklonenia
%u Časový údaj poslednej aktualizácie hustoty
%U Teplota v C alebo F
%m režim v celých číslach
%M režim v znakoch
%P Tlak v PSI
%HHostname
\ No newline at end of file diff --git a/htmljs/dist/slovak/logging.htm.gz b/htmljs/dist/slovak/logging.htm.gz index 256a8b5d7..c7c09609a 100644 Binary files a/htmljs/dist/slovak/logging.htm.gz and b/htmljs/dist/slovak/logging.htm.gz differ diff --git a/htmljs/dist/slovak/pressure.htm b/htmljs/dist/slovak/pressure.htm index 2905b8324..e0b059889 100644 --- a/htmljs/dist/slovak/pressure.htm +++ b/htmljs/dist/slovak/pressure.htm @@ -1,124 +1 @@ - Pressure Transducer Settings

BrewPiLess

Enable Pressure Transducer:
Control Pressure:
Pressure Conversion parameters:
Pressure in PSI= (A0_reading - b) * a
b: a:
\ No newline at end of file + Nastavenia snímača tlaku

BrewPiLess

Povoliť snímač tlaku:
Use ADS1115
ADS1115 Gain/Max input voltage
Ovládanie tlaku:
Parametre konverzie tlaku:
Tlak v PSI= (A0_reading - b) * a
b: a:
\ No newline at end of file diff --git a/htmljs/dist/slovak/pressure.htm.gz b/htmljs/dist/slovak/pressure.htm.gz index 885b8e5cd..9cbeb3f00 100644 Binary files a/htmljs/dist/slovak/pressure.htm.gz and b/htmljs/dist/slovak/pressure.htm.gz differ diff --git a/htmljs/dist/slovak/setup.htm b/htmljs/dist/slovak/setup.htm index cf8c4d4d1..53a88d6e6 100644 --- a/htmljs/dist/slovak/setup.htm +++ b/htmljs/dist/slovak/setup.htm @@ -1,124 +1 @@ - Nastavenie BrewPiLess!

BrewPiLess

Nainštalované zariadenie
Zistené zariadenie

Slot zariadenia
Typ hardvéruExterný senzor
PIN riadiacej jednotky
Hodnota--
Funkcia

Slot zariadenia
Typ hardvéruSenzor
Adresa
PIN riadiacej jednotky
Hodnota
Funkcia

Slot zariadenia
Typ hardvéruPIN
Typ pinu
PIN riadiacej jednotky
Hodnota
Funkcia

Slot zariadenia
Typ hardvéru1-vodičový pohon
Adresa
Kanál
PIN riadiacej jednotkyN
Hodnota
Funkcia
Typ pinu
\ No newline at end of file + Nastavenie BrewPiLess!

BrewPiLess

Nainštalované zariadenie
Zistené zariadenie

Slot zariadenia
Typ hardvéruExterný senzor
PIN riadiacej jednotky
Hodnota--
Calibration
Funkcia

Slot zariadenia
Typ hardvéruHumidity Temp sensor
Sensor LocationChamber Room
Hodnota--
Calibration
Funkcia

Slot zariadenia
Typ hardvéruSenzor
Adresa
PIN riadiacej jednotky
Hodnota
Calibration
Funkcia

Slot zariadenia
Typ hardvéruPIN
Typ pinu
PIN riadiacej jednotky
Hodnota
Calibration
Funkcia

Slot zariadenia
Typ hardvéru1-vodičový pohon
Adresa
Kanál
PIN riadiacej jednotkyN
Hodnota
Funkcia
Typ pinu

Slot zariadenia
Typ hardvéruBME280
Adresa
Hodnota
Calibration
Funkcia
\ No newline at end of file diff --git a/htmljs/dist/slovak/setup.htm.gz b/htmljs/dist/slovak/setup.htm.gz index 8493e9198..64d6197c9 100644 Binary files a/htmljs/dist/slovak/setup.htm.gz and b/htmljs/dist/slovak/setup.htm.gz differ diff --git a/htmljs/dist/spanish/BPLLogViewer.htm b/htmljs/dist/spanish/BPLLogViewer.htm index 4a5bd41f9..f6fe2814d 100644 --- a/htmljs/dist/spanish/BPLLogViewer.htm +++ b/htmljs/dist/spanish/BPLLogViewer.htm @@ -1,124 +1 @@ -BrewPiLess Log Viewer v3.0

BPL LogViewer v3.0

Crop to Export
TemperaturaDensidad
  • Fecha / Horaestado
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • formula
\ No newline at end of file +BrewPiLess Log Viewer v4.4

BPL LogViewer v4.2

Crop to Export
TemperaturaDensidadPressure(psi)CO2 VolRelative HumidityGravity Change
  • Fecha / Horaestado
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • formula
\ No newline at end of file diff --git a/htmljs/dist/spanish/BPLLogViewer.htm.gz b/htmljs/dist/spanish/BPLLogViewer.htm.gz index 4024bd165..8119652bb 100644 Binary files a/htmljs/dist/spanish/BPLLogViewer.htm.gz and b/htmljs/dist/spanish/BPLLogViewer.htm.gz differ diff --git a/htmljs/dist/spanish/BPLog.htm b/htmljs/dist/spanish/BPLog.htm deleted file mode 100644 index a2e510021..000000000 --- a/htmljs/dist/spanish/BPLog.htm +++ /dev/null @@ -1,124 +0,0 @@ -BPL Log Viewer v3.0 - online
TemperaturaDensidad
  • Fecha / Horaestado
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
\ No newline at end of file diff --git a/htmljs/dist/spanish/BPLog.htm.gz b/htmljs/dist/spanish/BPLog.htm.gz deleted file mode 100644 index 45a67ed1b..000000000 Binary files a/htmljs/dist/spanish/BPLog.htm.gz and /dev/null differ diff --git a/htmljs/dist/spanish/BPLogWebViewer.htm b/htmljs/dist/spanish/BPLogWebViewer.htm new file mode 100644 index 000000000..c514cc935 --- /dev/null +++ b/htmljs/dist/spanish/BPLogWebViewer.htm @@ -0,0 +1 @@ +BPL Log Viewer v4.4 - online
TemperaturaDensidadPressure(psi)CO2 VolRelative HumidityGravity Change
  • Fecha / Horaestado
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
\ No newline at end of file diff --git a/htmljs/dist/spanish/BPLogWebViewer.htm.gz b/htmljs/dist/spanish/BPLogWebViewer.htm.gz new file mode 100644 index 000000000..a59e59b95 Binary files /dev/null and b/htmljs/dist/spanish/BPLogWebViewer.htm.gz differ diff --git a/htmljs/dist/spanish/classic-config.htm b/htmljs/dist/spanish/classic-config.htm deleted file mode 100644 index 1c4024b7c..000000000 --- a/htmljs/dist/spanish/classic-config.htm +++ /dev/null @@ -1 +0,0 @@ - Configuración BrewPiLess
Configuración guardada. Espere a reiniciar... (nota: si se cambia el nombre del servidor, la página no se volverá a cargar.)
Apagar LCD despúes de segundos
Título
Nombre de red
Puerto HTTP
Nombre Usuario
Contraseña
Solicitar siempre contraseña
Modo de red
Red
IP
Guardar
\ No newline at end of file diff --git a/htmljs/dist/spanish/classic-config.htm.gz b/htmljs/dist/spanish/classic-config.htm.gz deleted file mode 100644 index b0aba6560..000000000 Binary files a/htmljs/dist/spanish/classic-config.htm.gz and /dev/null differ diff --git a/htmljs/dist/spanish/classic-gdc.htm b/htmljs/dist/spanish/classic-gdc.htm deleted file mode 100644 index 267c76ace..000000000 --- a/htmljs/dist/spanish/classic-gdc.htm +++ /dev/null @@ -1 +0,0 @@ - Densímetro
Usar Plato
iSpindel
Calculado por BPL
Coeficientes *x^3 + *x^2+ *x +
Corrección de Temp. @ °C
Coeficiente filtro pasa bajos
Umbral de estabilidad de densidad punto, 1= 0.001 para SG, o 0.1°P para Plato
Guardar
\ No newline at end of file diff --git a/htmljs/dist/spanish/classic-gdc.htm.gz b/htmljs/dist/spanish/classic-gdc.htm.gz deleted file mode 100644 index e3fa917bf..000000000 Binary files a/htmljs/dist/spanish/classic-gdc.htm.gz and /dev/null differ diff --git a/htmljs/dist/spanish/classic-index.htm b/htmljs/dist/spanish/classic-index.htm deleted file mode 100644 index 5551f44df..000000000 --- a/htmljs/dist/spanish/classic-index.htm +++ /dev/null @@ -1,124 +0,0 @@ - BrewPiLess reportando!
TemperaturaDensidad
Esperando actualización del LCD en vivo...

OG: -- °P
SG: -- °P
ATT: --%
ABV: --%
Batería: --
Inclinación:
@--
PTC
TEMP
11 °C
100H59M32S
Fecha / Hora
Temp. Cerveza
--

Seteo Cerveza
--

Temp. Nevera
--

Seteo Nevera
--

Temp. habitación
--

Temp. auxiliar
--

Densidad
--

SG filtrada
--

estado

f

Fecha de inicio:
°C Condición Días SG Estable Tiempo de inicio
19
Rampa
7
Establecer temperatura de cerveza: °C
Establecer temperatura de nevera: °C
Desactivar control de temperatura.
Tapar cuando la densidad sea menor a:
Tapar a partir de:
Tapado
\ No newline at end of file diff --git a/htmljs/dist/spanish/classic-index.htm.gz b/htmljs/dist/spanish/classic-index.htm.gz deleted file mode 100644 index 0b430d5c0..000000000 Binary files a/htmljs/dist/spanish/classic-index.htm.gz and /dev/null differ diff --git a/htmljs/dist/spanish/classic-log.htm b/htmljs/dist/spanish/classic-log.htm deleted file mode 100644 index 4f73c9dbf..000000000 --- a/htmljs/dist/spanish/classic-log.htm +++ /dev/null @@ -1,124 +0,0 @@ - Configuración de registro BrewPiless
Registro remoto
  • Habilitado:
  • Registar durante: segundos
  • Tipo de servicio:
  • Stream URL:
  • Beer:
  • Gravity Unit
  • Write API Key:
  • Fields:

  • ID:
  • Device Label:
  • Account:
  • Token:
  • Device:
  • Método:Get Post Put
  • URL:
  • DataType:
  • Notación de valores
  • Formato:
  • Caracteres:

Registro local
Nombre del nuevo registro:
Opciones:
Calibrar iSpindel
Inclinación en agua pura Densidad medida: , o agua @ ° calibrado °
Memoria libre: 0 Bytes, Memoria usada: 0 Bytes, Memoria Total: 0 Bytes
Nombre Fecha Acciónes
%b Temp. Cerveza
%B Seteo Cerveza
%f Temp. Nevera
%F Seteo Nevera
%r Temp. habitación
%g Densidad
%p Plato
%a Temp. iSpindel
%v Voltage iSpindel
%t Inclinación
%u Unix timestamp de la última medición de densidad
%U Temperature in C or F
%m mode in integer
%M mode in character
%P Pressure in PSI
\ No newline at end of file diff --git a/htmljs/dist/spanish/classic-log.htm.gz b/htmljs/dist/spanish/classic-log.htm.gz deleted file mode 100644 index 94b55147c..000000000 Binary files a/htmljs/dist/spanish/classic-log.htm.gz and /dev/null differ diff --git a/htmljs/dist/spanish/classic-setup.htm b/htmljs/dist/spanish/classic-setup.htm deleted file mode 100644 index bad8d9a3d..000000000 --- a/htmljs/dist/spanish/classic-setup.htm +++ /dev/null @@ -1 +0,0 @@ - Ajustes BrewPiLess!
Dispositivos instalados
Dispositivos detectados

Slot dispositivo
Hardware tipoSensor externo
PIN del controlador
Valor--
Función

Slot dispositivo
Hardware tipoSensor
Direccion
PIN del controlador
Valor
Función

Slot dispositivo
Hardware tipoPIN
Pin tipo
PIN del controlador
Valor
Función

Slot dispositivo
Hardware tipoActuador 1-wire
Direccion
Canal
PIN del controladorN
Valor
Función
Pin tipo
\ No newline at end of file diff --git a/htmljs/dist/spanish/classic-setup.htm.gz b/htmljs/dist/spanish/classic-setup.htm.gz deleted file mode 100644 index d1777b8e4..000000000 Binary files a/htmljs/dist/spanish/classic-setup.htm.gz and /dev/null differ diff --git a/htmljs/dist/spanish/config.htm b/htmljs/dist/spanish/config.htm index 352ae7075..8d087bfb2 100644 --- a/htmljs/dist/spanish/config.htm +++ b/htmljs/dist/spanish/config.htm @@ -1,124 +1 @@ - Configuración BrewPiLess

BrewPiLess

Configuración BrewPiLess
Apagar LCD despúes de
Título
Nombre de red
Puerto HTTP
Nombre Usuario
Contraseña
Solicitar siempre contraseña
Modo de red
Red
IP
MQTT Remote Control
Enabled:
MQTT Server:
MQTT Port:
Username:
Password:
Path for mode:
Path for setting temperature:
Path for capping control:
Path for PTC temperature:
\ No newline at end of file + Configuración BrewPiLess

BrewPiLess

Configuración BrewPiLess
Apagar LCD despúes de
LCD Display
Glycol Chilling
Título
Nombre de red
Puerto HTTP
Nombre Usuario
Contraseña
Solicitar siempre contraseña
Modo de red
Enable AP Password
Red
IP
\ No newline at end of file diff --git a/htmljs/dist/spanish/config.htm.gz b/htmljs/dist/spanish/config.htm.gz index b58d9d04a..4197fdef8 100644 Binary files a/htmljs/dist/spanish/config.htm.gz and b/htmljs/dist/spanish/config.htm.gz differ diff --git a/htmljs/dist/spanish/control.htm b/htmljs/dist/spanish/control.htm index 72825f8e8..1cd11790f 100644 --- a/htmljs/dist/spanish/control.htm +++ b/htmljs/dist/spanish/control.htm @@ -1,124 +1 @@ - BrewPiLess centro de control!

BrewPiLess

Fecha de inicio:
°C Condición Días SG Estable Tiempo de inicio
19
Rampa
71.01
Establecer temperatura de cerveza:°C
Establecer temperatura de nevera:°C
Desactivar control de temperatura.
CONTROL DE TAPADO
Tapar cuando la densidad sea menor a: @ psi
Tapar a partir de: @ psi
@ psi
Glycol Temperature Control
Target Temperature
°C
Triggering Temperauture
°C
Minimum Cooling Time
Seconds
Miminum Idle Time
Seconds
\ No newline at end of file + BrewPiLess centro de control!

BrewPiLess

Fecha de inicio:
°C Condición Días SG Estable Tiempo de inicio
19
Rampa
71.01
Establecer temperatura de cerveza:°C
Establecer temperatura de nevera:°C
Desactivar control de temperatura.
CONTROL DE TAPADO
Tapar cuando la densidad sea menor a:
to psi
Glycol Temperature Control
Target Temperature
°C
Triggering Temperauture
°C
Minimum Cooling Time
segundos
Miminum Idle Time
segundos
Humidity Control
Mode
Target Relative Humidity
%
\ No newline at end of file diff --git a/htmljs/dist/spanish/control.htm.gz b/htmljs/dist/spanish/control.htm.gz index c669aff45..43223da42 100644 Binary files a/htmljs/dist/spanish/control.htm.gz and b/htmljs/dist/spanish/control.htm.gz differ diff --git a/htmljs/dist/spanish/gravity.htm b/htmljs/dist/spanish/gravity.htm index 4a93a69e5..c896b4db9 100644 --- a/htmljs/dist/spanish/gravity.htm +++ b/htmljs/dist/spanish/gravity.htm @@ -1,124 +1 @@ - Densímetro

BrewPiLess

Usar Plato
iSpindel
Calculado por BPL
Corrección de Temp.
°C
Coeficientes
x³ +
x² +
x +
Coeficiente filtro pasa bajos
Umbral de estabilidad de densidad
punto, 1= 0.001 para SG, o 0.1°P para Plato
\ No newline at end of file + Densímetro

BrewPiLess

iSpindel
Usar Plato
compensación de gravedadt
Calculado por BPL
Calibración
Coeficientes
x³ +
x² +
x +
Coeficiente filtro pasa bajos
Umbral de estabilidad de densidad
punto, 1= 0.001 para SG, o 0.1°P para Plato
\ No newline at end of file diff --git a/htmljs/dist/spanish/gravity.htm.gz b/htmljs/dist/spanish/gravity.htm.gz index 22f727793..4ac9fb651 100644 Binary files a/htmljs/dist/spanish/gravity.htm.gz and b/htmljs/dist/spanish/gravity.htm.gz differ diff --git a/htmljs/dist/spanish/index.htm b/htmljs/dist/spanish/index.htm index 20bbe6d0d..efa4b78ef 100644 --- a/htmljs/dist/spanish/index.htm +++ b/htmljs/dist/spanish/index.htm @@ -1,124 +1 @@ - BrewPiLess reportando!

BrewPiLess

TemperaturaDensidad
  • Estado:
  • Modo:
  • Cerveza Temp.:
  • Cerveza Seteo:
  • Nevera Temp.:
  • Nevera Seteo:
  • Habitación Temp:
  • Densímetro:
  • Densidad original:--°P
  • Densidad especifica--°P
  • Estado densidad final:
  • ATT:--%
  • ABV:--%
  • iSpindel:
  • Inclinación:--
  • Batería:--
  • WiFi:
  • Última actualización:--
  • Estado del tapón:
    AbiertoTapado
  • Condición:
    gravity <= after Tapado ManualAbierto Manual
  • Pressure psi
  • Sistema:
  • Escribiendo registro:
  • WiFi:
  • Fecha / Horaestado
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
esperando actualización...
Fallo en la conexión con BrewPiless
BrewPiless no actualiza información.
\ No newline at end of file + BrewPiLess reportando!

BrewPiLess

TemperaturaDensidadPressure(psi)CO2 VolRelative Humidity
  • Estado:
  • Modo:
  • Cerveza Temp.:
  • Cerveza Seteo:
  • Nevera Temp.:
  • Nevera Seteo:
  • Habitación Temp:
  • Chamber Humidity
  • Room Humidity
  • Densímetro:
  • Densidad original:--°P
  • Densidad especifica--°P
  • densidad cambiada(48/24/12H):
  • ATT:--%
  • ABV:--%
  • iSpindel:Tilt™ Hydrometer RAPT Pill Hydrometer
  • Inclinación:--
  • Batería:--
  • SG crudo--
  • Temperatura--
  • RSSI
  • Última actualización:--
  • Estado del tapón:
    AbiertoTapado
  • Condición:
    gravity <= after Tapado ManualAbierto Manual
  • Pressure psi
  • Sistema:
  • Escribiendo registro:
  • WiFi:
  • Fecha / Horaestado
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • --
  • f
esperando actualización...
Fallo en la conexión con BrewPiless
BrewPiless no actualiza información.
\ No newline at end of file diff --git a/htmljs/dist/spanish/index.htm.gz b/htmljs/dist/spanish/index.htm.gz index af3e765c0..ec358416f 100644 Binary files a/htmljs/dist/spanish/index.htm.gz and b/htmljs/dist/spanish/index.htm.gz differ diff --git a/htmljs/dist/spanish/logging.htm b/htmljs/dist/spanish/logging.htm index 612fe9415..300b2e274 100644 --- a/htmljs/dist/spanish/logging.htm +++ b/htmljs/dist/spanish/logging.htm @@ -1,124 +1 @@ - Configuración de registro BrewPiless

BrewPiLess

Configuración de registro BrewPiless

Registro remoto
Registar durante:
segundos
Tipo de servicio:
Stream URL:
Beer:
Gravity Unit
Write API Key:
Fields:


ID:
Device Label:
Account:
Token:
Device:
Método:
URL:
Data Type:

JSON:"application/json", Form Type:"application/x-www-form-urlencoded"

Formato:
Notación de valores Caracteres: 0/256
Registro local
Nombre del nuevo registro:
Opciones:
Calibrar iSpindel
Inclinación en agua pura
Densidad medida:
, o agua @
° calibrado °
Memoria libre: 0 Bytes, Memoria usada: 0 Bytes, Memoria Total: 0 Bytes
Registros guardados
Nombre Fecha Acciónes
%b Temp. Cerveza
%B Seteo Cerveza
%f Temp. Nevera
%F Seteo Nevera
%r Temp. habitación
%g Densidad
%p Plato
%a Temp. iSpindel
%v Voltage iSpindel
%t Inclinación
%u Unix timestamp de la última medición de densidad
%U Temperature in C or F
%m mode in integer
%M mode in character
%P Pressure in PSI
\ No newline at end of file + Configuración de registro BrewPiless

BrewPiLess

Configuración de registro BrewPiless

Registro local
Nombre del nuevo registro:
Opciones:
Write on Buffer Full
registrar datos sin procesar
Memoria libre: 0 Bytes, Memoria usada: 0 Bytes, Memoria Total: 0 Bytes
Registros guardados
Nombre Fecha Acciónes
Registro remoto
Registar durante:
segundos
Tipo de servicio:
API Key:
Beer:
Gravity Unit
Write API Key:
Fields:


ID:
Device Label:
Account:
Token:
Device:
Método:
URL:
Data Type:

JSON:"application/json", Form Type:"application/x-www-form-urlencoded"

Formato:
Notación de valores Caracteres: 0/256

MQTT Settings

Broker Settings
MQTT Broker:
MQTT Port:
Username:
Password:
Reporting
Publish Period
segundos
Base Path
Report data as
MQTT Remote Control
Path for mode:
Path for beerSet:
Path for fridgeSet:
Path for Spunding control:
Path for PTC temperature:
%b Temp. Cerveza
%B Seteo Cerveza
%f Temp. Nevera
%F Seteo Nevera
%r Temp. habitación
%g Densidad
%p Plato
%a Temp. iSpindel
%v Voltage iSpindel
%t Inclinación
%u Unix timestamp de la última medición de densidad
%U Temperature in C or F
%m mode in integer
%M mode in character
%P Pressure in PSI
%HHostname
\ No newline at end of file diff --git a/htmljs/dist/spanish/logging.htm.gz b/htmljs/dist/spanish/logging.htm.gz index fc8570fd4..74a40d7cf 100644 Binary files a/htmljs/dist/spanish/logging.htm.gz and b/htmljs/dist/spanish/logging.htm.gz differ diff --git a/htmljs/dist/spanish/pressure.htm b/htmljs/dist/spanish/pressure.htm index 9c5a475bc..90332c500 100644 --- a/htmljs/dist/spanish/pressure.htm +++ b/htmljs/dist/spanish/pressure.htm @@ -1,124 +1 @@ - Pressure Transducer Settings

BrewPiLess

Enable Pressure Transducer:
Control Pressure:
Pressure Conversion parameters:
Pressure in PSI= (A0_reading - b) * a
b: a:
\ No newline at end of file + Pressure Transducer Settings

BrewPiLess

Enable Pressure Transducer:
Use ADS1115
ADS1115 Gain/Max input voltage
Control Pressure:
Pressure Conversion parameters:
Pressure in PSI= (A0_reading - b) * a
b: a:
\ No newline at end of file diff --git a/htmljs/dist/spanish/pressure.htm.gz b/htmljs/dist/spanish/pressure.htm.gz index 0fa98fa89..7f041cd39 100644 Binary files a/htmljs/dist/spanish/pressure.htm.gz and b/htmljs/dist/spanish/pressure.htm.gz differ diff --git a/htmljs/dist/spanish/setup.htm b/htmljs/dist/spanish/setup.htm index 2ea606320..5749536bd 100644 --- a/htmljs/dist/spanish/setup.htm +++ b/htmljs/dist/spanish/setup.htm @@ -1,124 +1 @@ - Ajustes BrewPiLess!

BrewPiLess

Dispositivos instalados
Dispositivos detectados

Slot dispositivo
Hardware tipoSensor externo
PIN del controlador
Valor--
Función

Slot dispositivo
Hardware tipoSensor
Direccion
PIN del controlador
Valor
Función

Slot dispositivo
Hardware tipoPIN
Pin tipo
PIN del controlador
Valor
Función

Slot dispositivo
Hardware tipoActuador 1-wire
Direccion
Canal
PIN del controladorN
Valor
Función
Pin tipo
\ No newline at end of file + Ajustes BrewPiLess!

BrewPiLess

Dispositivos instalados
Dispositivos detectados

Slot dispositivo
Hardware tipoSensor externo
PIN del controlador
Valor--
Calibration
Función

Slot dispositivo
Hardware tipoHumidity Temp sensor
Sensor LocationChamber Room
Valor--
Calibration
Función

Slot dispositivo
Hardware tipoSensor
Direccion
PIN del controlador
Valor
Calibration
Función

Slot dispositivo
Hardware tipoPIN
Pin tipo
PIN del controlador
Valor
Calibration
Función

Slot dispositivo
Hardware tipoActuador 1-wire
Direccion
Canal
PIN del controladorN
Valor
Función
Pin tipo

Slot dispositivo
Hardware tipoBME280
Direccion
Valor
Calibration
Función
\ No newline at end of file diff --git a/htmljs/dist/spanish/setup.htm.gz b/htmljs/dist/spanish/setup.htm.gz index 2c86bde77..ea9f2aec4 100644 Binary files a/htmljs/dist/spanish/setup.htm.gz and b/htmljs/dist/spanish/setup.htm.gz differ diff --git a/htmljs/gruntfile.coffee b/htmljs/gruntfile.coffee index 77c66ffea..93d783a75 100755 --- a/htmljs/gruntfile.coffee +++ b/htmljs/gruntfile.coffee @@ -20,7 +20,7 @@ module.exports = (grunt) -> files: [{ expand: true cwd: './src/js' - src: '**/*.js' + src: '**/*.*' dest: './build/js/' }] @@ -42,16 +42,14 @@ module.exports = (grunt) -> 'dist/control_s.tmpl.htm': 'dist/control_s.tmpl.htm', 'dist/setup.tmpl.htm': 'dist/setup.tmpl.htm', 'dist/gravity.tmpl.htm': 'dist/gravity.tmpl.htm', + 'dist/gravity_e32.tmpl.htm': 'dist/gravity_e32.tmpl.htm', 'dist/logging.tmpl.htm': 'dist/logging.tmpl.htm', 'dist/config.tmpl.htm': 'dist/config.tmpl.htm', 'dist/pressure.tmpl.htm': 'dist/pressure.tmpl.htm', - 'dist/classic-index.tmpl.htm': 'dist/classic-index.tmpl.htm', - 'dist/classic-setup.tmpl.htm': 'dist/classic-setup.tmpl.htm', - 'dist/classic-gdc.tmpl.htm': 'dist/classic-gdc.tmpl.htm', - 'dist/classic-log.tmpl.htm': 'dist/classic-log.tmpl.htm', - 'dist/classic-config.tmpl.htm': 'dist/classic-config.tmpl.htm', 'dist/BPLLogViewer.tmpl.htm': 'dist/BPLLogViewer.tmpl.htm', - 'dist/BPLog.tmpl.htm': 'dist/BPLog.tmpl.htm' + 'dist/BPLogWebViewer.tmpl.htm': 'dist/BPLogWebViewer.tmpl.htm', + 'dist/lcd.htm': 'dist/lcd.htm', + 'dist/backup.htm': 'dist/backup.htm' }] dev: options: @@ -70,16 +68,14 @@ module.exports = (grunt) -> 'build/control_s.tmpl.html': 'build/control_s.tmpl.html', 'build/setup.tmpl.html': 'build/setup.tmpl.html', 'build/gravity.tmpl.html': 'build/gravity.tmpl.html', + 'build/gravity_e32.tmpl.html': 'build/gravity_e32.tmpl.html', 'build/logging.tmpl.html': 'build/logging.tmpl.html', 'build/config.tmpl.html': 'build/config.tmpl.html', 'build/pressure.tmpl.html': 'build/pressure.tmpl.html', - 'build/classic-index.tmpl.html': 'build/classic-index.tmpl.html', - 'build/classic-setup.tmpl.html': 'build/classic-setup.tmpl.html', - 'build/classic-gdc.tmpl.html': 'build/classic-gdc.tmpl.html', - 'build/classic-log.tmpl.html': 'build/classic-log.tmpl.html', - 'build/classic-config.tmpl.html': 'build/classic-config.tmpl.html', 'build/BPLLogViewer.tmpl.html': 'build/BPLLogViewer.tmpl.html', - 'build/BPLog.tmpl.html': 'build/BPLog.tmpl.html' + 'build/BPLogWebViewer.tmpl.html': 'build/BPLogWebViewer.tmpl.html', + 'build/lcd.html': 'build/lcd.html', + 'build/backup.html': 'build/backup.html' }] comboall: @@ -91,16 +87,14 @@ module.exports = (grunt) -> { 'dist/control_s.tmpl.htm': ['build/control_s.tmpl.html'] }, { 'dist/setup.tmpl.htm': ['build/setup.tmpl.html'] }, { 'dist/gravity.tmpl.htm': ['build/gravity.tmpl.html'] }, + { 'dist/gravity_e32.tmpl.htm': ['build/gravity_e32.tmpl.html'] }, { 'dist/logging.tmpl.htm': ['build/logging.tmpl.html'] }, { 'dist/config.tmpl.htm': ['build/config.tmpl.html'] }, { 'dist/pressure.tmpl.htm': ['build/pressure.tmpl.html'] }, - { 'dist/classic-index.tmpl.htm': ['build/classic-index.tmpl.html'] }, - { 'dist/classic-setup.tmpl.htm': ['build/classic-setup.tmpl.html'] }, - { 'dist/classic-gdc.tmpl.htm': ['build/classic-gdc.tmpl.html'] }, - { 'dist/classic-log.tmpl.htm': ['build/classic-log.tmpl.html'] }, - { 'dist/classic-config.tmpl.htm': ['build/classic-config.tmpl.html'] }, { 'dist/BPLLogViewer.tmpl.htm': ['build/BPLLogViewer.tmpl.html'] }, - { 'dist/BPLog.tmpl.htm': ['build/BPLog.tmpl.html'] } + { 'dist/BPLogWebViewer.tmpl.htm': ['build/BPLogWebViewer.tmpl.html'] }, + { 'dist/lcd.htm': ['build/lcd.html']}, + { 'dist/backup.htm': ['build/backup.html']} ] jshint: @@ -150,7 +144,7 @@ module.exports = (grunt) -> expand: true files: [{ expand: true - src: ['dist/english/*.htm','dist/chinese/*.htm','dist/spanish/*.htm','dist/portuguese-br/*.htm','dist/slovak/*.htm'] + src: ['dist/norwegian/*.htm','dist/english/*.htm','dist/chinese/*.htm','dist/spanish/*.htm','dist/portuguese-br/*.htm','dist/slovak/*.htm','dist/italian/*.htm','dist/lcd.htm','dist/classic-lcd.htm',] dest: '.' ext: '.htm.gz' }] @@ -164,22 +158,20 @@ module.exports = (grunt) -> 'build/control_s.tmpl.html': ['src/control_s.tmpl.html'] 'build/setup.tmpl.html': ['src/setup.tmpl.html'] 'build/gravity.tmpl.html': ['src/gravity.tmpl.html'] + 'build/gravity_e32.tmpl.html': ['src/gravity_e32.tmpl.html'] 'build/logging.tmpl.html': ['src/logging.tmpl.html'] 'build/config.tmpl.html': ['src/config.tmpl.html'], 'build/pressure.tmpl.html': ['src/pressure.tmpl.html'], - 'build/classic-index.tmpl.html': ['src/classic-index.tmpl.html'] - 'build/classic-setup.tmpl.html': ['src/classic-setup.tmpl.html'] - 'build/classic-gdc.tmpl.html': ['src/classic-gdc.tmpl.html'] - 'build/classic-log.tmpl.html': ['src/classic-log.tmpl.html'] - 'build/classic-config.tmpl.html': ['src/classic-config.tmpl.html'] 'build/BPLLogViewer.tmpl.html': ['src/BPLLogViewer.tmpl.html'] - 'build/BPLog.tmpl.html': ['src/BPLog.tmpl.html'] + 'build/BPLogWebViewer.tmpl.html': ['src/BPLogWebViewer.tmpl.html'] + 'build/lcd.html' : ['src/lcd.html'] + 'build/backup.html' : ['src/backup.html'] ] multi_lang_site_generator: default: options: - vocabs: ['english','chinese','spanish','portuguese-br', 'slovak'] + vocabs: ['english','chinese','spanish','portuguese-br', 'slovak', 'italian', 'norwegian'] vocab_directory: 'src/locales' output_directory: 'dist' template_directory: 'dist' @@ -190,16 +182,13 @@ module.exports = (grunt) -> 'control_s.htm': ['control_s.tmpl.htm'] 'setup.htm': ['setup.tmpl.htm'] 'gravity.htm': ['gravity.tmpl.htm'] + 'gravity_e32.htm': ['gravity_e32.tmpl.htm'] 'logging.htm': ['logging.tmpl.htm'] 'config.htm': ['config.tmpl.htm'] 'pressure.htm': ['pressure.tmpl.htm'] - 'classic-index.htm': ['classic-index.tmpl.htm'] - 'classic-setup.htm': ['classic-setup.tmpl.htm'] - 'classic-gdc.htm': ['classic-gdc.tmpl.htm'] - 'classic-log.htm': ['classic-log.tmpl.htm'] - 'classic-config.htm': ['classic-config.tmpl.htm'] - 'BPLog.htm': ['BPLog.tmpl.htm'] + 'BPLogWebViewer.htm': ['BPLogWebViewer.tmpl.htm'] 'BPLLogViewer.htm': ['BPLLogViewer.tmpl.htm'] + 'backup.htm': ['backup.htm'] ] diff --git a/htmljs/output.sh b/htmljs/output.sh index 6d53f3239..4f386f57b 100755 --- a/htmljs/output.sh +++ b/htmljs/output.sh @@ -9,16 +9,13 @@ if [ ! -d $OUTDIR ]; then fi rm $OUTDIR/*.h -htmlfiles=(index_s.htm.gz control_s.htm.gz config.htm.gz setup.htm.gz logging.htm.gz gravity.htm.gz pressure.htm.gz \ -classic-index.htm.gz classic-config.htm.gz classic-setup.htm.gz classic-gdc.htm.gz classic-log.htm.gz) +htmlfiles=(index_s.htm.gz control_s.htm.gz config.htm.gz setup.htm.gz logging.htm.gz gravity.htm.gz gravity_e32.htm.gz pressure.htm.gz backup.htm.gz) -variables=(data_index_htm_gz control_htm_gz config_htm_gz setup_htm_gz logging_htm_gz gravity_htm_gz pressure_htm_gz \ - data_c_index_htm_gz data_c_config_htm_gz data_c_setup_htm_gz data_c_gdc_htm_gz data_c_log_htm_gz) +variables=(data_index_htm_gz control_htm_gz config_htm_gz setup_htm_gz logging_htm_gz gravity_htm_gz gravity_htm_gz pressure_htm_gz backup_htm_gz) -outfiles=(index_htm control_htm config_htm setup_htm log_htm gdc_htm pressure_htm \ - c_index_htm c_config_htm c_setup_htm c_gdc_htm c_log_htm) +outfiles=(index_htm control_htm config_htm setup_htm log_htm gdc_htm gdc_e32_htm pressure_htm backup_htm) -languages=(english spanish portuguese-br slovak) +languages=(norwegian english spanish portuguese-br slovak chinese italian) gen_C_file() diff --git a/htmljs/package-lock.json b/htmljs/package-lock.json deleted file mode 100644 index 4516947d8..000000000 --- a/htmljs/package-lock.json +++ /dev/null @@ -1,3285 +0,0 @@ -{ - "name": "brewpiless-htmljs", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "optional": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "archiver": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz", - "integrity": "sha1-TyGU1tj5nfP1MeaIHxTxXVX6ryI=", - "dev": true, - "requires": { - "archiver-utils": "^1.3.0", - "async": "^2.0.0", - "buffer-crc32": "^0.2.1", - "glob": "^7.0.0", - "lodash": "^4.8.0", - "readable-stream": "^2.0.0", - "tar-stream": "^1.5.0", - "walkdir": "^0.0.11", - "zip-stream": "^1.1.0" - }, - "dependencies": { - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, - "requires": { - "lodash": "^4.17.10" - } - } - } - }, - "archiver-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz", - "integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=", - "dev": true, - "requires": { - "glob": "^7.0.0", - "graceful-fs": "^4.1.0", - "lazystream": "^1.0.0", - "lodash": "^4.8.0", - "normalize-path": "^2.0.0", - "readable-stream": "^2.0.0" - } - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - }, - "dependencies": { - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - } - } - }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "dev": true - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "optional": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true, - "optional": true - }, - "autoprefixer": { - "version": "7.2.6", - "resolved": "http://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.6.tgz", - "integrity": "sha512-Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ==", - "dev": true, - "requires": { - "browserslist": "^2.11.3", - "caniuse-lite": "^1.0.30000805", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^6.0.17", - "postcss-value-parser": "^3.2.3" - } - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true, - "optional": true - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true, - "optional": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bl": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", - "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", - "dev": true, - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "optional": true, - "requires": { - "inherits": "~2.0.0" - } - }, - "body": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz", - "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=", - "dev": true, - "requires": { - "continuable-cache": "^0.3.1", - "error": "^7.0.0", - "raw-body": "~1.1.0", - "safe-json-parse": "~1.0.1" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "browserslist": { - "version": "2.11.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", - "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30000792", - "electron-to-chromium": "^1.3.30" - } - }, - "buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true, - "optional": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "bytes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", - "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=", - "dev": true - }, - "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - } - }, - "caniuse-lite": { - "version": "1.0.30000887", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000887.tgz", - "integrity": "sha512-AHpONWuGFWO8yY9igdXH94tikM6ERS84286r0cAMAXYFtJBk76lhiMhtCxBJNBZsD6hzlvpWZ2AtbVFEkf4JQA==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true, - "optional": true - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chownr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", - "dev": true, - "optional": true - }, - "clean-css": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", - "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - } - }, - "cli": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz", - "integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=", - "dev": true, - "requires": { - "exit": "0.1.2", - "glob": "^7.1.1" - }, - "dependencies": { - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "coffeescript": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz", - "integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=", - "dev": true - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true - }, - "combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", - "dev": true, - "optional": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true - }, - "compress-commons": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.2.tgz", - "integrity": "sha1-UkqfEJA/OoEzibAiXSfEi7dRiQ8=", - "dev": true, - "requires": { - "buffer-crc32": "^0.2.1", - "crc32-stream": "^2.0.0", - "normalize-path": "^2.0.0", - "readable-stream": "^2.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "optional": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "^0.1.4" - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, - "continuable-cache": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz", - "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "crc": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", - "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", - "dev": true, - "requires": { - "buffer": "^5.1.0" - } - }, - "crc32-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz", - "integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=", - "dev": true, - "requires": { - "crc": "^3.4.4", - "readable-stream": "^2.0.0" - } - }, - "cross-spawn": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-0.2.9.tgz", - "integrity": "sha1-vWf5bAfvtjA7f+lMHpefiEeOCjk=", - "dev": true, - "requires": { - "lru-cache": "^2.5.0" - } - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, - "cycle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", - "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", - "dev": true, - "optional": true - }, - "dargs": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", - "integrity": "sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "dateformat": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz", - "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1", - "meow": "^3.3.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "optional": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "optional": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, - "detect-libc": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-0.2.0.tgz", - "integrity": "sha1-R/31ZzSKF+wl/L8LnkRjSKdvn7U=", - "dev": true, - "optional": true - }, - "diff": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/diff/-/diff-2.2.3.tgz", - "integrity": "sha1-YOr9DSjukG5Oj/ClLBIpUhAzv5k=", - "dev": true - }, - "dom-serializer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", - "dev": true, - "requires": { - "domelementtype": "~1.1.1", - "entities": "~1.1.1" - }, - "dependencies": { - "domelementtype": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", - "dev": true - }, - "entities": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", - "dev": true - } - } - }, - "domelementtype": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", - "dev": true - }, - "domhandler": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", - "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", - "dev": true, - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "duplexer": { - "version": "0.1.1", - "resolved": "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "optional": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "electron-to-chromium": { - "version": "1.3.70", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.70.tgz", - "integrity": "sha512-WYMjqCnPVS5JA+XvwEnpwucJpVi2+q9cdCFpbhxgWGsCtforFBEkuP9+nCyy/wnU/0SyLcLRIeZct9ayMGcXoQ==", - "dev": true - }, - "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, - "entities": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", - "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", - "dev": true - }, - "error": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", - "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", - "dev": true, - "requires": { - "string-template": "~0.2.1", - "xtend": "~4.0.0" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es6-promise": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.5.tgz", - "integrity": "sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg==", - "dev": true, - "optional": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - }, - "eventemitter2": { - "version": "0.4.14", - "resolved": "http://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", - "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", - "dev": true - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-template": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.1.tgz", - "integrity": "sha512-cebqLtV8KOZfw0UI8TEFWxtczxxC1jvyUvx6H4fyp1K1FN7A4Q+uggVUlOsI1K8AGU0rwOGqP8nCapdrw8CYQg==", - "dev": true, - "optional": true - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true, - "optional": true - }, - "extract-zip": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", - "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", - "dev": true, - "optional": true, - "requires": { - "concat-stream": "1.6.2", - "debug": "2.6.9", - "mkdirp": "0.5.1", - "yauzl": "2.4.1" - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", - "dev": true, - "optional": true - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true, - "optional": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true, - "optional": true - }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fd-slicer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", - "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", - "dev": true, - "optional": true, - "requires": { - "pend": "~1.2.0" - } - }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - } - }, - "file-sync-cmp": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz", - "integrity": "sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=", - "dev": true - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "findup-sync": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", - "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", - "dev": true, - "requires": { - "glob": "~5.0.0" - }, - "dependencies": { - "glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true, - "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "optional": true - }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "dev": true, - "optional": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "1.0.6", - "mime-types": "^2.1.12" - }, - "dependencies": { - "combined-stream": { - "version": "1.0.6", - "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "dev": true, - "optional": true, - "requires": { - "delayed-stream": "~1.0.0" - } - } - } - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "fs-extra": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz", - "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fstream": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", - "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dev": true, - "requires": { - "globule": "^1.0.0" - } - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "getobject": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz", - "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", - "dev": true, - "optional": true - }, - "glob": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", - "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.2", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globule": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", - "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", - "dev": true, - "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.10", - "minimatch": "~3.0.2" - }, - "dependencies": { - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "grunt": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.3.tgz", - "integrity": "sha512-/JzmZNPfKorlCrrmxWqQO4JVodO+DVd5XX4DkocL/1WlLlKVLE9+SdEIempOAxDhWPysLle6afvn/hg7Ck2k9g==", - "dev": true, - "requires": { - "coffeescript": "~1.10.0", - "dateformat": "~1.0.12", - "eventemitter2": "~0.4.13", - "exit": "~0.1.1", - "findup-sync": "~0.3.0", - "glob": "~7.0.0", - "grunt-cli": "~1.2.0", - "grunt-known-options": "~1.1.0", - "grunt-legacy-log": "~2.0.0", - "grunt-legacy-util": "~1.1.1", - "iconv-lite": "~0.4.13", - "js-yaml": "~3.5.2", - "minimatch": "~3.0.2", - "mkdirp": "~0.5.1", - "nopt": "~3.0.6", - "path-is-absolute": "~1.0.0", - "rimraf": "~2.6.2" - }, - "dependencies": { - "grunt-cli": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz", - "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=", - "dev": true, - "requires": { - "findup-sync": "~0.3.0", - "grunt-known-options": "~1.1.0", - "nopt": "~3.0.6", - "resolve": "~1.1.0" - } - } - } - }, - "grunt-combo-html-css-js": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/grunt-combo-html-css-js/-/grunt-combo-html-css-js-0.1.2.tgz", - "integrity": "sha1-Z6wG7PBNlwicVOSeaphIkQhQV74=", - "dev": true - }, - "grunt-contrib-compress": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/grunt-contrib-compress/-/grunt-contrib-compress-1.4.3.tgz", - "integrity": "sha1-Ac7/ucY39S5wgfRjdQmD0KOw+nM=", - "dev": true, - "requires": { - "archiver": "^1.3.0", - "chalk": "^1.1.1", - "iltorb": "^1.0.13", - "lodash": "^4.7.0", - "pretty-bytes": "^4.0.2", - "stream-buffers": "^2.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "grunt-contrib-copy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz", - "integrity": "sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=", - "dev": true, - "requires": { - "chalk": "^1.1.1", - "file-sync-cmp": "^0.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "grunt-contrib-htmlmin": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-htmlmin/-/grunt-contrib-htmlmin-2.4.0.tgz", - "integrity": "sha1-afSYGRmeKsiRUrv4r6XtMhykj5k=", - "dev": true, - "requires": { - "chalk": "^1.0.0", - "html-minifier": "~3.5.0", - "pretty-bytes": "^4.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "grunt-contrib-jshint": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-1.1.0.tgz", - "integrity": "sha1-Np2QmyWTxA6L55lAshNAhQx5Oaw=", - "dev": true, - "requires": { - "chalk": "^1.1.1", - "hooker": "^0.2.3", - "jshint": "~2.9.4" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "grunt-contrib-sass": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-sass/-/grunt-contrib-sass-1.0.0.tgz", - "integrity": "sha1-gGg4JRy8DhqU1k1RXN00z2dNcBs=", - "dev": true, - "requires": { - "async": "^0.9.0", - "chalk": "^1.0.0", - "cross-spawn": "^0.2.3", - "dargs": "^4.0.0", - "which": "^1.0.5" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "grunt-contrib-uglify": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-3.4.0.tgz", - "integrity": "sha512-UXsTpeP0pytpTYlmll3RDndsRXfdwmrf1tI/AtD/PrArQAzGmKMvj83aVt3D8egWlE6KqPjsJBLCCvfC52LI/A==", - "dev": true, - "requires": { - "chalk": "^1.0.0", - "maxmin": "^2.1.0", - "uglify-js": "~3.4.0", - "uri-path": "^1.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "grunt-contrib-watch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz", - "integrity": "sha512-yGweN+0DW5yM+oo58fRu/XIRrPcn3r4tQx+nL7eMRwjpvk+rQY6R8o94BPK0i2UhTg9FN21hS+m8vR8v9vXfeg==", - "dev": true, - "requires": { - "async": "^2.6.0", - "gaze": "^1.1.0", - "lodash": "^4.17.10", - "tiny-lr": "^1.1.1" - }, - "dependencies": { - "async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", - "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", - "dev": true, - "requires": { - "lodash": "^4.17.10" - } - } - } - }, - "grunt-known-options": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz", - "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==", - "dev": true - }, - "grunt-legacy-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz", - "integrity": "sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==", - "dev": true, - "requires": { - "colors": "~1.1.2", - "grunt-legacy-log-utils": "~2.0.0", - "hooker": "~0.2.3", - "lodash": "~4.17.5" - } - }, - "grunt-legacy-log-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz", - "integrity": "sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==", - "dev": true, - "requires": { - "chalk": "~2.4.1", - "lodash": "~4.17.10" - } - }, - "grunt-legacy-util": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz", - "integrity": "sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==", - "dev": true, - "requires": { - "async": "~1.5.2", - "exit": "~0.1.1", - "getobject": "~0.1.0", - "hooker": "~0.2.3", - "lodash": "~4.17.10", - "underscore.string": "~3.3.4", - "which": "~1.3.0" - } - }, - "grunt-multi-lang-site-generator": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/grunt-multi-lang-site-generator/-/grunt-multi-lang-site-generator-0.6.0.tgz", - "integrity": "sha1-JN4dlSSQ2sM5XA+lusCv9/XHkck=", - "dev": true, - "requires": { - "lodash": "~2.2.1" - }, - "dependencies": { - "lodash": { - "version": "2.2.1", - "resolved": "http://registry.npmjs.org/lodash/-/lodash-2.2.1.tgz", - "integrity": "sha1-ypNf0UqzwMhyq6zxmLnNpQFECGc=", - "dev": true - } - } - }, - "grunt-postcss": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/grunt-postcss/-/grunt-postcss-0.8.0.tgz", - "integrity": "sha1-jzCor2B5A84MRfAfC+QsYOMc6w4=", - "dev": true, - "requires": { - "chalk": "^1.0.0", - "diff": "^2.0.2", - "postcss": "^5.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" - }, - "dependencies": { - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "^1.0.0" - } - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "grunt-processhtml": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/grunt-processhtml/-/grunt-processhtml-0.4.1.tgz", - "integrity": "sha1-6WJL4ACRNBBkD1UPpeue3zK2/tc=", - "dev": true, - "requires": { - "async": "^1.5.2", - "htmlprocessor": "^0.2.4", - "lodash.clonedeep": "^4.3.2" - } - }, - "gzip-size": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", - "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=", - "dev": true, - "requires": { - "duplexer": "^0.1.1" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true, - "optional": true - }, - "har-validator": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", - "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", - "dev": true, - "optional": true, - "requires": { - "ajv": "^5.3.0", - "har-schema": "^2.0.0" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, - "hasha": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", - "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", - "dev": true, - "optional": true, - "requires": { - "is-stream": "^1.0.1", - "pinkie-promise": "^2.0.0" - } - }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true - }, - "hooker": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", - "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", - "dev": true - }, - "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", - "dev": true - }, - "html-minifier": { - "version": "3.5.20", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.20.tgz", - "integrity": "sha512-ZmgNLaTp54+HFKkONyLFEfs5dd/ZOtlquKaTnqIWFmx3Av5zG6ZPcV2d0o9XM2fXOTxxIf6eDcwzFFotke/5zA==", - "dev": true, - "requires": { - "camel-case": "3.0.x", - "clean-css": "4.2.x", - "commander": "2.17.x", - "he": "1.1.x", - "param-case": "2.1.x", - "relateurl": "0.2.x", - "uglify-js": "3.4.x" - } - }, - "htmlparser2": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", - "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", - "dev": true, - "requires": { - "domelementtype": "1", - "domhandler": "2.3", - "domutils": "1.5", - "entities": "1.0", - "readable-stream": "1.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "htmlprocessor": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/htmlprocessor/-/htmlprocessor-0.2.6.tgz", - "integrity": "sha1-rJ9HfsU3g7jXprZ9e2w1HqXXPTU=", - "dev": true, - "requires": { - "lodash": "~2.4.1" - }, - "dependencies": { - "lodash": { - "version": "2.4.2", - "resolved": "http://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", - "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", - "dev": true - } - } - }, - "http-parser-js": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", - "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=", - "dev": true - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", - "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", - "dev": true - }, - "iltorb": { - "version": "1.3.10", - "resolved": "https://registry.npmjs.org/iltorb/-/iltorb-1.3.10.tgz", - "integrity": "sha512-nyB4+ru1u8CQqQ6w7YjasboKN3NQTN8GH/V/eEssNRKhW6UbdxdWhB9fJ5EEdjJfezKY0qPrcwLyIcgjL8hHxA==", - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^0.2.0", - "nan": "^2.6.2", - "node-gyp": "^3.6.2", - "prebuild-install": "^2.3.0" - } - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true, - "optional": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" - } - }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true, - "optional": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true, - "optional": true - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "js-base64": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", - "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==", - "dev": true - }, - "js-yaml": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz", - "integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=", - "dev": true, - "requires": { - "argparse": "^1.0.2", - "esprima": "^2.6.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true - }, - "jshint": { - "version": "2.9.6", - "resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.6.tgz", - "integrity": "sha512-KO9SIAKTlJQOM4lE64GQUtGBRpTOuvbrRrSZw3AhUxMNG266nX9hK2cKA4SBhXOj0irJGyNyGSLT62HGOVDEOA==", - "dev": true, - "requires": { - "cli": "~1.0.0", - "console-browserify": "1.1.x", - "exit": "0.1.x", - "htmlparser2": "3.8.x", - "lodash": "~4.17.10", - "minimatch": "~3.0.2", - "phantom": "~4.0.1", - "phantomjs-prebuilt": "~2.1.7", - "shelljs": "0.3.x", - "strip-json-comments": "1.0.x", - "unicode-5.2.0": "^0.7.5" - }, - "dependencies": { - "strip-json-comments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz", - "integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=", - "dev": true - } - } - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true, - "optional": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true, - "optional": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true, - "optional": true - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "kew": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/kew/-/kew-0.7.0.tgz", - "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=", - "dev": true, - "optional": true - }, - "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.9" - } - }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - } - }, - "livereload-js": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.3.0.tgz", - "integrity": "sha512-j1R0/FeGa64Y+NmqfZhyoVRzcFlOZ8sNlKzHjh4VvLULFACZhn68XrX5DFg2FhMvSMJmROuFxRSa560ECWKBMg==", - "dev": true - }, - "load-grunt-tasks": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-3.5.2.tgz", - "integrity": "sha1-ByhWEYD9IP+KaSdQWFL8WKrqDIg=", - "dev": true, - "requires": { - "arrify": "^1.0.0", - "multimatch": "^2.0.0", - "pkg-up": "^1.0.0", - "resolve-pkg": "^0.1.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", - "dev": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", - "dev": true - }, - "lru-cache": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", - "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", - "dev": true - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, - "maxmin": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/maxmin/-/maxmin-2.1.0.tgz", - "integrity": "sha1-TTsiCQPZXu5+t6x/qGTnLcCaMWY=", - "dev": true, - "requires": { - "chalk": "^1.0.0", - "figures": "^1.0.1", - "gzip-size": "^3.0.0", - "pretty-bytes": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "pretty-bytes": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz", - "integrity": "sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - } - }, - "mime-db": { - "version": "1.36.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", - "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==", - "dev": true - }, - "mime-types": { - "version": "2.1.20", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", - "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", - "dev": true, - "requires": { - "mime-db": "~1.36.0" - } - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true - }, - "multimatch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", - "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", - "dev": true, - "requires": { - "array-differ": "^1.0.0", - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "minimatch": "^3.0.0" - } - }, - "nan": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz", - "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==", - "dev": true, - "optional": true - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "requires": { - "lower-case": "^1.1.1" - } - }, - "node-abi": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.4.4.tgz", - "integrity": "sha512-DQ9Mo2mf/XectC+s6+grPPRQ1Z9gI3ZbrGv6nyXRkjwT3HrE0xvtvrfnH7YHYBLgC/KLadg+h3XHnhZw1sv88A==", - "dev": true, - "optional": true, - "requires": { - "semver": "^5.4.1" - } - }, - "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "dev": true, - "optional": true, - "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "dependencies": { - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true, - "optional": true - } - } - }, - "noop-logger": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", - "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=", - "dev": true, - "optional": true - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true, - "optional": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true, - "optional": true - }, - "phantom": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/phantom/-/phantom-4.0.12.tgz", - "integrity": "sha512-Tz82XhtPmwCk1FFPmecy7yRGZG2btpzY2KI9fcoPT7zT9det0CcMyfBFPp1S8DqzsnQnm8ZYEfdy528mwVtksA==", - "dev": true, - "optional": true, - "requires": { - "phantomjs-prebuilt": "^2.1.16", - "split": "^1.0.1", - "winston": "^2.4.0" - } - }, - "phantomjs-prebuilt": { - "version": "2.1.16", - "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz", - "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=", - "dev": true, - "optional": true, - "requires": { - "es6-promise": "^4.0.3", - "extract-zip": "^1.6.5", - "fs-extra": "^1.0.0", - "hasha": "^2.2.0", - "kew": "^0.7.0", - "progress": "^1.1.8", - "request": "^2.81.0", - "request-progress": "^2.0.1", - "which": "^1.2.10" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-up": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz", - "integrity": "sha1-Pgj7RhUlxEIWJKM7n35tCvWwWiY=", - "dev": true, - "requires": { - "find-up": "^1.0.0" - } - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "postcss-value-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", - "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", - "dev": true - }, - "prebuild-install": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.5.3.tgz", - "integrity": "sha512-/rI36cN2g7vDQnKWN8Uzupi++KjyqS9iS+/fpwG4Ea8d0Pip0PQ5bshUNzVwt+/D2MRfhVAplYMMvWLqWrCF/g==", - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.3", - "expand-template": "^1.0.2", - "github-from-package": "0.0.0", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "node-abi": "^2.2.0", - "noop-logger": "^0.1.1", - "npmlog": "^4.0.1", - "os-homedir": "^1.0.1", - "pump": "^2.0.1", - "rc": "^1.1.6", - "simple-get": "^2.7.0", - "tar-fs": "^1.13.0", - "tunnel-agent": "^0.6.0", - "which-pm-runs": "^1.0.0" - }, - "dependencies": { - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "dev": true, - "optional": true - } - } - }, - "pretty-bytes": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", - "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true - }, - "progress": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", - "integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=", - "dev": true, - "optional": true - }, - "psl": { - "version": "1.1.29", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", - "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", - "dev": true, - "optional": true - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "optional": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true, - "optional": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "raw-body": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", - "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=", - "dev": true, - "requires": { - "bytes": "1", - "string_decoder": "0.10" - }, - "dependencies": { - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "dev": true - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, - "optional": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "request-progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-2.0.1.tgz", - "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", - "dev": true, - "optional": true, - "requires": { - "throttleit": "^1.0.0" - } - }, - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - }, - "resolve-from": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", - "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", - "dev": true - }, - "resolve-pkg": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-0.1.0.tgz", - "integrity": "sha1-AsyZNBDik2livZcWahsHfalyVTE=", - "dev": true, - "requires": { - "resolve-from": "^2.0.0" - } - }, - "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, - "requires": { - "glob": "^7.0.5" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-json-parse": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz", - "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "semver": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "shelljs": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz", - "integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=", - "dev": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "simple-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=", - "dev": true, - "optional": true - }, - "simple-get": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", - "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", - "dev": true, - "optional": true, - "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "spdx-correct": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", - "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz", - "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==", - "dev": true - }, - "split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "optional": true, - "requires": { - "through": "2" - } - }, - "sprintf-js": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.1.tgz", - "integrity": "sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw=", - "dev": true - }, - "sshpk": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", - "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", - "dev": true, - "optional": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "dev": true, - "optional": true - }, - "stream-buffers": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", - "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=", - "dev": true - }, - "string-template": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", - "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=", - "dev": true - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "optional": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true, - "optional": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" - } - }, - "tar-fs": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz", - "integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==", - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.0.1", - "mkdirp": "^0.5.1", - "pump": "^1.0.0", - "tar-stream": "^1.1.2" - }, - "dependencies": { - "pump": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", - "dev": true, - "optional": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "dev": true, - "requires": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - } - }, - "throttleit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", - "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=", - "dev": true, - "optional": true - }, - "through": { - "version": "2.3.8", - "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true, - "optional": true - }, - "tiny-lr": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz", - "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==", - "dev": true, - "requires": { - "body": "^5.1.0", - "debug": "^3.1.0", - "faye-websocket": "~0.10.0", - "livereload-js": "^2.3.0", - "object-assign": "^4.1.0", - "qs": "^6.4.0" - }, - "dependencies": { - "debug": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.5.tgz", - "integrity": "sha512-D61LaDQPQkxJ5AUM2mbSJRbPkNs/TmdmOeLAi1hgDkpDfIfetSrjmWhccwtuResSwMbACjx/xXQofvM9CE/aeg==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } - } - }, - "to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", - "dev": true - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, - "optional": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - } - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true, - "optional": true - }, - "uglify-js": { - "version": "3.4.9", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", - "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", - "dev": true, - "requires": { - "commander": "~2.17.1", - "source-map": "~0.6.1" - } - }, - "underscore.string": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz", - "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=", - "dev": true, - "requires": { - "sprintf-js": "^1.0.3", - "util-deprecate": "^1.0.2" - } - }, - "unicode-5.2.0": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/unicode-5.2.0/-/unicode-5.2.0-0.7.5.tgz", - "integrity": "sha512-KVGLW1Bri30x00yv4HNM8kBxoqFXr0Sbo55735nvrlsx4PYBZol3UtoWgO492fSwmsetzPEZzy73rbU8OGXJcA==", - "dev": true - }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", - "dev": true - }, - "uri-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz", - "integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true, - "optional": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "walkdir": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz", - "integrity": "sha1-oW0CXrkxvQO1LzCMrtD0D86+lTI=", - "dev": true - }, - "websocket-driver": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", - "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", - "dev": true, - "requires": { - "http-parser-js": ">=0.4.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-pm-runs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", - "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "winston": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.4.tgz", - "integrity": "sha512-NBo2Pepn4hK4V01UfcWcDlmiVTs7VTB1h7bgnB0rgP146bYhMxX0ypCz3lBOfNxCO4Zuek7yeT+y/zM1OfMw4Q==", - "dev": true, - "optional": true, - "requires": { - "async": "~1.0.0", - "colors": "1.0.x", - "cycle": "1.0.x", - "eyes": "0.1.x", - "isstream": "0.1.x", - "stack-trace": "0.0.x" - }, - "dependencies": { - "async": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", - "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", - "dev": true, - "optional": true - }, - "colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", - "dev": true, - "optional": true - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true - }, - "yauzl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", - "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", - "dev": true, - "optional": true, - "requires": { - "fd-slicer": "~1.0.1" - } - }, - "zip-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz", - "integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=", - "dev": true, - "requires": { - "archiver-utils": "^1.3.0", - "compress-commons": "^1.2.0", - "lodash": "^4.8.0", - "readable-stream": "^2.0.0" - } - } - } -} diff --git a/htmljs/src/BPLLogViewer.tmpl.html b/htmljs/src/BPLLogViewer.tmpl.html index 4c185d84c..126d17273 100644 --- a/htmljs/src/BPLLogViewer.tmpl.html +++ b/htmljs/src/BPLLogViewer.tmpl.html @@ -5,895 +5,27 @@ - BrewPiLess Log Viewer v3.0 + BrewPiLess Log Viewer v4.4 - + + + - + - +
-

BPL LogViewer v3.0

+

BPL LogViewer v4.2

@@ -910,8 +42,19 @@

BPL LogViewer