ESPHome binding for the Native API

Once I set the log to TRACE, the log is flooding crazily to the extend that it affect openhab to run smoothly and lag a lot.
What I did now to solve the problem is to stop the binding every hour and start it again after 3 seconds (strangely binding restart don’t work), so far it work smoothly for 4 days already without any problem.
FYI, I’m on OH 3.4.5 and using binding 3.4.5 now.
Thanks.

Heads up: 2 weaks ago after implementing ESPHome binding for the Native API - #58 by J-N-K - the binding is no longer compatible with OH3. This means the OH3 version will no longer get updates, only OH4.

The info in the original thread post has been updated.

Should I manually update then? Due to a crap up of my own I’m now on the latest milestone, so I can easily test the binding now if needed.
(Which btw I have been using happily with zero issues).

Yes, there are no automatic update mechanism in OH except apt etc for all of openhab.

Suggestion: Follow the repo Commits · seime/openhab-esphome · GitHub .
Every push builds a new version and publishes it here: Release Latest Build · seime/openhab-esphome · GitHub. I might not post here unless I’m providing a fix to a problem mentioned in this thread.

1 Like

Following your releases now :wink: updated the binding to the latest version just now. Will provide feedback soon.

Update:
Running the latest binding on the latest milestone I’m getting this error:
2023-09-24 16:10:35.836 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing ‘esphome:device:026e7ed3-5d2b-45b6-a332-213930b226b1’ changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): ESPHome did not respond to ping requests. 4 pings sent with 10 s delay

Thing goes offline and then quickly returns to online. Reminds me of the same behavior I saw initially.
The mqtt connection however is stable, so it seems to be the api only.

1 Like

Could you set log to Trace and send? Also if possible, please set ESPHome logs to VERY_VERBOSE and add as well. Thanks

Awesome work @seime ! Thank you so much :hugs:
I just bought and set up an everything presence one sensor everything presence one sensor with your plugin. After setting the IP Adress it found and connected to the device. From the 16 Entities on the sensor it automatically set up 7 channels. I would like to get things working without having to install Home Assistant for configuration of the mm-Wave sensor sensitivity etc.
Are you going to add more sensor types?

Yes I’ve been looking at this one myself but ended up with the Aqara FP2 instead since he was out of stock earlier this year.

Could you enable TRACE logging and send me the logs on PM? I need logs from the very moment you Disable/Enable the Thing until it is up and running and reporting the first sensor value.

Regards

Awesome. But I think it’s the not yet implemented types that are causing issues here. I sent you a PM with the relevant log entires.

I think the easiest way to add the Dashboard to the left side is a new Page with a Web Frame Card.

Does anybody know how to install the ESPHome Dashboard on an Openhab Raspberry?

I’ve not tried it on a Raspberry but I found the easiest way was installing the dashboard in a docker. I followed these instructions (linked below)

It did not like to run in Firefox on Mint Linux but ran great in Chromium
The dashboard makes setting up micro-controllers so easy

I could install and start it at the Openhab Raspberry.

sudo apt-get install python3-venv
python3 -m venv venv
source venv/bin/activate
pip3 install esphome
pip install tornado esptool
cd /etc/openhab/html
mkdir esphome
esphome dashboard /etc/openhab/html/esphome

The issue is that it blocks the shell once the dashboard is started. Either it can be run as service, but I think docker is the way to go even if I don’t have it?

I also have a “menu” entry ESPHome now in the Openhab MainUI; the web frame card works.

do you have any other computers or laptops other then your Raspberry?
The dashboard can be installed on any computer on your lan (local area network)

I have it working now on another PC. Nevertheless best would be to have it on the same machine like Openhab. Easiest would be if it could be installed over the Openhab Marketplace.

1 Like

I have a ESP with 2 climate controls. I get a parse error when connecting “Duplicate channels esphome:device:czogjuergenEsp:target_temperature”
If only one climate control is used everything connects fine.

Please fidn below a extract from the yaml i use and the error I get

climate:

  • platform: panasonic_ac
    type: cnt # For CZ-TACG1 use type: cnt / For DNSK-P11 use type: wlan
    name: “${long_devicename}”
    vertical_swing_select:
    name: “${long_devicename} Vertical Swing Mode”
    horizontal_swing_select:
    name: “${long_devicename} Horizontal Swing Mode”
    outside_temperature:
    name: “${long_devicename} Outside Temperature”
    nanoex_switch:
    name: Panasonic AC NanoeX Switch
    current_power_consumption:
    name: Panasonic AC Power Consumption

mild_dry_switch:

name: Panasonic AC Mild Dry Switch

control

  • platform: pid
    name: “PID Temp Simulation”
    id: simulationPIDSensor
    sensor: simulationRoomTempSensor
    default_target_temperature: 21
    heat_output: simulationRoomTempOffset
    visual:
    min_temperature: 16
    max_temperature: 25
    temperature_step: 1
    control_parameters:
    kp: 0.01
    ki: 0.006
    kd: 0.002
    starting_integral_term: 0
    output_averaging_samples: 3 # smooth the output over 5 samples
    ##derivative_averaging_samples: 10 # smooth the derivative value over 10 samples
    deadband_parameters:
    threshold_high: 1.5 # deadband within +/-0.5°C of target_temperature
    threshold_low: 1.5
    kp_multiplier: 0.2 # proportional gain turned off inside deadb
    ki_multiplier: 0.3 # integral accumulates at only 15% of normal ki
    kd_multiplier: 0.0 # derviative is turned off inside deadband
    ##deadband_output_averaging_samples: 4 # average the output over 15 s

2023-12-04 18:47:03.782 [ERROR] [internal.comm.PlainTextStreamHandler] - Error parsing packet
java.lang.IllegalArgumentException: Duplicate channels esphome:device:czogEsp:target_temperature

Could you provide the full esphome config within
code fences
?

Also please provide the full stacktrace - it will make it a bit easier for me to debug.

Please help me: How can I do a stacktrace?
I tried a log:set DEBUG org.openhab.binding.esphome but it did not bring anything to the log file

substitutions:
  devicename: "devicename"
  long_devicename: "ESPthings Panasonic Climate Interface"
  pcb_version: "ESP32AZDelivery"
  
esphome:
  name: "${devicename}"
  name_add_mac_suffix: false ## if 'false' use different names/hostnames for each device!
  comment: "${long_devicename} ${pcb_version}"
  platform: ESP32
  board: denky32
  project:
    name: "esphome.pana-climate"
    version: "${pcb_version}"
    
external_components:
  - source: github://DomiStyle/esphome-panasonic-ac
    components: [panasonic_ac]

wifi:
  ssid: XXXXX
  password: YYYYY
  ap:
    ssid: "${devicename} Hotspot"
    password: ZZZZZ

    
captive_portal:
    
web_server:
  port: 80
  
logger:
  level: DEBUG

mqtt:
  broker: 123.123.123.123
  username: user
  password: password
  client_id: "${devicename}"
  discovery: true


ota:
## uncomment the line below if you wish to use an ota-password
# password: !secret esphome_ota_password



uart:
  tx_pin: GPIO17
  rx_pin: GPIO16
  id: ac_uart
  baud_rate: 9600
  parity: EVEN
  
## revisions below 220722-01 use GPIO12
status_led:
  pin: GPIO13
 
climate:
  - platform: panasonic_ac
    type: cnt   # For CZ-TACG1 use type: cnt / For DNSK-P11 use type: wlan
    name: "${long_devicename}"
    vertical_swing_select:
      name: "${long_devicename} Vertical Swing Mode"
    horizontal_swing_select:
      name: "${long_devicename} Horizontal Swing Mode"
    outside_temperature:
      name: "${long_devicename} Outside Temperature"
    nanoex_switch:
      name: Panasonic AC NanoeX Switch
    current_power_consumption:
      name: Panasonic AC Power Consumption
##    mild_dry_switch:
##      name: Panasonic AC Mild Dry Switch

api:
  password: "MyPassword"

## control 
  - platform: pid
    name: "PID Temp Simulation"
    id: simulationPIDSensor
    sensor: simulationRoomTempSensor
    default_target_temperature: 21
    heat_output: simulationRoomTempOffset
    visual:
      min_temperature: 16
      max_temperature: 25
      temperature_step: 1
    control_parameters:
      kp: 0.01
      ki: 0.006
      kd: 0.002
      starting_integral_term: 0
      output_averaging_samples: 3     # smooth the output over 5 samples
      ##derivative_averaging_samples: 10  # smooth the derivative value over 10 samples
    deadband_parameters:
      threshold_high: 1.5     # deadband within +/-0.5°C of target_temperature
      threshold_low: 1.5
      kp_multiplier: 0.2   # proportional gain turned off inside deadb
      ki_multiplier: 0.3  # integral accumulates at only 15% of normal ki
      kd_multiplier: 0.0   # derviative is turned off inside deadband
      ##deadband_output_averaging_samples: 4   # average the output over 15 s


sensor:
  - platform: mqtt_subscribe
    name: "simulationRoomTempSensor"
    id: simulationRoomTempSensor
    topic: ${devicename}/climate/espthings_panasonic_climate_interface/current_temperature/state
    
      
  - platform: pid
    climate_id: simulationPIDSensor
    name: "PID Climate Result"
    type: HEAT
    
  - platform: adc
    pin: GPIO34
    name: "PID Correction GPIO34"
    update_interval: 5s 
    attenuation: auto
    filters:
    - sliding_window_moving_average:
        window_size: 64
        send_every: 1
 
  - platform: uptime
    name: Uptime Sensor
    filters:
    - lambda: return x / 3600;
    unit_of_measurement: "h"
 
    
switch:
  - platform: restart
    name: "$long_devicename Restart"
    
  - platform: gpio
    pin: GPIO18
    name: "simulationRoomTempSensorEnable"
    id: simulationRoomTempSensorEnable
    restore_mode: ALWAYS_OFF
    on_turn_on: 
      then:
        - climate.control:
            id: simulationPIDSensor
            mode: HEAT
            target_temperature: 21
        - climate.pid.reset_integral_term: simulationPIDSensor

output:
  - platform: esp32_dac
    pin: GPIO25
    id: simulationRoomTempOffset
    ##min_power: 0.5
    ##max_power: 0.9
    min_power: 0.6 
    max_power: 0.8

Try log:set DEBUG no.seime.openhab.binding.esphome

I’ve managed to reproduce. I’ll make a fix later.

1 Like