Open tkkoivula opened 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
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.
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. :)
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.
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. Sitten se idea: "porssi-config" key voisi olla nimeltään "porssi-config-x" jossa x= skriptin numero?
eikä ole riippuvainen muiden palveluista.
Tämä ehdottomasti minullakin se syy miksi haluan hoitaa ainakin tärkeät ohjaukset itse shellyssä enkä homeassistantissa.
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ä.
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.
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.
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))}`);
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.
Hyvä homma, eteenpäin mennään. :) Ja kun näitä nyt saa itse kääntäen ajoon samaan purkkiin kaksi, se riittää minulle toistaiseksi! :)
@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ä.
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?
Muistinkäytön näkee URL-osoitteesta http://ip-osoite/rpc/Shelly.GetStatus
:
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.
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.
@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ää.
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.
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".
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 .
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.
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ä.
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.