Cześć Wszystkim!
Arduino widzi się z HA. HA widzi opcje button short press i button long press, ale nie reaguje przy zwarciu pinu 9 do GND. Poniżej załączam szkic z Arduino i szkic automatyzacji.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 id: '1638427019690' alias: Mybutton ON to OFF description: hej trigger: - platform: device domain: mqtt device_id: 0ed8d7a687af41ade0c126a651e8485d type: button_short_press subtype: mybtn discovery_id: 0010fa6e384a mybtn_button_short_press condition: - condition: and conditions: - condition: state entity_id: switch.relay_1_102 state: 'on' action: - service: switch.turn_off target: entity_id: switch.relay_1_102 mode: single
#include <Ethernet.h> #include <ArduinoHA.h> #define MY_DEBUG // This example uses JC Button library // https://github.com/JChristensen/JC_Button #include <JC_Button.h> #define BUTTON_PIN 9 #define BUTTON_NAME "mybtn" #define BROKER_ADDR IPAddress(192,168,0,140) #define BROKER_USERNAME "mqtt" // replace with your credentials #define BROKER_PASSWORD "1234" byte mac[] = {0x00, 0x10, 0xFA, 0x6E, 0x38, 0x4A}; EthernetClient client; HADevice device(mac, sizeof(mac)); HAMqtt mqtt(client, device); HATriggers triggers; Button btn(BUTTON_PIN); bool holdingBtn = false; void setup() { Serial.begin(9600); // you don't need to verify return status Ethernet.begin(mac); // set device's details (optional) device.setName("Arduino"); device.setSoftwareVersion("1.0.0"); // setup triggers triggers.add("button_short_press", BUTTON_NAME); triggers.add("button_long_press", BUTTON_NAME); btn.begin(); mqtt.begin(BROKER_ADDR); } void loop() { Ethernet.maintain(); mqtt.loop(); btn.read(); if (btn.pressedFor(3000) && !holdingBtn) { triggers.trigger("button_long_press", BUTTON_NAME); holdingBtn = true; } else if (btn.wasReleased()) { if (holdingBtn) { holdingBtn = false; } else { triggers.trigger("button_short_press", BUTTON_NAME); } } }