BernhardSchlegel / Brick-32

Worlds easiest and cheapest to build brewing control. Supports mashing and fermentation. Combine multiple Bricks to control higher wattages or different functions (heating, cooling, pumps). Works with smartphone, iPad, Mac, & PC.
GNU General Public License v3.0
12 stars 2 forks source link

TH Elite Support #8

Open lowPerformer opened 7 months ago

lowPerformer commented 7 months ago

Hello everyone,

I recently bought the THR320D Elite and i wonder if there are plans to support the Dry Contact and LCD of it.

Although I am doing Embedded System Engineering for my living, I don't have any experience with this kind of project (VS Code / Espressif silicon / ...).

But maybe I can help out nevertheless?

Greetings! Nick

BernhardSchlegel commented 7 months ago

Hey Nick,

thanks for reaching out. Please see the other issue #2 already talking about this. I've linked working code for the display there. "Just" ;) needs to be integrated.

Happy support from the sideline!

Cheers, Bernhard.

lowPerformer commented 7 months ago

All required hardware is available now and I was able to flash the brick successfully.

Unfortunately there are several problems:

  1. I was not able to connect to the AP with my cell phone. It connected <-> disconnected to/from the AP in a loop. With a WiFi stick to my PC, i was able to connect and configure. The serial log when connecting with my cell phone:

    [ 18095][E][WebServer.cpp:635] _handleRequest(): request handler not found
    *wm:[2] <- Request redirected to captive portal 
    [ 18415][E][WebServer.cpp:635] _handleRequest(): request handler not found
    *wm:[2] <- Request redirected to captive portal 
    *wm:[2] <- HTTP Root 
    [ 18751][E][WebServer.cpp:635] _handleRequest(): request handler not found
    [ 19767][E][WebServer.cpp:635] _handleRequest(): request handler not found
    *wm:[2] <- Request redirected to captive portal 
    [ 20892][E][WebServer.cpp:635] _handleRequest(): request handler not found
    *wm:[2] <- Request redirected to captive portal 
    [ 25740][E][WebServer.cpp:635] _handleRequest(): request handler not found
    *wm:[2] <- Request redirected to captive portal 
    [ 25989][E][WebServer.cpp:635] _handleRequest(): request handler not found
    *wm:[2] <- Request redirected to captive portal 
    *wm:[2] <- HTTP Root 
    [ 26183][E][WebServer.cpp:635] _handleRequest(): request handler not found
    [ 27223][E][WebServer.cpp:635] _handleRequest(): request handler not found
    *wm:[2] <- Request redirected to captive portal 
    [ 28341][E][WebServer.cpp:635] _handleRequest(): request handler not found
    *wm:[2] <- Request redirected to captive portal 
    [ 28427][E][WebServer.cpp:635] _handleRequest(): request handler not found
    *wm:[2] <- Request redirected to captive portal 
    [ 28600][E][WebServer.cpp:635] _handleRequest(): request handler not found
    *wm:[2] <- Request redirected to captive portal 
    *wm:[2] NUM CLIENTS:  0
    [ 32312][E][WebServer.cpp:635] _handleRequest(): request handler not found
    *wm:[2] <- Request redirected to captive portal 
    [ 32491][E][WebServer.cpp:635] _handleRequest(): request handler not found
    *wm:[2] <- Request redirected to captive portal 
    *wm:[2] <- HTTP Root 
    ...
  2. The Brick can not read the temperature sensor!

    ##### MAIN: setting relais
    ##### MAIN: reading temperature
    Error: Could not read temperature data
    ##### MAIN: contacting backend
    s_number_temp_0=-127.00, a_bool_epower_0=0
    [118048][E][WiFiGeneric.cpp:1360] hostByName(): DNS Failed for https://bricks.bierbot.com/api/iot ...
    [118062][E][WiFiClientSecure.cpp:135] connect(): start_ssl_client: -1
    submitting GET to ...

    This worked with original firmware BUT only after I updated the device to the newest version. The stock firmware it was shipped with didn't found the sensor either. Maybe Sonoff changed something? Any ideas?

P.S. I got this bundle from Amazon seems to be original (DS18B20 in a Sonoff package labeled WTS01)

BernhardSchlegel commented 7 months ago

Hey Nick, regarding your issues

  1. Never heard of it or had that problem, sorry.
  2. Temperature connection can be unstable, in most cases the plug did not connect properly. I don't think that the firmware is the issue. The WTS01 has a little black box somewhere in the middle of the cable? Not sure what that is, seeing that for the first time. The BierBot Bricks Software only supports 1Wire sensors (DS18B20) - maybe that's the issue.

Best, Bernhard.

lowPerformer commented 7 months ago

Hi,

  1. Then it is my cell phone bitching! Nothing new ;)
  2. PCB layout seems to be the same. GPIO25 / 27 for OW_TX / PWR_EN

I don't think it is an connection problem. With stock firmware this was solid. My luck but the WTS01 seems not to be a DS18B20 (but is a Onewire sensor). I have to order a real one to work with.

I am already implementing the dry contact switch. First implementation seems to work online.

Btw Latency in free account is terrible high. I don't think this is feasible - doesn't feel good if you switch something off/on and this takes ~15 seconds to arrive at the brick! What is the latency in the pro version?

BernhardSchlegel commented 7 months ago

Pretty cool with the dy contact switch!

PRO - is depending on the server load - but at least 3x as fast. As appreciation for your contributions I can offer to bump your brewery to a tester account for some time (which is including all PRO features + unlocks access to some alpha / beta features). If your interested shoot me an email with your API key and a link to this issue.

Cheers, Bernhard.

lowPerformer commented 7 months ago

About the WTS01:

It is indeed a DS18B20 but with an additional circuit in the black bulge (some kind of µC): https://github.com/arendst/Tasmota/discussions/19373

I think the problem may occur more frequently in the future as this WTS01-sensor is now bundled as standard as far as I understand. As a workaround one has to get rid of the bulge and route the wires directly. Lets hope there will be some progress in the Tasmota project and we maybe can adapt this to natively support the WTS01.