Spot-hinta.fi - Yksinkertainen pörssiohjaus API ja sitä käyttävät automaatioskriptit

Mikki

Hyperaktiivi
Voiko tuo 180k olla kaikki ihan legit kutsuja. Tuli vain mieleen että siellä voi olla botteja myös rummuttamassa sitä kun se on avoin API.
Voi toki olla koputtelijoita. Mutta mikään yksittäinen IP ei nouse hurjiin lukemiin... siinä on minulla lokitus. Että ainakin botit hajautuu sitten eri IP osoitteisiin.
 

JouTol

Tulokas
Huomenta.

Nyt on shelly pro 1 älyrele asennettu naapurin sähköyrittäjän toimesta ohjaamaan sähkökattilaa jonka kautta lattialämmitys ja käyttöveden lämmitys. Rele on asennettu vaihtokytkimellä joten jos jotain ongelmia tulisi on helppo palata "normaali" tilaan.

Olen saanut releen shellyn apin kanssa liitettyä yhteen ja se on talon wifi verkossa. Voisiko joku ystävällisesti neuvoa miten rele saadaan seuraamaan pörssisähkön hintaa? Olen lukenut että releeseen pitäisi ladata scripti..Eli ilmeisesti ohjelma mikä hakee sähköpörssin hintatietoa netistä.

Tapahtuuko tämä scriptin lataus shellyn apin kautta? Tietokoneella? Vai miten? Ja tarvitsenko jotain lisää että saan ohjauksen toimimaan? Mahdollisimman helposti ja yksinkertaisesti. Nämä jutut itselle aika hepreaa, eli nyt olisi ohjeille for dummies tarvetta

Ystävällisin terveisin Jouni Tolonen Kajaani
 

valto

Tulokas
Shellyn skripti ohjelmointi menee näin:
1) Selvitä oman Shelly:n ip-osoite. Löytyy wifi reitittimen kautta tai Shellyn appin kautta (valitse laite -> Settings -> Settings -> Device Information)
2) Mene verkkoselaimella kyseiseen IP osoitteeseen, pitää olla samassa WiFi:ssä kiinni.
- Valitse "Scripts" -> "Add script"
- Kopioi sinne sopiva skripti, esim tämä sopii LVV varaajalle: skripti
- Tutustu skriptiin ja muokkaa tarvittaessa, esim. kuinka monta halvinta tuntia haluat lämmittää.
if (resobj.Rank <= 3) { //Montako halvinta tuntia
-
Save & Run
- Tarkkaile "CONSOLE" ikkunasta, että skripti pyörii (voi olla, että CONSOLE piti enabloida erikseen). Kahden minuutin välein pitäisi tulla printtiä.
 

ttk2

Aktiivinen jäsen
Suunta vaikuttaa järkevältä. Muuttaisin kuitenkin parametreja siten, että ne voitaisiin antaa muodossa ?rankAtZeroDegrees=5&rankAdjusterPercentage=15&...

Kun parametreja on useita, tuo helpottaa luettavuutta, vaikka koneelle se onkin se ja sama.
 

Sammypiru

Vakionaama
Nyt olisi sitten BETA (!) versio tarjolla "JustNowRank" rajapinnasta, jossa 'rank' säätyy dynaamisesti ennustetun ulkolämpötilan mukaan. Tämä on hyvinkin kokeellisella asteella vielä, mutta laitoin sen rajapinnan jakoon kommentteja varten.

Eli kokonaisuudessaan tuossa on nippu parametreja, jotka syötetään URL:iin näin;
/JustNowRank/{rankAtZeroDegrees}/{rankAdjusterPercentage}/{minimumRank}/{priceAlwaysAllowed}/{postalCode}

Parametrien selitykset:

- rankAtZeroDegrees on aika itsestäänselvä. Eli kuinka monta tuntia haluaa lämmityksen olevan päällä nollassa asteessa
- rankAdjusterPercentage on säädin, jolla ulkolämpötilan mukaan joko lasketaan "rank" lukua tai nostetaan sitä (kun kylmenee). 0-20% nyt rajana.
- minimumRank on se tuntimäärä, joka aina vähintään lämmitetään
- priceAlwaysAllowed on hinta jolloin aina sallitaan lämmitys. Ns. "halvat tunnit talteen"
- postalCode on postinumeroalue jonka lämpötilaa seurataan 24h eteenpäin ja lasketaan keskilämpötila

Eli esimerkiksi tämä kysely (klikkaa niin näet tulokset):

5 halvinta tuntia, 15% 'rank' lisäys per aste, vähintään 'rank' 3 ja hinnassa 0,04€ tai alle sallitaan aina ja viimeisenä Sodankylän postinumero.

Mitä mieltä: vaikuttaako järkevältä kehityssuunnalta? Parannusehdotuksia vai heitänkö idean roskiin? :)

Kirjoitin tähän jo joitakin tarkentavia kysymyksiä toiminnasta, mutta kun luin uudelleen niin tuossahan on vastaus kaikkeen. Ihan varmaan menee tänään testiin kunhan työpäivä on pulkassa! Nostan hattua!
 

Mikki

Hyperaktiivi
Koetan tehdä vielä muutoksen pyydetysti että voi antaa query parametrina nuo. On niitä "routeen" vähän paljon jo.
 

kayttajatunnus

Aktiivinen jäsen
Nyt olisi sitten BETA (!) versio tarjolla "JustNowRank" rajapinnasta, jossa 'rank' säätyy dynaamisesti ennustetun ulkolämpötilan mukaan. Tämä on hyvinkin kokeellisella asteella vielä, mutta laitoin sen rajapinnan jakoon kommentteja varten.

Eli kokonaisuudessaan tuossa on nippu parametreja, jotka syötetään URL:iin näin;
/JustNowRank/{rankAtZeroDegrees}/{rankAdjusterPercentage}/{minimumRank}/{priceAlwaysAllowed}/{postalCode}

Parametrien selitykset:

- rankAtZeroDegrees on aika itsestäänselvä. Eli kuinka monta tuntia haluaa lämmityksen olevan päällä nollassa asteessa
- rankAdjusterPercentage on säädin, jolla ulkolämpötilan mukaan joko lasketaan "rank" lukua tai nostetaan sitä (kun kylmenee). 0-20% nyt rajana.
- minimumRank on se tuntimäärä, joka aina vähintään lämmitetään
- priceAlwaysAllowed on hinta jolloin aina sallitaan lämmitys. Ns. "halvat tunnit talteen"
- postalCode on postinumeroalue jonka lämpötilaa seurataan 24h eteenpäin ja lasketaan keskilämpötila

Eli esimerkiksi tämä kysely (klikkaa niin näet tulokset):

5 halvinta tuntia, 15% 'rank' lisäys per aste, vähintään 'rank' 3 ja hinnassa 0,04€ tai alle sallitaan aina ja viimeisenä Sodankylän postinumero.

Mitä mieltä: vaikuttaako järkevältä kehityssuunnalta? Parannusehdotuksia vai heitänkö idean roskiin? :)
Tämä taitaa poistaa ainakin omalta kohdaltani tarpeen hankkia Raspberry Pi ja alkaa virittelemään sen avulla vastaavaa systeemiä.

Shelly 1 plus on tilauksessa ja laitan tämän sisään heti kun postimies sen kotiin kiikuttaa. Laitan havaintoja sitten heti kun niitä tulee.
 

Mikki

Hyperaktiivi
Nyt olisi sitten BETA 2 versio tarjolla "JustNowRankDynamic" rajapinnasta, jossa 'rank' säätyy dynaamisesti ennustetun ulkolämpötilan mukaan. Vaihdoin vähän URLia mistä rajapinta löytyy.

Koska parametreja on useita, on ne nyt annettava "query"-parametreina "route" parametrien sijasta. Kiitos ideasta @ttk2 - pysyy kyllä kärryillä paremmin, mitä mikäkin tarkoittaa. Tässä esimerkiksi miten kutsutaan.... Sodankylään, kun siellä näemmä nyt on pakkasta edes vähän:


Parametrien selitykset:
- rankAtZeroDegrees - kuinka monta tuntia haluaa lämmityksen olevan päällä nollassa asteessa
- rankAdjusterPercentage - tällä säädetään kuinka paljon "rank" muuttuu sääennusteen mukana per lämpötila-aste (0-20%)
- minimumRank - tuntimäärä, joka aina vähintään lämmitetään, kun 'rank' pienenee nollasta lähtien ilmojen lämmetessä
- priceAlwaysAllowed - hinta jolloin aina sallitaan lämmitys. Ns. "halvat tunnit talteen"
- postalCode - postinumeroalue jonka lämpötilaa seurataan 24h eteenpäin ja lasketaan keskilämpötila

Palautetta saa antaa edelleen. Ja tosiaan ehkä tässä projektissa on juuri se idea, että tarve HomeAssistantille/Fissiolle/kolmannen osapuolen ohjauspalveluille vähenisi, kun "äly" on koodattu yhteen paikkaan hyödynnettäväksi. Jolloin päätelaite saa olla "tyhmä", joka tiedon hakee.

Tämä rajapinta on siis "AT", eli 200/400 rajapinta ja näin mikrokontrollereidenkin hyödynnettävissä. Tai Shelly skripteissä helposti myös.
 
Viimeksi muokattu:

Sammypiru

Vakionaama
Tyhmä kysymys, mutta jos laitan tuon uuden rajapinnan Shellyn scriptiin tuon vanhan urlin tilalle, niin tulos on tuon alemman kuvan mukainen eli url ei näy kokonaan eli olettavasti ei toimi?

Tätä yritin/halusin lisätä https://api.spot-hinta.fi/JustNowRa...Rank=3&priceAlwaysAllowed=10&postalCode=32700

Mitä en ymmärrä?

Shellyn script.JPG
Shellyn script2.JPG



edit: Itse vastaten, näkyyhän kun rivin maalaa.
Shellyn script3.JPG
 

Mikki

Hyperaktiivi
Tuolta löytyy nyt uusi versio tuosta Pörssiohjaus-skriptistä. Siis tätä "dynaamista" rajapintaa vastaan:

Tein siihen apufunktion tuon URL:n kyhäämiseen, kun on vähän epäluettava muuten koodissa.
 

ttk2

Aktiivinen jäsen
Koska parametreja on useita, on ne nyt annettava "query"-parametreina "route" parametrien sijasta. Kiitos ideasta @ttk2 - pysyy kyllä kärryillä paremmin, mitä mikäkin tarkoittaa.
On tää kyllä erinomaista, kun API paranee tunneissa, eli lähes suoraan ehdotuksesta toteutukseen. Melkein kuin olisi tekoäly, joka pyyteettömästi koodaa sen mitä sille kertoo - vuorokaudenajoista riippumatta :cool:

Hiukan toista kuin lähettää pyyntö jonnekin, jossa joku ehkä 6-18kk kuluttua katsoo sen läpi ja toteaa lopulta ettei tulla toteuttamaan. Tai vastaa, että koodaa itse ja tee pull request.

Näin nopea feedback loop tarkoittaa sitä, että API paranee iteroimalla todella nopeasti. Ajatelkaapas nyt, tätä APIa ei ollut joitain viikkoja sitten vielä olemassakaan... Nyt siellä on jo ominaisuuksia, joita muualta ei löydä.

Nostetaas jälleen hattua! :hattu: Hyvää työtä!
 

Lappanen

Hyperaktiivi
Tyhmä kysymys, mutta jos laitan tuon uuden rajapinnan Shellyn scriptiin tuon vanhan urlin tilalle, niin tulos on tuon alemman kuvan mukainen eli url ei näy kokonaan eli olettavasti ei toimi?

Tätä yritin/halusin lisätä https://api.spot-hinta.fi/JustNowRa...Rank=3&priceAlwaysAllowed=10&postalCode=32700

Mitä en ymmärrä?

katso liitettä 81697katso liitettä 81698


edit: Itse vastaten, näkyyhän kun rivin maalaa.katso liitettä 81699

Kännykällä varmaan teet tuota? Mulla ainakin jäi osa copypasteista näkymättä (ne mitkä menee "marginaalin" yli) kun pystynäytöllä tein. Vaakanäytöllä pitkätkin tekstinpätkät meni ongelmitta.
 

mobbe

Vakionaama
  1. UpdateFrequence: 2 * 60000, // Oletus on kahden minuutin välein (millisekunteja). Älä hae tiheämmin.
  2. RankAtZeroDegrees: "5", // "Rank", eli halvimpien tuntien lukumäärä kun ulkolämpötilaennuste on 0°C
  3. RankAdjusterPercentage: "15", // Prosentti jolla "Rank" muutetaan ulkolämpötilan muuttuessa yhdellä asteella
  4. MinimumRank: "3", // Vähimmäis 'Rank' kun lämpötila nousee plussalle ja Rank pienenee
  5. PriceAlwaysAllowed: "10", // "Halvat hinnat talteen". Eli hinta jolloin aina on sallittua lämmitys
  6. PostalCode: "00100", // Postinumero jonka alueen lämpötilaennustetta rajapinta tutkii
  7. Relay1: "0", // Releen ohjaus. Jos käytössä on useampireleinen Shelly, tee vastaava parametri ja vaihda releen tunniste.

Onko ymmärretty oikein ylläoleva? 5 halvinta tuntia valittuna ja ulkolämpötila 0 astetta sitten lämpötilaennuste tipahtaa vaikka -5 asteeseen RankAdjusterPercentage: "15" antaa luvan muuttaa rankia ylös 15% asteella ja uusi rank näin 8,75
 

Mikki

Hyperaktiivi
  1. UpdateFrequence: 2 * 60000, // Oletus on kahden minuutin välein (millisekunteja). Älä hae tiheämmin.
  2. RankAtZeroDegrees: "5", // "Rank", eli halvimpien tuntien lukumäärä kun ulkolämpötilaennuste on 0°C
  3. RankAdjusterPercentage: "15", // Prosentti jolla "Rank" muutetaan ulkolämpötilan muuttuessa yhdellä asteella
  4. MinimumRank: "3", // Vähimmäis 'Rank' kun lämpötila nousee plussalle ja Rank pienenee
  5. PriceAlwaysAllowed: "10", // "Halvat hinnat talteen". Eli hinta jolloin aina on sallittua lämmitys
  6. PostalCode: "00100", // Postinumero jonka alueen lämpötilaennustetta rajapinta tutkii
  7. Relay1: "0", // Releen ohjaus. Jos käytössä on useampireleinen Shelly, tee vastaava parametri ja vaihda releen tunniste.

Onko ymmärretty oikein ylläoleva? 5 halvinta tuntia valittuna ja ulkolämpötila 0 astetta sitten lämpötilaennuste tipahtaa vaikka -5 asteeseen RankAdjusterPercentage: "15" antaa luvan muuttaa rankia ylös 15% asteella ja uusi rank näin 8,75

Piti ihan laskea ja kyllä olit laskenut oikein. Tässä parilla eri "adjuster" prosentilla laskettuna. Maksimi on toki 24 koodissa kun se laskee rankkia. Mutta tosiaan prosentista riippuen sitten loivempi nousu tai jyrkempi nousu.

Sellainen toki, että "Rank" on kokonaisluku, eli se nousee pyöristyssääntöjen mukaisesti.

1667843810208.png
 

Liitteet

  • 1667843628138.png
    1667843628138.png
    26,1 KB · Katsottu: 116

mobbe

Vakionaama
Eli tuota rank-prosenttia kantsii käyttää maltilla ainakin alkuun talouden kassatilanne toki vaikuttaa mutta tarkoitus ei ole palella sisätiloissa
 

Mikki

Hyperaktiivi
Riippuu paljon siitä mihin kohteeseen tuota käytetään. Jos on käyttövesivaraaja, niin sittenhän tämä ei ole oikea rajapinta.
Jos on yösähkövaraaja, niin varmaan aika maltillinen nousukulma jos on tehokkaat vastukset.

Nopeastihan tuota parametria säätää jos on tarve. :)
 

mobbe

Vakionaama
Itsellä sen verran hatara talo että kovan tuulen vaikutuksen lämmitystarpeeseen huomaa ja tästä ihan heittona ajatus dynaamiseen, ulkolämpötilan ennusteen "korjaus" 0-20% tuuliennusteen mukaan
 

Sammypiru

Vakionaama
Ota uudempi koodi, kun on kompaktimpi. Vai otitko tämän nimenomaan? https://pastebin.com/M0W1zekS

Nyt otin tuo kompaktimman koodin, mutta logissa yksi rivi ihmetyttää: shelly_http.cpp:68 #### HTTP got 400 Bad Request and 108 byte response (#### ovat minu merkintöjä) onko tuolla merkitystä? Mielestäni scripti kuitenkin toimii.

Ps. En ymmärrä näistä koodauksista mitään, mutta sujuvastihan näitä testailee :D
 

Mikki

Hyperaktiivi
Niin siis tuo rajapinta palauttaa 400-bad request, jos ei ole aika lämmittää. Se on siis se negatiivinen vastaus. 200-OK on sitten taas hyvä vastaus. Tai miten sen ottaa... 200 vastauksella menee rahaa ja 400 vastauksella säästyy rahaa :)
 

Mikki

Hyperaktiivi
Sellainen huomautus HomeAssistant käyttäjille, että RESTFul sensorissa taitaa olla 30 sekunnin välein oletuksena hakutiheys. Ja jos on useampaan API:iin tuolla tiheydellä kyselyitä eri sensoreilla, tulee yhdestä IP osoitteesta turhan paljon trafiikkia. Tai miksei yhdelläkin sensorilla.

Tänään ainakin yksi käyttäjä on löytänyt "429" Throttling rajan tuolla tavalla, kutsuen /JustNow ja /CheapestPeriod rajapintoja. RESTFul sensorin YAMLiin kun asettaa "scan_interval" tagiin päivityksen vaikka parin-kolmen minuutin välein, niin voi välttää tuota 429 virhettä.

platform: rest
scan_interval: 120
 
Viimeksi muokattu:

Majava

Tulokas
Pyynnöstä toteutukseen alle vuorokaudessa, hyvää toimintaa @Mikki !

Tätä rajapintaa käyttäen oli hyvin nopea askarella Home Assistant:iin nykyisen hinnan ja hinnan järjestysnumeron näyttäminen:
katso liitettä 80168

Käytin RESTful-sensoria. Konfiguraatio configuration.yaml tiedostoon.

Ensin sensorissa määritetään haku (oletuksena HA:ssa tuo toimii 30s välein pollaavana):

YAML:
sensor:
  - platform: rest
    name: "Sähkön hinta"
    resource: https://api.spot-hinta.fi/JustNow
    method: GET
    device_class: monetary
    force_update: true
    json_attributes:
      - DateTime
      - PriceWithTax
      - PriceNoTax
      - Rank
    state_class: measurement

Ja tämän jälkeen tein erilliset template sensorit vielä hinnalle ja järjestysnumerolle:

YAML:
- platform: template
    sensors:
      el_price:
        friendly_name: "Sähkön hinta nyt"
        unit_of_measurement: "c/kWh"
        value_template: "{{ state_attr('sensor.sahkon_hinta', 'PriceWithTax') | float * 100 }}"
      el_price_rank:
        friendly_name: "Sähkön hinnan järjestysluku"
        value_template: "{{ state_attr('sensor.sahkon_hinta', 'Rank') | int }}"

Mitään automaatiota näiden hinnan tai järjestysluvun perusteella en vielä ehtinyt toteuttamaan, mutta se käy ihan point-and-click tyylisesti käyttöliittymästä käsin.

Kiitos vielä tästä rajapinnan luomisesta ja avoimesta suhtautumisesta muutospyyntöihin, sekä vielä kaupanpäällisiksi erittäin nopeasta muutoksien toteutuksesta!

edit: vaihdettu yaml-esimerkin osoitteeseen "api".

Moi.

Olen nyt viikonpäivät opetellut HA:n käyttöä youtuben avustuksella ja olen edelleen monesta asiasta pihalla kuin lumiukko. Ilmeisesti tein jotain väärin kun en saanut tätä juttua toimimaan pelkästään copy/pastettamalla configuration.yamliin.

Alku on hieman tahkea vähäisen ohjelmointikokemuksen takia, voisiko joku neuvoa miten tämä toiminto lisätään oikein HA:n, niin
pääsisin taas hieman eteenpäin?
 

ttk2

Aktiivinen jäsen
Moi.

Olen nyt viikonpäivät opetellut HA:n käyttöä youtuben avustuksella ja olen edelleen monesta asiasta pihalla kuin lumiukko. Ilmeisesti tein jotain väärin kun en saanut tätä juttua toimimaan pelkästään copy/pastettamalla configuration.yamliin.

Alku on hieman tahkea vähäisen ohjelmointikokemuksen takia, voisiko joku neuvoa miten tämä toiminto lisätään oikein HA:n, niin
pääsisin taas hieman eteenpäin?
HA pitää aina käynnistää uudelleen, kun muuttaa tuota yaml-tiedostoa.

Ihan kätevästi editointi onnistuu asentamalla File editor add-on. Siitä löytyy myös HA:n boottaus.

Jos tuo ei auta, niin sitten tänne oma configuration.yaml tai osa siitä. Muista anonymisoida se, jos siellä on sähköpostiosoitteita tai salasanoja näkyvissä. Kun nähdään mitä on tehty, pystytään paremmin neuvomaan eteenpäin.
 

KarHe

Aktiivinen jäsen
Sama täällä. Ei vaan aukea oikeen tuo koodaus. Sain ensimmäisellä sivulla olevalla .yaml tekstillä jotain ulos. Nyt ei jostain syystä toimi sekään. Ja kun yritin muokata sitä yamlia, että olisin esim. saanut tämän ja huomisen hinnat/rankit ulos, niin en vaan millään saanut onnistumaan.
 

hanks

Aktiivinen jäsen
Olisi kiva tietää mitä alustoja täällä käytetään Mikin apin kanssa. Ja miksei mitä niillä ohjataan. Poll?
 

Ville-Veikko

Aktiivinen jäsen
YAML on pirun herkkä sisennyksille. Tabulaattoria se ei siedä ollenkaan. Itsellä otti aikansa että tajusin laskea montako välilyöntiä millakin tasolla on. Yksikin space liikaa tai liian vähän ja mikään ei pelaa.
 

Majava

Tulokas
HA pitää aina käynnistää uudelleen, kun muuttaa tuota yaml-tiedostoa.

Ihan kätevästi editointi onnistuu asentamalla File editor add-on. Siitä löytyy myös HA:n boottaus.

Jos tuo ei auta, niin sitten tänne oma configuration.yaml tai osa siitä. Muista anonymisoida se, jos siellä on sähköpostiosoitteita tai salasanoja näkyvissä. Kun nähdään mitä on tehty, pystytään paremmin neuvomaan eteenpäin.
/config/configuration.yaml näyttää tältä:


# Loads default set of integrations. Do not remove.
default_config:
automation: !include automations.yaml

# Text to speech
tts:
- platform: google_translate
sensor:
- platform: rest
name: "Sähkön hinta"
resource: https://api.spot-hinta.fi/JustNow
method: GET
device_class: monetary
force_update: true
json_attributes:
- DateTime
- PriceWithTax
- PriceNoTax
- Rank
state_class: measurement
- platform: template
sensors:
el_price:
friendly_name: "Sähkön hinta nyt"
unit_of_measurement: "c/kWh"
value_template: "{{ state_attr('sensor.sahkon_hinta', 'PriceWithTax') | float * 100 }}"
el_price_rank:
friendly_name: "Sähkön hinnan järjestysluku"
value_template: "{{ state_attr('sensor.sahkon_hinta', 'Rank') | int }}"

Tämän lisättyäni suoritin "Check configuration" toiminnon ja vastauksena tulee:
Integration error: sensors - Integration 'sensors' not found. Invalid config for [sensor.template]: required key not provided @ data['sensors']. Got None. (See ?, line ?).

Pitääkö luoda editorilla jokin erillinen sensori tai jotain..
 

Jullikka

Jäsen
Tuossa voi olla ihan sisennysvirhe, alla hiukan mallia sisennyksista:
1667975736816.png



Lisäksi näyttää, että sinulla on nyt tuon sensorin nimenä "Sähkön hinta", mutta koitat käyttää sitä nimellä "sahkon_hinta", eli määritä tuolle "Sähkön hinta"-sensorille unique_id, joka on ""sahkon_hinta"
 

jamo1

Jäsen
Kiitokset mahtavista ohjeista ohjeista ja scripteistä! Käytössä Shelly Pro4PM, mihin yritin muokata eri scriptit eri kärjille. Tuli herja enintään 3 scriptiä saa olla käytössä samaan aikaan käytössä. Onko tähän muuta ratkaisua kun ostaa omat shellyt jokaiseen erillaiseen ohjaukseen? Huonosti kestää kontaktorin takapotkuja, ilmeisesti snubber laitettava.
 

Mikki

Hyperaktiivi
Kiitokset mahtavista ohjeista ohjeista ja scripteistä! Käytössä Shelly Pro4PM, mihin yritin muokata eri scriptit eri kärjille. Tuli herja enintään 3 scriptiä saa olla käytössä samaan aikaan käytössä. Onko tähän muuta ratkaisua kun ostaa omat shellyt jokaiseen erillaiseen ohjaukseen? Huonosti kestää kontaktorin takapotkuja, ilmeisesti snubber laitettava.

Onko viimeisin firmware ajettu sisään? Siinä jotain parannusta pitäisi olla tullut, mutta sitä en tiedä auttaako se kokonaan. Kyllä kai se snubber pitäisi laittaa kontaktorien kanssa silti aina.

Mutta skripteistä. Kyllähän skriptejä voi modata niin, että yhdellä skriptillä ohjaa useampaa relettä. Enpäs ole kokeillutkaan että kuinka monta skriptiä voi olla ajossa, mutta toki pitää muistaa että alla ei ole mikään teho-PC vaan hyvinkin rajoittunut laite teholtaan ja muistiltaan. Että ei se kolmen skriptin rajoitus yllättävä oikeastaan ole.

Eli sanoisin että kolmella skriptillä kyllä pärjää jos on tarve. Pitää vain vähän koodata.
 

jamo1

Jäsen
Jep, omat taidot rajoittuu muuttaa valmiista scriptistä asetuksia mitkä scriptin infossa selitetty. Ajatus oli ohjata pro4pm avulla varaaja, lattialämmityksiä, autotallin lattialämmitystä ja ikkunoiden alla kulkevia lattialämmityksiä. Ajatuksena oli modata joka ohjaukseen scrirtit valmiista scripteistä, mutta tosiaan rajoittaa tuo 3 scriptiä samaa aikaa käytössä näillä taidoilla. Toimii toki näinkin, mutta olisi voinut hienosäätää paremmin erI kärjille. Muutenkin pro 3 vois olla parempi näihin ohjauksiin usealle kun ns kuivat kärjet.
 

ttk2

Aktiivinen jäsen
Lisäksi näyttää, että sinulla on nyt tuon sensorin nimenä "Sähkön hinta", mutta koitat käyttää sitä nimellä "sahkon_hinta", eli määritä tuolle "Sähkön hinta"-sensorille unique_id, joka on ""sahkon_hinta"
Tätä ei mielestäni tarvitse tehdä. HA kyllä osaa muodostaa sen id:n itsekin ihan hyvin. Esim. "Sähkön hinta +1h" -> "sensor.sahkon_hinta_1h".

Yleisesti ottaen kannattaa tänne noita konffeja kopioidessa käyttää suoraan "koodiblokkia", eli viestieditorista valitsee kuvasymbolin oikealta puolelta kolme pistettä ja sen alta </>, joka avaa dialogin, johon koodin voi liittää. Tyypiksi jos laittaa yaml noille HA:n konffeille, niin lukija saa helpommin koodista selvää.

Sisennykset etenkin ovat sellaisia, joita ei oikein muuten saa tarkistettua. Itsekin uskon, että sisennykset tuolla nyt ovat olleet pielessä.
 

tet

Hyperaktiivi
Sisennykset etenkin ovat sellaisia, joita ei oikein muuten saa tarkistettua. Itsekin uskon, että sisennykset tuolla nyt ovat olleet pielessä.
En tiedä mitään niin typerää ideaa, kuin rakentaa ohjelmointikieli, jossa koodin ulkonäkö vaikuttaa sen toimintaan. Onkohan tuon yamlin takana sama aivokuollut porukka, joka on python-kielen oksentanut.
 

mobbe

Vakionaama
Kiitokset mahtavista ohjeista ohjeista ja scripteistä! Käytössä Shelly Pro4PM, mihin yritin muokata eri scriptit eri kärjille. Tuli herja enintään 3 scriptiä saa olla käytössä samaan aikaan käytössä. Onko tähän muuta ratkaisua kun ostaa omat shellyt jokaiseen erillaiseen ohjaukseen? Huonosti kestää kontaktorin takapotkuja, ilmeisesti snubber laitettava.
Testasin Shelly Plus 1PM ohjaamaan kontaktoria kelajännite 230 VAC ei ongelmia 2 wattia ottaa kela tehoa alla asymmetric skripti kontaktorin testaukseen kontaktori on päällä 3 sekuntia ja pois 6 sekuntia .

let bool = false;
let timer_handle = null;

function callback(userdata) {
bool = !bool;
print("Executed: ",bool);

if (bool) {
// turn on and start on-delay
Shelly.call("Switch.Set","{ id:0, on:true }",null,null);
timer_handle = Timer.set(3000,false,callback,null);
} else {
// turn off and start off-delay
Shelly.call("Switch.Set","{ id:0, on:false }",null,null);
timer_handle = Timer.set(6000,false,callback,null);
}
}

callback(null);
 

Mikki

Hyperaktiivi
Ilmeisesti on kontaktoreissa eroa, kun osa aiheuttaa takapotkun ja osa selvästi ei. Minkäköhän valmistajan kontaktorien kanssa Shellyn takapotku ongelmat ovat esiintyneet, jos vaikka löytyy joku merkki missä se erityisesti esiintyy?
 
Back
Ylös Bottom