Jepsh
-
Innlegg
11 -
Ble med
-
Besøkte siden sist
-
Dager vunnet
1
Innholdstype
Profiler
Forum
Blogger
Nedlastninger
Artikler
Regler
Hendelser
Galleri
Store
Innlegg skrevet av Jepsh
-
-
RVM skrev (På 25.11.2022 den 12.06):
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)
Veldig nyttig script!
Noen ide om hvordan man installerer pandas for pyscript i Home Assistant OS?
-
Sorry! Testet med den nye If block nå og det så bra ut i loggen.
Kom i tanke om device setting - Do not update device last change time if device value does not change. Denne var selvfølgelig enabled.
Testet da igjen med det første regex scriptet du sendte og da så alt bra ut ?
Her er scriptet jeg bruker akkurat nå:
Sub Main(ByVal pParms As String) Dim dvref() As String = Split(pParms.ToString, "|") Dim input As String = hs.DeviceString(dvref(0)) Dim regex As New Text.RegularExpressions.Regex("(?<=""Today"":)[^,]+(?=,)") Dim match As Text.RegularExpressions.Match = regex.Match(input) If match.Success Then Dim value As Double = CDbl(match.Groups(0).Value.Replace(".", ",")) hs.SetDeviceValueByRef(dvref(1), value, True) End If End Sub
Det tar da parametre input|output
Neste versjon må være med parameter hvor man kan spesifisere today, yesterday, power, voltage og current
Et lite spørsmål på siden her - hvordan får jeg denne device inkludert i HS3 sin Energy logging?
-
Nå kom det ikke noen feil i loggen, men min device (201) blir ikke oppdatert med ny verdi?
-
Ser ut som det er et match, men får denne feilen:
Exception has been thrown by the target of an invocation.Conversion from string "5.867" to type 'Double' is not valid.
-
2 hours ago, Moskus said:
Ser godt ut, bra jobba!
Kult, takker
-
Har bygget litt videre på scriptet du skrev som utgangspunkt. Ser ut som det funker, men lurer på om det er riktig ("best practice") måte å gjøre det på?
Sub Main(Optional ByVal pParms As String = "") Const dvref As Integer = 200 Dim input As String = (hs.DeviceString(dvref).Replace("""", "")) Dim searchStart As String = "Today:" Dim searchEnd As String = "," Dim indexStart As Integer = input.IndexOf(searchStart) + searchStart.Length Dim indexStop As Integer = input.IndexOf(searchEnd, indexStart) Dim value As Double = CDbl(input.Substring(indexStart, indexStop - indexStart).Replace(".", ",")) hs.SetDeviceValueByRef(201, value, True) End Sub
Har opprettet en ny virtual device i HS3 som har ID 201 som hetter "kWh today".
Dette script kjøres da automatisk fra en event hver gang ID 200 (device som får info fra MQTT ) har en ny value set.
- 1
-
Takk, jeg prøver om jeg kan finne noe bra info rundt dette inntil det kommer en guide i HomeSeer-skolen
-
Takker for svar.
Har ikke scriptet ting til HS3 før. Er det et VBS script du kjører her? Hvordan funker dette?
-
Har kjøpt noen Sonoff Pow moduler som jeg ønsker å implementere i HS3 via MQTT plugin.
Pow enhetene er flashet med firmware fra https://github.com/arendst/Sonoff-Tasmota.
Alt er integrert greit med MQTT og HS3 og jeg kan slå av og på enhetene.
Utfordringen er å få inn Watt osv i HS3. Pow enhetene sender en json string som må parses for å lese ut watt verdien. Jeg får inn hele denne string i HS3:
{"Time":"2017-03-05T11:27:13", "Yesterday":0.008, "Today":0.016, "Period":0, "Power":0, "Factor":0.00, "Voltage":0, "Current":0.000}
Noen som har gjort dette eller vet hvordan det må parses?
- 1
-
Hvordan styrer dere varmen om panelovnen har termostat?
Den vil vel regulere seg selv om den er innstilt på f.eks 21 grader? Er tricket bare å sette den på f.eks 30 grader og da styre av/på fra HomeSeer?
Nordpool sensor for Home Assistant
i Home Assistant
Skrevet · Endret av Jepsh
Forsøkte dette i går, men fikk fortsatt ikke verdier ut. Ser ut til at den har kommet seg i dag morges, så fungerte tydeligvis uansett.
Men endte med å benytte dette
rest: scan_interval: 86400 resource: https://raw.githubusercontent.com/martinju/stromstotte/master/data/current_estimated_compensation.json sensor: - name: "Mean price" json_attributes_path: "$.16" value_template: "{{ value_json.16.mean_price | round (2)}}" unit_of_measurement: "kr" json_attributes: - "estimation_date" - "computation_year" - "computation_month" - name: "Quantile 0.025" json_attributes_path: "$.19" value_template: "{{ value_json.19.mean_price | round (2)}}" unit_of_measurement: "kr" json_attributes: - "estimation_date" - "computation_year" - "computation_month" - name: "Quantile 0.975" json_attributes_path: "$.26" value_template: "{{ value_json.26.mean_price | round (2)}}" unit_of_measurement: "kr" json_attributes: - "estimation_date" - "computation_year" - "computation_month"