Closed jisotalo closed 6 days 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.
Meillä oli eilen vartin sähkökatkos. Ihmettelin kun scripti sanoo olleensa käynnissä 5 päivää.
"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.
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..
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. :)
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.
Joo sopivaan hetkeen sopivan lyhyt sähkökatko saa 0centin nyt-hinnan. Käynnistetty pvm pysyy samana
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.
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.
Nyt löytyi varmaan hommaan ratkaisu!
Shellyn sys
-komponentin alla on unixtime
, joka on null
jos aika ei ole synkassa NTP-serverin kanssa.
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
"Käynnistetty 22.11.2024 10:13:47 (käynnissä 0.0 päivää) - versio 3.1.0-beta" No niin..
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
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.
Julkaisin nyt uuden kun tuntuu toimivan. Jos tulee jotain niin ilmoitelkaa! Kiitos avusta.
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ä.