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

What us the state? #5

Open
bzumik1 opened this issue Feb 28, 2023 · 7 comments
Open

What us the state? #5

bzumik1 opened this issue Feb 28, 2023 · 7 comments

Comments

@bzumik1
Copy link

bzumik1 commented Feb 28, 2023

Hi, what is the state of this project? Does it work?

@mmrazik
Copy link
Owner

mmrazik commented Mar 1, 2023

The protocol is reverse engineered and it should work. At the end I didn't "productize" it into a wi-fi controlled table which was my original goal.
tl;dr; this can be used but you will still need to integrate this into your project and there are few gotchas (the timing on a serial line is sensitive so I would recommend to run it on a separate code on something like esp32).

@bzumik1
Copy link
Author

bzumik1 commented Mar 1, 2023

Ok, thanks a lot. I would like to integrate this to HA using ESPHome. Not all functions are necessary. I would be OK just with "set memory X" functionality. Any suggestion how should the connection between ESP32, control unit, display look like? I guess I would need to connect ESP32 in the middle of those two remaining. So all communication would go trough the ESP32. Or is it possible to connect it in parallel?

@mmrazik
Copy link
Owner

mmrazik commented Mar 1, 2023

I am not familiar at all with ESPHome so I will need to be educated a bit (bear with me).
Ultimately all you need is:

  • Make sure there is a physical connection between the AlzaErgo table and some device over serial port
  • Besides the (obvious) need of having a serial port, the device needs to be able to response to the AzlaErgo table relatively quickly. I don't know what exactly is that but I had unreliable behavior with delays in the protocol. There is a chance even something like raspberry will be able to operate this just fine (and you would just need to implement some part of the protocol; I might be even interested to implement it in python)
  • You can then connect any kind of automation you are interested in as long as that automation can control your "device"

Maybe a diagram would be worth here if the above does not make much sense to you.

@mmrazik
Copy link
Owner

mmrazik commented Mar 1, 2023

My original goal for this project to have a pure arduino implementation. A small ESP based, stand-alone device to which I can send commands over REST API. The hardest work was the reverse engineering. The library to control the protocol is IMO finished. The control code (the "ESP based device") not so much. TBH I don't recall what exactly was the blocker I ran into (there was something smaller) but the most fun here was the reverse engineering.

@mmrazik
Copy link
Owner

mmrazik commented Mar 1, 2023

I think the path here would be closer to my original idea:

  1. Have a "standalone" ESP unit with the "alzaergo" firmware
  2. the "standalone" ESP unit provides REST APIs for control
  3. Home Assistant calls directly those REST APIs

Having ESPHome in this setup does not feel like the right move.

@PeterPalenik
Copy link

@mmrazik thanks for the reverse engineering :) one question. Does the table use 5v serial? If yes, I'd have to use some level shifter from 5v to 3v3 to make it work with ESP, right?

@StanislavJochman
Copy link

@mmrazik thanks for the reverse engineering :) one question. Does the table use 5v serial? If yes, I'd have to use some level shifter from 5v to 3v3 to make it work with ESP, right?

Even if it used 5V you technically do not need a level shifter. serial is open drain protocol so the worst voltage divider on lines is enough.

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

No branches or pull requests

4 participants