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
Tu mi czyta, tyle że tylko w logach to wiedzę.
A w interfejsie WEB widzisz ten sensor text ?
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.