jisotalo / shelly-porssisahko

Nordpool-pörssisähköohjaus Shelly-releisiin
https://jisotalo.fi/shelly-porssisahko
GNU Affero General Public License v3.0
40 stars 13 forks source link

Ohjaus luulee välillä hinnan olevan 0 c/kWh #33

Closed jisotalo closed 6 days ago

jisotalo commented 1 week ago

Ilmeisesti 3. versiossa on bugi, jonka johdosta ohjaus ei aina toimi oikein. En ole itse saanut tätä aikaiseksi, mutta tästä ongelmasta on tullut kaksi raporttia.

Ilmeisesti hintana näkyy 0 c/kWh, vaikka päivän hintatiedot on oikein. Ohjaus toimii 0 c/kWh mukaan. Eli jostain syystä aktiivinen hinta ei päivity oikein.

Jos jollain on tästä lisätietoja niin kiinnostaisi saada! Erityisesti data alla olevassa osoitteessa kiinnostaisi: http://ip-osoite/script/1?r=s&i=0

Koitan selvitellä syytä.

image

jisotalo commented 1 week ago

Vianhaku etenee.

Selvisi debuggauksen myötä, että Shelly kertoo kellonajaksi bootin jälkeen edellispäivän jonkun kellonajan.

Mielestäni tämä on ennen ollut niin, että kello on vuodessa 1970 ennen kuin aika on saatu NTP:ltä. Koodikin luottaa siihen, että kello on tiedossa jos vuosi on > 2000.

Nyt pitää vaan miettiä miten tästä selviää kunnialla. Nyt tosiaan haetaan edellispäivän hinnat ja sen myötä skripti sekoaa.

tkkoivula commented 1 week ago

Meillä oli eilen vartin sähkökatkos. Ihmettelin kun scripti sanoo olleensa käynnissä 5 päivää.

tkkoivula commented 1 week ago

"Käynnistetty 20.11.2024 18:57:35 (käynnissä 0.6 päivää) - versio 3.0.0" Noin sanoo heti buuttauksen jälkeen. Toiminnassa en ole huomannut vikaa. Seuraillaan tilannetta. Ja Shellyn kellohan on nyt siis noin 08:19.

jisotalo commented 1 week ago

Joo kiitos. Tämä on kyllä erikoinen juttu. Laitoin Shellyn foorumille aiheesta myös https://community.shelly.cloud/topic/3444-time-from-the-past-and-an-ntp-issue-when-starting-up/

Näyttää siltä tosiaan että Shelly on käynnistyksen jälkeen "jossain ajassa vuodelta 2024", kunnes saa ajan netistä. Jos ei saa aikaa, skripti ei tiedä mistään että aika on pielessä.

Täytyy vielä testata vanhemmalla firmiksellä, mutta oon kyllä 90% varma että aika oli aina vuodessa 1970 kunnes aika saatiin netistä. Eli oli helppo varmistaa onko kello tiedossa.

Tein kyllä jo parannuksia, kuten että kellon muuttuessa haetaan hinnat uudelleen ja ajetaan logiikka. Mutta ei ratkaise sitä ongelmaa että tulee sähkökatko, netti katkeaa eikä palaudu, ja Shelly luulee kellon olevan jotain ihan muuta..

tkkoivula commented 1 week ago

Sikäli ikävä homma näiden shellyjen kanssa ettei niille voi syöttää apujännitettä. Kaikki muut vehkeet kyllä pysyy päällä tuommoisen pienen katkon ajan. :)

vettenj commented 1 week ago

Eilen illalla oli kaksi sähkökatkoa, eka kesti minuutin ja toinen 6 minuuttia ja lisäksi siinä välissä valot räpsyivät useamman kerran. Silti skripti näyttää nyt näin, ikäänkuin mitään katkoksia ei olisi ollut, kestääkö Shelly Pro3 omissa virroissaan (elko?) hengissä 6 minuuttia? "Käynnistetty 12.11.2024 00:24:03 (käynnissä 9.5 päivää) - versio 3.0.0" Hinnat ovat näkyneet oikein aina (<>0), kun olen niitä katsonut.

KSkalliswatti commented 1 week ago

Joo sopivaan hetkeen sopivan lyhyt sähkökatko saa 0centin nyt-hinnan. Käynnistetty pvm pysyy samana

jisotalo commented 1 week ago

Eilen illalla oli kaksi sähkökatkoa, eka kesti minuutin ja toinen 6 minuuttia ja lisäksi siinä välissä valot räpsyivät useamman kerran. Silti skripti näyttää nyt näin, ikäänkuin mitään katkoksia ei olisi ollut, kestääkö Shelly Pro3 omissa virroissaan (elko?) hengissä 6 minuuttia? "Käynnistetty 12.11.2024 00:24:03 (käynnissä 9.5 päivää) - versio 3.0.0" Hinnat ovat näkyneet oikein aina (<>0), kun olen niitä katsonut.

En kyllä usko että pysyy. Tuo lienee sama ongelma eli Shelly kaivaa jostain käynnistyessää vanhan aikatiedon.

Joo sopivaan hetkeen sopivan lyhyt sähkökatko saa 0centin nyt-hinnan. Käynnistetty pvm pysyy samana

Jeps. Täytyy pistää päivitystä sisään, mutta vielä on ratkaisemattomia asioita. Näillä kyllä saisi korjattua jo osaksi.

vettenj commented 1 week ago

Tuo siis hakee ajan NTP-palvelusta. Koodasin tällaiseen https://www.partco.fi/fi/arduino/arduino-classic/26323-arduino-uno-r4w.html pörssisähkönäytön, joka näyttää kuluvan ja 11 seuraavan tunnin hinnat palkkeina skaalaten ne niin, että kallein on 8 lediä korkea palkki. Välillä tuossa rullaa tietoa ihan selväkielisenä kuten esim. milloin on kallein ja halvin tunti yms. NTP-ajan haussa tuli sellaisia ongelmia, että tämän tästä saattoi hakea ajaksi 1.1.2066. Ei selvinnyt debuggaamallakaan mistä johtui, joten blokkasin sitten koodissa tuon päivämäärän pois ja hakee silloin ajan uudelleen, jolloin alkoi toimia luotettavasti. Tässä Shellyn tapauksessa vastaava ei taida oikein toimia, jos vuosi on jo oikein.

jisotalo commented 1 week ago

Nyt löytyi varmaan hommaan ratkaisu!

Shellyn sys-komponentin alla on unixtime, joka on null jos aika ei ole synkassa NTP-serverin kanssa. image

Tämän avulla tuntuu saavan luotettavan tiedon, onko kellonaika OK.

Tässä testiversio, jos joku haluaa kokeilla. Julkaisen kunhan saa vähän testattua. https://gist.githubusercontent.com/jisotalo/a03628d85b317157fda35161338ba326/raw/f9947240da493e85196c450ebe88a295c8f674f3/shelly-porssisahko.js

[3.1.0] - XX.11.2024

tkkoivula commented 6 days ago

"Käynnistetty 22.11.2024 10:13:47 (käynnissä 0.0 päivää) - versio 3.1.0-beta" No niin..

vettenj commented 6 days ago

Täällä myös ollut eilisillasta alkaen uusin versio käynnissä ja seuraavaa sähkökatkoa odotellessa. Käynnistetty 21.11.2024 22:24:20 (käynnissä 0.5 päivää) - versio 3.1.0-beta

Jos aika muuttuu yllättäen yli 5 min, niin tulostaako esim. konsoliin tietoa siitä että siksi haettu hinnat uusiksi?

Tällaisia näkyy nimittäin tulleen silloin tällöin konsoliin, liittyvätkö tuohon lisättyyn ajan tarkistamiseen? shos_time.c:54 Setting time from SNTP (1732263741.868 delta -0.064) 10:22:21 shelly_sys.cpp:217 Time set to 142319.344085 from 1 10:22:21

jisotalo commented 6 days ago

Täällä myös ollut eilisillasta alkaen uusin versio käynnissä ja seuraavaa sähkökatkoa odotellessa. Käynnistetty 21.11.2024 22:24:20 (käynnissä 0.5 päivää) - versio 3.1.0-beta

Jos aika muuttuu yllättäen yli 5 min, niin tulostaako esim. konsoliin tietoa siitä että siksi haettu hinnat uusiksi?

Tällaisia näkyy nimittäin tulleen silloin tällöin konsoliin, liittyvätkö tuohon lisättyyn ajan tarkistamiseen? shos_time.c:54 Setting time from SNTP (1732263741.868 delta -0.064) 10:22:21 shelly_sys.cpp:217 Time set to 142319.344085 from 1 10:22:21

Hyvä että tuntuu toimivan. Täällä myös.

Jos aika muuttuu noin paljon, konsoliin tulee shelly-porssisahko: Time changed 5 min+ -> refresh.

Nuo mainitsemasi lokirivit on shellyn sisäisiä juttuja.

jisotalo commented 6 days ago

Julkaisin nyt uuden kun tuntuu toimivan. Jos tulee jotain niin ilmoitelkaa! Kiitos avusta.