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

Hvordan få simple_pid til å fungere?


Anbefalte innlegg

Hei,

 

Har lest litt på forumet her, og tenkte å gå for @stigvi sitt oppsett for "Prediktiv reduksjon av strømbruk". Men sliter med å få simple_pid til å fungere.

Får opp denne feilmeldingen her:

This error originated from a custom integration.

Logger: custom_components.pyscript.file.pidpower
Source: custom_components/pyscript/global_ctx.py:337
Integration: Pyscript Python scripting (documentation, issues)
First occurred: December 15, 2021, 22:22:38 (1 occurrences)
Last logged: December 15, 2021, 22:22:38

Exception in </config/pyscript/pidpower.py> line 1: from simple_pid import PID ^ ModuleNotFoundError: No module named 'simple_pid'

 

Litt om systemet mitt, som kanskje kan gjøre det lettere å hjelpe meg med feilen over.

Har installert HA på en iNuc, og kjører core-2021.12.2 og supervisor-2021.12.2.

Installert pyscript via HACS og konfigurert den i UI med "allow all imports" og Access hass as a global variable" aktivert.

Laget folder "pyscript" og pidpower.py fil som jeg har lagt som jeg har kopiert inn som en start, for å jobbe ut fra den koden.

Noen som kan gi meg et vink eller to i riktig retning?

 

from simple_pid import PID

pid = PID(40.0, 1.0, 1600.0, setpoint=float(input_number.kwh_max))
pid.sample_time = 1.9
pid.output_limits = (0, 100)
pid.proportional_on_measurement = False
pid.auto_mode = True
last_c = 0
turned_off_all = False
turned_off_car = False

@state_trigger("sensor.energy")
def new_state():
    global pid
    global last_c
    global turned_off_all
    global turned_off_car
    
    c = pid(float(sensor.estimated_hourly_consumption))
    p, i, d = pid.components
    state.set("sensor.regulator_p", round(p,1))
    state.set("sensor.regulator_i", round(i,1))
    state.set("sensor.regulator_d", round(d,1))
    
    if last_c != c:
        sensor.regulator_energy_usage = int(c)  #, attributes = {"unit_of_measurement": "%", "friendly_name": "Pådrag varme"})

    last_c = c

    if c < 10 and turned_off_car == False:
        easee.set_charger_circuit_dynamic_limit(charger_id = "EH430587", currentP1 = "0")
        turned_off_car = True

    if c > 12 and turned_off_car == True:
        easee.set_charger_circuit_dynamic_limit(charger_id = "EH430587", currentP1 = "6")
        turned_off_car = False

    if c < 2 and turned_off_all == False:
        esphome.terrassevarmer_pause()
        esphome.varmtvannstank_pause()
        persistent_notification.create(title = "Strøm", message = "Effektbegrensing slo av alt.")

        turned_off_all = True
    
    if c > 5 and turned_off_all == True:
        esphome.terrassevarmer_resume()
        esphome.varmtvannstank_resume()
        turned_off_all = False
    
@state_trigger("input_number.max_energy_usage")
def setpoint(value=None):
    pid.setpoint = float(value)

@state_trigger("input_number.consumption_lasthour")
def hourly_usage(value=None):
    if float(value) > float(input_number.max_energy_usage):
        script.turn_on(entity_id = "script.send_melding", variables = {'message': 'Strømforbruk var større enn grense', 'title': 'Strøm', 'channel': 'Info'})

 

Lenke til kommentar
Del på andre sider

Ok, prøvde å finne ut tidligere om noe lignende hadde blitt spurt om. Fant dessverre ikke stort. Har knotet med dette noen dager nå. Vis du finner det ut så er jeg takknemlig om du sier ifra ;) Så kan jeg iallefall komme meg et par steg videre :D 

Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • 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.