Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 1 commit into from
Jun 30, 2024

Conversation

s-hadinger
Copy link
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
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
59 checks passed
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