Asbjoern / ESPHome-Kamstrup-Radius

ESPHome component for the Kamstrup electricity meter supplied by Radius in Denmark
0 stars 0 forks source link

fatal error: padlock.h: No such file or directory #2

Open MagnusErler opened 4 days ago

MagnusErler commented 4 days ago

I get the following errors when uploading to esp32

INFO ESPHome 2024.6.4
INFO Reading configuration /config/esphome/kamstrup.yaml...
INFO Generating C++ source...
INFO Compiling app...
Processing kamstrup (board: esp32dev; framework: arduino; platform: platformio/espressif32@5.4.0)
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
Dependency Graph
|-- AsyncTCP-esphome @ 2.1.3
|-- WiFi @ 2.0.0
|-- FS @ 2.0.0
|-- Update @ 2.0.0
|-- ESPAsyncWebServer-esphome @ 3.2.2
|-- DNSServer @ 2.0.0
|-- ESPmDNS @ 2.0.0
|-- noise-c @ 0.1.4
Compiling .pioenvs/kamstrup/src/esphome/components/kamstrup-radius/aes.c.o
Compiling .pioenvs/kamstrup/src/esphome/components/kamstrup-radius/cipher.c.o
Compiling .pioenvs/kamstrup/src/esphome/components/kamstrup-radius/cipher_wrap.c.o
Compiling .pioenvs/kamstrup/src/esphome/components/kamstrup-radius/gcm.c.o
src/esphome/components/kamstrup-radius/aes.c:42:10: fatal error: padlock.h: No such file or directory

*****************************************************************
* Looking for padlock.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:padlock.h"
* Web  > https://registry.platformio.org/search?q=header:padlock.h
*
*****************************************************************

 #include "padlock.h"
          ^~~~~~~~~~~
compilation terminated.
src/esphome/components/kamstrup-radius/cipher.c:50:10: fatal error: ccm.h: No such file or directory

*************************************************************
* Looking for ccm.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:ccm.h"
* Web  > https://registry.platformio.org/search?q=header:ccm.h
*
*************************************************************

 #include "ccm.h"
          ^~~~~~~
compilation terminated.
Compiling .pioenvs/kamstrup/src/esphome/components/kamstrup-radius/kamstrup_radius_sensor.cpp.o
*** [.pioenvs/kamstrup/src/esphome/components/kamstrup-radius/aes.c.o] Error 1
*** [.pioenvs/kamstrup/src/esphome/components/kamstrup-radius/cipher.c.o] Error 1
src/esphome/components/kamstrup-radius/cipher_wrap.c:49:10: fatal error: camellia.h: No such file or directory

******************************************************************
* Looking for camellia.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:camellia.h"
* Web  > https://registry.platformio.org/search?q=header:camellia.h
*
******************************************************************

 #include "camellia.h"
          ^~~~~~~~~~~~
compilation terminated.
*** [.pioenvs/kamstrup/src/esphome/components/kamstrup-radius/cipher_wrap.c.o] Error 1
src/esphome/components/kamstrup-radius/gcm.c:46:10: fatal error: aesni.h: No such file or directory

***************************************************************
* Looking for aesni.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:aesni.h"
* Web  > https://registry.platformio.org/search?q=header:aesni.h
*
***************************************************************

 #include "aesni.h"
          ^~~~~~~~~
compilation terminated.
*** [.pioenvs/kamstrup/src/esphome/components/kamstrup-radius/gcm.c.o] Error 1
In file included from src/esphome/components/kamstrup-radius/kamstrup_radius_sensor.cpp:1:
src/esphome/components/kamstrup-radius/kamstrup_radius_sensor.h:17:27: error: 'String' has not been declared
   void set_encryption_key(String key) { hexStr2bArr(encryption_key, key.c_str(), sizeof(encryption_key)); }
                           ^~~~~~
src/esphome/components/kamstrup-radius/kamstrup_radius_sensor.h:18:31: error: 'String' has not been declared
   void set_authentication_key(String key){ hexStr2bArr(authentication_key, key.c_str(), sizeof(authentication_key)); }
                               ^~~~~~
src/esphome/components/kamstrup-radius/kamstrup_radius_sensor.h: In member function 'void esphome::kamstrup_radius::KamstrupRadiusSensor::set_encryption_key(int)':
src/esphome/components/kamstrup-radius/kamstrup_radius_sensor.h:17:73: error: request for member 'c_str' in 'key', which is of non-class type 'int'
   void set_encryption_key(String key) { hexStr2bArr(encryption_key, key.c_str(), sizeof(encryption_key)); }
                                                                         ^~~~~
src/esphome/components/kamstrup-radius/kamstrup_radius_sensor.h: In member function 'void esphome::kamstrup_radius::KamstrupRadiusSensor::set_authentication_key(int)':
src/esphome/components/kamstrup-radius/kamstrup_radius_sensor.h:18:80: error: request for member 'c_str' in 'key', which is of non-class type 'int'
   void set_authentication_key(String key){ hexStr2bArr(authentication_key, key.c_str(), sizeof(authentication_key)); }
                                                                                ^~~~~
*** [.pioenvs/kamstrup/src/esphome/components/kamstrup-radius/kamstrup_radius_sensor.cpp.o] Error 1
========================== [FAILED] Took 2.10 seconds ==========================

kamstrup.yaml

esphome:
  name: kamstrup
  friendly_name: Kamstrup

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "qYlboeSMRNhdX8iyOYdYX+rHfl3K7QRZuxx4FjyEq9w="

ota:
  - platform: esphome
    password: "07449ec757b147c71954fa6584e76439"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Kamstrup Fallback Hotspot"
    password: "LdefWcRtld3p"

captive_portal:

external_components:
  source: github://Asbjoern/ESPHome-Kamstrup-Radius@main

uart:
  rx_pin: GPIO16
  baud_rate: 2400

sensor:
  - platform: kamstrup-radius
    encryptionkey: "XXXX"
    authenticationkey: "XXXX"
    activepowerimport:
      name: "Active power Import"
    activepowerexport:
      name: "Active power Export"
    activepowerimportl1:
      name: "Active power Import L1"
    activepowerexportl1:
      name: "Active power Export L1"
    activepowerimportl2:
      name: "Active power Import L2"
    activepowerexportl2:
      name: "Active power Export L2"
    activepowerimportl3:
      name: "Active power Import L3"
    activepowerexportl3:
      name: "Active power Export L3"
    reactivepowerimport:
      name: "Reactive power Import"
    reactivepowerexport:
      name: "Reactive power Export"
    powerfactorl1:
      name: "Power factor L1"
    powerfactorl2:
      name: "Power factor L2"
    powerfactorl3:
      name: "Power factor L3"
    powerfactortotal:
      name: "Power factor Total"
    voltagel1:
      name: "RMS voltage L1"
    voltagel2:
      name: "RMS voltage L2"
    voltagel3:
      name: "RMS voltage L3"
    currentl1:
      name: "RMS current L1"
    currentl2:
      name: "RMS current L2"
    currentl3:
      name: "RMS current L3" 
    activeenergyimport:
      name: "Active energy Import"
    activeenergyexport:
      name: "Active energy Export"
    activeenergyimportl1:
      name: "Active energy Import L1"
    activeenergyexportl1:
      name: "Active energy Export L1"
    activeenergyimportl2:
      name: "Active energy Import L2"
    activeenergyexportl2:
      name: "Active energy Export L2"
    activeenergyimportl3:
      name: "Active energy Import L3"
    activeenergyexportl3:
      name: "Active energy Export L3"
    reactiveenergyimport:
      name: "Reactive energy Import"
    reactiveenergyexport:
      name: "Reactive energy Export"
Asbjoern commented 2 days ago

Hmm, you are right. There seams to be a dependency on padlock.h when compiling for esp32 but not for ESP8266 which is my target device. I will se what it takes to get it working on EPS32 as well.