Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Jepsh

Medlemmer
  • Innlegg

    11
  • Ble med

  • Besøkte siden sist

  • Dager vunnet

    1

Innlegg skrevet av Jepsh

  1. RVM skrev (1 time siden):

    Har du prøvd å legge det til i requirements.txt?

     

     

    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"

     

    • Like 3
  2. 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)

     

    image.png.8c7d3236d124f32ad3f7984b6b69e1d7.png

    Veldig nyttig script!

    Noen ide om hvordan man installerer pandas for pyscript i Home Assistant OS?

  3. 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?

  4. 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.

    • Like 1
  5. 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?

     

    • Like 1
×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.