jisotalo / shelly-porssisahko

Nordpool-pörssisähköohjaus Shelly-releisiin - Nordpool price control for Shelly relays
https://jisotalo.fi/shelly-porssisahko
GNU Affero General Public License v3.0
38 stars 11 forks source link

Useampikanavainen rele - oma ohjaus eri kanaville (Pro4PM) #16

Open tkkoivula opened 9 months ago

tkkoivula commented 9 months ago

Moi,

Täällä tämä nyt ollut ajossa Pro4PM:ssa jokusen viikon, ihan loistavaa :) Paitsi että ei taida saada ohjattua kuin yhtä relettä? Pro4PM:ssä siis 4 kanavaa. Onnistuisko miten helposti lisätä samaan skriptiin useamman releen ohjaukset? Nykyisellään ohjaan yhtä relettä tällä skriptillä ja muita kanavia joko shellyn omalla ajastimella tai HA:lla.

jisotalo commented 9 months ago

Moro ja kiitoksia!

Tästä olikin keskustelua facebookissa jossain kohti: https://www.facebook.com/groups/shellytuki/posts/3686797774886830/?comment_id=3687768558123085&reply_comment_id=3690163787883562

Olisi kyllä hyvä idea, mutta vaatii järjestelmän ja asetusten uudelleensuunnittelun. En usko että vielä hetkeen semmoista joudan tekemään. Itse kun olen käyttänyt vain yhden lähdön laitteita, en osannut lähteä tämmöistä heti alusta lähtien miettimään.

Laitetaan siis listalle ja katsotaan! :)

EDIT: Jos muiden releiden ohjaukset voivat totella täysin samaa kaavaa, tai skriptaus onnistuu, voi väliaikaista helpotusta pystyä tekemään myös tuolla uudella USER_OVERRIDE-funktiolla. Eli laittaa sen sisälle koodit joilla asetellaan myös muita lähtöjä. https://github.com/jisotalo/shelly-porssisahko#lis%C3%A4toiminnot-ja-omat-skriptit

tkkoivula commented 9 months ago

Arvelinkin ettei se ihan copy/paste -tyyliin mene. :) Mutta hyvä näinkin, tämä web-käyttöliittymä on paljon parempi kuin esim. spot-hinta.fi -skriptiin tehtävät asetukset. Lisäksi tästä näkee selvästi mitä tapahtuu vuorokauden aikana.

tkkoivula commented 9 months ago

Skriptin pystyy näemmä asentamaan kahteen kertaan eri nimillä. http://192.168.14.174/script/1#tab-config http://192.168.14.174/script/3#tab-config Sotkeekohan noiden conffit toisiaan? Pitääpä tutkia. :)

jisotalo commented 9 months ago

Itsekin tykkään tuosta että näkee selkeästi mitä tapahtuu, eikä ole riippuvainen muiden palveluista. Siksi tämä tulikin tehtyä.

Valitettavasti konffit sotkee toisiaan vaikka voikin asentaa useaan kertaan. Periaatteessa toiminnee kunnes Shelly käynnistyy uudelleen, sitten molemmilla on taas samat asetukset.

Ratkaisu on se että määrittää toiselle skriptille asetukset koodin puolelta, tällöin asetuksia ei vaan voi tallentaa selaimen kautta (mutta valvonta toimii). Eli jos asennat toisen skriptin library-napilla ja valitsekin sieltä ESIMERKKI: Pörssisähköohjaus ja asetukset skriptissä. Sitten käsin kirjoittelet halutut asetukset https://github.com/jisotalo/shelly-porssisahko#esimerkki-asetukset-suoraan-skriptiin-ilman-k%C3%A4ytt%C3%B6liittym%C3%A4%C3%A4

EDIT: Voit apinoida asetukset jo olemassa olevassa avaamalla osoitteen http://ip-osoite/script/1?r=s ja sieltä sen konffi löytyykin c:n alta JSONista.

tkkoivula commented 9 months ago

Kopsasin jo skriptin notepadiin, find/replace porssi-config > porssi-conf2. Nyt on ajossa samassa shellyssä kaksi skriptiä eri asetuksilla. Päivitettävyyden kannalta ei tietty ole paras mahdollinen ratkaisu. image Sitten se idea: "porssi-config" key voisi olla nimeltään "porssi-config-x" jossa x= skriptin numero?

tkkoivula commented 9 months ago

eikä ole riippuvainen muiden palveluista.

Tämä ehdottomasti minullakin se syy miksi haluan hoitaa ainakin tärkeät ohjaukset itse shellyssä enkä homeassistantissa.

jisotalo commented 9 months ago

Hyvä että sait toimimaan, noin asetusten täytyisikin olla jotta tukee useaa skriptiä.

Tuommoinen muutos täytyisi vaan julkaista versiossa 3 tai sitten varmistaa takaisinpäin yhteensopivuus, ettei asetukset katoa päivittäessä.

tkkoivula commented 9 months ago

Ei se ihan noin helposti onnistunut, asetuksia ei saanut tallennettua. No asensin nodejs:n ubuntuun, muutin konffi-keyn nimen sorsiin ja käänsin itselleni ikioman version 2.8.2.1. :)

USER_OVERRIDE voisi ehkä olla hyvä paikka määritellä konffi-keyn nimi. Säilyisi yhteensopivuus taaksepäin ja päivittäminen olisi suhteellisen helppo operaatio.

jisotalo commented 9 months ago

Kyllä tuo pitäisi toimia, haluatko laittaa koodin mitä kokeilit?

Periaatteessa voisi kyllä olla ihan asetus käyttöliittymällä, jossa voi määrittää mihin asetukset tallennetaan.

tkkoivula commented 9 months ago

Kahteen tiedostoon / kolmeen kohtaan muutin porssi-config -> borssi-config. :) Käännetystä löytyi vain kahdesta paikasta tuo "porssi-config"

diff -r ./shelly-porssisahko.js /home/tommi/src/shelly-porssisahko/src/shelly-porssisahko.js
85c85
<     v: "2.8.2",
---
>     v: "2.8.2.1",
283c283
<     Shelly.call("KVS.Set", { key: "porssi-config", value: _.c }, function (res, err, msg, cb) {
---
>     Shelly.call("KVS.Set", { key: "borssi-config", value: _.c }, function (res, err, msg, cb) {
309c309
<   Shelly.call('KVS.Get', { key: "porssi-config" }, function (res, err, msg, isLoop) {
---
>   Shelly.call('KVS.Get', { key: "borssi-config" }, function (res, err, msg, isLoop) {
993c993
< loop();
\ No newline at end of file
---
> loop();
diff -r ./statics/tab-config.js /home/tommi/src/shelly-porssisahko/src/statics/tab-config.js
93c93
<       const res = await getData(`${URL}/rpc/KVS.Set?key="porssi-config"&value=${(JSON.stringify(c))}`);
---
>       const res = await getData(`${URL}/rpc/KVS.Set?key="borssi-config"&value=${(JSON.stringify(c))}`);
jisotalo commented 9 months ago

Uudessä 2.9.0 versiossa voi ohjata useampaa lähtöä samaan aikaan. Tämä ei siis kuitenkaan ratkaise tätä ongelmaa, missä halutaan ohjata lähtöjä eri asetuksilla.

tkkoivula commented 9 months ago

Hyvä homma, eteenpäin mennään. :) Ja kun näitä nyt saa itse kääntäen ajoon samaan purkkiin kaksi, se riittää minulle toistaiseksi! :)

jisotalo commented 7 months ago

@tkkoivula

Uutta versiota pukkaa, muistia menee nyt huipussaan noin 15kt. Eli ei välttämättä kaksi skriptiä enää pyöri samaan aikaan.

Kannattaa pysyä siis vanhassa :)

Tuon useamman ohjauksen versio on työn alla mutta siinä on aika paljon tekemistä.

tkkoivula commented 7 months ago

Uutta versiota pukkaa, muistia menee nyt huipussaan noin 15kt. Eli ei välttämättä kaksi skriptiä enää pyöri samaan aikaan. Kannattaa pysyä siis vanhassa :) Tuon useamman ohjauksen versio on työn alla mutta siinä on aika paljon tekemistä.

Jees. Nuo kaksi 2.8.2 -versiota on toimineet ihan hienosti yhdessä purkissa. :)

Näkeekö tuon muistinkäytön jostain?

jisotalo commented 7 months ago

Muistinkäytön näkee URL-osoitteesta http://ip-osoite/rpc/Shelly.GetStatus: image

Itse asiassa yksi ratkaisu tähän olisi se, että tekee oman buildin, missä historia ja/tai huomisen hintojen haku on poistettu käytöstä. Tällöin muistia käytetään vähemmän.

KSkalliswatti commented 7 months ago

Kahden päivän kokemuksella..... 👍 Mutta mulla 2-kanavainen Sähkökatkon jälkeen toimii viimeisen talletetun asetuksen mukaan. Ei tarvitse muuta, kun valita toimimattoman puolen nettisivu ja määritellä ja tallettaa. Ja molemmat toimii. Näin amatöörinä ajattelen ,että laitetaan parametrejä kanavien määrän verran talteen (jonnekkin mihin mahtuu) ja koodari ajaa kanavien määrän verran parametrejä aina bootin jälkeen. Jatkakaa...seuraan mielenkiinnolla ja 1-kanavainen varmaan toimii hienosti.

jisotalo commented 7 months ago

@KSkalliswatti Kiva kuulla että pelittää!

Tosiaan otin työn alle tuon oman version tekemisen, mikä tallentaa asetukset skriptinumerokohtaisesti. Näin pystyisi ajamaan useaa rinnakkain helposti.

Luultavasti ainakin seuraavan päivän hinnat pitää jättää pois, jotta muisti varmasti riittää.

KSkalliswatti commented 7 months ago

Odotellaan. Ei mulla kiirettä. Jätä 1-kanavainen omaksi versioksi. Huominen on hyvä nähdä. Ja taidan käyttää 1-kanavaisia. Oma ip on selvempi.

jisotalo commented 2 weeks ago

Tämä on yhä ajankohtainen, sillä en ole saanut aikaiseksi tehdä parannusta. Lisään tähän ohjeen, jonka lähetin eräälle aiheesta kysyjälle.

Eli näin saa useamman skriptin pyörimään samaan aikaan omilla asetuksilla:


Eli jos haluaa kikkailla, tuon saa toimimaan useilla asetuksilla siten, että laittaa toisen skriptin ja muokkaa siitä kaikki "porssi-config" -> esim "porssi-config2". image

Tällöin vaan on teoriassa vaarana, että muisti loppuu, jos skriptit tekevät asioita juuri samaan aikaan.

Sen jälkeen molemmat skriptit konfiguroidaan selaimella omilta sivuiltaan, toinen esim http://ip-osoite/script/1 ja toinen http://ip-osoite/script/2 .

tkkoivula commented 2 weeks ago

image

Mulla on tuo itsekäännetty toinen skripti ollut nyt ajossa hyvän aikaa. Versio 2.12.5. Hyvin on toiminut kun ei koske :). Muisti lienee kuitenkin aika lailla vähissä, muutaman kerran olen huomannut että skripti kaatuu kun menee asetuksiin.

Shellyn firmiksen päivitin hetki sitten tuohon versioon 1.4.2.

tkkoivula commented 2 weeks ago

image

jisotalo commented 2 weeks ago

Hyvä kuulla!

Kyllähän tää olis ihan ratkaistavissa. Ei vaan ole itsellä ollut tarvetta, joten ajankäyttö kohdistunut muuhun. Ja ei ole myöskään useampikanavaista relettä.