cześć,
pytanie następujące: czy ktoś podłączał czytnik z magistralą wiegand do esphome i HA? Przerobiłem już wiele konfiguracji i nie potrafię zaczytać ID karty do HA. Pojawia mi się tylko w logach:
:37:36 [I] [RAW:026] received raw 26 bits, value 3ae116f 16:37:36 [D] [wiegand:073] received 26-bit tag: 14092471 16:37:36 [W] [wiegand:075] invalid parity 16:37:38 [I] [RAW:026] received raw 26 bits, value 19b882c 16:37:38 [D] [wiegand:073] received 26-bit tag: 13485078 16:37:38 [W] [wiegand:075] invalid parity
jednak nie potrafię przerzucić tego np. to sensor_text lub bezpośrednio do systemu.
esp8266.
Gdybyś podał z jakiej integracji skorzystałeś i jaki jest kod w EspHome, byłoby łatwiej ..
spróbuj tak..
text_sensor:
- platform: custom
lambda: |-
auto wiegand = new WiegandReader(D2, D1);
App.register_component(wiegand);
return {wiegand};
text_sensors:
name: "Karta ID"
on_value:
then:
- homeassistant.tag_scanned: !lambda |-
return x;
@mariusz-2 korzystam z tego co oferuje esphome. Znalazłem projekty korzystające z zewnętrznych jednak przy kompilacji wywala się.
Tu mi czyta, tyle że tylko w logach to wiedzę.
esphome:
name: rfid
friendly_name: rfid
esp8266:
board: d1_mini
# Enable logging
logger:
wiegand:
- id: frontdoor
d0: D1
d1: D2
on_key:
- lambda: ESP_LOGI("KEY", "received key %d", x);
on_tag:
- lambda: ESP_LOGI("TAG", "received tag %s", x.c_str());
- homeassistant.tag_scanned: !lambda 'return x;'
- text_sensor.template.publish:
id: tag
state: !lambda "return parse_number<float>(x).value();"
- homeassistant.tag_scanned: !lambda 'return x.c_str();'
on_raw:
- lambda: ESP_LOGI("RAW", "received raw %d bits, value %llx", bits, value);
text_sensor:
- platform: custom
lambda: |-
auto wiegand = new WiegandReader(D2, D1);
App.register_component(wiegand);
return {wiegand};
text_sensors:
name: "Card ID"
on_value:
then:
- homeassistant.tag_scanned: !lambda |-
return x;
switch:
- platform: gpio
name: "relay"
id: relay
pin: D4
restore_mode: ALWAYS_ON
sensor:
- platform: template
name: Keypad Code
id: keyCode
# Enable Home Assistant API
api:
encryption:
key: "BJQ7fSVhzgKzWqNfXRHmZjT75ml6OVaxiVOpVArBvSs="
ota:
password: "a67dca19c3aa10ca0ab81944dc191556"
wifi:
ssid: xxxxxx
password: xxxxxxx
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Rfid Fallback Hotspot"
password: "GKiuM4ccGnaz"
captive_portal:
web_server:
local: true
to co podajesz to jest zewnętrzny komponent? (wiegand)
spróbuj i pokaż co masz w logach, zobacz czy po zeskanowaniu w HA w Urządzenia -- Tagi pojawia się zeskanowany tag na liście.
esphome:
name: rfid
platform: ESP8266
board: d1_mini
# Enable logging
logger:
wiegand:
- id: frontdoor
d0: D1
d1: D2
on_key:
- lambda: |-
ESP_LOGI("KEY", "received key %d", x);
on_tag:
- lambda: |-
ESP_LOGI("TAG", "received tag %s", x.c_str());
homeassistant.tag_scanned: !lambda 'return x.c_str();'
text_sensor.template.publish:
id: tag
state: !lambda "return parse_number<float>(x).value();"
on_raw:
- lambda: |-
ESP_LOGI("RAW", "received raw %d bits, value %llx", bits, value);
text_sensor:
- platform: custom
lambda: |-
auto wiegand = new WiegandReader(D2, D1);
App.register_component(wiegand);
return {wiegand};
text_sensors:
- name: "Card ID"
on_value:
then:
- homeassistant.tag_scanned: !lambda |-
return x;
switch:
- platform: gpio
name: "relay"
id: relay
pin: D4
restore_mode: ALWAYS_ON
sensor:
- platform: template
name: Keypad Code
id: keyCode
# Enable Home Assistant API
api:
encryption:
key: "BJQ7fSVhzgKzWqNfXRHmZjT75ml6OVaxiVOpVArBvSs="
ota:
password: "a67dca19c3aa10ca0ab81944dc191556"
wifi:
ssid: xxxxxx
password: xxxxxxx
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Rfid Fallback Hotspot"
password: "GKiuM4ccGnaz"
captive_portal:
web_server:
local: true
PS. Czy tego sprzętu używasz ?
https://github.com/towerclimber87/Wiegand-Keypad-V4/tree/main
@mariusz-2 też nie działa
<unicode string>:30:26: error: expected type-specifier before 'WiegandReader'
<unicode string>:32:22: error: could not convert '{wiegand}' from '<brace-enclosed initializer list>' to 'std::vector<esphome::text_sensor::TextSensor*>'
*** [.pioenvs\rfid\src\main.cpp.o] Error 1
https://github.com/towerclimber87/Wiegand-Keypad-V4/tree/main
nie, uzywam typowego czytnika z magistralą Wiegand i Wemos D1.
uzywam typowego czytnika z magistralą Wiegand
Nie wiem co jest nie tak, kiedyś bawiłem się krótko, "typowym czytnikiem" Netronixa MW-R8B a może to był CTU-R5RL albo Lectus ARD-SER10-WI, nie pamiętam już, poszukaj w necie może coś na temat Twojego "typowego".
Może ten wątek będzie interesujący .. są przykłady działającej konfiguracji..
@mariusz-2 rozwiązane, przynajmniej częściowo. To co podałeś u mnie nie działa, tnie się na etapie kompilacji. Odnosisz się do komponentu, którego nie zna.
Żadna konfiguracja nie działała i nr karty nie przechodził dalej. Okazało się, że zamieniłem szynę, pomyliłem D0 z D1. Nie zorientowałem się, gdyż w logach prawidłowo czytało karty. Teraz na start mam tagi w Ha.


