Giter Site home page Giter Site logo

lorenzo-deluca / espkyogate Goto Github PK

View Code? Open in Web Editor NEW
36.0 36.0 13.0 1.36 MB

Serial Bridge for Bentel Kyo Alarm System.

License: GNU Affero General Public License v3.0

C++ 100.00%
bentel bentel-kyo bentel-kyo32 esp8266 esphome home-assistant home-automation homeassistant kyo32 kyo8

espkyogate's People

Contributors

adepiero avatar brembygit avatar lorenzo-deluca avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

espkyogate's Issues

Allarme batteria bassa?

Ciao Lorenzo,
Sto usando da qualche mese questa tua integrazione con la mia KYO32 (non G, se vuoi aggiungerla alla compatibility list) e funziona come un gioiellino.
Mi chiedevo se fosse possibile, oltre agli allarmi e sabotaggi già presenti, implementare anche l'allarme batteria bassa dei sensori wireless, che sarebbe una gran comodità per individuare al volo quale sia la batteria da sostituire...
Complimenti ancora per quanto hai realizzato.

Flavio

MQTT compatibility confirmation

Hi Lorenzo

I'm up and running since last week
I've an MQTT network at home and this is the only project using esphome api
I've read is possible enable mqtt on esp board and disable esphome api:
https://esphome.io/components/mqtt.html

Do you believe there is any drawback changing the protocol?

Thanks

Stefano

PS last question if there is an intrusion in progress I can check it using "stato sirena"?

Kyo 320

Buondì,questa integrazione può funzionare anche con la kyo320?

Connessione API

Buongiorno ,al posto della semplice pswd per accedere al modulo esp tramite api, vorrei implementare una encryption key . Il problema è che una volta compilato il firmware e flashato sul modulo esp , se da home assistant con l'add-on esphome cerco di visualizzare il log del modulo esp ,ricevo questo errore :

INFO ESPHome 2023.12.5
INFO Reading configuration /config/esphome/espkyogate_configuration.yaml...
INFO Starting log output from 192.168.1.26 using esphome API
WARNING Can't connect to ESPHome API for espkyogatebox @ 192.168.1.26: Error connecting to [AddrInfo(family=<AddressFamily.AF_INET: 2>, type=<SocketKind.SOCK_STREAM: 1>, proto=6, sockaddr=IPv4Sockaddr(address='192.168.1.26', port=6053))]: [Errno 111] Connect call failed ('192.168.1.26', 6053) (SocketAPIError)
INFO Trying to connect to espkyogatebox @ 192.168.1.26 in the background

non riesco a capire quale sia il problema per cui pare non esponga le api, puoi aiutarmi ?

Problemi dopo update esphome

Ciao,
dopo l'ultimo aggiornamento del componente esphome 2022.02, il gateway ha cominciato ad avere problemi è diventato lento ed i sensori delle aree inserite non funzionano più.
Non visualizza nemmeno più nemmeno i log, restituendo un errore api.

WARNING Can't connect to ESPHome API for 192.168.1.21: Hello timed out

In fase di compilazione restituisce una marea di warning.

Ti allego il file estratto da esphome.
logs_update-all.txt

kyo 8M

Hi Lorenzo,
Thank you for your work on kyo integration on HA.
I have a kyo8M. I'm trying to connect it with esp32 and HA.
I made all the hardware setup. Now I have troubles on serial communication. I tried to use your bentel_kyo32.h but I it didn't wok.
The logs look like here:
image

Do you have any suggestion or hint please?
Tks,

Impossibile to compile with the latest bentel_kyo32.h

Hi,

with ESPHome v2022.3.1 and latest bentel_kyo32.h i still see the issue.

/config/esphome/bentel-control.yaml: In lambda function:
/config/esphome/bentel-control.yaml:37:16: error: 'class Bentel_Kyo32' has no member named 'zona_1'
kyo32->zona_1,

/config/esphome/bentel-control.yaml:189:16: error: 'class Bentel_Kyo32' has no member named 'stato_uscita_8'
kyo32->stato_uscita_8,
^
/config/esphome/bentel-control.yaml:206:9: error: could not convert '{, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , kyo32->Bentel_Kyo32::kyo_comunication, kyo32->Bentel_Kyo32::stato_sirena, kyo32->Bentel_Kyo32::warn_mancanza_rete, kyo32->Bentel_Kyo32::warn_scomparsa_bpi, kyo32->Bentel_Kyo32::warn_fusibile, kyo32->Bentel_Kyo32::warn_batteria_bassa, kyo32->Bentel_Kyo32::warn_guasto_linea_telefonica, kyo32->Bentel_Kyo32::warn_codici_default, kyo32->Bentel_Kyo32::warn_wireless, kyo32->Bentel_Kyo32::sabotaggio_zona, kyo32->Bentel_Kyo32::sabotaggio_sistema, kyo32->Bentel_Kyo32::sabotaggio_bpi, kyo32->Bentel_Kyo32::sabotaggio_chiave_falsa, kyo32->Bentel_Kyo32::sabotaggio_jam, kyo32->Bentel_Kyo32::sabotaggio_wireless}' from '' to 'std::vectoresphome::binary_sensor::BinarySensor*'
};
^
Archiving /data/bentel-control/.pioenvs/bentel-control/libFrameworkArduinoVariant.a
Compiling /data/bentel-control/.pioenvs/bentel-control/FrameworkArduino/Esp.cpp.o
*** [/data/bentel-control/.pioenvs/bentel-control/src/main.cpp.o] Error 1

Sabotaggio sistema

Buongiorno, l'attivazione dell'allarme Sabotaggio Sistema , l'apertura o il corto della linea AS 24h per intenderci,manda in blocco il mosulo ESP che smette di comunicare con la centrale. Questo ,secondo me ,è un grosso problema
Il binary sensor Comunicazione Centrale correttamente si spegne . Per il ripristino non ho trovato altro modo se non lo spegnimento e riaccensione dello stesso.

Compatibilità con Kyo320G

Ciao Lorenzo, progetto favoloso!
Seguo un tuo post su Facebook da parecchio tempo e ora mi sono deciso di acquistare tutto il materiale ma mentre osservavo il codice ho notato che è studiato per il modello 32G con fino 32 zone; io possiedo una 320G, che supporta fino a 328 zone e 32 aree.
È possibile adattare il codice anche per questo modello?

ESPHome v2022.3.1 - Impossible to compile

Today I tried to compile the code but is not possible, I also tried the latest bentel_kyo32.h same error, any ideas?

Processing bentel-control (board: esp32dev; framework: arduino; platform: platformio/espressif32 @ 3.5.0)
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
Dependency Graph
|-- <AsyncTCP-esphome> 1.2.2
|-- <WiFi> 1.0
|-- <FS> 1.0
|-- <Update> 1.0
|-- <ESPAsyncWebServer-esphome> 2.1.0
|   |-- <AsyncTCP-esphome> 1.2.2
|-- <DNSServer> 1.1.0
|-- <ESPmDNS> 1.0

In file included from src/main.cpp:195:0:
src/bentel_kyo32.h:241:70: error: no matching function for call to 'esphome::binary_sensor::BinarySensor::BinarySensor(const char [17])'
  BinarySensor *kyo_comunication = new BinarySensor("Kyo Comunication");
                                                                      ^
In file included from src/esphome/core/application.h:13:0,
                 from src/esphome/components/api/api_connection.h:4,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor()
   explicit BinarySensor();
            ^
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note:   candidate expects 0 arguments, 1 provided
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(const esphome::binary_sensor::BinarySensor&)
 class BinarySensor : public EntityBase {
       ^
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [17]' to 'const esphome::binary_sensor::BinarySensor&'
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(esphome::binary_sensor::BinarySensor&&)
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [17]' to 'esphome::binary_sensor::BinarySensor&&'
In file included from src/main.cpp:195:0:
src/bentel_kyo32.h:243:77: error: no matching function for call to 'esphome::binary_sensor::BinarySensor::BinarySensor(const char [22])'
  BinarySensor *warn_mancanza_rete = new BinarySensor("Warning Mancanza Rete");
                                                                             ^
In file included from src/esphome/core/application.h:13:0,
                 from src/esphome/components/api/api_connection.h:4,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor()
   explicit BinarySensor();
            ^
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note:   candidate expects 0 arguments, 1 provided
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(const esphome::binary_sensor::BinarySensor&)
 class BinarySensor : public EntityBase {
       ^
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [22]' to 'const esphome::binary_sensor::BinarySensor&'
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(esphome::binary_sensor::BinarySensor&&)
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [22]' to 'esphome::binary_sensor::BinarySensor&&'
In file included from src/main.cpp:195:0:
src/bentel_kyo32.h:244:77: error: no matching function for call to 'esphome::binary_sensor::BinarySensor::BinarySensor(const char [22])'
  BinarySensor *warn_scomparsa_bpi = new BinarySensor("Warning Scomparsa BPI");
                                                                             ^
In file included from src/esphome/core/application.h:13:0,
                 from src/esphome/components/api/api_connection.h:4,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor()
   explicit BinarySensor();
            ^
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note:   candidate expects 0 arguments, 1 provided
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(const esphome::binary_sensor::BinarySensor&)
 class BinarySensor : public EntityBase {
       ^
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [22]' to 'const esphome::binary_sensor::BinarySensor&'
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(esphome::binary_sensor::BinarySensor&&)
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [22]' to 'esphome::binary_sensor::BinarySensor&&'
In file included from src/main.cpp:195:0:
src/bentel_kyo32.h:245:67: error: no matching function for call to 'esphome::binary_sensor::BinarySensor::BinarySensor(const char [17])'
  BinarySensor *warn_fusibile = new BinarySensor("Warning Fusibile");
                                                                   ^
In file included from src/esphome/core/application.h:13:0,
                 from src/esphome/components/api/api_connection.h:4,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor()
   explicit BinarySensor();
            ^
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note:   candidate expects 0 arguments, 1 provided
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(const esphome::binary_sensor::BinarySensor&)
 class BinarySensor : public EntityBase {
       ^
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [17]' to 'const esphome::binary_sensor::BinarySensor&'
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(esphome::binary_sensor::BinarySensor&&)
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [17]' to 'esphome::binary_sensor::BinarySensor&&'
In file included from src/main.cpp:195:0:
src/bentel_kyo32.h:246:79: error: no matching function for call to 'esphome::binary_sensor::BinarySensor::BinarySensor(const char [23])'
  BinarySensor *warn_batteria_bassa = new BinarySensor("Warning Batteria Bassa");
                                                                               ^
In file included from src/esphome/core/application.h:13:0,
                 from src/esphome/components/api/api_connection.h:4,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor()
   explicit BinarySensor();
            ^
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note:   candidate expects 0 arguments, 1 provided
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(const esphome::binary_sensor::BinarySensor&)
 class BinarySensor : public EntityBase {
       ^
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [23]' to 'const esphome::binary_sensor::BinarySensor&'
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(esphome::binary_sensor::BinarySensor&&)
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [23]' to 'esphome::binary_sensor::BinarySensor&&'
In file included from src/main.cpp:195:0:
src/bentel_kyo32.h:247:97: error: no matching function for call to 'esphome::binary_sensor::BinarySensor::BinarySensor(const char [32])'
  BinarySensor *warn_guasto_linea_telefonica = new BinarySensor("Warning Guasto Linea Telefonica");
                                                                                                 ^
In file included from src/esphome/core/application.h:13:0,
                 from src/esphome/components/api/api_connection.h:4,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor()
   explicit BinarySensor();
            ^
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note:   candidate expects 0 arguments, 1 provided
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(const esphome::binary_sensor::BinarySensor&)
 class BinarySensor : public EntityBase {
       ^
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [32]' to 'const esphome::binary_sensor::BinarySensor&'
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(esphome::binary_sensor::BinarySensor&&)
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [32]' to 'esphome::binary_sensor::BinarySensor&&'
In file included from src/main.cpp:195:0:
src/bentel_kyo32.h:248:79: error: no matching function for call to 'esphome::binary_sensor::BinarySensor::BinarySensor(const char [23])'
  BinarySensor *warn_codici_default = new BinarySensor("Warning Codici Default");
                                                                               ^
In file included from src/esphome/core/application.h:13:0,
                 from src/esphome/components/api/api_connection.h:4,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor()
   explicit BinarySensor();
            ^
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note:   candidate expects 0 arguments, 1 provided
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(const esphome::binary_sensor::BinarySensor&)
 class BinarySensor : public EntityBase {
       ^
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [23]' to 'const esphome::binary_sensor::BinarySensor&'
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(esphome::binary_sensor::BinarySensor&&)
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [23]' to 'esphome::binary_sensor::BinarySensor&&'
In file included from src/main.cpp:195:0:
src/bentel_kyo32.h:249:67: error: no matching function for call to 'esphome::binary_sensor::BinarySensor::BinarySensor(const char [17])'
  BinarySensor *warn_wireless = new BinarySensor("Warning Wireless");
                                                                   ^
In file included from src/esphome/core/application.h:13:0,
                 from src/esphome/components/api/api_connection.h:4,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor()
   explicit BinarySensor();
            ^
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note:   candidate expects 0 arguments, 1 provided
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(const esphome::binary_sensor::BinarySensor&)
 class BinarySensor : public EntityBase {
       ^
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [17]' to 'const esphome::binary_sensor::BinarySensor&'
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(esphome::binary_sensor::BinarySensor&&)
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [17]' to 'esphome::binary_sensor::BinarySensor&&'
In file included from src/main.cpp:195:0:
src/bentel_kyo32.h:251:62: error: no matching function for call to 'esphome::binary_sensor::BinarySensor::BinarySensor(const char [13])'
  BinarySensor *stato_sirena = new BinarySensor("stato sirena");
                                                              ^
In file included from src/esphome/core/application.h:13:0,
                 from src/esphome/components/api/api_connection.h:4,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor()
   explicit BinarySensor();
            ^
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note:   candidate expects 0 arguments, 1 provided
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(const esphome::binary_sensor::BinarySensor&)
 class BinarySensor : public EntityBase {
       ^
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [13]' to 'const esphome::binary_sensor::BinarySensor&'
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(esphome::binary_sensor::BinarySensor&&)
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [13]' to 'esphome::binary_sensor::BinarySensor&&'
In file included from src/main.cpp:195:0:
src/bentel_kyo32.h:252:71: error: no matching function for call to 'esphome::binary_sensor::BinarySensor::BinarySensor(const char [19])'
  BinarySensor *sabotaggio_zona = new BinarySensor("Sabotaggio di Zona");
                                                                       ^
In file included from src/esphome/core/application.h:13:0,
                 from src/esphome/components/api/api_connection.h:4,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor()
   explicit BinarySensor();
            ^
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note:   candidate expects 0 arguments, 1 provided
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(const esphome::binary_sensor::BinarySensor&)
 class BinarySensor : public EntityBase {
       ^
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [19]' to 'const esphome::binary_sensor::BinarySensor&'
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(esphome::binary_sensor::BinarySensor&&)
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [19]' to 'esphome::binary_sensor::BinarySensor&&'
In file included from src/main.cpp:195:0:
src/bentel_kyo32.h:253:84: error: no matching function for call to 'esphome::binary_sensor::BinarySensor::BinarySensor(const char [24])'
  BinarySensor *sabotaggio_chiave_falsa = new BinarySensor("Sabotaggio Chiave Falsa");
                                                                                    ^
In file included from src/esphome/core/application.h:13:0,
                 from src/esphome/components/api/api_connection.h:4,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor()
   explicit BinarySensor();
            ^
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note:   candidate expects 0 arguments, 1 provided
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(const esphome::binary_sensor::BinarySensor&)
 class BinarySensor : public EntityBase {
       ^
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [24]' to 'const esphome::binary_sensor::BinarySensor&'
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(esphome::binary_sensor::BinarySensor&&)
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [24]' to 'esphome::binary_sensor::BinarySensor&&'
In file included from src/main.cpp:195:0:
src/bentel_kyo32.h:254:66: error: no matching function for call to 'esphome::binary_sensor::BinarySensor::BinarySensor(const char [15])'
  BinarySensor *sabotaggio_bpi = new BinarySensor("Sabotaggio BPI");
                                                                  ^
In file included from src/esphome/core/application.h:13:0,
                 from src/esphome/components/api/api_connection.h:4,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor()
   explicit BinarySensor();
            ^
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note:   candidate expects 0 arguments, 1 provided
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(const esphome::binary_sensor::BinarySensor&)
 class BinarySensor : public EntityBase {
       ^
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [15]' to 'const esphome::binary_sensor::BinarySensor&'
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(esphome::binary_sensor::BinarySensor&&)
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [15]' to 'esphome::binary_sensor::BinarySensor&&'
In file included from src/main.cpp:195:0:
src/bentel_kyo32.h:255:74: error: no matching function for call to 'esphome::binary_sensor::BinarySensor::BinarySensor(const char [19])'
  BinarySensor *sabotaggio_sistema = new BinarySensor("Sabotaggio Sistema");
                                                                          ^
In file included from src/esphome/core/application.h:13:0,
                 from src/esphome/components/api/api_connection.h:4,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor()
   explicit BinarySensor();
            ^
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note:   candidate expects 0 arguments, 1 provided
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(const esphome::binary_sensor::BinarySensor&)
 class BinarySensor : public EntityBase {
       ^
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [19]' to 'const esphome::binary_sensor::BinarySensor&'
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(esphome::binary_sensor::BinarySensor&&)
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [19]' to 'esphome::binary_sensor::BinarySensor&&'
In file included from src/main.cpp:195:0:
src/bentel_kyo32.h:256:66: error: no matching function for call to 'esphome::binary_sensor::BinarySensor::BinarySensor(const char [15])'
  BinarySensor *sabotaggio_jam = new BinarySensor("Sabotaggio JAM");
                                                                  ^
In file included from src/esphome/core/application.h:13:0,
                 from src/esphome/components/api/api_connection.h:4,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor()
   explicit BinarySensor();
            ^
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note:   candidate expects 0 arguments, 1 provided
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(const esphome::binary_sensor::BinarySensor&)
 class BinarySensor : public EntityBase {
       ^
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [15]' to 'const esphome::binary_sensor::BinarySensor&'
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(esphome::binary_sensor::BinarySensor&&)
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [15]' to 'esphome::binary_sensor::BinarySensor&&'
In file included from src/main.cpp:195:0:
src/bentel_kyo32.h:257:76: error: no matching function for call to 'esphome::binary_sensor::BinarySensor::BinarySensor(const char [20])'
  BinarySensor *sabotaggio_wireless = new BinarySensor("Sabotaggio Wireless");
                                                                            ^
In file included from src/esphome/core/application.h:13:0,
                 from src/esphome/components/api/api_connection.h:4,
                 from src/esphome.h:3,
                 from src/main.cpp:3:
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor()
   explicit BinarySensor();
            ^
src/esphome/components/binary_sensor/binary_sensor.h:28:12: note:   candidate expects 0 arguments, 1 provided
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(const esphome::binary_sensor::BinarySensor&)
 class BinarySensor : public EntityBase {
       ^
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [20]' to 'const esphome::binary_sensor::BinarySensor&'
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note: candidate: esphome::binary_sensor::BinarySensor::BinarySensor(esphome::binary_sensor::BinarySensor&&)
src/esphome/components/binary_sensor/binary_sensor.h:26:7: note:   no known conversion for argument 1 from 'const char [20]' to 'esphome::binary_sensor::BinarySensor&&'


*** [/data/bentel-control/.pioenvs/bentel-control/src/main.cpp.o] Error 1
========================= [FAILED] Took 70.96 seconds =========================

Comunicazione LAN

Ciao Lorenzo, complimenti per il progetto.
Ho una Kyo32 e stavo da tempo cercando come renderla compatibile con home assistant.
Volevo chiederti se esiste una versione di processore ESP compatibile con il tuo progetto che possa connettersi anche via Ethernet LAN oltre che Wi-Fi.
Facendo delle ricerche ho trovato un modulo RJ45 (W5500) installabile sul modulo ESP8266; hai conoscenze in merito?
Grazie anticipatamente.

Integrazione homeassistant

Ciao Lorenzo,
cercando in rete un modo per interfacciarmi alla mia centrale Kyo32 ho trovato il tuo progetto e ho subito acquistato i componenti hardware per costruire l'interfaccia.
Non ho capito come fare ad integrare questo repository in homeassistant, quali sono i passi per metterlo in funzione?
Se ho intuito bene per flashare il modulo ESP devo prima copiare la cartella bentel-kyo con il suo contenuto e il file espkyogate_configuration.yaml all'interno della cartella config/esphome su homeassistant?

Grazie
Davide T.

Aggiorna documentazione

Buondì, e intanto grazie per questa integrazione. Sto cercando da qualche ora di capire come strutturare il file di configurazione e le zone, e noto che diverse parti del README sembrano obsolete, in particolare (per ora):

  • La configurazione del tipo dispositivo sembra non essere accettata, e non sono presenti icone in HASS. Come bisogna fare? niente ora l'ha preso, svista mia
  • Non è chiaro come vanno mappate le zone e le aree, l'esempio non corrisponde con il file yaml aggiornato
    • Nel template in C vanno mappate le sole zone programmate seguendo l'indice immagino. Quindi se la zona 5 non è definita va rimosso &kyo32→zona[4], corretto?
  • I nomi ad hoc delle zone aiutano a identificare i sensori, meglio dare un esempio (tipo "Porta Ingresso" ecc...)
  • Il file secrets.yaml ha una chiave errata (dovrebbe essere ha_password dal file yaml), anche se in realtà il nome è corretto. La password è deprecata a favore della API encryption key, quindi andrebbe aggiornato il file yaml con la chiave corretta sotto api.encryption.key. Da documentare che si può ottenere da esphome.io/components/api.html
  • Bisognerebbe chiarire che i log sono visibili solo via OTA per via del bug che ho visto risolto riguardante il conflitto con la porta seriale
  • Trovo comodo se viene specificato un friendly_name sotto esphome in modo che venga visualizzato meglio su HA
  • Andrebbe spiegato quando usare lo switch "safe mode"
  • Per chi non è pratico di esphome, forse è utile dare un link alla interfaccia web

Penso che per aiutare utenti alle prime armi o senza una laurea in ingegneria, sia opportuno raffinare il README.

...e nonostante tutto il resto era scritto bene e sono riuscito a farlo funzionare! Devo dire che è una f.. pazzesca, e se vedo che è stabile, altro che caffè.
Grazie!!

Indisponibilità collegamento HA -> Centralina Bentel

Ciao Lorenzo, ti volevo segnalare un problema di "mancato collegamento" tra HA e la centralina Bentel.
Premetto che ho sempre notato queste temporane indisponiblità ma ultimaenti sono sempre più frequenti e lunghe; ulteriore premessa, ho una centralina Kyo 32, l'ultima versione del tuo sw e ho notato lo stesso problema con 2 MiniD1 (uno nuovissimo appena preso).
In pratica spesso manca il collegamento HA - Centralina con l'impossibilità quindi di leggere i sensori o inviare comandi, sto tracciando quanto problema e ti allego lo screen dove puoi vedere con la prima entità un sensore (inserimento totale area 1 ma varrebbe anche per gli altri) e il collegamento tra MiniD1 e router wifi (in pratica non si scollega mai dal wifi); come vedi ci sono spesso delle indisponibilità e una durata 9 ore circa e risolta solo riavviando HA.
Posso fare qualcosa per risolvere questo problema? Grazie
Immagine

Errore durante la compilazione

Salve Lorenzo.
Sto provando a compilare il tuo progetto tramite ESPHOME

Durante la compilazione ricevo i seguenti messaggi d'errore.
Grazie

- ID exit_status_1 redefined! Check binary_sensor->0->binary_sensors->55->id. id: exit_status_1 name: Stato Uscita 1 disabled_by_default: False - ID exit_status_1 redefined! Check binary_sensor->0->binary_sensors->55->id. id: exit_status_1 name: Stato Uscita 1 disabled_by_default: False - ID exit_status_1 redefined! Check binary_sensor->0->binary_sensors->55->id. id: exit_status_1 name: Stato Uscita 1 disabled_by_default: False

Di seguito il log completo

logs_esphome-web-53c388_compile.txt

Allarme aree e uscite non si attivano

Ciao Lorenzo ,dopo avere caricato nel modulo ESP il nuovo firmware ci sono 2 cose che non mi funzionano. Presumo che sia un problema di configurazione ma non riesco a trovare l'inghippo.
I binary sensor dell'allarme aree non si attivano mai , nessuno delle 8 aree. lo stesso dicasi di quelli dello stato delle uscite
Questo è il file .yaml della configurazione
Qualche idea? grazie

esphome:
  name: espkyogatebox
  comment: Alarm System Serial to HA controller
  platform: ESP8266
  board: d1_mini
  includes:
    - EspkyogateBoxOk/bentel_kyo32.h

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: !secret hotspot_wifi_ssid
    password: !secret hotspot_wifi_password

captive_portal:

# Enable logging
logger:
  level: VERBOSE
  baud_rate: 0

# Enable Home Assistant API
api:
  encryption:
    key: !secret api_encryption_key

ota:
  password: !secret ota_password
  
uart:
  id: uart_bus
  tx_pin: GPIO5
  rx_pin: GPIO4
  baud_rate: 9600
  data_bits: 8
  parity: EVEN
  
switch:
  - platform: safe_mode
    name: "ESPKyoGate (Safe Mode)"

binary_sensor:
  - platform: custom
    lambda: |-
      auto kyo32 = new Bentel_Kyo32(id(uart_bus));
      App.register_component(kyo32);
      return {
        kyo32->kyo_comunication,
        kyo32->stato_sirena,
        kyo32->warn_mancanza_rete,
        kyo32->sabotaggio_zona, 
        kyo32->sabotaggio_sistema,
        kyo32->warn_scomparsa_bpi,
        kyo32->warn_fusibile,
        kyo32->warn_batteria_bassa,
        kyo32->warn_guasto_linea_telefonica,
        kyo32->warn_codici_default,
        kyo32->warn_wireless,
        kyo32->sabotaggio_bpi,
        kyo32->sabotaggio_jam,
        kyo32->sabotaggio_wireless,
        kyo32->sabotaggio_chiave_falsa,
        
        &kyo32->zona[0],
        &kyo32->zona[1],
        &kyo32->zona[2],
        &kyo32->zona[3],
        &kyo32->zona[4],
        &kyo32->zona[5],
        &kyo32->zona[6],
        &kyo32->zona[7],
        &kyo32->zona[8],
        &kyo32->zona[9],
        &kyo32->zona[10],
        &kyo32->zona[11],
        &kyo32->zona[12],
        &kyo32->zona[13],
        &kyo32->zona[14],
        &kyo32->zona[15],
        
        &kyo32->zona_sabotaggio[0],
        &kyo32->zona_sabotaggio[1],
        &kyo32->zona_sabotaggio[2],
        &kyo32->zona_sabotaggio[3],
        &kyo32->zona_sabotaggio[4],
        &kyo32->zona_sabotaggio[5],
        &kyo32->zona_sabotaggio[6],
        &kyo32->zona_sabotaggio[7],
       	&kyo32->zona_sabotaggio[8],
        &kyo32->zona_sabotaggio[9],
        &kyo32->zona_sabotaggio[10],
        &kyo32->zona_sabotaggio[11],
        &kyo32->zona_sabotaggio[12],
        &kyo32->zona_sabotaggio[13],
        &kyo32->zona_sabotaggio[14],
        &kyo32->zona_sabotaggio[15],
        
      	&kyo32->zona_esclusa[0],
        &kyo32->zona_esclusa[1],
        &kyo32->zona_esclusa[2],
        &kyo32->zona_esclusa[3],
        &kyo32->zona_esclusa[4],
        &kyo32->zona_esclusa[5],
        &kyo32->zona_esclusa[6],
        &kyo32->zona_esclusa[7],
        &kyo32->zona_esclusa[8],
        &kyo32->zona_esclusa[9],
        &kyo32->zona_esclusa[10],
        &kyo32->zona_esclusa[11],
        &kyo32->zona_esclusa[12],
        &kyo32->zona_esclusa[13],
        &kyo32->zona_esclusa[14],
        &kyo32->zona_esclusa[15],
       
       	&kyo32->memoria_allarme_zona[0],
        &kyo32->memoria_allarme_zona[1],
        &kyo32->memoria_allarme_zona[2],
        &kyo32->memoria_allarme_zona[3],
        &kyo32->memoria_allarme_zona[4],
        &kyo32->memoria_allarme_zona[5],
        &kyo32->memoria_allarme_zona[6],
        &kyo32->memoria_allarme_zona[7],
        &kyo32->memoria_allarme_zona[8],
        &kyo32->memoria_allarme_zona[9],
        &kyo32->memoria_allarme_zona[10],
        &kyo32->memoria_allarme_zona[11],
        &kyo32->memoria_allarme_zona[12],
        &kyo32->memoria_allarme_zona[13],
        &kyo32->memoria_allarme_zona[14],
        &kyo32->memoria_allarme_zona[15],
        
        &kyo32->memoria_sabotaggio_zona[0],
        &kyo32->memoria_sabotaggio_zona[1],
        &kyo32->memoria_sabotaggio_zona[2],
        &kyo32->memoria_sabotaggio_zona[3],
        &kyo32->memoria_sabotaggio_zona[4],
        &kyo32->memoria_sabotaggio_zona[5],
        &kyo32->memoria_sabotaggio_zona[6],
        &kyo32->memoria_sabotaggio_zona[7],
        &kyo32->memoria_sabotaggio_zona[8],
        &kyo32->memoria_sabotaggio_zona[9],
        &kyo32->memoria_sabotaggio_zona[10],
        &kyo32->memoria_sabotaggio_zona[11],
        &kyo32->memoria_sabotaggio_zona[12],
        &kyo32->memoria_sabotaggio_zona[13],
        &kyo32->memoria_sabotaggio_zona[14],
        &kyo32->memoria_sabotaggio_zona[15],
        
        &kyo32->allarme_area[0],
        &kyo32->allarme_area[1],
        &kyo32->allarme_area[2],
        &kyo32->allarme_area[3],
        &kyo32->allarme_area[4],
        &kyo32->allarme_area[5],
        &kyo32->allarme_area[6],
        &kyo32->allarme_area[7],
        
        &kyo32->inserimento_totale_area[0],
        &kyo32->inserimento_totale_area[1],
        &kyo32->inserimento_totale_area[2],
        &kyo32->inserimento_totale_area[3],
        &kyo32->inserimento_totale_area[4],
        &kyo32->inserimento_totale_area[5],
        &kyo32->inserimento_totale_area[6],
        &kyo32->inserimento_totale_area[7],
        
        &kyo32->inserimento_parziale_area[0],
        &kyo32->inserimento_parziale_area[1],
        &kyo32->inserimento_parziale_area[2],
        &kyo32->inserimento_parziale_area[3],
        &kyo32->inserimento_parziale_area[4],
        &kyo32->inserimento_parziale_area[5],
        &kyo32->inserimento_parziale_area[6],
        &kyo32->inserimento_parziale_area[7],
        
        &kyo32->inserimento_parziale_ritardo_0_area[0],
        &kyo32->inserimento_parziale_ritardo_0_area[1],
        &kyo32->inserimento_parziale_ritardo_0_area[2],
        &kyo32->inserimento_parziale_ritardo_0_area[3],
        &kyo32->inserimento_parziale_ritardo_0_area[4],
        &kyo32->inserimento_parziale_ritardo_0_area[5],
        &kyo32->inserimento_parziale_ritardo_0_area[6],
        &kyo32->inserimento_parziale_ritardo_0_area[7],
        
        &kyo32->disinserita_area[0],
        &kyo32->disinserita_area[1],
        &kyo32->disinserita_area[2],
        &kyo32->disinserita_area[3],
        &kyo32->disinserita_area[4],
        &kyo32->disinserita_area[5],
        &kyo32->disinserita_area[6],
        &kyo32->disinserita_area[7],
        
        &kyo32->stato_uscita[0],
        &kyo32->stato_uscita[1],
        &kyo32->stato_uscita[2],
        &kyo32->stato_uscita[3],
        &kyo32->stato_uscita[4],
      };
    binary_sensors:
      - id: kyo_comunication
        name: "Comunicazione Centrale"
      - id: stato_sirena
        name: "Stato Sirena"
      - id: warn_mancanza_rete
        name: "Mancanza Rete"
      - id: sabotaggio_zona
        name: "Sabotaggio Zona"
      - id: sabotaggio_sistema
        name: "Sabotaggio Sistema"
      - id: warn_scomparsa_bpi
        name: "Scomparsa BPI"
      - id: warn_fusibile
        name: "Fusibile"
      - id: warn_batteria_bassa
        name: "Batteria Bassa"
      - id: warn_guasto_linea_telefonica
        name: "Guasto Linea Telefonica"
      - id: warn_codici_default
        name: "Codici Default"
      - id: warn_wireless
        name: "Wireless"
      - id: sabotaggio_bpi
        name: "Sabotaggio BPI"
      - id: sabotaggio_jam
        name: "Sabotaggio Jam"
      - id: sabotaggio_wireless
        name: "Sabotaggio wireless"
      - id: sabotaggio_chiave_falsa
        name: "Sabotaggio Chiave Falsa"

      - id: zona_1
        name: "TapparellaLetto"
        device_class: "window"
      - id: zona_2
        name: "FinestraLetto"
        device_class: "door"
      - id: zona_3
        name: "TapparellaBagno"
        device_class: "window"
      - id: zona_4
        name: "TapparellaCucina"
        device_class: "window"
      - id: zona_5
        name: "FinestraBagno"
        device_class: "door"
      - id: zona_6
        name: "VolumetrIngresso"
        device_class: "motion"
      - id: zona_7
        name: "VolumetrFrancy"
        device_class: "motion"
      - id: zona_8
        name: "Free"
        device_class: "motion"  
      - id: zona_9
        name: "FinestreTinello"
        device_class: "door"
      - id: zona_10
        name: "TapparelleTinello"
        device_class: "window"
      - id: zona_11
        name: "MagnetPortaBlind"
        device_class: "door"
      - id: zona_12
        name: "FinestreFrancy"
        device_class: "door"
      - id: zona_13
        name: "TapparelleFrancy"
        device_class: "window"
      - id: zona_14
        name: "VolumTinello"
        device_class: "motion"
      - id: zona_15
        name: "MicroPortaBli"
        device_class: "door"
      - id: zona_16
        name: "InerzialePortaBli"
        device_class: "door"  
      
      - id: zona_1_sabotaggio
        name: "TapparellaLetto"
      - id: zona_2_sabotaggio
        name: "FinestraLetto"
      - id: zona_3_sabotaggio
        name: "TapparellaBagno"
      - id: zona_4_sabotaggio
        name: "TapparellaCucina"
      - id: zona_5_sabotaggio
        name: "FinestraBagno"
      - id: zona_6_sabotaggio
        name: "VolumetrIngresso"
      - id: zona_7_sabotaggio
        name: "VolumetrFrancy"
      - id: zona_8_sabotaggio
        name: "Libera"  
      - id: zona_9_sabotaggio
        name: "FinestreTinello"   
      - id: zona_10_sabotaggio
        name: "TapparelleTinello"
      - id: zona_11_sabotaggio
        name: "MagnetPortaBlind"
      - id: zona_12_sabotaggio
        name: "FinestreFrancy"
      - id: zona_13_sabotaggio
        name: "TapparelleFrancy"
      - id: zona_14_sabotaggio
        name: "VolumTinello"
      - id: zona_15_sabotaggio
        name: "MicroPortaBli"
      - id: zona_16_sabotaggio
        name: "InerzialePortaBli"  
              
      - id: zona_esclusa_1
        name: "Escl. TapparellaLetto"
      - id: zona_esclusa_2
        name: "Escl. FinestraLetto"
      - id: zona_esclusa_3
        name: "Escl. TapparellaBagno"
      - id: zona_esclusa_4
        name: "Escl. TapparellaCucina"
      - id: zona_esclusa_5
        name: "Escl. FinestraBagno"
      - id: zona_esclusa_6
        name: "Escl. VolumetrIngresso"
      - id: zona_esclusa_7
        name: "Escl. VolumetrFrancy"
      - id: zona_esclusa_8
        name: "Escl. Free"  
      - id: zona_esclusa_9
        name: "Escl. FinestreTinello"  
      - id: zona_esclusa_10
        name: "Escl. TapparelleTinello"
      - id: zona_esclusa_11
        name: "Escl. MagnetPortaBlind"
      - id: zona_esclusa_12
        name: "Escl. FinestreFrancy"
      - id: zona_esclusa_13
        name: "Escl. TapparelleFrancy"
      - id: zona_esclusa_14
        name: "Escl. VolumTinello"
      - id: zona_esclusa_15
        name: "Escl. MicroPortaBli"
      - id: zona_esclusa_16
        name: "Escl. InerzialePortaBli"  
                
      - id: memoria_allarme_zona_1
        name: "Mem. Allarme TapparellaLetto"
      - id: memoria_allarme_zona_2
        name: "Mem. Allarme FinestraLetto"
      - id: memoria_allarme_zona_3
        name: "Mem. Allarme TapparellaBagno"
      - id: memoria_allarme_zona_4
        name: "Mem. Allarme TapparellaCucina"
      - id: memoria_allarme_zona_5
        name: "Mem. Allarme FinestraBagno"
      - id: memoria_allarme_zona_6
        name: "Mem. Allarme VolumetrIngresso"
      - id: memoria_allarme_zona_7
        name: "Mem. Allarme VolumetrFrancy"
      - id: memoria_allarme_zona_8
        name: "Mem. Allarme Free"  
      - id: memoria_allarme_zona_9
        name: "Mem. Allarme FinestreTinello"
      - id: memoria_allarme_zona_10
        name: "Mem. Allarme TapparelleTinello"
      - id: memoria_allarme_zona_11
        name: "Mem. Allarme MagnetPortaBlind"
      - id: memoria_allarme_zona_12
        name: "Mem. Allarme FinestreFrancy"
      - id: memoria_allarme_zona_13
        name: "Mem. Allarme TapparelleFrancy"
      - id: memoria_allarme_zona_14
        name: "Mem. Allarme VolumetrTinello"
      - id: memoria_allarme_zona_15
        name: "Mem. Allarme MicroPortaBli"
      - id: memoria_allarme_zona_16
        name: "Mem. Allarme InerzialePortaBli"  
      
      - id: memoria_sabotaggio_zona_1
        name: "Mem. Sabotaggio TapparellaLetto"
      - id: memoria_sabotaggio_zona_2
        name: "Mem. Sabotaggio FinestraLetto"
      - id: memoria_sabotaggio_zona_3
        name: "Mem. Sabotaggio TapparellaBagno"
      - id: memoria_sabotaggio_zona_4
        name: "Mem. Sabotaggio TapparellaCucina"
      - id: memoria_sabotaggio_zona_5
        name: "Mem. Sabotaggio FinestraBagno"
      - id: memoria_sabotaggio_zona_6
        name: "Mem. Sabotaggio VolumetrIngresso"
      - id: memoria_sabotaggio_zona_7
        name: "Mem. Sabotaggio VolumetrFrancy"
      - id: memoria_sabotaggio_zona_8
        name: "Mem. Sabotaggio Free"  
      - id: memoria_sabotaggio_zona_9
        name: "Mem. Sabotaggio FinestreTinello"
      - id: memoria_sabotaggio_zona_10
        name: "Mem. Sabotaggio TapparelleTinello"
      - id: memoria_sabotaggio_zona_11
        name: "Mem. Sabotaggio MagnetPortaBlind"
      - id: memoria_sabotaggio_zona_12
        name: "Mem. Sabotaggio FinestreFrancy"
      - id: memoria_sabotaggio_zona_13
        name: "Mem. Sabotaggio TapparelleFrancy"
      - id: memoria_sabotaggio_zona_14
        name: "Mem. Sabotaggio VolumetrTinello"
      - id: memoria_sabotaggio_zona_15
        name: "Mem. Sabotaggio MicroPortaBli"
      - id: memoria_sabotaggio_zona_16
        name: "Mem. Sabotaggio InerzialePortaBli"  
      
      - id: allarme_area_1
        name: "Allarme TapparCortile"
      - id: allarme_area_2
        name: "Allarme FinestreCortile"
      - id: allarme_area_3
        name: "Allarme VolumetricoTinello"
      - id: allarme_area_4
        name: "Allarme TapparelleStrada"
      - id: allarme_area_5
        name: "Allarme FinestreStrada"
      - id: allarme_area_6
        name: "Allarme VolumetricoFrancy"
      - id: allarme_area_7
        name: "Allarme VolumetricoIngresso"
      - id: allarme_area_8
        name: "Allarme PortaBlindata"    

      - id: inserimento_totale_area_1
        name: "Ins. Totale TapparCortile"
      - id: inserimento_totale_area_2
        name: "Ins. Totale FinestreCortile"
      - id: inserimento_totale_area_3
        name: "Ins. Totale VolumetricoTinello"
      - id: inserimento_totale_area_4
        name: "Ins. Totale TapparelleStrada"
      - id: inserimento_totale_area_5
        name: "Ins. Totale FinestreStrada"
      - id: inserimento_totale_area_6
        name: "Ins. Totale VolumetricoFrancy"
      - id: inserimento_totale_area_7
        name: "Ins. Totale VolumetricoIngresso"
      - id: inserimento_totale_area_8
        name: "Ins. Totale PortaBlindata"    

      - id: inserimento_parziale_area_1
        name: "Ins. Parziale TapparCortile"
      - id: inserimento_parziale_area_2
        name: "Ins. Parziale FinestreCortile"
      - id: inserimento_parziale_area_3
        name: "Ins. Parziale VolumetricoTinello"
      - id: inserimento_parziale_area_4
        name: "Ins. Parziale TapparelleStrada" 
      - id: inserimento_parziale_area_5
        name: "Ins. Parziale FinestreStrada"
      - id: inserimento_parziale_area_6
        name: "Ins. Parziale VolumetricoFrancy"
      - id: inserimento_parziale_area_7
        name: "Ins. Parziale VolumetricoIngresso"
      - id: inserimento_parziale_area_8
        name: "Ins. Parziale PortaBlindata"    

      - id: inserimento_parziale_ritardo_0_area_1
        name: "Ins. Parziale Ritardo 0 TapparCortile"
      - id: inserimento_parziale_ritardo_0_area_2
        name: "Ins. Parziale Ritardo 0 FinestreCortile"
      - id: inserimento_parziale_ritardo_0_area_3
        name: "Ins. Parziale Ritardo 0 VolumetricoTinello"
      - id: inserimento_parziale_ritardo_0_area_4
        name: "Ins. Parziale Ritardo 0 TapparelleStrada"
      - id: inserimento_parziale_ritardo_0_area_5
        name: "Ins. Parziale Ritardo 0 FinestreStrada"
      - id: inserimento_parziale_ritardo_0_area_6
        name: "Ins. Parziale Ritardo 0 VolumetricoFrancy"
      - id: inserimento_parziale_ritardo_0_area_7
        name: "Ins. Parziale Ritardo 0 VolumetricoIngresso"
      - id: inserimento_parziale_ritardo_0_area_8
        name: "Ins. Parziale Ritardo 0 PortaBlindata"

      - id: disinserita_area_1
        name: "Disins. TapparCortile"
      - id: disinserita_area_2
        name: "Disins. FinestreCortile"
      - id: disinserita_area_3
        name: "Disins. VolumetricoTinello"
      - id: disinserita_area_4
        name: "Disins. TapparelleStrada"
      - id: disinserita_area_5
        name: "Disins. FinestreStrada"
      - id: disinserita_area_6
        name: "Disins. VolumetricoFrancy"
      - id: disinserita_area_7
        name: "Disins. VolumetricoIngresso"
      - id: disinserita_area_8
        name: "Disins. PortaBlindata"    

      - id: stato_uscita_1
        name: "Stato Uscita 1"
      - id: stato_uscita_2
        name: "Stato Uscita 2"
      - id: stato_uscita_3
        name: "Stato Uscita 3"
      - id: stato_uscita_4
        name: "Stato Uscita 4"
      - id: stato_uscita_5
        name: "Stato Uscita 5"

binary sensor "platform: custom" probably deprecated unable to build

Hi,

I'm trying to build the image for ESP board but probably the yaml configuration isn't supported anymore by new esphome version 2023.12.1

Documentation:
https://esphome.io/components/binary_sensor/custom.html

"Warning
Custom components are deprecated, not recommended for new configurations and will be removed from ESPHome in a future release. Please look at creating a real ESPHome component and “importing” it into your configuration with External Components."

Error appear with default yaml file proposed by you with minor config:

Error:


INFO ESPHome 2023.12.1
INFO Reading configuration /config/esphome/test.yaml...
Failed config

binary_sensor.custom: [source :45]
platform: custom

Any suggestion?

YAML full config
`esphome:
name: test
friendly_name: Test

esp8266:
board: esp01_1m

Enable logging

logger:

Enable Home Assistant API

api:
encryption:
key: "oytieDmV1TM/VhzQa+j1MzWY9/6+mDxHV/cooCm78cY="

ota:
password: "e1bb229aced5b43622cdea640593ffde"

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

Enable fallback hotspot (captive portal) in case wifi connection fails

ap:
ssid: "Test Fallback Hotspot"
password: "NFe76qjMlqax"

captive_portal:

uart:
id: uart_bus
tx_pin: GPIO5
rx_pin: GPIO4
baud_rate: 9600
data_bits: 8
parity: EVEN

switch:

  • platform: safe_mode
    name: "ESPKyoGate (Safe Mode)"

binary_sensor:

  • platform: custom
    lambda: |-
    auto kyo32 = new Bentel_Kyo32(id(uart_bus));
    App.register_component(kyo32);
    return {
    kyo32->kyo_comunication,
    kyo32->stato_sirena,
    kyo32->warn_mancanza_rete,
    kyo32->sabotaggio_zona,
    kyo32->sabotaggio_sistema,
    kyo32->warn_scomparsa_bpi,
    kyo32->warn_fusibile,
    kyo32->warn_batteria_bassa,
    kyo32->warn_guasto_linea_telefonica,
    kyo32->warn_codici_default,
    kyo32->warn_wireless,
    kyo32->sabotaggio_bpi,
    kyo32->sabotaggio_jam,
    kyo32->sabotaggio_wireless,
    kyo32->sabotaggio_chiave_falsa,

    &kyo32->zona[0],
    &kyo32->zona[1],
    &kyo32->zona[2],
    &kyo32->zona[3],
    
    &kyo32->zona_sabotaggio[0],
    &kyo32->zona_sabotaggio[1],
    &kyo32->zona_sabotaggio[2],
    &kyo32->zona_sabotaggio[3],
    
    &kyo32->zona_esclusa[0],
    &kyo32->zona_esclusa[1],
    &kyo32->zona_esclusa[2],
    &kyo32->zona_esclusa[3],
    
    &kyo32->memoria_allarme_zona[0],
    &kyo32->memoria_allarme_zona[1],
    &kyo32->memoria_allarme_zona[2],
    &kyo32->memoria_allarme_zona[3],
    
    &kyo32->memoria_sabotaggio_zona[0],
    &kyo32->memoria_sabotaggio_zona[1],
    &kyo32->memoria_sabotaggio_zona[2],
    &kyo32->memoria_sabotaggio_zona[3],
    
    &kyo32->allarme_area[0],
    &kyo32->allarme_area[1],
    &kyo32->allarme_area[2],
    &kyo32->allarme_area[3],
    
    &kyo32->inserimento_totale_area[0],
    &kyo32->inserimento_totale_area[1],
    &kyo32->inserimento_totale_area[2],
    &kyo32->inserimento_totale_area[3],
    
    &kyo32->inserimento_parziale_area[0],
    &kyo32->inserimento_parziale_area[1],
    &kyo32->inserimento_parziale_area[2],
    &kyo32->inserimento_parziale_area[3],
    
    &kyo32->inserimento_parziale_ritardo_0_area[0],
    &kyo32->inserimento_parziale_ritardo_0_area[1],
    &kyo32->inserimento_parziale_ritardo_0_area[2],
    &kyo32->inserimento_parziale_ritardo_0_area[3],
    
    &kyo32->disinserita_area[0],
    &kyo32->disinserita_area[1],
    &kyo32->disinserita_area[2],
    &kyo32->disinserita_area[3],
    
    &kyo32->stato_uscita[0],
    &kyo32->stato_uscita[1],
    &kyo32->stato_uscita[2],
    &kyo32->stato_uscita[3]
    

    };
    binary_sensors:

    • id: kyo_comunication
      name: "Comunicazione Centrale"

    • id: stato_sirena
      name: "Stato Sirena"

    • id: warn_mancanza_rete
      name: "Mancanza Rete"

    • id: sabotaggio_zona
      name: "Sabotaggio Zona"

    • id: sabotaggio_sistema
      name: "Sabotaggio Sistema"

    • id: warn_scomparsa_bpi
      name: "Scomparsa BPI"

    • id: warn_fusibile
      name: "Fusibile"

    • id: warn_batteria_bassa
      name: "Batteria Bassa"

    • id: warn_guasto_linea_telefonica
      name: "Guasto Linea Telefonica"

    • id: warn_codici_default
      name: "Codici Default"

    • id: warn_wireless
      name: "Wireless"

    • id: sabotaggio_bpi
      name: "Sabotaggio BPI"

    • id: sabotaggio_jam
      name: "Sabotaggio Jam"

    • id: sabotaggio_wireless
      name: "Sabotaggio wireless"

    • id: sabotaggio_chiave_falsa
      name: "Sabotaggio Chiave Falsa"

    • id: zona_1
      name: "Sensore DT Taverna"
      device_class: "motion"

    • id: zone_2
      name: "Finestra Taverna"
      device_class: "window"

    • id: zone_3
      name: "Sensore DT Garage"
      device_class: "motion"

    • id: zone_4
      name: "Scuretto Finestra Lavanderia"
      device_class: "window"

    • id: zona_1_sabotaggio
      name: "Sabot. Sensore DT Taverna"

    • id: zona_2_sabotaggio
      name: "Sabot. Finestra Taverna"

    • id: zona_3_sabotaggio
      name: "Sabot. Sensore DT Garage"

    • id: zona_4_sabotaggio
      name: "Sabot. Scuretto Finestra Lavanderia"

    • id: excluded_zone_1
      name: "Escl. Sensore DT Taverna"

    • id: excluded_zone_2
      name: "Escl. Finestra Taverna"

    • id: excluded_zone_3
      name: "Escl. Sensore DT Garage"

    • id: excluded_zone_4
      name: "Escl. Scuretto Finestra Lavanderia"

    • id: alarm_memory_zone_1
      name: "Mem. Allarme Sensore DT Taverna"

    • id: alarm_memory_zone_2
      name: "Mem. Allarme Finestra Taverna"

    • id: alarm_memory_zone_3
      name: "Mem. Allarme Sensore DT Garage"

    • id: alarm_memory_zone_4
      name: "Mem. Allarme Scuretto Finestra Lavanderia"

    • id: sabotage_memory_zone_1
      name: "Mem. Sabotaggio Sensore DT Taverna"

    • id: sabotage_memory_zone_2
      name: "Mem. Sabotaggio Finestra Taverna"

    • id: sabotage_memory_zone_3
      name: "Mem. Sabotaggio Sensore DT Garage"

    • id: sabotage_memory_zone_4
      name: "Mem. Sabotaggio Scuretto Finestra Lavanderia"

    • id: alarm_area_1
      name: "Allarme Finestre"

    • id: alarm_area_2
      name: "Allarme Area 2"

    • id: alarm_area_3
      name: "Allarme Area 3"

    • id: alarm_area_4
      name: "Allarme Area Sensori Interni"

    • id: enabled_total_area_1
      name: "Ins. Totale Finestre"

    • id: enabled_total_area_2
      name: "Ins. Totale Porte"

    • id: enabled_total_area_3
      name: "Ins. Totale Sensori Giardino"

    • id: enabled_total_area_4
      name: "Ins. Totale Sensori Interni"

    • id: enabled_partial_area_1
      name: "Ins. Parziale Finestre"

    • id: enabled_partial_area_2
      name: "Ins. Parziale Porte"

    • id: enabled_partial_area_3
      name: "Ins. Parziale Sensori Giardino"

    • id: enabled_partial_area_4
      name: "Ins. Parziale Sensori Interni"

    • id: enabled_partial_delay_0_area_1
      name: "Ins. Parziale Ritardo 0 Finestre"

    • id: enabled_partial_delay_0_area_2
      name: "Ins. Parziale Ritardo 0 Porte"

    • id: enabled_partial_delay_0_area_3
      name: "Ins. Parziale Ritardo 0 Sensori Giardino"

    • id: enabled_partial_delay_0_area_4
      name: "Ins. Parziale Ritardo 0 Sensori Interni"

    • id: disabled_area_1
      name: "Disins. Finestre"

    • id: disabled_area_2
      name: "Disins. Porte"

    • id: disabled_area_3
      name: "Disins. Sensori Giardino"

    • id: disabled_area_4
      name: "Disins. Sensori Interni"

    • id: exit_status_1
      name: "Stato Uscita 1"

    • id: exit_status_1
      name: "Stato Uscita 1"

    • id: exit_status_1
      name: "Stato Uscita 1"

    • id: exit_status_1
      name: "Stato Uscita 1"
      `

Full log error:

`INFO ESPHome 2023.12.1
INFO Reading configuration /config/esphome/test.yaml...
Failed config

binary_sensor.custom: [source :45]
platform: custom
lambda: !lambda |-
auto kyo32 = new Bentel_Kyo32(id(uart_bus));
App.register_component(kyo32);
return {
kyo32->kyo_comunication,
kyo32->stato_sirena,
kyo32->warn_mancanza_rete,
kyo32->sabotaggio_zona,
kyo32->sabotaggio_sistema,
kyo32->warn_scomparsa_bpi,
kyo32->warn_fusibile,
kyo32->warn_batteria_bassa,
kyo32->warn_guasto_linea_telefonica,
kyo32->warn_codici_default,
kyo32->warn_wireless,
kyo32->sabotaggio_bpi,
kyo32->sabotaggio_jam,
kyo32->sabotaggio_wireless,
kyo32->sabotaggio_chiave_falsa,

  &kyo32->zona[0],
  &kyo32->zona[1],
  &kyo32->zona[2],
  &kyo32->zona[3],

  &kyo32->zona_sabotaggio[0],
  &kyo32->zona_sabotaggio[1],
  &kyo32->zona_sabotaggio[2],
  &kyo32->zona_sabotaggio[3],

  &kyo32->zona_esclusa[0],
  &kyo32->zona_esclusa[1],
  &kyo32->zona_esclusa[2],
  &kyo32->zona_esclusa[3],

  &kyo32->memoria_allarme_zona[0],
  &kyo32->memoria_allarme_zona[1],
  &kyo32->memoria_allarme_zona[2],
  &kyo32->memoria_allarme_zona[3],

  &kyo32->memoria_sabotaggio_zona[0],
  &kyo32->memoria_sabotaggio_zona[1],
  &kyo32->memoria_sabotaggio_zona[2],
  &kyo32->memoria_sabotaggio_zona[3],

  &kyo32->allarme_area[0],
  &kyo32->allarme_area[1],
  &kyo32->allarme_area[2],
  &kyo32->allarme_area[3],

  &kyo32->inserimento_totale_area[0],
  &kyo32->inserimento_totale_area[1],
  &kyo32->inserimento_totale_area[2],
  &kyo32->inserimento_totale_area[3],

  &kyo32->inserimento_parziale_area[0],
  &kyo32->inserimento_parziale_area[1],
  &kyo32->inserimento_parziale_area[2],
  &kyo32->inserimento_parziale_area[3],

  &kyo32->inserimento_parziale_ritardo_0_area[0],
  &kyo32->inserimento_parziale_ritardo_0_area[1],
  &kyo32->inserimento_parziale_ritardo_0_area[2],
  &kyo32->inserimento_parziale_ritardo_0_area[3],

  &kyo32->disinserita_area[0],
  &kyo32->disinserita_area[1],
  &kyo32->disinserita_area[2],
  &kyo32->disinserita_area[3],

  &kyo32->stato_uscita[0],
  &kyo32->stato_uscita[1],
  &kyo32->stato_uscita[2],
  &kyo32->stato_uscita[3]
};

binary_sensors:
- id: kyo_comunication
name: Comunicazione Centrale
disabled_by_default: False
- id: stato_sirena
name: Stato Sirena
disabled_by_default: False
- id: warn_mancanza_rete
name: Mancanza Rete
disabled_by_default: False
- id: sabotaggio_zona
name: Sabotaggio Zona
disabled_by_default: False
- id: sabotaggio_sistema
name: Sabotaggio Sistema
disabled_by_default: False
- id: warn_scomparsa_bpi
name: Scomparsa BPI
disabled_by_default: False
- id: warn_fusibile
name: Fusibile
disabled_by_default: False
- id: warn_batteria_bassa
name: Batteria Bassa
disabled_by_default: False
- id: warn_guasto_linea_telefonica
name: Guasto Linea Telefonica
disabled_by_default: False
- id: warn_codici_default
name: Codici Default
disabled_by_default: False
- id: warn_wireless
name: Wireless
disabled_by_default: False
- id: sabotaggio_bpi
name: Sabotaggio BPI
disabled_by_default: False
- id: sabotaggio_jam
name: Sabotaggio Jam
disabled_by_default: False
- id: sabotaggio_wireless
name: Sabotaggio wireless
disabled_by_default: False
- id: sabotaggio_chiave_falsa
name: Sabotaggio Chiave Falsa
disabled_by_default: False
- id: zona_1
name: Sensore DT Taverna
device_class: motion
disabled_by_default: False
- id: zone_2
name: Finestra Taverna
device_class: window
disabled_by_default: False
- id: zone_3
name: Sensore DT Garage
device_class: motion
disabled_by_default: False
- id: zone_4
name: Scuretto Finestra Lavanderia
device_class: window
disabled_by_default: False
- id: zona_1_sabotaggio
name: Sabot. Sensore DT Taverna
disabled_by_default: False
- id: zona_2_sabotaggio
name: Sabot. Finestra Taverna
disabled_by_default: False
- id: zona_3_sabotaggio
name: Sabot. Sensore DT Garage
disabled_by_default: False
- id: zona_4_sabotaggio
name: Sabot. Scuretto Finestra Lavanderia
disabled_by_default: False
- id: excluded_zone_1
name: Escl. Sensore DT Taverna
disabled_by_default: False
- id: excluded_zone_2
name: Escl. Finestra Taverna
disabled_by_default: False
- id: excluded_zone_3
name: Escl. Sensore DT Garage
disabled_by_default: False
- id: excluded_zone_4
name: Escl. Scuretto Finestra Lavanderia
disabled_by_default: False
- id: alarm_memory_zone_1
name: Mem. Allarme Sensore DT Taverna
disabled_by_default: False
- id: alarm_memory_zone_2
name: Mem. Allarme Finestra Taverna
disabled_by_default: False
- id: alarm_memory_zone_3
name: Mem. Allarme Sensore DT Garage
disabled_by_default: False
- id: alarm_memory_zone_4
name: Mem. Allarme Scuretto Finestra Lavanderia
disabled_by_default: False
- id: sabotage_memory_zone_1
name: Mem. Sabotaggio Sensore DT Taverna
disabled_by_default: False
- id: sabotage_memory_zone_2
name: Mem. Sabotaggio Finestra Taverna
disabled_by_default: False
- id: sabotage_memory_zone_3
name: Mem. Sabotaggio Sensore DT Garage
disabled_by_default: False
- id: sabotage_memory_zone_4
name: Mem. Sabotaggio Scuretto Finestra Lavanderia
disabled_by_default: False
- id: alarm_area_1
name: Allarme Finestre
disabled_by_default: False
- id: alarm_area_2
name: Allarme Area 2
disabled_by_default: False
- id: alarm_area_3
name: Allarme Area 3
disabled_by_default: False
- id: alarm_area_4
name: Allarme Area Sensori Interni
disabled_by_default: False
- id: enabled_total_area_1
name: Ins. Totale Finestre
disabled_by_default: False
- id: enabled_total_area_2
name: Ins. Totale Porte
disabled_by_default: False
- id: enabled_total_area_3
name: Ins. Totale Sensori Giardino
disabled_by_default: False
- id: enabled_total_area_4
name: Ins. Totale Sensori Interni
disabled_by_default: False
- id: enabled_partial_area_1
name: Ins. Parziale Finestre
disabled_by_default: False
- id: enabled_partial_area_2
name: Ins. Parziale Porte
disabled_by_default: False
- id: enabled_partial_area_3
name: Ins. Parziale Sensori Giardino
disabled_by_default: False
- id: enabled_partial_area_4
name: Ins. Parziale Sensori Interni
disabled_by_default: False
- id: enabled_partial_delay_0_area_1
name: Ins. Parziale Ritardo 0 Finestre
disabled_by_default: False
- id: enabled_partial_delay_0_area_2
name: Ins. Parziale Ritardo 0 Porte
disabled_by_default: False
- id: enabled_partial_delay_0_area_3
name: Ins. Parziale Ritardo 0 Sensori Giardino
disabled_by_default: False
- id: enabled_partial_delay_0_area_4
name: Ins. Parziale Ritardo 0 Sensori Interni
disabled_by_default: False
- id: disabled_area_1
name: Disins. Finestre
disabled_by_default: False
- id: disabled_area_2
name: Disins. Porte
disabled_by_default: False
- id: disabled_area_3
name: Disins. Sensori Giardino
disabled_by_default: False
- id: disabled_area_4
name: Disins. Sensori Interni
disabled_by_default: False
- id: exit_status_1
name: Stato Uscita 1
disabled_by_default: False
-
ID exit_status_1 redefined! Check binary_sensor->0->binary_sensors->55->id.
id: exit_status_1
name: Stato Uscita 1
disabled_by_default: False
-
ID exit_status_1 redefined! Check binary_sensor->0->binary_sensors->55->id.
id: exit_status_1
name: Stato Uscita 1
disabled_by_default: False
-
ID exit_status_1 redefined! Check binary_sensor->0->binary_sensors->55->id.
id: exit_status_1
name: Stato Uscita 1
disabled_by_default: False`

espkyogate KYO32 (non G)

Ciao Lorenzo,
innanzitutto complimentoni per il tuo bel lavoro!

Ho appena collegato la mia centrale d'allarme in oggetto funziona, se vuoi aggiungerla alla lista di compatibilità.
Con lo yaml di esempio, solo leggermente adattato al mio hardware e wifi, HA mi ha fatto attivare una integrazione che ha trovato n.1 dispositivi e n.28 entità ripartite tra Sensori, Registro e Configurazione.
Purtroppo "lato Bentel" non ho accesso alla configurazione del mio allarme, so solo che è composto da 32 sensori porte/finestre/persiane suddivisi in 3 gruppi attivabili/disattivabili separatamente;
presumo quindi che ora devo implementare lo yaml aggiungendo dei blocchi identici a "id: zona_1" ma numerati da 2 fino a 32, e poi testare pazientemente aperture e chiusure in giro per casa per verificare chi corrisponde a che cosa...è corretto?
Grazie

Flavio

KYO8

Hi Lorenzo,

Just give feedback , happy user on KYO8 . Would like to highlight and appreciate your help and bug fix made via email conversation.

Thanks again,

Ádám

Add "smoke" class in documentation

Hey all, been using this for a while, I've reprogrammed the alarm to have fire sensors as well and I think it would help to add in the README the "smoke" device class after the "door" and "window" ones. KYO units are designed for fire detectors as well.
HASS has also a nice icon for them.

Cheers!

Dispositivo non disponibile

Complimenti per il progetto lo aspettavo da tanto che qualcuno implementasse il componente. Ho eseguito tutta la procedura come da guida su un d1 mini, pero in maniera random tutte l'entità perdono la connessione per qualche secondo su home assistant e diventano non disponibili.
Ho riscontrato anche che il sensore mancanza rete e lo stato sirena sono invertiti.

In fase di compilazione riscontro questo warning.
errore compilazione

KYO32M Support

Hi,

Thank you for such an interesting project @lorenzo-deluca! I have a KYO32M and I was wondering if you think it'll be compatible with this module?

I've ordered the components and will definitely test it on my own, but wanted to get early feedback if possible. Or maybe someone else in the community tried that model already?

Sticker on PCB says "OK32 1.05 IT/EN/ES/FR KYO32".

Alarm Control Panel

Ciao Lorenzo,
ho visto che nella 2023.6.0 di EspHome hanno rilasciato l'Alarm Control Panel e Template Alarm Control Panel. Sarebbe davvero bello integrarlo nel progetto.

Bentel absoluta smart

Ciao Lorenzo, mi chiedevo se questo sistema per integrare l'allarme bentel su HA potesse andar bene sulla mia centrale smart absoluta. Qualcuno ne è a conoscenza? i passaggi da fare sono gli stessi? Grazie per il supporto.

Mancata individuazione di una zona

Ho aggiornato all'ultima versione e funziona tutto (anche il famoso sensore batteria scarica) tranne una zona che non riesco a fargli "trovare".
Posto qui https://pastebin.com/hKQbZ8jM il mio file e la zona che non riesco a fargli individuare è la 9 (Serranda Soggiorno), mi puoi aiutare a capire il motivo? Ho devinito 20 zone e funzionano tutte tranne questa.
Grazie

KYO8 ed attivazione allarme

Ciao Lorenzo,
complimenti per il lavoro, lo sto testando su una centrale KYO8
Quando lancio il servizio per armare la zona 1 (unica zone nella mia centrale configurata) la zona si attiva correttamente ma partono anche le chiamate telefoniche di attivazione allarme. Stessa cosa quando disarmo con il service "disarm"

tutte le volte sento scattare un "doppio" relè e si attiva il compositore telefonico.

Hai qualche idea?

Grazie mille

funziona con absoluta?

sto cercando disperatamente una soluzione per bentel absoluta
questa guida potrebbe andar bene anche per absoluta?

Lorenzo buongiorno,

Lorenzo buongiorno,
approfitto nuovamente della tua cortesia, le uscite me le dà tutte in stato "Sconocsciuto"
Vedi qualche errore che mi sfugge nel codice?

`
binary_sensor:

  • platform: custom
    lambda: |-
    auto kyo32 = new Bentel_Kyo32(id(uart_bus));
    App.register_component(kyo32);
    return {
    kyo32->kyo_comunication,
    kyo32->stato_sirena,
    kyo32->warn_mancanza_rete,
    kyo32->sabotaggio_zona,
    kyo32->sabotaggio_sistema,
    kyo32->warn_scomparsa_bpi,
    kyo32->warn_fusibile,
    kyo32->warn_batteria_bassa,
    kyo32->warn_guasto_linea_telefonica,
    kyo32->warn_codici_default,
    kyo32->warn_wireless,
    kyo32->sabotaggio_bpi,
    kyo32->sabotaggio_jam,
    kyo32->sabotaggio_wireless,
    kyo32->sabotaggio_chiave_falsa,

    &kyo32->zona[0],
    &kyo32->zona[1],
    &kyo32->zona[2],
    &kyo32->zona[3],
    &kyo32->zona[4],
    
    &kyo32->zona_sabotaggio[0],
    &kyo32->zona_sabotaggio[1],
    &kyo32->zona_sabotaggio[2],
    &kyo32->zona_sabotaggio[3],
    &kyo32->zona_sabotaggio[4],
    
    &kyo32->zona_esclusa[0],
    &kyo32->zona_esclusa[1],
    &kyo32->zona_esclusa[2],
    &kyo32->zona_esclusa[3],
    &kyo32->zona_esclusa[4],
    
    &kyo32->memoria_allarme_zona[0],
    &kyo32->memoria_allarme_zona[1],
    &kyo32->memoria_allarme_zona[2],
    &kyo32->memoria_allarme_zona[3],
    &kyo32->memoria_allarme_zona[4],
    
    &kyo32->memoria_sabotaggio_zona[0],
    &kyo32->memoria_sabotaggio_zona[1],
    &kyo32->memoria_sabotaggio_zona[2],
    &kyo32->memoria_sabotaggio_zona[3],
    &kyo32->memoria_sabotaggio_zona[4],
    
    &kyo32->allarme_area[0],
    &kyo32->allarme_area[1],
    &kyo32->allarme_area[2],
    &kyo32->allarme_area[3],
    
    &kyo32->inserimento_totale_area[0],
    &kyo32->inserimento_totale_area[1],
    &kyo32->inserimento_totale_area[2],
    &kyo32->inserimento_totale_area[3],
    
    &kyo32->inserimento_parziale_area[0],
    &kyo32->inserimento_parziale_area[1],
    &kyo32->inserimento_parziale_area[2],
    &kyo32->inserimento_parziale_area[3],
    
    &kyo32->inserimento_parziale_ritardo_0_area[0],
    &kyo32->inserimento_parziale_ritardo_0_area[1],
    &kyo32->inserimento_parziale_ritardo_0_area[2],
    &kyo32->inserimento_parziale_ritardo_0_area[3],
    
    &kyo32->disinserita_area[0],
    &kyo32->disinserita_area[1],
    &kyo32->disinserita_area[2],
    &kyo32->disinserita_area[3],
    
    &kyo32->stato_uscita[0],
    &kyo32->stato_uscita[1],
    &kyo32->stato_uscita[2],
    &kyo32->stato_uscita[3],
    };
    

    binary_sensors:

    • id: kyo_comunication
      name: "Comunicazione Centrale"

    • id: stato_sirena
      name: "Stato Sirena"

    • id: warn_mancanza_rete
      name: "Mancanza Rete"

    • id: sabotaggio_zona
      name: "Sabotaggio Zona"

    • id: sabotaggio_sistema
      name: "Sabotaggio Sistema"

    • id: warn_scomparsa_bpi
      name: "Scomparsa BPI"

    • id: warn_fusibile
      name: "Fusibile"

    • id: warn_batteria_bassa
      name: "Batteria Bassa"

    • id: warn_guasto_linea_telefonica
      name: "Guasto Linea Telefonica"

    • id: warn_codici_default
      name: "Codici Default"

    • id: warn_wireless
      name: "Wireless"

    • id: sabotaggio_bpi
      name: "Sabotaggio BPI"

    • id: sabotaggio_jam
      name: "Sabotaggio Jam"

    • id: sabotaggio_wireless
      name: "Sabotaggio wireless"

    • id: sabotaggio_chiave_falsa
      name: "Sabotaggio Chiave Falsa"

    • id: zone_1
      name: "PIR Cortile"
      device_class: "door"

    • id: zone_2
      name: "PIR Cantine"
      device_class: "window"

    • id: zone_3
      name: "Porta Garage"
      device_class: "window"

    • id: zone_4
      name: "Zona 4"
      device_class: "window"

    • id: zone_5
      name: "Zona 5"
      device_class: "motion"

    • id: zone_1_tampering
      name: "Sabot. PIR Cortile"

    • id: zone_2_tampering
      name: "Sabot. PIR Cantine"

    • id: zone_3_tampering
      name: "Sabot. Porta Garage"

    • id: zone_4_tampering
      name: "Sabot. Zona 4"

    • id: zone_5_tampering
      name: "Sabot. Zona 5"

    • id: excluded_zone_1
      name: "Escl. PIR Cortile"

    • id: excluded_zone_2
      name: "Escl. PIR Cantine"

    • id: excluded_zone_3
      name: "Escl. Porta Garage"

    • id: excluded_zone_4
      name: "Escl. Zona 4"

    • id: excluded_zone_5
      name: "Escl. Zona 5"

    • id: alarm_memory_zone_1
      name: "Mem. Allarme PIR Cortile"

    • id: alarm_memory_zone_2
      name: "Mem. Allarme PIR Cantine"

    • id: alarm_memory_zone_3
      name: "Mem. Allarme Porta Garage"

    • id: alarm_memory_zone_4
      name: "Mem. Allarme Zona 4"

    • id: alarm_memory_zone_5
      name: "Mem. Allarme Zona 5"

    • id: sabotage_memory_zone_1
      name: "Mem. Sabotaggio PIR Cortile"

    • id: sabotage_memory_zone_2
      name: "Mem. Sabotaggio PIR Cantine"

    • id: sabotage_memory_zone_3
      name: "Mem. Sabotaggio Porta Garage"

    • id: sabotage_memory_zone_4
      name: "Mem. Sabotaggio Zona 4"

    • id: sabotage_memory_zone_5
      name: "Mem. Sabotaggio Zona 5"

    • id: alarm_area_1
      name: "Allarme Area 1"

    • id: alarm_area_2
      name: "Allarme Area 2"

    • id: alarm_area_3
      name: "Allarme Area 3"

    • id: alarm_area_4
      name: "Allarme Area 4"

    • id: enabled_total_area_1
      name: "Ins. Totale"

    • id: enabled_total_area_2
      name: "Ins. Totale Area 2"

    • id: enabled_total_area_3
      name: "Ins. Totale Area 3"

    • id: enabled_total_area_4
      name: "Ins. Totale Area 4"

    • id: enabled_partial_area_1
      name: "Ins. Parziale Area 1"

    • id: enabled_partial_area_2
      name: "Ins. Parziale Area 2"

    • id: enabled_partial_area_3
      name: "Ins. Parziale Area 3"

    • id: enabled_partial_area_4
      name: "Ins. Parziale Area 4"

    • id: enabled_partial_delay_0_area_1
      name: "Ins. Parziale Ritardo 0 Totale"

    • id: enabled_partial_delay_0_area_2
      name: "Ins. Parziale Ritardo 0 Parziale"

    • id: enabled_partial_delay_0_area_3
      name: "Ins. Parziale Ritardo 0 Area 3"

    • id: enabled_partial_delay_0_area_4
      name: "Ins. Parziale Ritardo 0 Area 4"

    • id: disabled_area_1
      name: "Disins. Allarme Totale"

    • id: disabled_area_2
      name: "Disins. Allarme Parziale"

    • id: disabled_area_3
      name: "Disins. Area 3"

    • id: disabled_area_4
      name: "Disins. Area 4"

    • id: exit_status_1
      name: "Stato Uscita Allarme Totoale"

    • id: exit_status_2
      name: "Stato Uscita Allarme Totoale"

    • id: exit_status_3
      name: "Stato Uscita Allarme Attivo"
      `

Mini D1 offline

Ho aggiornato ESPHome all'ultima versione (2022.11.3) e il Mini D1 spesso e volentieri è offline. Ovviamente non è cambiata né la configurazione né le posizione (tra l'altro a non più di 3 metri dal router WiFi).
Come posso risolvere? Grazie

Zona tapparelle (conta impulsi) non rilevata da H.A.

Ciao Lorenzo,

volevo congratularmi con te per l’ottimo lavoro, ho implementato il tutto ed è perfettamente funzionante.

Ti contatto per un chiarimento: ho una zona impostata come "tapparelle" (conta impulsi) ed ho notato che il rispettivo binary sensor in H.A. non cambia stato, la zona funziona correttamente e la centrale rileva l’apertura delle stesse.
Esiste una soluzione per visualizzare l'attivazione della zona?

Grazie in anticipo per il tempo che potrai dedicare

Saluti
Stefano

Errato messaggio di errore

Oggi sulla centralina è comparso il messaggio "Batteria Bassa" mentre in HA si è accesso il sensore "Guasto Linea Telefonica", cosa potrebbe essere successo? Grazie
Immagine

Problema nuova release

Ciao ho provveduto ad installare la nuova configurazione, durante l'utilizzo riscontro i seguenti problemi:
-L'aggiornamento tramite OTA fallisce
-L'esp risulta instabile, si creano molte disconnessioni
-Lo stato delle partizioni dalla 3 in poi delle volte non viene sincronizzata, invece le prime due funzionano regolarmente.

Mi potresti dare qualche consiglio?

questa è la configurazione del file.Yaml

uart:
id: uart_bus
tx_pin: GPIO3
rx_pin: GPIO1
baud_rate: 9600
data_bits: 8
parity: EVEN

binary_sensor:

  • platform: custom
    lambda: |-
    auto kyo32 = new Bentel_Kyo32(id(uart_bus));
    App.register_component(kyo32);
    return {
    kyo32->kyo_comunication,
    kyo32->stato_sirena,
    kyo32->warn_mancanza_rete,
    kyo32->sabotaggio_zona,
    kyo32->sabotaggio_sistema,
    kyo32->warn_scomparsa_bpi,
    kyo32->warn_fusibile,
    kyo32->warn_batteria_bassa,
    kyo32->warn_guasto_linea_telefonica,
    kyo32->warn_codici_default,
    kyo32->warn_wireless,
    kyo32->sabotaggio_bpi,
    kyo32->sabotaggio_chiave_falsa,
    kyo32->sabotaggio_jam,
    kyo32->sabotaggio_wireless,

    &kyo32->zona[0],
    &kyo32->zona[1], 
    &kyo32->zona[2],
    &kyo32->zona[6],
    &kyo32->zona[8],
    &kyo32->zona[9],
    &kyo32->zona[10],       
    &kyo32->zona[11],
    &kyo32->zona[12],
    &kyo32->zona[13],
    &kyo32->zona[14],
    &kyo32->zona[15],
    &kyo32->zona[16],
    
    &kyo32->inserimento_totale_area[0],
    &kyo32->inserimento_parziale_area[0],
    &kyo32->inserimento_totale_area[1],
    &kyo32->inserimento_parziale_area[1],
    &kyo32->inserimento_totale_area[2],
    &kyo32->inserimento_parziale_area[2],
    &kyo32->inserimento_totale_area[3],
    &kyo32->inserimento_totale_area[4],
    
    &kyo32->memoria_allarme_zona[0],
    &kyo32->memoria_allarme_zona[1],
    &kyo32->memoria_allarme_zona[2],
    &kyo32->memoria_allarme_zona[6],
    &kyo32->memoria_allarme_zona[8],
    &kyo32->memoria_allarme_zona[9],
    &kyo32->memoria_allarme_zona[10],
    &kyo32->memoria_allarme_zona[11],
    &kyo32->memoria_allarme_zona[12],
    &kyo32->memoria_allarme_zona[13],
    &kyo32->memoria_allarme_zona[14],
    &kyo32->memoria_allarme_zona[15],
    &kyo32->memoria_allarme_zona[16]
    };
    

    binary_sensors:

    • id: kyo_comunication
      name: "Comunicazione Centrale"
    • id: stato_sirena
      name: "Stato Sirena"
    • id: warn_mancanza_rete
      name: "Mancanza Rete"
    • id: sabotaggio_zona
      name: "Sabotaggio Zona"
    • id: sabotaggio_sistema
      name: "Sabotaggio Sistema"
    • id: warn_scomparsa_bpi
      name: "Scomparsa BPI"
    • id: warn_fusibile
      name: "Fusibile"
    • id: warn_batteria_bassa
      name: "Batteria Bassa"
    • id: warn_guasto_linea_telefonica
      name: "Guasto Linea Telefonica"
    • id: warn_codici_default
      name: "Codici Default"
    • id: warn_wireless
      name: "Wireless"
    • id: sabotaggio_bpi
      name: "Sabotaggio BPI"
    • id: sabotaggio_jam
      name: "Sabotaggio Jam"
    • id: sabotaggio_wireless
      name: "Sabotaggio wireless"
    • id: sabotaggio_chiave_falsa
      name: "Sabotaggio Chiave Falsa"
      #######zone###################################
    • id: kyo_zona1
      name: ""
      device_class: "window"
    • id: kyo_zona2
      name: ""
      device_class: "motion"
    • id: kyo_zona3
      name: ""
      device_class: "door"
    • id: kyo_zona7
      name: ""
      device_class: "motion"
    • id: kyo_zona9
      name: "Vol.Officina3"
      device_class: "motion"
    • id: kyo_zona10
      name: ""
      device_class: "motion"
    • id: kyo_zona11
      name: ""
      device_class: "motion"
    • id: kyo_zona12
      name: ""
      device_class: "motion"
    • id: kyo_zona13
      name: ""
      device_class: "motion"
    • id: kyo_zona14
      name: ""
      device_class: "motion"
    • id: kyo_zona15
      name: ""
      device_class: "motion"
    • id: kyo_zona16
      name: ""
      device_class: "motion"
    • id: kyo_zona17
      name: ""
      device_class: "window"
      #######Area###################
    • id : inserimento_totale_area_1
      name : ""
    • id : inserimento_parziale_area_1
      name : ""
    • id : inserimento_totale_area_2
      name : ""
    • id : inserimento_parziale_area_2
      name : ""
    • id : inserimento_totale_area_3
      name : ""
    • id : inserimento_parziale_area_3
      name : ""
    • id : inserimento_totale_area_4
      name : ""
    • id : inserimento_totale_area_5
      name : ""
      ######momoria allarme zona########
    • id: zona_1_memoria_allarme
      name: "o"
    • id: zona_2_memoria_allarme
      name: ""
    • id: zona_3_memoria_allarme
      name: ""
    • id: zona_7_memoria_allarme
      name: ""
    • id: zona_9_memoria_allarme
      name: ""
    • id: zona_10_memoria_allarme
      name: ""
    • id: zona_11_memoria_allarme
      name: ""
    • id: zona_12_memoria_allarme
      name: ""
    • id: zona_13_memoria_allarme
      name: ""
    • id: zona_14_memoria_allarme
      name: ""
    • id: zona_15_memoria_allarme
      name: ""
    • id: zona_16_memoria_allarme
      name: ""
    • id: zona_17_memoria_allarme
      name: ""

Antisabotaggio non segnalato

Ciao Lorenzo e di nuovo complimenti per il tuo lavoro.
Ti volevo segnalare un "problema" con l'antisabotaggio.
Ieri stavo cambiando la batteria della sirena e sulla centralina è comparsa (correttamente) la segnalazione di "sabotaggio"
image
ma non si è attivato nessun binary_sensor a riguardo, ovviamente non è un problema bloccante ma mi sembra giusto segnalarlo.
Inoltre chiamando il servizio esphome.antifurto_reset_alarms l'allarme non si è resettato (ho fatto il reset da tastiera della centralina).
Se hai bisogno di altre info chiedi pure.
Grazie

Reset Memoria Allarme Zone

@lorenzo-deluca dopo un po' di test ho notato che il comando di reset memoria allarme zone non funziona. Ho analizzato i log e la stringa seriale viene mandata regolarmente:
21:51:53][I][reset_alarms:154]: Reset Alarms.
[21:51:53][I][sendMessageToKyo:649]: TX '0F.05.F0.01.00.05.07.00.07 (9)'
[21:51:53][I][sendMessageToKyo:658]: RX '0F.05.F0.01.00.05 (6)'

La centrale risponde:
[21:51:53][E][reset_alarms:158]: kyo respond 6

Da home assistant eseguo il service:
service: esphome.kyo32gateway_reset_alarms
data: {}

Questo mi crea un problema xchè solo da tastierino posso resettare le memorie e non posso farlo da remoto.
Qualche idea?

Configuration trouble

Hello Lorenzo,
I am a recent and happy user of this integration.
This isn't really an issue.
I'm trying to configure all areas and zones in the most correct and total way but something is not right ...
I noticed that if in the configuration I insert some areas or zones incorrectly in the home assistant "wrong" sensors are created (in a test yesterday, for example, "fuse fault" appeared to me as active but it was not true ...) it would not Is it possible to insert in the readme or in the espkyogate_configuraton.yaml file a configuration model where everything is commented? (currently for example there is only "Zone 1" configured) In this way people would have to do nothing but remove the comments they need to their taste ...
I don't know if I made myself clear ...

Component <unknow> took a long time...

Hello,
although everything still seems to work correctly in the esphome logs, what is written in the attached screeshot appears to me ...
It's normal? How can I do to help you understand what it could be.
My device is a Wemos D1mini with a Kyo32G

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.