33 688 läst ·
116 svar
34k läst
116 svar
Heru Vent - KNX
Byt register_type till coil (eller vad det nu kan heta i HA).Johan1975z skrev:
Nej, någon hade ju pratat med Östberg och kommit fram till att detta var en miss i deras modbus-implementation. I min version går det helt enkelt inte att resetta. Känns inte värt att styrkortsbyte bara för att få till det.K KjellTimell skrev:
Håller med om att det inte är värt 3-4000kr för den funktionen.G gein skrev:
Samtidigt känner jag att det är en av dom viktigaste funktionerna vid en modbus integrering.
Får jaga på dom idag igen och se om dom vill släppa FW till gamla styren.
Va det inte så att personen som implementerat detta inte ens fanns kvar. Att få ny FW är nog en högoddsare men hojta gärna till om du lyckas!K KjellTimell skrev:
Du kan väl fortfarande få larm när det är dags med filterbyte. Bara att man få resetta via fjärrkontrollen. Vi har fjärrkontrollen centralt så det är ingen big deal iaf. Jag kan styra önskad temperatur, fläkthastighet och läsa av diverse givare. Det är gott nog för mig.
När ni har använt modbus seriell eller tcp mot Heru från Ha har ni haft problem med att ni fått 0 i börjat och slutet på svaret. Många säger att detta är ett problem, men har ni fått göra något extra i Ha för att få det att fungera?
Håller på att koppla upp min Heru130 vi modbus med hjälp av en egen byggda modbus tcp till seriell brygga och frågan är hur mycket kod jag behöver lägga där för att ta bort eventuellt felaktiga tecken.
Håller på att koppla upp min Heru130 vi modbus med hjälp av en egen byggda modbus tcp till seriell brygga och frågan är hur mycket kod jag behöver lägga där för att ta bort eventuellt felaktiga tecken.
nej, det behövde jag inte. Däremot får man dra bort ett -1 på alla register. Ex 20 är 19.V viggen_l skrev:När ni har använt modbus seriell eller tcp mot Heru från Ha har ni haft problem med att ni fått 0 i börjat och slutet på svaret. Många säger att detta är ett problem, men har ni fått göra något extra i Ha för att få det att fungera?
Håller på att koppla upp min Heru130 vi modbus med hjälp av en egen byggda modbus tcp till seriell brygga och frågan är hur mycket kod jag behöver lägga där för att ta bort eventuellt felaktiga tecken.
jag har den nya HERU 100. Vet inte om det är nån skillnad på våra modbus
Fantastisk tråd! Jag funderar på att köpa en raspberry pi zero (billig + trådlös) och sen använda denna metod för att få in mbusd i pajen så den blir en seriel-tcp modbus adapter.
Fråga till @genie330 som redan gjort detta: i ditt exempel verkar du starta modbusd med en rad argument, men jag funderar på om jag inte vill få in den som en tjänst med systemctl så den överlever en omstart, och då kanske man borde få in argumenten i konfig-filen /etc/mbusd/mbusd-ttyUSB0.conf som sedan används när man skapar tjänsten?
Har du kanske redan gjort detta, och skulle du i så fall kanske kunna dela din konfig-fil? Jag *gissar* att den ser ut så här (men säg gärna till om du löst det på annat sätt
:
------
# Serial port device name
device = /dev/ttyUSB0
# Serial port speed (Folow on your PLC or Modbus Device config)
speed = 9600
# Serial port mode (Folow on your PLC or Modbus Device config)
mode = 8N2
# RS-485 data direction control type (addc, rts, sysfs_0, sysfs_1)
trx_control = addc
# Sysfs file to use to control data direction
# trx_sysfile =
############# TCP port settings #############
# TCP server port number
port = 502
# Maximum number of simultaneous TCP connections
maxconn = 32
# Connection timeout value in seconds
timeout = 60
######### Request/response settings #########
# Maximum number of request retries
retries = 3
# Pause between requests in milliseconds
pause = 100
# Response wait time in milliseconds
wait = 500
------
Fråga till @genie330 som redan gjort detta: i ditt exempel verkar du starta modbusd med en rad argument, men jag funderar på om jag inte vill få in den som en tjänst med systemctl så den överlever en omstart, och då kanske man borde få in argumenten i konfig-filen /etc/mbusd/mbusd-ttyUSB0.conf som sedan används när man skapar tjänsten?
Har du kanske redan gjort detta, och skulle du i så fall kanske kunna dela din konfig-fil? Jag *gissar* att den ser ut så här (men säg gärna till om du löst det på annat sätt
------
# Serial port device name
device = /dev/ttyUSB0
# Serial port speed (Folow on your PLC or Modbus Device config)
speed = 9600
# Serial port mode (Folow on your PLC or Modbus Device config)
mode = 8N2
# RS-485 data direction control type (addc, rts, sysfs_0, sysfs_1)
trx_control = addc
# Sysfs file to use to control data direction
# trx_sysfile =
############# TCP port settings #############
# TCP server port number
port = 502
# Maximum number of simultaneous TCP connections
maxconn = 32
# Connection timeout value in seconds
timeout = 60
######### Request/response settings #########
# Maximum number of request retries
retries = 3
# Pause between requests in milliseconds
pause = 100
# Response wait time in milliseconds
wait = 500
------
Både mbusd och pajen är så stabila så jag har faktiskt inte brytt mig om att få in den i systemctl eller någon autostart på tjänsten. Tror pajen bootats om totalt två gånger (strömavbrott bägge gångerna) de här åren, och mbusd har aldrig kraschat på egen hand.G goodyear77 skrev:Fråga till @genie330 som redan gjort detta: i ditt exempel verkar du starta modbusd med en rad argument, men jag funderar på om jag inte vill få in den som en tjänst med systemctl så den överlever en omstart, och då kanske man borde få in argumenten i konfig-filen /etc/mbusd/mbusd-ttyUSB0.conf som sedan används när man skapar tjänsten?
Har du kanske redan gjort detta, och skulle du i så fall kanske kunna dela din konfig-fil? Jag *gissar* att den ser ut så här (men säg gärna till om du löst det på annat sätt:
Ditt förslag ser dock intressant ut, kanske ska peta in det i pajen...
// J
Tack för svar! Då har jag en körplan för projektet, summerar här för andra som kanske också försöker få ihop alla steg genom att leta sig igenom alla inlägg (och för att jag själv ska komma ihåg medan jag har det färskt i minnet ).
Säg gärna till om jag missat/missförstått något:
# Serial port device name
device = /dev/ttyUSB0
# Serial port speed (Folow on your PLC or Modbus Device config)
speed = 9600
# Serial port mode (Folow on your PLC or Modbus Device config)
mode = 8N2
############# TCP port settings #############
# TCP server port number
port = 4000
------
modbus:
type: tcp
host: 192.168.1.179
port: 4000
sensor:
- platform: modbus
registers:
- name: Inluft
unit_of_measurement: '°C'
slave: 1
register: 1
data_type: int
scale: 0.1
precision: 1
register_type: 'input'
- name: Tilluft
unit_of_measurement: '°C'
slave: 1
register: 2
data_type: int
scale: 0.1
precision: 1
register_type: 'input'
- name: Frånluft
unit_of_measurement: '°C'
slave: 1
register: 3
data_type: int
scale: 0.1
precision: 1
register_type: 'input'
- name: Avluft
unit_of_measurement: '°C'
slave: 1
register: 4
data_type: int
scale: 0.1
precision: 1
register_type: 'input'
- name: FTX Hjul
unit_of_measurement: '°C'
slave: 1
register: 6
data_type: int
scale: 0.1
precision: 1
register_type: 'input'
- name: FTX Återvinning
unit_of_mesurement: '%'
slave: 1
register: 29
data_type: int
register_type: 'input'
- name: FTX Eftervärme
unit_of_mesurement: '%'
slave: 1
register: 28
register_type: 'input'
- name: FTX Filter
unit_of_measurement: 'dagar'
slave: 1
register: 19
data_type: int
register_type: 'input'
- name: Tilluftsfläkt
unit_of_mesurement: 'RPM'
slave: 1
register: 26
data_type: int
register_type: 'input'
- name: Frånluftsfläkt
unit_of_measurement: 'RPM'
slave: 1
register: 27
data_type: int
register_type: 'input'
- name: FTX Börtemp
unit_of_mesurement: '°C'
slave: 1
register: 1
data_type: int
register_type: 'holding'
- name: FTX Veckotimer
slave: 1
register: 68
data_type: int
register_type: 'holding'
—-
Konfiguration för att ha en slider i frontend för att styra börtemperatur:
---
input_number:
ftx_setpoint:
name: Börtemperatur
min: 16
max: 25
step: 1
icon: mdi:temperature-celsius
---
Och en automatisering för att skicka uppdaterat värde på slidern via modbus (förutsätter "ny" struktur med automations.yaml):
---
- id: ftx_setpoint_1
alias: Set FTX temperature setpoint
trigger:
platform: state
entity_id: input_number.ftx_setpoint
action:
- service: modbus.write_register
data_template:
unit: 1
address: 1
value: '{{ states.input_number.ftx_setpoint.state | int }}'
---
Säg gärna till om jag missat/missförstått något:
- Köp modbusfjärr från Östberg för att aktivera modbus
- Köp 485-kabel https://www.ftdichip.com/Products/Cables/USBRS485.htm
- Köp Raspberry pi zero + minneskort mm
- Installera linux-image på pajjen och koppla upp mot wifi (instruktioner här)
- Installera mbusd enligt https://link.medium.com/xsVWJfs7J9
- Konfa mbusd som tjänst (denna konfig borde räcka, annars kan man använda den långa versionen i förra posten):
# Serial port device name
device = /dev/ttyUSB0
# Serial port speed (Folow on your PLC or Modbus Device config)
speed = 9600
# Serial port mode (Folow on your PLC or Modbus Device config)
mode = 8N2
############# TCP port settings #############
# TCP server port number
port = 4000
------
- Koppla in 485-kabel och paj i aggregatet
- Koppla upp Home Assistant mot pajen (förutsätter att man redan har koll på Home Assistant och så får man fixa indenteringen och byt host-IP så klart) med denna konfig:
modbus:
type: tcp
host: 192.168.1.179
port: 4000
sensor:
- platform: modbus
registers:
- name: Inluft
unit_of_measurement: '°C'
slave: 1
register: 1
data_type: int
scale: 0.1
precision: 1
register_type: 'input'
- name: Tilluft
unit_of_measurement: '°C'
slave: 1
register: 2
data_type: int
scale: 0.1
precision: 1
register_type: 'input'
- name: Frånluft
unit_of_measurement: '°C'
slave: 1
register: 3
data_type: int
scale: 0.1
precision: 1
register_type: 'input'
- name: Avluft
unit_of_measurement: '°C'
slave: 1
register: 4
data_type: int
scale: 0.1
precision: 1
register_type: 'input'
- name: FTX Hjul
unit_of_measurement: '°C'
slave: 1
register: 6
data_type: int
scale: 0.1
precision: 1
register_type: 'input'
- name: FTX Återvinning
unit_of_mesurement: '%'
slave: 1
register: 29
data_type: int
register_type: 'input'
- name: FTX Eftervärme
unit_of_mesurement: '%'
slave: 1
register: 28
register_type: 'input'
- name: FTX Filter
unit_of_measurement: 'dagar'
slave: 1
register: 19
data_type: int
register_type: 'input'
- name: Tilluftsfläkt
unit_of_mesurement: 'RPM'
slave: 1
register: 26
data_type: int
register_type: 'input'
- name: Frånluftsfläkt
unit_of_measurement: 'RPM'
slave: 1
register: 27
data_type: int
register_type: 'input'
- name: FTX Börtemp
unit_of_mesurement: '°C'
slave: 1
register: 1
data_type: int
register_type: 'holding'
- name: FTX Veckotimer
slave: 1
register: 68
data_type: int
register_type: 'holding'
—-
Konfiguration för att ha en slider i frontend för att styra börtemperatur:
---
input_number:
ftx_setpoint:
name: Börtemperatur
min: 16
max: 25
step: 1
icon: mdi:temperature-celsius
---
Och en automatisering för att skicka uppdaterat värde på slidern via modbus (förutsätter "ny" struktur med automations.yaml):
---
- id: ftx_setpoint_1
alias: Set FTX temperature setpoint
trigger:
platform: state
entity_id: input_number.ftx_setpoint
action:
- service: modbus.write_register
data_template:
unit: 1
address: 1
value: '{{ states.input_number.ftx_setpoint.state | int }}'
---
Redigerat:
Hejsan, vet inte hur mycket denna tråd bevakas men för info så kommer buggen med filtertimer som ej kan återställas genom modbus snart vara löst. Om det sedan kommer finnas möjlighet att uppdatera mjukvaran på befintligt kretskort eller om det kommer krävas ett byte av kort vet jag ej i nuläget.K KjellTimell skrev: