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

Modbus


stigvi

Anbefalte innlegg

Eg har på ein måte fått bekrefta min mistanke om at det aldri har vore ein PC tilkobla anlegget mitt. Leverandøren sa når eg fekk Touch panelet mitt at dei hadde hatt eitt panel dei siste åra som dei hadde brukt for å sette opp anlegga og så tatt det med seg til neste.

 

Så, då har dei lagt inn oppsett for viftehastigheter osv men ikkje gjort noko med Modbus.

Lenke til kommentar
Del på andre sider

  • 2 måneder senere...
On 31/08/2022 at 18:43, stigvi said:

 


modbus:
  id: modbus1
  uart_id: mod_uart
  flow_control_pin: 5
  send_wait_time: 1000ms

modbus_controller:
  - id: heru
    ## the Modbus device addr
    address: 1
    modbus_id: modbus1
    command_throttle: 1000ms
    update_interval: 10s
    
switch:
  - platform: modbus_controller
    modbus_controller_id: heru
    register_type: coil
    address: 3
    name: "ventilation_away_mode"


number:
  - platform: modbus_controller
    modbus_controller_id: heru
    name: "ventilation_temperature_setpoint"
    register_type: holding
    address: 1
    value_type: S_WORD
    unit_of_measurement: "°C"
    min_value: 15
    max_value: 30
    

 

 

Snippet litt fra configen din. da jeg hadde noen spørsmål rundt hvordan du har bygget opp configen. I modbus config dokumentasjonen så viser de et oppsett lignende det jeg har brukt under her. Dette er et Heru S160ec anlegg hvor det meste fungerer, men "climates" ble feil etter at heru ga ut 1.10 firmware som endrer skalering på temperatur innganger (input registers), men ikke utganger (holding reister). Det er et sidespor til spørsmålet, men for å løse dette problemet tenkte jeg å sette opp et enkelt setpunkt som du har gjort med "number", men da ser jeg at du har bygget det opp veldig ulikt min config med "modbus_controller"/platform. Dette med platform og modbus hvor finner jeg dokumentasjon på måten du har løst dette på så jeg får lest litt om dette evnt har du en enkel forklaring på hvordan det henger sammen?

 

Jeg er rimelig lost i oppsett av home assistant så det er mulig jeg gjør ting helt feil i utgangspunktet her 😛 Configen min er noen år gammel også så mulig noe av det er en utdatert måte å gjøre det på.  

 

Edit: Da fant jeg ut at det var en egen komponent knyttet til ESPn dere bruker så da får jeg gruble videre på min løsning som bruker modbus tcp direkte 🙂

 

https://esphome.io/components/modbus

 

modbus:
  - name: hub1
    type: tcp
    host: 10.0.0.11
    port: 502
    sensors:
      - name: Utetemperatur
        unit_of_measurement: °C
        slave: 1
        address: 1
        input_type: input
        unique_id: 400
        scale: 0.1 
        precision: 1
      - name: Tilluftstemperatur
        unit_of_measurement: °C
        slave: 1
        address: 2
        input_type: input 
        unique_id: 401
        scale: 0.1
        precision: 1
      - name: Fraluftstemperatur
        unit_of_measurement: °C
        slave: 1
        address: 3
        input_type: input
        unique_id: 402
        scale: 0.1
        precision: 1 
      - name: Avkasttemperatur 
        unit_of_measurement: °C
        slave: 1
        address: 4
        input_type: input
        unique_id: 403
        scale: 0.1
        precision: 1
      - name: Etter varmegjenvinner
        unit_of_measurement: °C
        slave: 1
        address: 6
        input_type: input
        unique_id: 404
        scale: 0.1
        precision: 1
      - name: Filter tid til skifte
        unit_of_measurement: dager
        slave: 1
        address: 19
        input_type: input
        unique_id: 405
      - name: Tilluftsvifte
        unit_of_measurement: '%'
        slave: 1
        address: 24
        input_type: input
        unique_id: 406 
      - name: Fraluftsvifte
        unit_of_measurement: '%'
        slave: 1
        address: 25
        input_type: input
        unique_id: 407 
      - name: Varmebatteri 
        unit_of_measurement: '%'
        slave: 1
        address: 28
        scale: 0.3921568
        input_type: input
        unique_id: 500        
      - name: Gjenvinner
        unit_of_measurement: '%'
        scale: 0.392156
        slave: 1
        address: 29
        input_type: input
        unique_id: 408
      - name: Setpunkt økonomi
        unit_of_measurement: °C
        slave: 1
        address: 0
        input_type: holding
        unique_id: 409
      - name: Setpunkt comfort
        unit_of_measurement: °C
        slave: 1
        address: 1
        input_type: holding
        unique_id: 410
      - name: heater type
        slave: 1
        address: 65
        input_type: holding
        unique_id: 417
      - name: heater enabled
        slave: 1
        address: 66
        input_type: holding
        unique_id: 418
    switches:
      - name: "Heater"
        slave: 1
        address: 66
        command_on: 1
        command_off: 0
        write_type: holding
        scan_interval: 6
        verify:
            input_type: holding
            address: 66
            state_on: 1
            state_off: 0
      - name: "Boost"
        slave: 1
        address: 2
        command_on: 1
        command_off: 0
        write_type: coil
        scan_interval: 6
        verify:
            input_type: coil
            address: 2
            state_on: 1
            state_off: 0

    climates:
      - name: "Setcomfort"
        address: 2
        input_type: input
        max_temp: 35
        min_temp: 15
        offset: 0
        precision: 1
        scale: 1
        target_temp_register: 1
        temp_step: 1
        temperature_unit: °C
        unique_id: 419

template:
  - sensor:
      - name: "varmebatteri_effekt"
        unit_of_measurement: W
        state: "{{ states('sensor.varmebatteri') | int * 12 }}"
      - name: "virkningsgradtil"
        unit_of_measurement: '%'
        state: "{{ (((states('sensor.etter_varmegjenvinner') | int - states('sensor.utetemperatur') | int ) / (states('sensor.fraluftstemperatur') | int -  states('sensor.utetemperatur') | int )) * 100)|round(1) }}"
      - name: "virkningsgradfra"
        unit_of_measurement: '%'
        state: "{{ (((states('sensor.fraluftstemperatur') | int - states('sensor.avkasttemperatur') | int ) / (states('sensor.fraluftstemperatur') | int -  states('sensor.utetemperatur') | int )) * 100)|round(1) }}"

 

Endret av minim
  • Like 1
Lenke til kommentar
Del på andre sider

minim skrev (8 timer siden):

 

Snippet litt fra configen din. da jeg hadde noen spørsmål rundt hvordan du har bygget opp configen. I modbus config dokumentasjonen så viser de et oppsett lignende det jeg har brukt under her. Dette er et Heru S160ec anlegg hvor det meste fungerer, men "climates" ble feil etter at heru ga ut 1.10 firmware som endrer skalering på temperatur innganger (input registers), men ikke utganger (holding reister). Det er et sidespor til spørsmålet, men for å løse dette problemet tenkte jeg å sette opp et enkelt setpunkt som du har gjort med "number", men da ser jeg at du har bygget det opp veldig ulikt min config med "modbus_controller"/platform. Dette med platform og modbus hvor finner jeg dokumentasjon på måten du har løst dette på så jeg får lest litt om dette evnt har du en enkel forklaring på hvordan det henger sammen?

 

Jeg er rimelig lost i oppsett av home assistant så det er mulig jeg gjør ting helt feil i utgangspunktet her 😛 Configen min er noen år gammel også så mulig noe av det er en utdatert måte å gjøre det på.  

 

Edit: Da fant jeg ut at det var en egen komponent knyttet til ESPn dere bruker så da får jeg gruble videre på min løsning som bruker modbus tcp direkte 🙂

 

https://esphome.io/components/modbus

 

modbus:
  - name: hub1
    type: tcp
    host: 10.0.0.11
    port: 502
    sensors:
      - name: Utetemperatur
        unit_of_measurement: °C
        slave: 1
        address: 1
        input_type: input
        unique_id: 400
        scale: 0.1 
        precision: 1
      - name: Tilluftstemperatur
        unit_of_measurement: °C
        slave: 1
        address: 2
        input_type: input 
        unique_id: 401
        scale: 0.1
        precision: 1
      - name: Fraluftstemperatur
        unit_of_measurement: °C
        slave: 1
        address: 3
        input_type: input
        unique_id: 402
        scale: 0.1
        precision: 1 
      - name: Avkasttemperatur 
        unit_of_measurement: °C
        slave: 1
        address: 4
        input_type: input
        unique_id: 403
        scale: 0.1
        precision: 1
      - name: Etter varmegjenvinner
        unit_of_measurement: °C
        slave: 1
        address: 6
        input_type: input
        unique_id: 404
        scale: 0.1
        precision: 1
      - name: Filter tid til skifte
        unit_of_measurement: dager
        slave: 1
        address: 19
        input_type: input
        unique_id: 405
      - name: Tilluftsvifte
        unit_of_measurement: '%'
        slave: 1
        address: 24
        input_type: input
        unique_id: 406 
      - name: Fraluftsvifte
        unit_of_measurement: '%'
        slave: 1
        address: 25
        input_type: input
        unique_id: 407 
      - name: Varmebatteri 
        unit_of_measurement: '%'
        slave: 1
        address: 28
        scale: 0.3921568
        input_type: input
        unique_id: 500        
      - name: Gjenvinner
        unit_of_measurement: '%'
        scale: 0.392156
        slave: 1
        address: 29
        input_type: input
        unique_id: 408
      - name: Setpunkt økonomi
        unit_of_measurement: °C
        slave: 1
        address: 0
        input_type: holding
        unique_id: 409
      - name: Setpunkt comfort
        unit_of_measurement: °C
        slave: 1
        address: 1
        input_type: holding
        unique_id: 410
      - name: heater type
        slave: 1
        address: 65
        input_type: holding
        unique_id: 417
      - name: heater enabled
        slave: 1
        address: 66
        input_type: holding
        unique_id: 418
    switches:
      - name: "Heater"
        slave: 1
        address: 66
        command_on: 1
        command_off: 0
        write_type: holding
        scan_interval: 6
        verify:
            input_type: holding
            address: 66
            state_on: 1
            state_off: 0
      - name: "Boost"
        slave: 1
        address: 2
        command_on: 1
        command_off: 0
        write_type: coil
        scan_interval: 6
        verify:
            input_type: coil
            address: 2
            state_on: 1
            state_off: 0

    climates:
      - name: "Setcomfort"
        address: 2
        input_type: input
        max_temp: 35
        min_temp: 15
        offset: 0
        precision: 1
        scale: 1
        target_temp_register: 1
        temp_step: 1
        temperature_unit: °C
        unique_id: 419

template:
  - sensor:
      - name: "varmebatteri_effekt"
        unit_of_measurement: W
        state: "{{ states('sensor.varmebatteri') | int * 12 }}"
      - name: "virkningsgradtil"
        unit_of_measurement: '%'
        state: "{{ (((states('sensor.etter_varmegjenvinner') | int - states('sensor.utetemperatur') | int ) / (states('sensor.fraluftstemperatur') | int -  states('sensor.utetemperatur') | int )) * 100)|round(1) }}"
      - name: "virkningsgradfra"
        unit_of_measurement: '%'
        state: "{{ (((states('sensor.fraluftstemperatur') | int - states('sensor.avkasttemperatur') | int ) / (states('sensor.fraluftstemperatur') | int -  states('sensor.utetemperatur') | int )) * 100)|round(1) }}"

 



Ja, som du så er min yaml for esp noden.

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.