Один из частых клиентов спрашивает нас, как реализовать простое, но умное решение для зарядки электромобиля только по самому дешевому тарифу на электроэнергию, используя биржевые цены Nordpool.
Ответ очень прост. Это решение можно использовать не только для зарядки электромобилей, но и для нагрева воды или других нужд.
Принцип работы довольно прост. Интеллектуальное реле управляет контактом, включает/выключает его в соответствии со сценарием и должно управлять контактом CP на зарядной станции.
Скрипт
let CONFIG = {
api_endpoint: "https://dashboard.elering.ee/api/nps/price/lt/current",
switchId: 0, // Jūsų rėlės ID. Jeigu vieno kontakto, bus 0. Jeigu kelių, pagal numerį
price_limit: 200, // EUR/MWh. Svarbu, kaina be PVM.
update_time: 60000, // 1 minutė. Kas kiek laiko tikrinsime kainas ?
reverse_switching: false // Įjungia rėlę, jeigu atitinka Jūsų kainą, jeigu ne, išjungia.
};
let current_price = null;
let last_hour = null;
let last_price = null;
let state = null;
function getCurrentPrice() {
Shelly.call(
"http.get",
{
url: CONFIG.api_endpoint,
},
function (response, error_code, error_message) {
if (error_code !== 0) {
print(error_message);
return;
}
current_price = JSON.parse(response.body).data[0]["price"];
print("Updated current price!");
}
);
}
function changeSwitchState(state) {
let state = state;
if(state === false) {
print("Switching off!");
} else if(state === true) {
print("Switching on!");
} else {
print("Unknown state");
}
Shelly.call(
"Switch.Set",
{
id: CONFIG.switchId,
on: state,
},
function (response, error_code, error_message) {
if (error_code !== 0) {
print(error_message);
return;
}
}
);
}
Timer.set(CONFIG.update_time, true, function (userdata) {
Shelly.call("Sys.GetStatus", {}, function (resp, error_code, error_message) {
if (error_code !== 0) {
print(error_message);
return;
} else {
let hour = resp.time[0] + resp.time[1];
//atnaujiname kainas
if (last_hour !== hour) {
print("update hour");
last_hour = hour;
getCurrentPrice();
}
//Tinkriname ar nustatyta kaina
if (current_price !== null) {
//Standartinis ijungimas. Išjungiame, jeigu virisijame limita
if(CONFIG.reverse_switching === false) {
if (current_price >= CONFIG.price_limit) {
//isjungiame, jeigu virs limito
changeSwitchState(false);
} else {
//ijungiame, jeigu tenkina salygas limito
changeSwitchState(true);
}
}
//reversinis variantas.
if(CONFIG.reverse_switching === true) {
if (current_price >= CONFIG.price_limit) {
//ijungiame, jeigu netenkina limito salygos
changeSwitchState(true);
} else {
//isjungiame, jeigu tenkina limito salygas
changeSwitchState(false);
}
}
} else {
print("Current price is null. Waiting for price update!");
}
print(current_price);
}
});
});
Вам понадобится интеллектуальное реле, мы рекомендуем интеллектуальное реле Shelly. После прямого подключения к ретранслятору в разделе Scripts скопируйте сам скрипт и не забудьте запустить его после сохранения.
ABB B21 112-100 Счетчик электроэнергии, модульный, DIN-рейка, 1 фаза, 65 A, 220 – 240 В переменного тока, класс B, импульсный выход, RS485
€194.81ABB B23 112-100, Счетчик электроэнергии, модульный, на DIN-рейку, 3 фазы, 65 A
€204.49ABB Terra AC 11kW + контроллер питания B23 112-100 Комплект для поддержки ENA
Первоначальная цена составляла €1,034.55.€900.24Текущая цена: €900.24.ABB Terra AC с кабелем типа 2
€643.72 – €744.15ABB Terra DC Настенный блок 22,5 кВт CCS2 + Chademo
€11,495.00ABL eMH1 Basic 11 кВт
€326.70Alpitronic Hypercharger HYC150 DC
€60,487.90Alpitronic Hypercharger HYC50 DC Wallbox
€20,570.00CHNT DTSU666
€157.30