Home Assistant Community Add-on: TasmoAdmin

OTA: mydomain.duckdns.org
OTA Server Port: 9541

that’s your problem I think. OTA server should be the IP address of the Pi

That is the address of my pi. I just didn’t type the actual domain name at duckdns.org. I tried again using the IP address and received the exact message in my earlier post.
ping-results

hey, possible to disable login? thanks

there’s a setting to deactivate login in the settings menu

oh my bad its on the top I overlooked it. thanks!

:tada: Release v0.5.0

Full Changelog

Changed

  • Upgrades base image to v2.1.1
  • Updates README and links
  • Enables SSL by default
  • Upgrades PHP to 7.2.8-r1
  • Sets default Shell

Questions? Join our Discord server! https://discord.me/hassioaddons
Enjoying my add-ons? Consider supporting my work: https://patreon.com/frenck

:tada: Release v0.5.1

Full Changelog

Changed

  • Upgrades base image to v2.1.2

Questions? Join our Discord server! https://discord.me/hassioaddons
Enjoying my add-ons? Consider supporting my work: https://patreon.com/frenck

1 Like

Any help would be appreciated as this is an awesome tool. I get this error with ver 5 and ver 5.1.

I have used this on the same device/set up before. it randomly just stopped working

[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] 01-tasmoadmin: applying... 
[fix-attrs.d] 01-tasmoadmin: exited 0.
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 00-banner.sh: executing... 
-----------------------------------------------------------
 Hass.io Add-on: TasmoAdmin v0.5.1
 Centrally manage all your Sonoff-Tasmota devices
 From: Community Hass.io Add-ons
 By: Franck Nijhof <[email protected]>
-----------------------------------------------------------
 armhf / Resin OS 2.3.0+rev1 / HA 0.75.2 / SU 126 / stable
-----------------------------------------------------------
[cont-init.d] 00-banner.sh: exited 0.
[cont-init.d] 01-log-level.sh: executing... 
Log level is set to INFO
[cont-init.d] 01-log-level.sh: exited 0.
[cont-init.d] 02-updates.sh: executing... 
INFO: You are running the latest version of this add-on
[cont-init.d] 02-updates.sh: exited 0.
[cont-init.d] 10-requirements.sh: executing... 
FATAL: The configured certfile is not found
[cont-init.d] 10-requirements.sh: exited 1.
[cont-finish.d] executing container finish scripts...
[cont-finish.d] 99-message.sh: executing... 
-----------------------------------------------------------
                Oops! Something went wrong.
 
 We are so sorry, but something went terribly wrong when
 starting or running this add-on.
 
 Be sure to check the log above, line by line, for hints.
-----------------------------------------------------------
[cont-finish.d] 99-message.sh: exited 0.
[cont-finish.d] done.
[s6-finish] syncing disks.
[s6-finish] sending all processes the TERM signal.```
1 Like

You have SSL enabled, and it can’t find the configures certificate.

{
“log_level”: “info”,
“ssl”: false,
“certfile”: “fullchain.pem”,
“keyfile”: “privkey.pem”,
“ipv6”: false
}

Change ssl from true to false

i’m getting after last hassio update “could not read MyConfig.json”. any help?

Same here
 Been getting that error since I upgraded from HA 0.72.1 to 0.73.0 and all version after that (including latest 0.76.2)

1 Like

I tried setting SSL to false, true, and played with other settings too, but still could not get past the missing MyConfig.json error:

When SSL is set to true:

Log Info:

TRACE: hass.jq.is_string: /data/options.json .keyfile
TRACE: hass.jq.is: /data/options.json .keyfile string
TRACE: hass.jq: /data/options.json .keyfile | if type==“string” then true else false end
TRACE: hass.jq: /data/options.json .keyfile // empty
TRACE: hass.file_exists: /ssl/privkey.pem
[cont-init.d] 10-requirements.sh: exited 0.
[cont-init.d] 11-nginx.sh: executing

TRACE: hass.config.true: ssl
TRACE: hass.jq.is_boolean: /data/options.json .ssl
TRACE: hass.jq.is: /data/options.json .ssl boolean
TRACE: hass.jq: /data/options.json .ssl | if type==“boolean” then true else false end
TRACE: hass.config.get: ssl
TRACE: hass.config.exists: ssl
TRACE: hass.jq.exists: /data/options.json .ssl
TRACE: hass.jq: /data/options.json .ssl
TRACE: hass.config.is_secret: ssl
TRACE: hass.jq.is_string: /data/options.json .ssl
TRACE: hass.jq.is: /data/options.json .ssl string
TRACE: hass.jq: /data/options.json .ssl | if type==“string” then true else false end
TRACE: hass.config.is_secret: ssl
TRACE: hass.jq.is_string: /data/options.json .ssl
TRACE: hass.jq.is: /data/options.json .ssl string
TRACE: hass.jq: /data/options.json .ssl | if type==“string” then true else false end
TRACE: hass.jq.is_string: /data/options.json .ssl
TRACE: hass.jq.is: /data/options.json .ssl string
TRACE: hass.jq: /data/options.json .ssl | if type==“string” then true else false end
TRACE: hass.jq.is_boolean: /data/options.json .ssl
TRACE: hass.jq.is: /data/options.json .ssl boolean
TRACE: hass.jq: /data/options.json .ssl | if type==“boolean” then true else false end
TRACE: hass.jq: /data/options.json .ssl // false
TRACE: hass.config.get: certfile
TRACE: hass.config.exists: certfile
TRACE: hass.jq.exists: /data/options.json .certfile
TRACE: hass.jq: /data/options.json .certfile
TRACE: hass.config.is_secret: certfile
TRACE: hass.jq.is_string: /data/options.json .certfile
TRACE: hass.jq.is: /data/options.json .certfile string
TRACE: hass.jq: /data/options.json .certfile | if type==“string” then true else false end
TRACE: hass.jq: /data/options.json .certfile // empty
TRACE: hass.config.is_secret: certfile
TRACE: hass.jq.is_string: /data/options.json .certfile
TRACE: hass.jq.is: /data/options.json .certfile string
TRACE: hass.jq: /data/options.json .certfile | if type==“string” then true else false end
TRACE: hass.jq: /data/options.json .certfile // empty
TRACE: hass.jq.is_string: /data/options.json .certfile
TRACE: hass.jq.is: /data/options.json .certfile string
TRACE: hass.jq: /data/options.json .certfile | if type==“string” then true else false end
TRACE: hass.jq: /data/options.json .certfile // empty
TRACE: hass.config.get: keyfile
TRACE: hass.config.exists: keyfile
TRACE: hass.jq.exists: /data/options.json .keyfile
TRACE: hass.jq: /data/options.json .keyfile
TRACE: hass.config.is_secret: keyfile
TRACE: hass.jq.is_string: /data/options.json .keyfile
TRACE: hass.jq.is: /data/options.json .keyfile string
TRACE: hass.jq: /data/options.json .keyfile | if type==“string” then true else false end
TRACE: hass.jq: /data/options.json .keyfile // empty
TRACE: hass.config.is_secret: keyfile
TRACE: hass.jq.is_string: /data/options.json .keyfile
TRACE: hass.jq.is: /data/options.json .keyfile string
TRACE: hass.jq: /data/options.json .keyfile | if type==“string” then true else false end
TRACE: hass.jq: /data/options.json .keyfile // empty
TRACE: hass.jq.is_string: /data/options.json .keyfile
TRACE: hass.jq.is: /data/options.json .keyfile string
TRACE: hass.jq: /data/options.json .keyfile | if type==“string” then true else false end
TRACE: hass.jq: /data/options.json .keyfile // empty
TRACE: hass.config.true: ipv6
TRACE: hass.jq.is_boolean: /data/options.json .ipv6
TRACE: hass.jq.is: /data/options.json .ipv6 boolean
TRACE: hass.jq: /data/options.json .ipv6 | if type==“boolean” then true else false end
TRACE: hass.config.get: ipv6
TRACE: hass.config.exists: ipv6
TRACE: hass.jq.exists: /data/options.json .ipv6
TRACE: hass.jq: /data/options.json .ipv6
TRACE: hass.config.is_secret: ipv6
TRACE: hass.jq.is_string: /data/options.json .ipv6
TRACE: hass.jq.is: /data/options.json .ipv6 string
TRACE: hass.jq: /data/options.json .ipv6 | if type==“string” then true else false end
TRACE: hass.config.is_secret: ipv6
TRACE: hass.jq.is_string: /data/options.json .ipv6
TRACE: hass.jq.is: /data/options.json .ipv6 string
TRACE: hass.jq: /data/options.json .ipv6 | if type==“string” then true else false end
TRACE: hass.jq.is_string: /data/options.json .ipv6
TRACE: hass.jq.is: /data/options.json .ipv6 string
TRACE: hass.jq: /data/options.json .ipv6 | if type==“string” then true else false end
TRACE: hass.jq.is_boolean: /data/options.json .ipv6
TRACE: hass.jq.is: /data/options.json .ipv6 boolean
TRACE: hass.jq: /data/options.json .ipv6 | if type==“boolean” then true else false end
TRACE: hass.jq: /data/options.json .ipv6 // false
[cont-init.d] 11-nginx.sh: exited 0.
[cont-init.d] 12-migrate.sh: executing

TRACE: hass.directory_exists: /data/sonweb
[cont-init.d] 12-migrate.sh: exited 0.
[cont-init.d] 13-persistent-data.sh: executing

TRACE: hass.directory_exists: /data/tasmoadmin
DEBUG: Symlinking data directory to persistent storage location

[cont-init.d] 13-persistent-data.sh: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.

When SSL is set to false:

Log Info:

“logo”: true,
“changelog”: true,
“webui”: “http://[HOST]:9541”,
“stdin”: false,
“hassio_api”: true,
“homeassistant_api”: false,
“gpio”: false,
“devicetree”: false,
“docker_api”: false,
“audio”: false,
“audio_input”: null,
“audio_output”: null,
“services”: null,
“discovery”: null
} .last_version
INFO: You are running the latest version of this add-on
[cont-init.d] 02-updates.sh: exited 0.
[cont-init.d] 10-requirements.sh: executing

TRACE: hass.config.true: ssl
TRACE: hass.jq.is_boolean: /data/options.json .ssl
TRACE: hass.jq.is: /data/options.json .ssl boolean
TRACE: hass.jq: /data/options.json .ssl | if type==“boolean” then true else false end
TRACE: hass.config.get: ssl
TRACE: hass.config.exists: ssl
TRACE: hass.jq.exists: /data/options.json .ssl
TRACE: hass.jq: /data/options.json .ssl
TRACE: hass.config.is_secret: ssl
TRACE: hass.jq.is_string: /data/options.json .ssl
TRACE: hass.jq.is: /data/options.json .ssl string
TRACE: hass.jq: /data/options.json .ssl | if type==“string” then true else false end
TRACE: hass.config.is_secret: ssl
TRACE: hass.jq.is_string: /data/options.json .ssl
TRACE: hass.jq.is: /data/options.json .ssl string
TRACE: hass.jq: /data/options.json .ssl | if type==“string” then true else false end
TRACE: hass.jq.is_string: /data/options.json .ssl
TRACE: hass.jq.is: /data/options.json .ssl string
TRACE: hass.jq: /data/options.json .ssl | if type==“string” then true else false end
TRACE: hass.jq.is_boolean: /data/options.json .ssl
TRACE: hass.jq.is: /data/options.json .ssl boolean
TRACE: hass.jq: /data/options.json .ssl | if type==“boolean” then true else false end
TRACE: hass.jq: /data/options.json .ssl // false
[cont-init.d] 10-requirements.sh: exited 0.
[cont-init.d] 11-nginx.sh: executing

TRACE: hass.config.true: ssl
TRACE: hass.jq.is_boolean: /data/options.json .ssl
TRACE: hass.jq.is: /data/options.json .ssl boolean
TRACE: hass.jq: /data/options.json .ssl | if type==“boolean” then true else false end
TRACE: hass.config.get: ssl
TRACE: hass.config.exists: ssl
TRACE: hass.jq.exists: /data/options.json .ssl
TRACE: hass.jq: /data/options.json .ssl
TRACE: hass.config.is_secret: ssl
TRACE: hass.jq.is_string: /data/options.json .ssl
TRACE: hass.jq.is: /data/options.json .ssl string
TRACE: hass.jq: /data/options.json .ssl | if type==“string” then true else false end
TRACE: hass.config.is_secret: ssl
TRACE: hass.jq.is_string: /data/options.json .ssl
TRACE: hass.jq.is: /data/options.json .ssl string
TRACE: hass.jq: /data/options.json .ssl | if type==“string” then true else false end
TRACE: hass.jq.is_string: /data/options.json .ssl
TRACE: hass.jq.is: /data/options.json .ssl string
TRACE: hass.jq: /data/options.json .ssl | if type==“string” then true else false end
TRACE: hass.jq.is_boolean: /data/options.json .ssl
TRACE: hass.jq.is: /data/options.json .ssl boolean
TRACE: hass.jq: /data/options.json .ssl | if type==“boolean” then true else false end
TRACE: hass.jq: /data/options.json .ssl // false
TRACE: hass.config.true: ipv6
TRACE: hass.jq.is_boolean: /data/options.json .ipv6
TRACE: hass.jq.is: /data/options.json .ipv6 boolean
TRACE: hass.jq: /data/options.json .ipv6 | if type==“boolean” then true else false end
TRACE: hass.config.get: ipv6
TRACE: hass.config.exists: ipv6
TRACE: hass.jq.exists: /data/options.json .ipv6
TRACE: hass.jq: /data/options.json .ipv6
TRACE: hass.config.is_secret: ipv6
TRACE: hass.jq.is_string: /data/options.json .ipv6
TRACE: hass.jq.is: /data/options.json .ipv6 string
TRACE: hass.jq: /data/options.json .ipv6 | if type==“string” then true else false end
TRACE: hass.config.is_secret: ipv6
TRACE: hass.jq.is_string: /data/options.json .ipv6
TRACE: hass.jq.is: /data/options.json .ipv6 string
TRACE: hass.jq: /data/options.json .ipv6 | if type==“string” then true else false end
TRACE: hass.jq.is_string: /data/options.json .ipv6
TRACE: hass.jq.is: /data/options.json .ipv6 string
TRACE: hass.jq: /data/options.json .ipv6 | if type==“string” then true else false end
TRACE: hass.jq.is_boolean: /data/options.json .ipv6
TRACE: hass.jq.is: /data/options.json .ipv6 boolean
TRACE: hass.jq: /data/options.json .ipv6 | if type==“boolean” then true else false end
TRACE: hass.jq: /data/options.json .ipv6 // false
[cont-init.d] 11-nginx.sh: exited 0.
[cont-init.d] 12-migrate.sh: executing

TRACE: hass.directory_exists: /data/sonweb
[cont-init.d] 12-migrate.sh: exited 0.
[cont-init.d] 13-persistent-data.sh: executing

TRACE: hass.directory_exists: /data/tasmoadmin
DEBUG: Symlinking data directory to persistent storage location

[cont-init.d] 13-persistent-data.sh: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.

:tada: Release v0.6.0

Full Changelog

  • Upgrades nginx to 1.14.0-r1
  • Upgrades base image to v2.3.0
  • Adds Hassio API role to the configuration
  • Upgrades PHP to 7.2.10-r0
  • Updates logo & icon
  • Upgrades TasmoAdmin to v1.6.0
  • Fixes typo in add-on configuration

Questions? Join our Discord server! https://discord.me/hassioaddons
Enjoying my add-ons? Consider supporting my work: https://patreon.com/frenck

I can’t remember my user and password, can’t put it in configuration, the Wiki says to delete an entry, in a config file MyConfig.json”. but where is this file in HASSIO?

Just uninstall and reinstall the add-on then reregister and rescan.

All should be back ok

1 Like

Hi, I’m trying to update all my sonoff firmwares with Tasmoadmin addon (I’m using Hassio)
 I select language, setting my IP and hit Automatic. A message tell me that a new firmware is downloaded, but when I select the devices and flash It, the firmware doesn’t change.
I checked and there is no firmwares folder (and then no .bin file) in my Hassio data folder.
Help?

Another question

Can I update TasmoAdmin direcly from the addon or I have to wait a new addon release?

You’d have to wait for the add-on update. Those are usually really quick, since we actively monitor those kinds of things.