Closed accomco closed 1 month ago
Did you switch the mode of the cimate entity in home assistant from auto to heat cool?
Yes, I switched the climate entity which appears in esphome to Heat/Cool (without which it does not display a current_temperature attribute). The S1 climate entity created by esphome-nibe is on 'heat' - the pump rejects it being set to heat/cool. Any ideas?
Do you have 3 climate systems? To control any real temperature it need to be linked to an actual climate system on your pump.
A standard pump only has system 1. For extra climate systems you need stuff like ECS addon which has separate circulation pump.
So set it to run on system 1.
Hi @accomco
I have it like this,
# Accessory version response
- address: RMU40_S4
token: ACCESSORY
data: [
0xEE, # RMU ?
0x03, # RMU version low
0x01, # RMU version high
]
# Unknown response that nibepi uses
- address: RMU40_S4
token: RMU_DATA
command: RMU_WRITE
data: [
0x63,
0x00,
]
# Constant fixed temperature to avoid pump going into alarm.
- address: RMU40_S4
token: RMU_WRITE
data: [
0x06, # Temperature
0x14, # degrees low
0x00, # degrees high
]
climate:
For me it works, but I have set all instances for the RMU to S1 (response, sensor and acknowledge) and enabled RMU1 in my F1255.
Hi all, thanks very much for suggestions.
We only operate System 1, and I have previously tried the following config with the RMU enabled for S1 (other settings per previous post):
# Add a virtual RMU on S1
climate:
- platform: nibegw
name: s1
system: 1
sensor: current_temperature_s1
# Add a temperature sensor taken from home assistant to use for virtual RMU
sensor:
- platform: homeassistant
id: current_temperature_s1
entity_id: sensor.nibe_passback_thermostat
With the above config, the pass back temperature is ignored, the pump uses the BT50 temperature, and the additional climate entity (Nibe_GW s1) shows the BT10 temperature.
I shall try @svollebregt suggestion (setting ‘response’ and ‘acknowledge’ to RMU40_S1) with the above config.
Dont add S1 system responses manually if you run a virtual rmu. They will interfere
Thanks @elupus. Can you help me out with what you mean by 'S1 system responses' please? Which of the elements in the 'Complete config' I should not include if I wish to use a virtual RMU?
You dont need any of the RMU40_XX constants.
Thanks again @elupus. Unfortunately still no joy! The RMU climate entity created by esphome is still showing the BT50 temperature reading, not the one I am passing to it. I have:
System runs - seems to accept the virtual RMU exists - but does not accept the temperature reading from it.
Config is now:
substitutions:
name: "nibe-gw"
friendly_name: Nibe_GW
esphome:
name: ${name}
friendly_name: ${friendly_name}
min_version: 2024.6.0
name_add_mac_suffix: false
esp32:
board: m5stack-atom
framework:
type: arduino
# Enable logging
logger:
baud_rate: 0
# Enable Home Assistant API
api:
ota:
- platform: esphome
password: !secret ota_password
wifi:
power_save_mode: none
ssid: !secret wifi_ssid
password: !secret wifi_password
# Optional manual IP
manual_ip:
static_ip: 192.168.0.XXX
gateway: 192.168.0.1
subnet: 255.255.255.0
external_components:
- source:
type: git
url: https://github.com/elupus/esphome-nibe.git
components: [ nibegw ]
uart:
id: my_uart
rx_pin: GPIO22
tx_pin: GPIO19
baud_rate: 9600
nibegw:
# If you have a named uart instance, you can specify this here.
uart_id: my_uart
udp:
# The target address(s) to send data to. May also be multicast addresses.
target:
- ip: 192.168.0.XXX
port: 9999
# List of source address to accept read/write from, may be empty for no filter, but
# this is not recommended.
source:
# - 192.168.255.254
# Optional port this device will listen to to receive read requests. Defaults to 9999
# read_port: 9999
# Optional port this device will listen to to receive write request. Defaults to 10000
# write_port: 10000
acknowledge:
- MODBUS40
# Add a virtual RMU on S1
climate:
- platform: nibegw
name: s1
system: 1
sensor: current_temperature_s1
# Add a temperature sensor taken from home assistant to use for virtual RMU
sensor:
- platform: homeassistant
id: current_temperature_s1
entity_id: sensor.nibe_passback_thermostat
Log is showing esphome-nibe publishing the 'pass back' temp to the RMU (in this case 23.9), but that the S1 climate entity remains unaffected (in this case 24.8):
INFO ESPHome 2024.9.0
INFO Reading configuration /config/esphome/nibe-gw.yaml...
INFO Starting log output from 192.168.0.199 using esphome API
INFO Successfully connected to nibe-gw @ 192.168.0.XXX in 0.011s
INFO Successful handshake with nibe-gw @ 192.168.0.XXX in 0.027s
[14:07:54][I][app:100]: ESPHome version 2024.9.0 compiled on Sep 19 2024, 13:58:12
[14:07:54][C][wifi:600]: WiFi:
[14:07:54][C][wifi:428]: Local MAC:
[14:07:54][C][wifi:433]: SSID: '[redacted]
[14:07:54][C][wifi:436]: IP Address: 192.168.0.XXX
[14:07:54][C][wifi:440]: BSSID: [redacted]
[14:07:54][C][wifi:441]: Hostname: 'nibe-gw'
[14:07:54][C][wifi:443]: Signal strength: -65 dB ▂▄▆█
[14:07:54][C][wifi:447]: Channel: 6
[14:07:54][C][wifi:448]: Subnet: 255.255.255.0
[14:07:54][C][wifi:449]: Gateway: 192.168.0.1
[14:07:54][C][wifi:450]: DNS1: 0.0.0.0
[14:07:54][C][wifi:451]: DNS2: 0.0.0.0
[14:07:54][C][logger:185]: Logger:
[14:07:54][C][logger:186]: Level: DEBUG
[14:07:54][C][logger:188]: Log Baud Rate: 0
[14:07:54][C][logger:189]: Hardware UART: UART0
[14:07:54][C][uart.arduino_esp32:151]: UART Bus 0:
[14:07:54][C][uart.arduino_esp32:152]: TX Pin: GPIO19
[14:07:54][C][uart.arduino_esp32:153]: RX Pin: GPIO22
[14:07:54][C][uart.arduino_esp32:155]: RX Buffer Size: 256
[14:07:54][C][uart.arduino_esp32:157]: Baud Rate: 9600 baud
[14:07:54][C][uart.arduino_esp32:158]: Data Bits: 8
[14:07:54][C][uart.arduino_esp32:159]: Parity: NONE
[14:07:54][C][uart.arduino_esp32:160]: Stop bits: 1
[14:07:54][C][nibegw:165]: NibeGw Climate
[14:07:54][C][nibegw:166]: Address: 0x19
[14:07:54][C][nibegw:167]: Sensor: current_temperature_s1
[14:07:54][C][nibegw:571]: ClimateTraits:
[14:07:54][C][nibegw:572]: [x] Visual settings:
[14:07:54][C][nibegw:574]: - Max temperature: 30.5
[14:07:54][C][mdns:116]: mDNS:
[14:07:54][C][mdns:117]: Hostname: nibe-gw
[14:07:54][C][esphome.ota:073]: Over-The-Air updates:
[14:07:54][C][esphome.ota:074]: Address: 192.168.0.XXX:3232
[14:07:54][C][esphome.ota:075]: Version: 2
[14:07:54][C][safe_mode:018]: Safe Mode:
[14:07:54][C][safe_mode:020]: Boot considered successful after 60 seconds
[14:07:54][C][safe_mode:021]: Invoke after 10 boot attempts
[14:07:54][C][safe_mode:023]: Remain in safe mode for 300 seconds
[14:07:54][C][api:139]: API Server:
[14:07:54][C][api:140]: Address: 192.168.0.XXX:6053
[14:07:54][C][api:144]: Using noise encryption: NO
[14:07:54][C][homeassistant.sensor:030]: Homeassistant Sensor 'current_temperature_s1'
[14:07:54][C][homeassistant.sensor:030]: State Class: ''
[14:07:54][C][homeassistant.sensor:030]: Unit of Measurement: ''
[14:07:54][C][homeassistant.sensor:030]: Accuracy Decimals: 1
[14:07:54][C][homeassistant.sensor:031]: Entity ID: 'sensor.nibe_passback_thermostat'
[14:07:54][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:07:54][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:07:55][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:07:55][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:07:55][D][climate:396]: 's1' - Sending state:
[14:07:55][D][climate:399]: Mode: HEAT_COOL
[14:07:55][D][climate:419]: Current Temperature: 24.90°C
[14:07:55][D][climate:425]: Target Temperature: nan°C
[14:07:55][D][nibegw:043]: UDP Packet with 37 bytes to send
[14:07:56][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:07:56][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:07:56][D][nibegw:043]: UDP Packet with 86 bytes to send
[14:07:57][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:07:57][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:07:57][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:07:57][D][nibegw:106]: Response to address: 0x19 token: 0x63 bytes: 6
[14:07:58][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:07:58][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:07:59][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:07:59][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:07:59][D][climate:396]: 's1' - Sending state:
[14:07:59][D][climate:399]: Mode: HEAT_COOL
[14:07:59][D][climate:419]: Current Temperature: 24.90°C
[14:07:59][D][climate:425]: Target Temperature: nan°C
[14:07:59][D][nibegw:043]: UDP Packet with 37 bytes to send
[14:08:00][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:08:00][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:08:00][D][nibegw:043]: UDP Packet with 86 bytes to send
[14:08:01][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:08:01][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:08:01][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:08:01][D][nibegw:106]: Response to address: 0x19 token: 0x60 bytes: 0
[14:08:02][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:08:02][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:08:02][D][nibegw:043]: UDP Packet with 7 bytes to send
[14:08:03][I][nibegw:155]: Publishing to rmu: 0x19 temp: 23.900000 -> F6.00
[14:08:03][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:08:03][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:08:03][D][climate:396]: 's1' - Sending state:
[14:08:03][D][climate:399]: Mode: HEAT_COOL
[14:08:03][D][climate:419]: Current Temperature: 24.80°C
[14:08:03][D][climate:425]: Target Temperature: nan°C
[14:08:03][D][nibegw:043]: UDP Packet with 37 bytes to send
[14:08:04][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:08:04][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:08:04][D][nibegw:043]: UDP Packet with 86 bytes to send
[14:08:05][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:08:05][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:08:05][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:08:05][D][nibegw:224]: Responding to rmu: 0x19 index: 0x6 data: F6.00
[14:08:05][D][nibegw:106]: Response to address: 0x19 token: 0x60 bytes: 7
[14:08:06][D][nibegw:043]: UDP Packet with 6 bytes to send
[14:08:06][D][nibegw:043]: UDP Packet with 6 bytes to send
F1145 running the latest Nibe firmware (9699R7). Might you have any ideas?
Have you turned on the flag to use room temperature to control the climate system in the pump?
Yes, I have tried with this flag (in menu 1.9.4) set to on, and also to off.
If you have both a BT50 and RMU40 it will by default use the BT50. I disconnected mine.
Great minds. I have just returned from doing just that, after which all works as it should. Thanks to all.
Most importantly @elupus, enormous thanks for both this component and your Nibe Uplink integration. The latter provided us with years of sterling service and we really appreciate your time and dedication.
So like others, having been obliged to transfer to MyUplink, we decided to implement a local solution using esphome-nibe.
The transfer has been seamless, but the one feature we’d really like to get back is the ability to pass back a temperature reading to the heat pump (which we did before using the smart thermostats feature). The virtual RMU was just what we wanted.
Unfortunately, we cannot get the heat pump to recognise the virtual RMU temperature we're trying to pass to it.
Below is our configuration, which builds fine (‘system: 3’ in place of ‘address: RMU40_S3’ per your convo with @svollebregt).
The ‘passback’ temperature (from HA) appears correctly in a climate entity within the esphome integration, but I cannot get this to reflect in the heat pump. On the F1145, S3 and RMU for S3 has been enabled within service menu 5.2.
I’ve also tried this adapting the code, enabling RMU for S1. In this case, the passback temperature in the esphome integration becomes the BT50 room sensor temperature.
I have also tried enabling and disabling the menu 1.9.4 ‘Control Room sensor syst 1’ option.
I've a suspicion that one of the elements in the config might be conflicting. Apologies if I’m making an obvious mistake, but any advice on getting this to work - as @OnlyRobin has managed - would be really welcome!