Last active
April 13, 2023 09:00
-
-
Save danielolsson100/1c99bae4e2605540854a73b1e13a6309 to your computer and use it in GitHub Desktop.
ferroamp Read and set Import threshold from HA
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- id: '1665917079136' | |
alias: Ferroamp - Set Import threshold = -1000 | |
description: '' | |
trigger: [] | |
condition: [] | |
action: | |
- service: shell_command.set_import_threshold | |
data: | |
threshold: -1000 | |
mode: single |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sensor: | |
- platform: command_line | |
name: ferroamp_cloudapi_grid_import_threshold | |
command: |- | |
loginform='{"email":"[email protected]","password":"YourPasswordHere"}'; | |
baseurl='https://portal.ferroamp.com'; | |
id=enter facility ID number ie 1234 | |
cookie=$(curl -H 'Content-Type: application/json' -d $loginform -ksc - $baseurl/login -o /dev/null); | |
echo "${cookie}" | curl -ksb - $baseurl/service/ems-config/v1/current/$id | |
value_template: |- | |
{% set json = value_json %} | |
{{json.emsConfig.data.grid.thresholds.high}} | |
scan_interval: 3610 | |
unit_of_measurement: 'W' | |
shell_command: | |
set_import_threshold: bash /config/shell/ferroamp_cloudapi_import.sh {{ threshold }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Shell script for Home Assistant with ferroamp energyhub to update Import Threshold without GUI by Daniel Olsson | |
# Disclamer: Totally unsupported by ferroamp support - use at own risk. | |
if [ -n "$1" ]; then | |
# create session cookie and get current running parameters | |
loginform='{"email":"[email protected]","password":"YourPasswordHere"}'; | |
baseurl='https://portal.ferroamp.com'; | |
id=enter facility ID number ie 1234 | |
cookie=$(curl -H 'Content-Type: application/json' -d $loginform -ksc - $baseurl/login -o /dev/null); | |
response=$(echo "${cookie}" | curl -ksb - $baseurl/service/ems-config/v1/current/$id) | |
else | |
echo "Import Threshold parameter not supplied. It must be in range between -11000 to 11000" | |
exit 0 | |
fi | |
# Modify responsedata and remove header and validate data between -11000 and 11000 | |
import_threshold=$1 | |
if ((import_threshold <= 11000 && import_threshold >= -11000)); then | |
body_tmp=$(echo $response | jq ".emsConfig.data.grid.thresholds.high = $import_threshold" | jq '.emsConfig' | jq 'del(.header)') | |
else | |
echo "Import Threshold value is not in range between -11000 and 11000" | |
exit 0 | |
fi | |
# create correct body to post, replace data with payload and create compressed string as body output | |
body=$(echo ${body_tmp/"data"/"payload"} | jq -c) | |
# Update portal with new POST data - https://portal.ferroamp.com/service/ems-config/v1/commands/set/$id | |
response=$(echo "${cookie}" | curl -ksb - $baseurl/service/ems-config/v1/commands/set/$id -d $body -H "Content-Type: application/json") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment