Han-lukijaa.Cozifyllä on useampi laite tarjoamassa, mitä heidän laitettaan tarkoitat? Ion? Zen? Han?
Follow along with the video below to see how to install our site as a web app on your home screen.
Huomio: This feature may not be available in some browsers.
Han-lukijaa.Cozifyllä on useampi laite tarjoamassa, mitä heidän laitettaan tarkoitat? Ion? Zen? Han?
Tarkoitin sillä lailla että olisi syytä selvittää yksi Shellyn tavallisimmin käytössä olevan yhteensopivuus. Listassa oli paljon sellaisia mistä en ole kuullutkaan. Itse ajattelin että on pakko olla sopiva kun paljon muitakin Shellyltä, ja eihän niiden välillä varmaan suuria eroja ohjelmissa.Tuohan oli ammattimaisin vastaus mitä voi saada. Kun eivät tue niin eivät väitä tukevansa. Se ei estä sitä ettetkö itse voisi sitä tukea ja saada toimimaan.
Tarkoitin sillä lailla että olisi syytä selvittää yksi Shellyn tavallisimmin käytössä olevan yhteensopivuus. Listassa oli paljon sellaisia mistä en ole kuullutkaan. Itse ajattelin että on pakko olla sopiva kun paljon muitakin Shellyltä, ja eihän niiden välillä varmaan suuria eroja ohjelmissa.
Han-lukijaa.
Tuossa menee nyt pari asiaa sekaisin.Tarkoitin sillä lailla että olisi syytä selvittää yksi Shellyn tavallisimmin käytössä olevan yhteensopivuus. Listassa oli paljon sellaisia mistä en ole kuullutkaan. Itse ajattelin että on pakko olla sopiva kun paljon muitakin Shellyltä, ja eihän niiden välillä varmaan suuria eroja ohjelmissa.
Juuri tätä asiaa ajattelin että pitäisi olla toimiva, kun he vastasivat ettei ole yhteensopiva. En sitten ymmärtänyt täysin mistä oli kyse. Ymmärrän kyllä ettei laite itse ohjaa mitään.Saat tehtyä PRO 3 laitteeseen skriptin, mikä lukee Cozify HAN laitteen IP osoitteesta dataa ja sen perusteella tehtyä Pro3 laitteeseen ohjaukset.
Olisiko ollut tämä:näin jossakin FB ryhmässä postauksen ja skriptin mikä asennettu Shellyn plugiin ja se lukee Cozify Han laitteesta energiatietoja, niin samalla skriptillä saa ohjattua pro relettä
Sama dokumentti, mutta oli jossakin toisessa paikasas. En tuota foorumia itse seuraa.
Tuon mukaan se tutkii onko missään vaiheessa yli tietty kuorma. Mitä jos haluaa ohjata kaikkien vaiheiden yhteismäärällä, ja silloin katkoa joku isompi kuluttaja? (Tehomaksu)Sama dokumentti, mutta oli jossakin toisessa paikasas.
Minulla on Pro3 ohjaamassa kattilan vastuksia. Siihen ajattelin laittaa skriptin, ja se sitten tarvittaessa katkoo vastukset pois. Vastuksista tulee jo tehomaksu vartissa (jos esitys menee läpi) mutta voisi yrittää pitää se pienenä. Tässä nyt vaan sitä ajan takaa että Shelly ei ilmeisesti saa tietoa yhteiskuormasta Cozifyi:ltä, vaan Cozify tarkastelee vaiheet erikseen. Miten saa Shellylle ynnättyä kaikki vaiheet yhteen? Voiko sellaista skriptiä tehdä?Käytännössä pitää olla yks ”master” laite mikä seuraa kulutusta ja ohjaa sen jälkeen yksittäisiä laitteita päälle/pois tai säätää tehoa jotta kuorma pysyy halutussa rajassa.
Jos useampi laite seuraa kuormaa yhtä aikaa ja niillä kaikilla on oma ohjaus tietämättä muista niin kuormien ohjaus voi olla aika villiä, kun kaikki ohjailee kuormia päälle/pois ilman mitään kokonaiskuvaa
Pitäisi tuntea tuon Cozify HAN laitteen antaman datan rakenne.Minulla on Pro3 ohjaamassa kattilan vastuksia. Siihen ajattelin laittaa skriptin, ja se sitten tarvittaessa katkoo vastukset pois. Vastuksista tulee jo tehomaksu vartissa (jos esitys menee läpi) mutta voisi yrittää pitää se pienenä. Tässä nyt vaan sitä ajan takaa että Shelly ei ilmeisesti saa tietoa yhteiskuormasta Cozifyi:ltä, vaan Cozify tarkastelee vaiheet erikseen.
Tässä kaksi erinäköistä skriptiä, molemmat Cozifyin sivuilta. Mikähän ero. Olisikohan tuo toinen kokonaisamppeereille.Pitäisi tuntea tuon Cozify HAN laitteen antaman datan rakenne.
Itselläni on tuollainen Cozifyn laite, mutta ei ole mittaria mihin sen asentaa.
Tuo tehomaksu on uutisoitu taas niin että se olisi tulossa pakotettuna kaikille automaattisesti käyttöön. Moni on suorastaan paniikissa tuon kanssa. Esityksessähän mainitaan, että tarjolla pitää aina olla myös tehomaksuton vaihtoehto.Minulla on Pro3 ohjaamassa kattilan vastuksia. Siihen ajattelin laittaa skriptin, ja se sitten tarvittaessa katkoo vastukset pois. Vastuksista tulee jo tehomaksu vartissa (jos esitys menee läpi) mutta voisi yrittää pitää se pienenä. Tässä nyt vaan sitä ajan takaa että Shelly ei ilmeisesti saa tietoa yhteiskuormasta Cozifyi:ltä, vaan Cozify tarkastelee vaiheet erikseen. Miten saa Shellylle ynnättyä kaikki vaiheet yhteen? Voiko sellaista skriptiä tehdä?
Mitä luulet, jättääkö joku verkkoyhtiö käyttämättä mahdollisuuden tehdä enemmän rahaa? Tuo tehomaksuton vaihtoehto tulee todennäköisesti olemaan suhteessa paljon kalliimpi kuin tehomaksullinen.Moni on suorastaan paniikissa tuon kanssa. Esityksessähän mainitaan, että tarjolla pitää aina olla myös tehomaksuton vaihtoehto.
Täällä alueella toimivalla siirtoyhtiöllä ei vielä tänä päivänä ole tarjolla yhtään tehomaksullista vaihtoehtoa. En niin tarkasti ole lukenut onko sen tarjoamiselle tulossa pakko.
Sähkön siirtäminen on monopolitoimintaa ja sen vuoksi hinnoittelu on säädetty ja sitä valvotaan (https://energiavirasto.fi/siirtohinnoittelun-valvonta). Eli ei mitään övereitä pysty perimään. Ainakin meillä on aika takapajuinen tuo sähköyhtiö. Ei esim tarjoa varttihinnoiteltua sähköä pörssiasiakkaille jne. Luulen että ei tule tehomaksut ihan vähällä käyttöön.Mitä luulet, jättääkö joku verkkoyhtiö käyttämättä mahdollisuuden tehdä enemmän rahaa? Tuo tehomaksuton vaihtoehto tulee todennäköisesti olemaan suhteessa paljon kalliimpi kuin tehomaksullinen.
Esim. täällä meillä Helen Sähköverkoilla on tuo tehomaksu ollut jo vuosia käytössä aikasiirrossa, mutta yleissiirto on juurikin tämä tehomaksuton vaihtoehto. Juu, kWh hinta on korkeampi, mutta vastaavasti kk-maksu on pienempi tuossa yleissiirrossa, joka tekee sen monessa kohteessa aikasiirtoa edullisemmaksi jos ei ole sitä kuormaa jota voisi siirtää yösähkölle.Mitä luulet, jättääkö joku verkkoyhtiö käyttämättä mahdollisuuden tehdä enemmän rahaa? Tuo tehomaksuton vaihtoehto tulee todennäköisesti olemaan suhteessa paljon kalliimpi kuin tehomaksullinen.
~11 MWh kulutuksella ja omalla kulutusprofiililla totesin Helenin yleissiirron vs aikasiirron (+tehomaksut) kustannusten olevan suunnilleen samoja ja päädyin sen takia ottamaan Heleniltä tuon yleissiirron. Oli yksi muuttuja vähemmän funtsattavaksi.Tuo Helenin tehomaksullisen ja yleissiirron leikkauspiste on 24200kWh vuosikulutuksella, kun maksimi kuorma on 20kW yöllä ja kulutusjakauma on päivä 30%/70% yö. Tuon vuosikulutusrajan jälkeen vasta yösiirto tulee edullisemmaksi
Totta, ei ole täälläkään käytössä. Lähinnä ajattelin tulevaisuutta, mikäli jostain syystä tulisi sähköauto pihaan, silloin voi olla tarve rajoittaa 6kW vastuksia jo sulakkeiden vuoksi.Tuo tehomaksu on uutisoitu taas niin että se olisi tulossa pakotettuna kaikille automaattisesti käyttöön. Moni on suorastaan paniikissa tuon kanssa. Esityksessähän mainitaan, että tarjolla pitää aina olla myös tehomaksuton vaihtoehto.
Täällä alueella toimivalla siirtoyhtiöllä ei vielä tänä päivänä ole tarjolla yhtään tehomaksullista vaihtoehtoa. En niin tarkasti ole lukenut onko sen tarjoamiselle tulossa pakko.
Ei cozify, mutta tuommoinen koodi hakee Homewizardin mittarilta vaihekohtaiset ja kokonaistehon shellylle.Minulla on Pro3 ohjaamassa kattilan vastuksia. Siihen ajattelin laittaa skriptin, ja se sitten tarvittaessa katkoo vastukset pois. Vastuksista tulee jo tehomaksu vartissa (jos esitys menee läpi) mutta voisi yrittää pitää se pienenä. Tässä nyt vaan sitä ajan takaa että Shelly ei ilmeisesti saa tietoa yhteiskuormasta Cozifyi:ltä, vaan Cozify tarkastelee vaiheet erikseen. Miten saa Shellylle ynnättyä kaikki vaiheet yhteen? Voiko sellaista skriptiä tehdä?
// Shelly Gen2 (Pro 1) mJS – HWE-P1 (API v1) → Shelly Cloud UI
// Hakee active_power_w, total_import_kwh, ja vaihekohtaiset W (L1/L2/L3)
var P1_IP = "192.168.xx.xxx"; // ← Vaihda oman P1 Meterin IP:ksi
// Number-komponenttien ID:t Shellyssä:
var ID_ACTIVE_POWER_W = "200";
var ID_TOTAL_IMPORT_KWH = "201";
var ID_PHASE1_W = "202";
var ID_PHASE2_W = "203";
var ID_PHASE3_W = "204";
// Perus päivitysväli ms (oletus 10 s)
var BASE_POLL_MS = 10000;
// Maksimi backoff ms (esim. 5 min)
var MAX_POLL_MS = 5 * 60 * 1000;
// Debug-tila (true = more logging)
var DEBUG = false;
// --- Sisäinen tila ---
var lastValues = {}; // cache: id -> viimeksi asetettu arvo (number)
var consecutiveErrors = 0;
var currentPollMs = BASE_POLL_MS;
// --- Helperit ---
function dbg() {
if (!DEBUG) return;
// Tulostetaan kaikki argumentit yhdellä rivillä (yhteensopivampi kuin rest-param)
try {
print(Array.prototype.join.call(arguments, " "));
} catch (e) {
for (var i = 0; i < arguments.length; i++) {
print(arguments[i]);
}
}
}
function isFiniteNumber(v) {
return typeof v === "number" && isFinite(v);
}
function toNumberIfPossible(v) {
if (isFiniteNumber(v)) return v;
if (typeof v === "string") {
var n = parseFloat(v);
if (isFinite(n)) return n;
}
return null;
}
function setNumberIfChanged(id, rawValue, options) {
options = options || {};
if (!id) return;
var n = toNumberIfPossible(rawValue);
if (n === null) return;
// Valinnainen pyöristys esim. kWh:lle
if (options.round !== undefined && typeof options.round === "number") {
var factor = Math.pow(10, options.round);
n = Math.round(n * factor) / factor;
}
// Jos sama arvo kuin viimeksi, älä lähetä turhaan
var prev = lastValues[id];
if (prev === n) {
dbg("No change for", id, n);
return;
}
// Päivitä cache heti (estää rippuvia rinnakkaisia päivityksiä)
lastValues[id] = n;
try {
Shelly.call("Number.Set", { id: id, value: n }, function (_res, ec, em) {
if (ec !== 0) {
print("Number.Set error:", id, em);
// Halutessa voisi perua cache-päivityksen virheen sattuessa
} else {
dbg("Number.Set", id, n);
}
});
} catch (e) {
print("Exception in Number.Set:", e);
}
}
// --- P1-kysely ---
function fetchP1v1() {
dbg("Fetching P1:", P1_IP);
Shelly.call("HTTP.Request", {
url: "http://" + P1_IP + "/api/v1/data",
method: "GET",
timeout: 7
}, function (res, code, msg) {
if (code !== 0 || !res || !res.body) {
print("HTTP error:", code, msg || "");
consecutiveErrors++;
// eksponentiaalinen backoff
currentPollMs = Math.min(BASE_POLL_MS * Math.pow(2, consecutiveErrors), MAX_POLL_MS);
dbg("Increasing poll interval to", currentPollMs, "ms (errors:", consecutiveErrors, ")");
scheduleNext(currentPollMs);
return;
}
try {
var d = JSON.parse(res.body);
// Hetkellinen teho (W)
setNumberIfChanged(ID_ACTIVE_POWER_W, d.active_power_w);
// Kokonaistuonti (kWh) — pyöristetään esimerkkinä 3 desimaaliin
setNumberIfChanged(ID_TOTAL_IMPORT_KWH, d.total_import_kwh, { round: 3 });
// Vaihekohtaiset tehot (W)
setNumberIfChanged(ID_PHASE1_W, d.active_power_l1_w);
setNumberIfChanged(ID_PHASE2_W, d.active_power_l2_w);
setNumberIfChanged(ID_PHASE3_W, d.active_power_l3_w);
// Onnistunut haku: nollaa virheet ja poll-interval takaisin perusarvoon
if (consecutiveErrors > 0) {
dbg("P1 reachable again, resetting error count");
}
consecutiveErrors = 0;
currentPollMs = BASE_POLL_MS;
} catch (e) {
print("JSON parse error:", e);
consecutiveErrors++;
currentPollMs = Math.min(BASE_POLL_MS * Math.pow(2, consecutiveErrors), MAX_POLL_MS);
}
scheduleNext(currentPollMs);
});
}
var timerId = null;
function scheduleNext(ms) {
if (timerId) Timer.clear(timerId);
timerId = Timer.set(ms, false, fetchP1v1);
}
// Aloitus: käynnistä ensimmäinen pyyntö vähän viiveellä (ei heti bootissa)
scheduleNext(1000);
Tiedoksi:Tässä kaksi erinäköistä skriptiä, molemmat Cozifyin sivuilta. Mikähän ero. Olisikohan tuo toinen kokonaisamppeereille.
No tuollahan on tuo maxCurrent, johon poimitaan se yksittäisen vaiheen tieto, joka ei saa ylittää 20. Tuon sijaan nuo vaiheet data.i pitää laskea yhteen, jos haluaa sille kok.teholle asettaa rajat. Tosin Math.sum.apply() ei ole olemassa, niin tuo summa pitää laskea ihan vain vaikka lyhkäsellä loopilla lisäämällä ne arvot toisiinsa ja toki se summa pitää sitten muistaa myös nollata jossain kohtaa, jotta ei 1s kuluttua seuraavalla kierroksella vain lasketa yhä lisää siihen samaan summaanEdit: Eipä toimikaan. Shelly saa vain eri vaiheiden tiedot ja katkoo mikäli joku niistä ylittää asetetun arvon. Miten saisi laskettua yhteen Cozifyin kaikki kolme. En tiedä mikä ero toiminnassa noiden kahden skriptin välillä.
Edit2: Kokeilin toista skriptiä, sama toiminta. Shelly ei saa kokonaisamppeereja.
No tuollahan on tuo maxCurrent, johon poimitaan se yksittäisen vaiheen tieto, joka ei saa ylittää 20. Tuon sijaan nuo vaiheet data.i pitää laskea yhteen, jos haluaa sille kok.teholle asettaa rajat. Tosin Math.sum.apply() ei ole olemassa, niin tuo summa pitää laskea ihan vain vaikka lyhkäsellä loopilla lisäämällä ne arvot toisiinsa ja toki se summa pitää sitten muistaa myös nollata jossain kohtaa, jotta ei 1s kuluttua seuraavalla kierroksella vain lasketa yhä lisää siihen samaan summaan![]()
voisko yksinkertaisesti muuttaa skriptiä ja käyttää tehoa (W) rajana
Sellainen huomio että Cozify laskee amppeerit ottamatta huomioon tehokerrointa. Taas Shelly pro3em laskee amppeerit näennäistehon mukaan. Kumpi on sitten oikea tapa esittää.Teoriassa ei voi kun W ei kerro ampeereista. Amperreita voi olla enemmän kuin W antaa ymmärtää.
Käytännössä se voi hyvinkin riittää koska isot tehot nykyaikaina ovat hyvällä tehokertoimella. Varauksella siis.
"Tontilla" se varmaan pysyy. Pitää kokeilla muuttaa skriptiä ja testata jossain vaiheessa.Teoriassa ei voi kun W ei kerro ampeereista. Amperreita voi olla enemmän kuin W antaa ymmärtää.
Käytännössä se voi hyvinkin riittää koska isot tehot nykyaikaina ovat hyvällä tehokertoimella. Varauksella siis.
Sellainen huomio että Cozify laskee amppeerit ottamatta huomioon tehokerrointa. Taas Shelly pro3em laskee amppeerit näennäistehon mukaan. Kumpi on sitten oikein.
Amppeeritieto mitä Cozify saa/ottaa mittarilta (kirjoitin tyhmästi että laskee) ei sisällä tehokerrointa, vaan on suoraan laskettu watti jaettuna voltilla. Kun katson Shellyn tietoja siinä on myös tehokerroin ja näennäisteho. Shellyn tapauksessa lasketaan amppeerit watti jaettuna tehokerroin jaettuna voltti. Eli energialaitoksen mittari ei ota huomioon tehokerrointa datassa mikä on tarjolla Cozifyille.Ei sen pitäisi laskea yhtään mitään koska tieto tulee mittarista ja on varmasti riittävän oikein., Miksi se tekisi jotain noin typerää? Ampeereilla ei edes ole tehokerrointa.
No se joskus oli nyt, tässä on toimiva skripti joka perustuu kokonaiswatteihin, katkoo 400W kohdalla:"Tontilla" se varmaan pysyy. Pitää kokeilla muuttaa skriptiä ja testata jossain vaiheessa.
Amppeeritieto mitä Cozify saa/ottaa mittarilta (kirjoitin tyhmästi että laskee) ei sisällä tehokerrointa, vaan on suoraan laskettu watti jaettuna voltilla.
Eli energialaitoksen mittari ei ota huomioon tehokerrointa datassa mikä on tarjolla Cozifyille.
Saahan energialaitoksen mittarista ulos kVArh myös haluttaessa. Ainakin Landis & gyr E360 antaa ne.Energialaitoksen mittari mittaa ampeerit ja voltit ja laskee watit edellämainituista. Se ilmoittaa watit ja wattitunnit kaikilta neljältä kvadrantilta niin, että siitä voi sitten kukin laskea tehokertoimen miten tykkää. Tehokerrointa mittarit ei laske eikä ilmoita.
Tässä kaksi kuvaa, Cozify ja Shelly. Tätä tarkoitin.Energialaitoksen mittari mittaa ampeerit ja voltit ja laskee watit edellämainituista. Se ilmoittaa watit ja wattitunnit kaikilta neljältä kvadrantilta niin, että siitä voi sitten kukin laskea tehokertoimen miten tykkää. Tehokerrointa mittarit ei laske eikä ilmoita.
Saahan energialaitoksen mittarista ulos kVArh myös haluttaessa. Ainakin Landis & gyr E360 antaa ne.
Mutta ymmärsit nyt mitä tarkoitin alunperin kun vertasin Cozify ja Shelly? Niiden ilmoittamat ampeerit eivät kohtaa koska Shelly laskee näennäistehon mukaan.kVArh on tosiaan yksikkö kahdelle niistä neljästä lasketusta lukemasta mitä mittarit ilmoittaa. Kaksi muuta ovat kWh yksiköisiä. Laskutapa sinänsä on sama mutta eri kvadrantit.
katso liitettä 110669
Nämä siis tulevat mittarilta ja lisäksi vastaavat joka vaiheelta vielä lisäksi. Lisäksi tulee jännitteet ja virrat joka vaiheelta.
Cozify sitten tekee luvuilla mitä tekee. Shelly näyttää samoja tietoja hieman eri nimikkeillä.
Mutta ymmärsit nyt mitä tarkoitin alunperin kun vertasin Cozify ja Shelly? Niiden ilmoittamat ampeerit eivät kohtaa koska Shelly laskee näennäistehon mukaan.