I actually like owls, but not today :( ESP32 don't connect to Teddycloud

Hello everyone

I’ve been desperately trying to connect my Toniebox to the Teddycloud for two days now. Maybe someone here can help!!!?

My setup:
Teccycloud:latest running in Docker on a TrueNas (Ugreen dxp2800).
Standard installation without any special customizations.
Web interface works flawlessly. It can be reached by all network participants under the ip 192.168.2.7 via port 80 and 8443.
Toniebox is ESP32 version

I did everything according to the instructions via Web gui. I can read the certificates without any problems, and flashing with my Teddycloud hostname (192.168.2.7) and the Wifi identifier also works without error messages.

When I restart the box, it boots up and happily announces: “Oh ja, jetzt bin ich bereit für die Tonies, viel Spaß”.
I can see that it is connected to the wifi. I can even ping it.

But it won’t connect to the Teddycloud. I have tried about 20 times… nothing! :frowning:
When I press the ear, Code Owl (Codewort Eule) keeps coming up. Nothing happens in the log with this action.

I have put the client certificates in the subdirectory f0f5bd599640 and in clients/ without success.
I have also tried deleting the server certificates and recreating them. Also without success.
I went the legacy way, manually injected the certificate and hostname and then flashed the image. Also without success.
I have also read some posts here in the forum and none of them have led me to the result.

I’m running out of ideas what else I can try. Please help me

Here is the log when i start the teddycloud container:

TeddyCloud v0.6.3 (39b2f89) - 2025-01-06 08:31:53 +0000 ubuntu linux-x86_64(64)

INFO |settings.c:0851:settings_load_ovl| Load settings from /teddycloud/config/config.overlay.ini

INFO |settings.c:0851:settings_load_ovl| Load settings from /teddycloud/config/config.ini

DEBUG|settings.c:0959:settings_load_ovl| log.level=5

DEBUG|settings.c:0950:settings_load_ovl| log.color=true

DEBUG|settings.c:0950:settings_load_ovl| log.logFullAuth=false

DEBUG|settings.c:0959:settings_load_ovl| core.server.http_port=80

DEBUG|settings.c:0959:settings_load_ovl| core.server.https_web_port=8443

DEBUG|settings.c:0959:settings_load_ovl| core.server.https_api_port=443

DEBUG|settings.c:0968:settings_load_ovl| core.server.bind_ip=

DEBUG|settings.c:0968:settings_load_ovl| core.host_url=http://localhost

DEBUG|settings.c:0968:settings_load_ovl| core.certdir=certs/client

DEBUG|settings.c:0968:settings_load_ovl| core.contentdir=default

DEBUG|settings.c:0968:settings_load_ovl| core.librarydir=library

DEBUG|settings.c:0968:settings_load_ovl| core.datadir=data

DEBUG|settings.c:0968:settings_load_ovl| core.firmwaredir=firmware

DEBUG|settings.c:0968:settings_load_ovl| core.cachedir=cache

DEBUG|settings.c:0968:settings_load_ovl| core.sslkeylogfile=

DEBUG|settings.c:0950:settings_load_ovl| core.new_webgui_as_default=true

DEBUG|settings.c:0968:settings_load_ovl| core.server_cert.file.ca=certs/server/ca-root.pem

DEBUG|settings.c:0968:settings_load_ovl| core.server_cert.file.ca_der=certs/server/ca.der

DEBUG|settings.c:0968:settings_load_ovl| core.server_cert.file.ca_key=certs/server/ca-key.pem

DEBUG|settings.c:0968:settings_load_ovl| core.server_cert.file.crt=certs/server/teddy-cert.pem

DEBUG|settings.c:0968:settings_load_ovl| core.server_cert.file.key=certs/server/teddy-key.pem

DEBUG|settings.c:0968:settings_load_ovl| core.server_cert.data.ca=

DEBUG|settings.c:0968:settings_load_ovl| core.client_cert.file.ca=certs/client/ca.der

DEBUG|settings.c:0968:settings_load_ovl| core.client_cert.file.crt=certs/client/client.der

DEBUG|settings.c:0968:settings_load_ovl| core.client_cert.file.key=certs/client/private.der

DEBUG|settings.c:0968:settings_load_ovl| core.allowOrigin=

DEBUG|settings.c:0950:settings_load_ovl| core.boxCertAuth=true

DEBUG|settings.c:0950:settings_load_ovl| core.allowNewBox=true

DEBUG|settings.c:0950:settings_load_ovl| core.flex_enabled=true

DEBUG|settings.c:0968:settings_load_ovl| core.flex_uid=

DEBUG|settings.c:0959:settings_load_ovl| core.settings_level=1

DEBUG|settings.c:0950:settings_load_ovl| core.tonies_json_auto_update=true

DEBUG|settings.c:0950:settings_load_ovl| core.full_taf_validation=false

DEBUG|settings.c:0950:settings_load_ovl| security_mit.warnAccess=true

DEBUG|settings.c:0950:settings_load_ovl| security_mit.lockAccess=true

DEBUG|settings.c:0950:settings_load_ovl| security_mit.httpsOnly=true

DEBUG|settings.c:0950:settings_load_ovl| security_mit.onBlacklistDomain=true

DEBUG|settings.c:0950:settings_load_ovl| security_mit.onCrawler=true

DEBUG|settings.c:0950:settings_load_ovl| security_mit.onRobotsTxt=true

DEBUG|settings.c:0950:settings_load_ovl| cloud.enabled=false

DEBUG|settings.c:0968:settings_load_ovl| cloud.remote_hostname=prod.de.tbs.toys

DEBUG|settings.c:0959:settings_load_ovl| cloud.remote_port=443

DEBUG|settings.c:0950:settings_load_ovl| cloud.enableV1Claim=true

DEBUG|settings.c:0950:settings_load_ovl| cloud.enableV1CloudReset=false

DEBUG|settings.c:0950:settings_load_ovl| cloud.enableV1FreshnessCheck=true

DEBUG|settings.c:0950:settings_load_ovl| cloud.enableV1Log=false

DEBUG|settings.c:0950:settings_load_ovl| cloud.enableV1Time=true

DEBUG|settings.c:0950:settings_load_ovl| cloud.enableV1Ota=false

DEBUG|settings.c:0950:settings_load_ovl| cloud.enableV2Content=true

DEBUG|settings.c:0950:settings_load_ovl| cloud.cacheOta=true

DEBUG|settings.c:0950:settings_load_ovl| cloud.localOta=false

DEBUG|settings.c:0950:settings_load_ovl| cloud.cacheContent=true

DEBUG|settings.c:0950:settings_load_ovl| cloud.cacheToLibrary=true

DEBUG|settings.c:0950:settings_load_ovl| cloud.markCustomTagByPass=true

DEBUG|settings.c:0950:settings_load_ovl| cloud.prioCustomContent=true

DEBUG|settings.c:0950:settings_load_ovl| cloud.updateOnLowerAudioId=true

DEBUG|settings.c:0950:settings_load_ovl| cloud.dumpRuidAuthContentJson=true

DEBUG|settings.c:0959:settings_load_ovl| encode.bitrate=96

DEBUG|settings.c:0959:settings_load_ovl| encode.ffmpeg_stream_buffer_ms=2000

DEBUG|settings.c:0950:settings_load_ovl| encode.ffmpeg_stream_restart=false

DEBUG|settings.c:0950:settings_load_ovl| encode.ffmpeg_sweep_startup_buffer=true

DEBUG|settings.c:0959:settings_load_ovl| encode.ffmpeg_sweep_delay_ms=2000

DEBUG|settings.c:0959:settings_load_ovl| encode.stream_max_size=251658239

DEBUG|settings.c:0950:settings_load_ovl| frontend.split_model_content=true

DEBUG|settings.c:0950:settings_load_ovl| frontend.ignore_web_version_mismatch=false

DEBUG|settings.c:0950:settings_load_ovl| frontend.confirm_audioplayer_close=true

DEBUG|settings.c:0950:settings_load_ovl| toniebox.api_access=true

DEBUG|settings.c:0950:settings_load_ovl| toniebox.overrideCloud=true

DEBUG|settings.c:0959:settings_load_ovl| toniebox.max_vol_spk=3

DEBUG|settings.c:0959:settings_load_ovl| toniebox.max_vol_hdp=3

DEBUG|settings.c:0950:settings_load_ovl| toniebox.slap_enabled=true

DEBUG|settings.c:0950:settings_load_ovl| toniebox.slap_back_left=false

DEBUG|settings.c:0959:settings_load_ovl| toniebox.led=0

DEBUG|settings.c:0950:settings_load_ovl| rtnl.logRaw=false

DEBUG|settings.c:0950:settings_load_ovl| rtnl.logHuman=false

DEBUG|settings.c:0968:settings_load_ovl| rtnl.logRawFile=config/rtnl.bin

DEBUG|settings.c:0968:settings_load_ovl| rtnl.logHumanFile=config/rtnl.csv

DEBUG|settings.c:0950:settings_load_ovl| pcap.enabled=false

DEBUG|settings.c:0968:settings_load_ovl| pcap.filename=config/traffic.pcap

DEBUG|settings.c:0950:settings_load_ovl| mqtt.enabled=false

DEBUG|settings.c:0968:settings_load_ovl| mqtt.hostname=

DEBUG|settings.c:0959:settings_load_ovl| mqtt.port=1883

DEBUG|settings.c:0968:settings_load_ovl| mqtt.username=

DEBUG|settings.c:0968:settings_load_ovl| mqtt.password=

DEBUG|settings.c:0968:settings_load_ovl| mqtt.identification=

DEBUG|settings.c:0968:settings_load_ovl| mqtt.topic=teddyCloud

DEBUG|settings.c:0959:settings_load_ovl| mqtt.qosLevel=0

DEBUG|settings.c:0950:settings_load_ovl| mqtt.retain_will=true

DEBUG|settings.c:0950:settings_load_ovl| mqtt.disable_on_error=false

DEBUG|settings.c:0968:settings_load_ovl| hass.name=teddyCloud - Server

DEBUG|settings.c:0968:settings_load_ovl| hass.id=teddyCloud_Server

DEBUG|settings.c:0950:settings_load_ovl| tonie_json.cache_images=false

DEBUG|settings.c:0950:settings_load_ovl| tonie_json.cache_preload=false

DEBUG|settings.c:0950:settings_load_ovl| debug.web.pcm_encode_console_url=false

INFO |tls_adapter.c:0204:read_certificate| File '/teddycloud/certs/server/ca-root.pem' assumed PEM style

INFO |tls_adapter.c:0201:read_certificate| File '/teddycloud/certs/server/ca-key.pem' detected as DER style RSA PRIVATE KEY

INFO |tls_adapter.c:0204:read_certificate| File '/teddycloud/certs/server/teddy-cert.pem' assumed PEM style

INFO |tls_adapter.c:0201:read_certificate| File '/teddycloud/certs/server/teddy-key.pem' detected as DER style RSA PRIVATE KEY

INFO |tls_adapter.c:0197:read_certificate| File '/teddycloud/certs/client/ca.der' detected as DER style CERTIFICATE

INFO |tls_adapter.c:0197:read_certificate| File '/teddycloud/certs/client/client.der' detected as DER style CERTIFICATE

INFO |tls_adapter.c:0201:read_certificate| File '/teddycloud/certs/client/private.der' detected as DER style RSA PRIVATE KEY

INFO |settings.c:0851:settings_load_ovl| Load settings from /teddycloud/config/config.overlay.ini

INFO |tls_adapter.c:0390:tls_adapter_init| Loading certificates...

INFO |tls_adapter.c:0204:read_certificate| File '/teddycloud/certs/server/ca-root.pem' assumed PEM style

INFO |tls_adapter.c:0201:read_certificate| File '/teddycloud/certs/server/ca-key.pem' detected as DER style RSA PRIVATE KEY

INFO |tls_adapter.c:0204:read_certificate| File '/teddycloud/certs/server/teddy-cert.pem' assumed PEM style

INFO |tls_adapter.c:0201:read_certificate| File '/teddycloud/certs/server/teddy-key.pem' detected as DER style RSA PRIVATE KEY

INFO |tls_adapter.c:0197:read_certificate| File '/teddycloud/certs/client/ca.der' detected as DER style CERTIFICATE

INFO |tls_adapter.c:0197:read_certificate| File '/teddycloud/certs/client/client.der' detected as DER style CERTIFICATE

INFO |tls_adapter.c:0201:read_certificate| File '/teddycloud/certs/client/private.der' detected as DER style RSA PRIVATE KEY

INFO |toniesJson.c:0280:tonies_readJson| Trying to read /teddycloud/config/tonies.custom.json with size 2

INFO |toniesJson.c:0280:tonies_readJson| Trying to read /teddycloud/config/tonies.json with size 5096840

INFO |toniesJson.c:0100:tonies_update| Updating tonies.json from api.revvox.de...

INFO |cloud_request.c:0200:web_request| Connecting to HTTP server api.revvox.de:443...

INFO |cloud_request.c:0252:web_request|   trying IP: 157.90.183.226

DEBUG|cloud_request.c:0033:httpClientTlsInitCallbackBase| Initializing TLS...

DEBUG|cloud_request.c:0070:httpClientTlsInitCallbackBase| Initializing TLS done

DEBUG|cloud_request.c:0359:web_request| HTTP code: 302

INFO |cloud_request.c:0382:web_request| Redirecting to: https://raw.githubusercontent.com/toniebox-reverse-engineering/tonies-json/release/tonies.json

DEBUG|cloud_request.c:0393:web_request| URI Base: raw.githubusercontent.com

DEBUG|cloud_request.c:0394:web_request| URI Path: /toniebox-reverse-engineering/tonies-json/release/tonies.json

DEBUG|cloud_request.c:0395:web_request| Query String: 

INFO |cloud_request.c:0200:web_request| Connecting to HTTP server raw.githubusercontent.com:443...

INFO |cloud_request.c:0252:web_request|   trying IP: 185.199.111.133

DEBUG|cloud_request.c:0033:httpClientTlsInitCallbackBase| Initializing TLS...

DEBUG|cloud_request.c:0070:httpClientTlsInitCallbackBase| Initializing TLS done

DEBUG|cloud_request.c:0359:web_request| HTTP code: 200

DEBUG|cloud_request.c:0432:web_request| Content-Type is text/plain; charset=utf-8

DEBUG|cloud_request.c:0510:web_request| Connection closed

INFO |toniesJson.c:0124:tonies_update| ... success updating tonies.json from api.revvox.de, reloading

INFO |toniesJson.c:0280:tonies_readJson| Trying to read /teddycloud/config/tonies.custom.json with size 2

INFO |toniesJson.c:0280:tonies_readJson| Trying to read /teddycloud/config/tonies.json with size 5096840

INFO |toniesJson.c:0211:tonieboxes_update| Updating tonies.json from api.revvox.de...

INFO |cloud_request.c:0200:web_request| Connecting to HTTP server api.revvox.de:443...

INFO |cloud_request.c:0252:web_request|   trying IP: 157.90.183.226

DEBUG|cloud_request.c:0033:httpClientTlsInitCallbackBase| Initializing TLS...

DEBUG|cloud_request.c:0070:httpClientTlsInitCallbackBase| Initializing TLS done

DEBUG|cloud_request.c:0359:web_request| HTTP code: 302

INFO |cloud_request.c:0382:web_request| Redirecting to: https://raw.githubusercontent.com/toniebox-reverse-engineering/tonies-json/release/tonieboxes.json

DEBUG|cloud_request.c:0393:web_request| URI Base: raw.githubusercontent.com

DEBUG|cloud_request.c:0394:web_request| URI Path: /toniebox-reverse-engineering/tonies-json/release/tonieboxes.json

DEBUG|cloud_request.c:0395:web_request| Query String: 

INFO |cloud_request.c:0200:web_request| Connecting to HTTP server raw.githubusercontent.com:443...

INFO |cloud_request.c:0252:web_request|   trying IP: 185.199.111.133

DEBUG|cloud_request.c:0033:httpClientTlsInitCallbackBase| Initializing TLS...

DEBUG|cloud_request.c:0070:httpClientTlsInitCallbackBase| Initializing TLS done

DEBUG|cloud_request.c:0359:web_request| HTTP code: 200

DEBUG|cloud_request.c:0432:web_request| Content-Type is text/plain; charset=utf-8

DEBUG|cloud_request.c:0510:web_request| Connection closed

INFO |toniesJson.c:0238:tonieboxes_update| ... success updating tonieboxes.json from api.revvox.de, reloading

INFO |toniesJson.c:0280:tonies_readJson| Trying to read /teddycloud/config/tonies.custom.json with size 2

INFO |toniesJson.c:0280:tonies_readJson| Trying to read /teddycloud/config/tonies.json with size 5096840

You did a factory reset and the box expects a firmware update, teddyCloud cannot deliver.

You can either try to reflash your patched image again or start over with your untouched image, flash it, set the box up and patch the box again.

Hey and thanks for the hint.

How can you tell that a factory reset has taken place? Maybe I did it by mistake, but definitely not on purpose.

I have already repeated this procedure several times.

  • Original firmware installed
  • Set up
  • Connect all the cable stuff
  • Read flash
  • patch
  • write flash to the box
  • reboot

→ Owl! just tried it out again. Also owl.

How can I tell if the latest firmware is on the box? And if it is not the latest, how do I get the box to install the update? I assumed that it would do this automatically as soon as it has an Internet connection!

I just checked inbound network traffic on the turenas host with tcpdump
There are requests from Toniebox on port 443 after toniebox boot

Next I run the check-tc-certificates script

I think everything is looking good, but still no connection to teddycloud. :man_shrugging:

What do your teddyCloud logs show if you are doing a freshnessCheck?

Simply nothing.

  • When Toniebox starts up → nothing in the teddycloud logs
  • When i do the freshnessCheck → nothing in the teddycloud logs

Because I was at a loss, I deleted the entire teddycloud container stack and set it up again. I reset and repatch the Toniebox again and voila… it works! :slightly_smiling_face:

I would still like to thank you for your support

2 Likes

maybe I should do it, too… I get owls when I am trying to change volume with the values from boxine. I think it has something to do because I setup the box again to another household. I tried to modify the already existing og firmware but it had no change. Maybe I revert to og firmware, factory reset the box, connect it to the actual household, fresh teddycloud instance and repeat the custom firmware flash