diff --git a/RELEASE.md b/RELEASE.md index 72a48d5b..93010565 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,5 +1,32 @@ # RELEASE NOTES +## v4.3.1 - Control APIs + +* Upgrade to pyPowerwall v0.8.4 proxy t55 +* Fix /pod API to add time_remaining_hours and backup_reserve_percent for cloud mode. +* Dashboard: Removed Powerwall temperature panel in default dashboard (data is no longer available with latest Firmware) +* Added GET `/control/mode` and `/control/reserve` APIs to retrieve operating mode and back reserve settings +* Added POST `/control/mode` and `/control/reserve` APIs to set operating mode and back reserve settings. Requires running setup and setting PW_CONTROL_SECRET for pypowerwall in `pypowerwall.env`. Use with caution. + +```bash +# Setup cloud mode for pypowerwall container +docker exec -it pypowerwall python3 -m pypowerwall setup -email=example@example.com + +MODE=self_consumption +RESERVE=20 +PW_CONTROL_SECRET=mySecretKey + +# Set Mode +curl -X POST -d "value=$MODE&token=$PW_CONTROL_SECRET" http://localhost:8675/control/mode + +# Set Reserve +curl -X POST -d "value=$RESERVE&token=$PW_CONTROL_SECRET" http://localhost:8675/control/reserve + +# Read Settings +curl http://localhost:8675/control/mode +curl http://localhost:8675/control/reserve +``` + ## v4.3.0 - pyPowerwall 0.8.2 * Upgrade to pyPowerwall proxy v0.8.2 - Major refactoring of code in https://github.com/jasonacox/pypowerwall/pull/77 and https://github.com/jasonacox/pypowerwall/pull/78 and addition of new Alerts. diff --git a/VERSION b/VERSION index 80895903..f77856a6 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.3.0 +4.3.1 diff --git a/dashboards/dashboard.json b/dashboards/dashboard.json index 5407fd70..330299cb 100644 --- a/dashboards/dashboard.json +++ b/dashboards/dashboard.json @@ -6380,614 +6380,6 @@ "title": "Powerwall Vitals", "type": "row" }, - { - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "never", - "spanNulls": true, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "links": [], - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green", - "value": null - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "celsius" - }, - "overrides": [ - { - "matcher": { - "id": "byName", - "options": "Solar Energy" - }, - "properties": [ - { - "id": "color", - "value": { - "fixedColor": "yellow", - "mode": "fixed" - } - } - ] - } - ] - }, - "gridPos": { - "h": 5, - "w": 24, - "x": 0, - "y": 58 - }, - "id": 35, - "interval": "", - "options": { - "legend": { - "calcs": [ - "max", - "min" - ], - "displayMode": "table", - "placement": "right", - "showLegend": true - }, - "tooltip": { - "mode": "multi", - "sort": "none" - } - }, - "pluginVersion": "9.1.2", - "targets": [ - { - "alias": "Powerwall1", - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "measurement": "http", - "orderByTime": "ASC", - "policy": "pwtemps", - "refId": "A", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "PW1_temp" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] - }, - { - "alias": "Powerwall2", - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "http", - "orderByTime": "ASC", - "policy": "pwtemps", - "refId": "B", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "PW2_temp" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] - }, - { - "alias": "Powerwall3", - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "http", - "orderByTime": "ASC", - "policy": "pwtemps", - "refId": "C", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "PW3_temp" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] - }, - { - "alias": "Powerwall4", - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "http", - "orderByTime": "ASC", - "policy": "pwtemps", - "refId": "D", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "PW4_temp" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] - }, - { - "alias": "Powerwall5", - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "http", - "orderByTime": "ASC", - "policy": "pwtemps", - "refId": "E", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "PW5_temp" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] - }, - { - "alias": "Powerwall6", - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "http", - "orderByTime": "ASC", - "policy": "pwtemps", - "refId": "F", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "PW6_temp" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] - }, - { - "alias": "Powerwall7", - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "http", - "orderByTime": "ASC", - "policy": "pwtemps", - "refId": "G", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "PW7_temp" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] - }, - { - "alias": "Powerwall8", - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "http", - "orderByTime": "ASC", - "policy": "pwtemps", - "refId": "H", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "PW8_temp" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] - }, - { - "alias": "Powerwall9", - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "http", - "orderByTime": "ASC", - "policy": "pwtemps", - "refId": "I", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "PW9_temp" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] - }, - { - "alias": "Powerwall10", - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "http", - "orderByTime": "ASC", - "policy": "pwtemps", - "refId": "J", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "PW10_temp" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] - }, - { - "alias": "Powerwall11", - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "http", - "orderByTime": "ASC", - "policy": "pwtemps", - "refId": "K", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "PW11_temp" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] - }, - { - "alias": "Powerwall12", - "datasource": { - "type": "influxdb", - "uid": "${DS_INFLUXDB}" - }, - "groupBy": [ - { - "params": [ - "$__interval" - ], - "type": "time" - }, - { - "params": [ - "null" - ], - "type": "fill" - } - ], - "hide": false, - "measurement": "http", - "orderByTime": "ASC", - "policy": "pwtemps", - "refId": "L", - "resultFormat": "time_series", - "select": [ - [ - { - "params": [ - "PW12_temp" - ], - "type": "field" - }, - { - "params": [], - "type": "mean" - } - ] - ], - "tags": [] - } - ], - "title": "Powerwall Temps ", - "transparent": true, - "type": "timeseries" - }, { "datasource": { "type": "influxdb", @@ -7178,7 +6570,7 @@ "h": 5, "w": 24, "x": 0, - "y": 63 + "y": 58 }, "id": 55, "options": { @@ -8363,7 +7755,7 @@ "h": 5, "w": 24, "x": 0, - "y": 68 + "y": 63 }, "id": 38, "interval": "", @@ -9388,7 +8780,7 @@ "h": 5, "w": 24, "x": 0, - "y": 73 + "y": 68 }, "id": 61, "interval": "", @@ -11464,7 +10856,7 @@ "h": 1, "w": 24, "x": 0, - "y": 78 + "y": 73 }, "id": 65, "panels": [], @@ -11631,7 +11023,7 @@ "h": 10, "w": 24, "x": 0, - "y": 79 + "y": 74 }, "id": 68, "options": { @@ -11681,7 +11073,7 @@ "h": 1, "w": 24, "x": 0, - "y": 89 + "y": 84 }, "id": 57, "panels": [], @@ -11878,7 +11270,7 @@ "h": 6, "w": 24, "x": 0, - "y": 90 + "y": 85 }, "hideTimeOverride": false, "id": 59, @@ -12248,7 +11640,7 @@ "h": 7, "w": 24, "x": 0, - "y": 96 + "y": 91 }, "hideTimeOverride": false, "id": 60, @@ -12582,6 +11974,6 @@ "timezone": "${VAR_TZ}", "title": "Powerwall - Power Flow", "uid": "RSabAvRRzZ", - "version": 54, + "version": 55, "weekStart": "" } diff --git a/powerwall.yml b/powerwall.yml index 3e558135..d4ae2936 100644 --- a/powerwall.yml +++ b/powerwall.yml @@ -18,7 +18,7 @@ services: - influxdb.env pypowerwall: - image: jasonacox/pypowerwall:0.8.2t53 + image: jasonacox/pypowerwall:0.8.4t55 container_name: pypowerwall hostname: pypowerwall restart: unless-stopped diff --git a/upgrade.sh b/upgrade.sh index 196a4928..477f7a41 100755 --- a/upgrade.sh +++ b/upgrade.sh @@ -6,7 +6,7 @@ set -e # Set Globals -VERSION="4.3.0" +VERSION="4.3.1" CURRENT="Unknown" COMPOSE_ENV_FILE="compose.env" INFLUXDB_ENV_FILE="influxdb.env"