Gå til innhold
  • Bli medlem

RVM

Medlemmer
  • Innlegg

    116
  • Ble med

  • Besøkte siden sist

  • Dager vunnet

    2

RVM vant dagen sist 14. september

RVM hadde mest likt innhold!

Hjemmeautomasjon

  • System
    Home Assistant

Nylige profilbesøk

Blokken for nylige besøkende er slått av og vises ikke for andre medlemmer.

RVM sine prestasjoner

Kabelfører

Kabelfører (6/16)

27

Nettsamfunnsomdømme

  1. Visningen er multiple-entity-row.
  2. Tusen takk for denne (og til han som har laget det)! Jeg kan ingenting om R, men siden han automatisk publiserer csv/json daglig er det lett å hente inn forecast for månedspris og strømstøtte fra modellen hans med f.eks. pandas og pyscript: import pandas as pd @pyscript_compile def read_csv(): # Separate function for blocking I/O, using @pyscript_compile url = "https://raw.githubusercontent.com/martinju/stromstotte/master/data/current_estimated_compensation.csv" try: df = pd.read_csv(url) df = df[df["area"] == "NO2"] # Only look at region NO2 df = df.set_index("type") out = {} out["mean"] = df.loc["mean"]["mean_price"] out["quantile_0.025"] = df.loc["quantile_0.025"]["mean_price"] out["quantile_0.975"] = df.loc["quantile_0.975"]["mean_price"] return out, None except Exception as exc: return None, exc @time_trigger("cron(@daily)") def get_forecast(): result, exception = task.executor(read_csv) if exception: raise exception else: pyscript.forecast_monthly_electricity_price_mean = round(result["mean"], 3) pyscript.forecast_monthly_electricity_price_quantile_0_025 = round(result["quantile_0.025"], 3) pyscript.forecast_monthly_electricity_price_quantile_0_975 = round(result["quantile_0.975"], 3)
  3. Jeg tror de fleste estimerer timesforbruket som estimat = (forbruk så langt denne timen) + sanntidseffekt*(andel av timen som gjenstår). Det kan du lage en template sensor for i HA, f.eks. med verdier fra en AMS-leser som forklart over. Sanntidseffekten kan være grei å sende gjennom et lavpassfilter først sånn at estimatet ikke blir så følsomt for hurtige endringer i effekt, noen laster skrur seg jo hyppig av og på. Filtrerer man derimot "for mye" kan estimatet fort ligge litt på etterskudd, så man må finne en middelvei. Jeg har satt min time_constant til 30, det fungerer godt nok for meg. Estimatet fungerer greit nok, men det er naturligvis ganske unøyaktig i begynnelsen av timen, og blir mer og mer presist etterhvert som estimatet blir mindre sensitivt for ekstrapolert effekt. Hvis lastene er deterministiske (eks. fra oppvaskmaskin med kjent oppvaskprogram) kan man hypotetisk forbedre estimatet med det kjente framtidige forbruket fra eksempelvis oppvaskmaskinen, men det blir fort for komplisert i en template sensor ser jeg for meg, da ville jeg brukt noe sånt som Node-Red eller Pyscript osv.
  4. Avhengig av hvordan du har satt opp configuration.yaml, så kan du ta bort default_config og administrere default-integrasjonene selv, inkludert logbook. For logbook-integrasjonen kan du legge til en exclude avhengig av hva du vil ignorere (f.eks. enten en entity eller et helt domain)
  5. RVM

    Modbus

    Tror ikke det, jeg bruker den bare til å terminere skjerm i en ende.
  6. RVM

    Modbus

    Mener å huske den siste var gnd selv om det ikke er merket, men sjekk med multimeteret mot en av de andre jordterminalene.
  7. RVM

    Modbus

    Det skal være notert ned i igangkjøringsprotokollen du skal ha fått overlevert for aggregatet. Hvis ikke ville jeg begynt med slaveadresse 1, baud 9600, og ingen paritet. Hvis ikke det fungerer ville jeg prøvd andre vanlige baudrater, og så begynt på ny med partalls paritet. Selv om det står at baudrate begynner på 9600 i parameterdokumentet, var 1200 en gyldig baudrate på min VTR300. Kobler du til på A+/B- terminalene? I så fall, kan du ha byttet om på lederne? Eller brukt for lange (uflettede) ledere?
  8. Det er derfor vi har integrasjonene Python Scripts, AppDaemon, og pyscript. Jeg bruker sistnevnte hele tida, men de andre er sikkert brukandes de også
  9. Ser ut som du har plassert templaten for estimert timeforbruk under sensor-delen, men den må du flytte ned eller fjerne indentering, slik som Daily Energy Total-sensoren din.
  10. Høres ut som du må sjekke syntaks for "sensor.stromforbruk_derivert_effekt" også ja. Hvordan ser den ut?
  11. For meg ser det ut som en sammenblanding av nytt og gammelt template format. Nytt format: template: - sensor: - name: "estimert timeforbruk ufiltrert" unit_of_measurement: "kWh" device_class: power state: "{{ (states('sensor.energy')|float(15)+states('sensor.stromforbruk_derivert_effekt')|float(0) *(3600-now().minute*60-now().second)/3600) | round(3) }}" Gammelt format: - platform: template sensors: estimert_timeforbruk_ufiltrert: friendly_name: "estimert timeforbruk ufiltrert" unit_of_measurement: "kWh" device_class: power value_template: "{{ (states('sensor.energy')|float(15)+states('sensor.stromforbruk_derivert_effekt')|float(0) *(3600-now().minute*60-now().second)/3600) | round(3) }}"
  12. Så bra! Siden du la det inn i dag vil du sikkert legge til data fra 01-06. oktober manuelt. Du kan legge inn noe sånt for hver dag du mangler denne måneden, lagre, og ta det bort igjen: pyscript.electricity_monthly_average_price.stored_values['2022-10-01'] = [1.053, 0.875, 0.69, 0.302, 0.24, 0.228, 0.223, 0.334, 0.621, 1.005, 1.505, 1.463, 1.235, 1.017, 0.91, 0.92, 0.96, 1.885, 2.314, 2.674, 2.463, 1.982, 1.511, 1.064]
  13. Ifølge feilmeldingen eksisterer ikke pyscript.electricity_monthly_average_price, så du glemte kanskje å definere den første gang før state.persist? Prøv å endre begynnelsen av scriptet til: pyscript.electricity_monthly_average_price = 0.0 pyscript.electricity_monthly_average_price.stored_values = {} state.persist('pyscript.electricity_monthly_average_price') @state_trigger("sensor.nordpool_kwh_krsand_nok_3_10_025") def calculate_monthly_average_price(): ...og så lagre fila. Deretter fjerner du de to første linjene, slik at det ser slik ut før du lagrer igjen: state.persist('pyscript.electricity_monthly_average_price') @state_trigger("sensor.nordpool_kwh_krsand_nok_3_10_025") def calculate_monthly_average_price():
  14. Noe sånt kanskje? {% set l=state_attr('sensor.nordpool_xxx_xxx_xxx_x_xxx_xxx', 'raw_today')|sort(attribute='value') %} {% set ns = namespace(out=false) %} {% set n = states('input_number.xxx')|int %} {% for i in range(n) %} {% if (now() >= l[i].start and now() <= l[i].end) %} {% set ns.out = true %} {% endif %} {% endfor %} {{ns.out}} Husk å legge inn din egen Nordpool-sensor og input_number.
  15. Mulig det finnes andre måter, men på min kan man i alle fall sette den i Eco mode, og så stille opp terskelverdien for temperaturdifferansen som skal til før varmeelementet slår inn. Men varmeveksleren vil gå etter behov likevel.
×
×
  • Opprett ny...