Skip to content

Berry FUNC_BUTTON_MULTI_PRESSED event and make FUNC_BUTTON_PRESSED called only on state changes and once per second - #21711

Merged
s-hadinger merged 1 commit into
arendst:developmentfrom
s-hadinger:berry_button_event_60s
Jun 30, 2024
Merged

Berry FUNC_BUTTON_MULTI_PRESSED event and make FUNC_BUTTON_PRESSED called only on state changes and once per second#21711
s-hadinger merged 1 commit into
arendst:developmentfrom
s-hadinger:berry_button_event_60s

Conversation

@s-hadinger

Copy link
Copy Markdown
Collaborator

Description:

Change from #21709, now button_pressed from FUNC_BUTTON_PRESSED is called when the state changes, and at least once per second (instead of every tick, i.e. 20 times per second)

Checklist:

  • The pull request is done against the latest development branch
  • Only relevant files were touched
  • Only one feature/fix was added per PR and the code change compiles without warnings
  • The code change is tested and works with Tasmota core ESP8266 V.2.7.7
  • The code change is tested and works with Tasmota core ESP32 V.3.0.2
  • I accept the CLA.

NOTE: The code change must pass CI tests. Your PR cannot be merged unless tests pass

…` called only on state changes and once per second
@s-hadinger

Copy link
Copy Markdown
Collaborator Author

Here is a logger example:

class AnyKeyLogger
  def init()
    tasmota.add_driver(self)
  end

  def any_key(cmd, idx)
	#device_save << 24 | key << 16 | state << 8 | device;
    var device_state = (idx >> 24) & 0xFF
    var key = (idx >> 16) & 0xFF
    var state = (idx >> 8) & 0xFF
    var device = idx & 0xff
    log(f"---: FUNC_ANY_KEY {idx:08X} {device_state=:2i} {key=:2i} {state=:2i} {device=:2i}")
  end

  def button_pressed(cmd, idx)
  	var button = (idx >> 16) & 0xFF
  	var last_state = (idx >> 8) & 0xFF
  	var index = (idx & 0xFF)
    log(f"---: FUNC_BUTTON_PRESSED {button=:2i} {last_state=:2i} {index=:2i}")
  end

  def button_multi_pressed(cmd, idx)
    var press_counter = (idx >> 8) & 0xFF
  	var index = (idx & 0xFF)
    log(f"---: FUNC_BUTTON_MULTI_PRESSED {press_counter=:2i} {index=:2i}")
  end

end
AnyKeyLogger()

@s-hadinger
s-hadinger merged commit 2cc785b into arendst:development Jun 30, 2024
@s-hadinger
s-hadinger deleted the berry_button_event_60s branch January 6, 2025 14:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant