Skip to content

Soviet9773Red/shelly-elprisSE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

shelly-elprisSE

SE1-4 Nordpool elbörspris (spotpris) för Shelly-enheter

Licens: AGPL v3

shelly-elprisSE (anpassad för SE1-4) är ett projekt för att styra Shelly-enheter.
Det är baserat på shelly-porssisahko-en version 3.1.1 och har anpassats för svenska elområden (SE1-4) med API-data från Elprisetjustnu.se.

Utvecklat av @Soviet9773Red med kärlek och tacksamhet till Jussi Isotalo / @jisotalo för den fantastiska koden.
Stort tack till GPT o1 – min bästa AI, som för alltid kommer att vara en del av koden (och nämns i testamentet)!

Funktionalitet

  • Hämtning av elpriser från ett svenskt API (Nordpool/elprisetjustnu.se).
  • Beräkning av lägsta, högsta och genomsnittliga elpriser samt identifiering av timmen med lägsta och högsta pris.
  • Visning av enhetens aktuella status, konfiguration och historik.
  • Stöd för uppdatering av konfiguration och styrning av utgångar (outputs).

Egenskaper

  • Optimerad och minifierad kod för Shelly-enheter.
  • Anpassad för Shelly 1.5.0 och 1.4.4 med beaktande av begränsningar (inga arrow-funktioner, mallsträngar etc.).
  • Enkel HTTP-integration för att hämta status, konfiguration och historik.

Viktig information

shelly-elprisSE är en svensk anpassning av det finska projektet shelly Porssisahko, ursprungligen utvecklat för Finland och Baltikum. Denna version använder det svenska elpris-API:t Elprisetjustnu.se istället för Elering standarddata.

Observera att inga globala ändringar har gjorts i funktionaliteten jämfört med originalkoden från shelly-porssisahko-en (ver. 3.1.1). För en fullständig manual, se originalkällan.


Huvudsakliga ändringar (changelog):

  • API-anrop:
    Ändrat från den estniska API-adressen i .csv-format (Elering) till den svenska i JSON-format (Elprisetjustnu.se).
  • Regioner:
    Stöd för svenska elområden SE1-SE4 har lagts till, medan Finland och Baltikum har tagits bort.
  • Design:
    Justeringar av färgschema och rubriker i flikarna Status och Settings för att bättre passa den svenska marknaden.

För att ändra prisförfrågan till den svenska API:n har jag lagt till två nya funktioner: bldU och pTimeL, samt ändrat den befintliga funktionen getPrices. I HTTP-serverns endpoint har vissa delar modifierats, förutom den femte och sjätte delen.

📷 Inställningsvy

Här är en illustration av info (status) och konfigurationsvyn:

Komma igång:

  1. Installera Shelly och anslut den till WiFi.
  2. Öppna Shelly Web UI i en webbläsare via din lokala nätverksadress.
  3. Gå till Scripts-sidan och öppna Settings -> Firmware -> Update. Uppdatera firmware till version 1.4.4 eller högre "stable". Äldre versioner stöds inte.
  4. Gå till Settings -> Location and Time, välj tidszon Europe/Stockholm och klicka på Save Settings.
  5. Gå till Settings → Device Name. Sätt ett namn på din enhet. Klicka sedan på "Save".
  6. Öppna länken till skriptet på GitHub: 👉 shelly-elprisSE_3.1.1se-rc.js Välj Download eller kopiera råfilen. Spara filen i Notepad eller på disken.
  7. Gå till Scripts -> Create script och skriv ElprisetSE som Script name.
  8. Klistra in skriptets text, klicka på Save och sedan Start.

I konsolen kommer du att se skriptets resultat, ungefär så här:

elpris-SE: v.3.1.1SE-rc
elpris-SE: URL: http://192.168.8.136/script/1
elpris-SE: Getting prices for day 0
elpris-SE: Getting prices for day 1
elpris-SE: config for #1 read, enabled: 1
elpris-SE: config for #2 read, enabled: 0
elpris-SE: config for #3 read, enabled: 0
elpris-SE: logic for #1 done, cmd: true -> output: true

  1. Öppna skriptets HTTP-endpoint
    Kopiera HTTP-adressen från konsolen, exempelvis http://192.168.8.136/script/1
    Öppna länken i en ny flik i din webbläsare.
    Adressen kan skilja sig, men strukturen är: http://xxx.xxx.x.xxx/script/N där N är skriptets ID-nummer.
    Och /script/N är på slutet.

  2. Konfigurera skriptets parametrar enligt manualen

Om du har problem med att spara eller starta skriptet:

Stoppa alla skript. Avmarkera Run on startup.
Gå till Settings -> Reboot Device.
Markera Run on startup igen.
Om du har andra aktiva skript – stoppa dem.
Radera stora skript om du redan har flera stora sparade i enheten.
Rensa KVS och ta bort onödiga nycklar.

Test.

Skriptet har testats på följande Shelly-enheter: Shelly Plus 1, Plus 1PM, Pro 3, Plus Plug S
Enligt information från Jussi Isotalo, utvecklaren av det ursprungliga skriptet, fungerar det också på följande enheter:
Shelly Plus 2PM, Pro 1, Pro 2, Pro 4PM, Pro 3EM + Switch Add-on, Plus UNI, Plus 1 Mini
Men jag har inte möjlighet att testa det själv eftersom jag inte har dessa enheter tillgängliga för testning.

Vid egna tester har jag märkt att skriptet inte alltid är helt stabilt vid prisförfrågningar – det kan i vissa fall stoppas på grund av minnesöverflöd.

Därför är jag tacksam till alla som kan hjälpa till med testning och buggrapportering.

Just av denna anledning har versionsnumret tillägget rc (release candidate).

Stöd projektet!

Jag är ofta hungrig när jag kodar – 🍔 bjud mig på en Big Mac och kaffe

Big Mac

Tack!