Git Product home page Git Product logo

tdm's Introduction

Tasmota Device Manager

Easy to use GUI application to manage, configure and monitor devices flashed with Tasmota firmware

GitHub release (latest SemVer) GitHub All Releases https://pypi.org/project/tdmgr/ Discord https://www.buymeacoffee.com/eYmkLXO

image

Minimum fully-supported Tasmota firmware version: 6.6.0.17

To the users:

I'm very grateful for all your support over the months, ideas, and donations, and most of all: patience. While I'm not in any way abandoning this project, I don't have as much time as I'd like to work on it. If anything, keep being patient as new features will come, but I'm not at liberty of setting any deadlines or plans.

Features

  • autodiscovery of Tasmota devices (even if they use custom FullTopics)
  • module, GPIO and template configuration
  • rules editor with Var/Mem/Ruletimer monitor
  • easy to read detachable telemetry viewers (working in active and passive mode)
  • relay, color and PWM control
  • user-friendly configuration of buttons, switches and relays, including their related SetOptions
  • timers editor
  • clear retained relay and LWT topics
  • detachable device consoles with command completion and intuitive history
  • selectable views to see the most vital device parameters at a glance
  • BSSID aliasing for larger deployments
  • support for current and legacy Timers payloads (thanks @GrahamM)

Planned functions

  • PWM/NTP/Topics configuration dialogs and a few others
  • config export for OpenHAB and HomeAssistant
  • dynamic and manual grouping of devices: by group topic, module, firmware revision, and more
  • group actions: reset/restart/control power/upgrade
  • quick settings for common use cases
  • code completion in rules editor
  • built-in OTA server
  • and much more! (you're welcome to post feature requests)

Requirements and installation instructions

See the wiki article

Uses free icons from Icons8

Kind thanks to all users that report issues and provide PRs!

tdm's People

Contributors

barbudor avatar buxtronix avatar cyrilb1531 avatar davemds avatar dimaj avatar effelle avatar flaviut avatar foxsam21 avatar freddii avatar grahamm avatar jason2866 avatar jziolkowski avatar kylegordon avatar meingraham avatar mkyral avatar pgollor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tdm's Issues

All ON/All OFF sending wrong command

Both actions send the power command with "true" or "false" as payload, but it should be 1 or 0 (or "on" or "off").

I fixed it for myself by changing "toggle_power_all" in Devices.py from

   self.mqtt.publish(self.device.cmnd_topic(r), str(not bool(idx)))

to

   self.mqtt.publish(self.device.cmnd_topic(r), idx ^ 1)

tdm crashes on MQTT connect since I have added a pattern

Hi,

System: Win64, Python 3.7

I was able to run tdm and connect to my Broker. One device were visible. I thought this is because I have to configure a pattern. My toppics are all in the same Style stadtweg/og/light1. So I have entered a pattern %prefix%/stadtweg/ Because I don't know what prefix should be used. maybe tele ? Since I did that TDM crashes after Start while connecting Broker. Window just closes, no Errormessage. Where can I find the Settings to make the pattern undone? What would be the right pattern in my case?

TDM 0.25 EXE

I just grabbed the latest TDM (I'm on Windows 10 64 bit) - I don't know if this is new but on powering up TDM (after waiting a few minutes) it does not seem to know the on-off status of most of my Sonoff devices... and on right-clicking in the devices list to bring up the WebUI for a device, where most seem fine, at least one of them comes back with "This site cannot be reached" even though keyng its name into a browser pulls up the web ui no problem. http://my-bed-heater.broadband/

IndexError in Util\__init__.py.setoption()

I tried for the first time tdm-0.2
I only specified my broker IP and connected
It discovered one of my tasmota and exited with this log

PS D:\Programmi\tasmota-device-manager-0.2> python tdm.py
DISCOVERED h801
Traceback (most recent call last):
  File "D:\Programmi\tasmota-device-manager-0.2\Util\models.py", line 104, in data
    return d.color()
  File "D:\Programmi\tasmota-device-manager-0.2\Util\__init__.py", line 295, in color
    68: self.setoption(68)
  File "D:\Programmi\tasmota-device-manager-0.2\Util\__init__.py", line 310, in setoption
    options = int(so[reg], 16)
IndexError: list index out of range

I managed to bypass this really dirty code editing, knowing nothing of what so, reg and o are in the code

        so = self.p.get('SetOption')
        if so:
            if reg in (0, 2):
			
                if len(so) <= reg:  # this one
                    return -1           # this other one
					
                options = int(so[reg], 16)   # this is 0.2 version original line 310
                if reg == 2:
                    o -= 50
                state = int(options >> o & 1)

hope this helps somehow (some exception handling will surely do, as well :-) )

...briefly looking at the current developement code my understanting is that the same problem can happen with it, also

        so = self.p.get('SetOption')
        if so:
            if reg in (0, 2, 3):
                options = int(so[reg], 16)
                if reg > 1:
                    o -= 50
                state = int(options >> o & 1)

Feature Request - website

Is there a way to tun this project into a web accessible site? I want to run this on a headless PI and can't at this point...Unless I'm missing something

mqtt connection issue

Hi, I am having issues with connecting to mqtt.
whenever I try tosetup MQTT broker (Menu MQTT-Broker) the tdm crashes with the following message:

Traceback (most recent call last): File "C:\xxxx\TDM\GUI\Broker.py", line 68, in accept self.settings.setValue("client_id", self.clientId.text()) RuntimeError: wrapped C/C++ object of type QLineEdit has been deleted

can you please help?

Feature Request: Add WebGUI to right mouse menu

Selecting a device and clicking right mouse pops up a menu.

Pls add option WebUi to it so I do not have to select the device and move the mouse all the way over to the top right option WebUI ;-)

Feature Request: Upgrade

When a right click is done on a device it shows this menu

image

Would be nice if there was an Upgrade using OTAurl option which would send a command upgrade 1 to the device causing it to start an OTA upgrade from the otaurl which was previously configured.

It may also be useful to have a button on the top bar so that multiple devices can be selected and by clicking Upgrade OTAurl it would result in all the selected devices receiving the upgrade 1 command.

Thanks

No device detected

Hi,
My broker is RabbitMQ. TDM is successfully connecting to it but there is no device in list. All my tasmota devices are connected to this broker.
devices
tasmota

Clicking telemetry button second time crashes with atribute error

This is consistent (for me). When I connect to mqtt host select a tasmota device and click telemetry it works fine. if I close the telemetry window and try to open it again, same or different device, it crashes with this error:

Traceback (most recent call last):
  File "/home/ottvio/venvs/tdm/tdm/GUI/Telemetry.py", line 85, in update_telemetry
    time_item.setText(1, time.replace("T", " "))
AttributeError: 'NoneType' object has no attribute 'replace'
Aborted (core dumped)

edit add ver.

python3 --version
Python 3.6.8

TDM not running

Hi, I have all the support programs install but get the following error when trying to start tdm.py.
Have not be able to get around this.
`pi@RDP-Heating:~/TDM $ python3.4 tdm.py

Traceback (most recent call last):
File "tdm.py", line 9, in
from GUI import *
File "/home/pi/TDM/GUI/init.py", line 7, in
from Util import DevMdl, CnsMdl
File "/home/pi/TDM/Util/init.py", line 4, in
DevMdl = IntEnum('DevMdl', ["LWT", "TOPIC", "FULL_TOPIC", "FRIENDLY_NAME", "MODULE", "FIRMWARE", "CORE", "MAC", "IP", "SSID", "BSSID", "CHANNEL", "RSSI", "LINKCOUNT", "DOWNTIME", "UPTIME", "RESTART_REASON", "POWER", "LOADAVG", "TELEPERIOD", "MODULE_ID", "OTA_URL"], start=0)
TypeError: call() got an unexpected keyword argument 'start'
`
Can you help me with this? Thanks

Device Exceptions with TLS during info gathering

Hi, it looks like the firmware does not like it if request comming in too fast. I do see a reboot with an exception on many devices. Is it possible to insert some delay between the request? Honestly, some devices do not reboot and I have no idea why. I do not see a pattern.

AttributeError: 'NoneType' object has no attribute 'replace'

Hi,
Got tdm working; it's connecting to my mosquitto server. Tried to add a device manually as no device was detected automatically. Clicked 'Configure' to change '%topic%/%prefix%/' into '%prefix%/%topic%/' but while saving tdm crashed. Tried to start it again but it's giving me the error:

Traceback (most recent call last):
File "tdm.py", line 236, in mqtt_connected
self.mqtt_subscribe()
File "tdm.py", line 248, in mqtt_subscribe
main_topics.append(self.device_model.commandTopic(idx))
File "D:\PlatformIO\Projects\HOMEAUT_folder\tdm\Util\models.py", line 221, in commandTopic
return self._devices[row][DevMdl.FULL_TOPIC].replace("%prefix%", "cmnd").replace("%topic%", self._devices[row][DevMdl.TOPIC])
AttributeError: 'NoneType' object has no attribute 'replace'

and is crashing after displaying the main screen for a few seconds.
How to solve this?

Install and running on a RPi

Hi Guys anyone installed and running on a Pi. Got it to then point where I have fixed a JSON decode error but cant get past this one.

image

Not all devices are recognized

As a continuation of our discord chat I would like to open an issue to keep track of the situation.

I'm still missing consistenly devices from the TDM device list. After I first missed a POW I now also miss another device. Both devices seem to be accessable by TDM as they both show this after a restart:

00:00:00 CFG: Loaded from flash at F9, Count 3625
00:00:00 Project tasmota Pow1 Logeerkamer Version 7.0.0.5(tasmota)-2_6_1
00:00:04 WIF: Connecting to AP1 indebuurt3 in mode 11N as pow1...
00:00:05 WIF: Connected
00:00:05 HTP: Web server active on pow1 with IP address 192.168.2.151
09:26:30 MQT: Attempting connection...
09:26:30 MQT: Connected
09:26:30 MQT: tele/pow1/LWT = Online (retained)
09:26:30 MQT: cmnd/pow1/POWER = 
09:26:30 MQT: tele/pow1/INFO1 = {"Module":"Sonoff Pow","Version":"7.0.0.5(tasmota)","FallbackTopic":"cmnd/DVES_20DCDC_fb/","GroupTopic":"cmnd/sonoffs/"}
09:26:30 MQT: tele/pow1/INFO2 = {"WebServerMode":"Admin","Hostname":"pow1","IPAddress":"192.168.2.151"}
09:26:30 MQT: tele/pow1/INFO3 = {"RestartReason":"Software/System restart"}
09:26:30 MQT: stat/pow1/POWER1 = {"POWER1":"ON"}
09:26:30 MQT: stat/pow1/POWER1 = ON
09:26:30 MQT: stat/pow1/FULLTOPIC = {"FullTopic":"%prefix%/%topic%/"}

or

00:00:00 CFG: Loaded from flash at FA, Count 5600
00:00:00 Project tasmota Wkaku8 Slaapkamer BBus Version 7.0.0.5(tasmota)-2_6_1
00:00:04 WIF: Connecting to AP2 indebuurt3 in mode 11N as wkaku8...
00:00:05 WIF: Connected
00:00:05 HTP: Web server active on wkaku8 with IP address 192.168.2.210
09:14:01 MQT: Attempting connection...
09:14:01 MQT: Connected
09:14:01 MQT: tele/wkaku8/LWT = Online (retained)
09:14:01 MQT: cmnd/wkaku8/POWER = 
09:14:01 MQT: tele/wkaku8/INFO1 = {"Module":"Sonoff Basic","Version":"7.0.0.5(tasmota)","FallbackTopic":"cmnd/DVES_8875AD_fb/","GroupTopic":"cmnd/brievenbus/"}
09:14:01 MQT: tele/wkaku8/INFO2 = {"WebServerMode":"Admin","Hostname":"wkaku8","IPAddress":"192.168.2.210"}
09:14:01 MQT: tele/wkaku8/INFO3 = {"RestartReason":"Software/System restart"}
09:14:01 MQT: stat/wkaku8/POWER1 = {"POWER1":"OFF"}
09:14:01 MQT: stat/wkaku8/POWER1 = OFF
09:14:01 MQT: stat/wkaku8/FULLTOPIC = {"FullTopic":"%prefix%/%topic%/"}
09:14:02 MQT: domoticz/in = {"idx":133,"nvalue":0,"svalue":"","Battery":100,"RSSI":5}
09:14:05 MQT: tele/wkaku8/STATE = {"Time":"2019-11-20T09:14:05","Uptime":"0T00:00:13","UptimeSec":13,"Heap":30,"SleepMode":"Dynamic","Sleep":0,"LoadAvg":68,"MqttCount":1,"POWER1":"OFF","Wifi":{"AP":2,"SSId":"indebuurt3","BSSId":"60:E3:27:58:77:E6","Channel":12,"RSSI":52,"LinkCount":1,"Downtime":"0T00:00:07"}}
09:16:51 MQT: stat/wkaku8/FULLTOPIC = {"FullTopic":"%prefix%/%topic%/"}

The fulltopic probe comes from TDM I suppose as they are normally not there. After this no other TDM requests are received other than once in a while the fulltopic request.

30 other devices are detected just fine.

Any suggestion?

Export data and make IP URL link

Excellent utility..

It will helpful if we can export data for ALL devices (text or csv) including 'full topic' etc.

In GUI, if IPs are made url link to device, it will easy tp get to consule (to change rule etcs)

Feature request - in the console - the line where you type in a command

In the console - in the line where you key in a command (type the command and press ENTER to send) - unless I'm missing somethin there is no memory of past commands - so if for example you are messing with colours or something else that might take a few attempts, up arrow does not take you back up to previous lines.... any chance??

Pete

Windows 10, crash during discovering devices

C:\Python38-32\python.exe tdm.py
DISCOVERED X12
Traceback (most recent call last):
File "C:\Users\konst\tdm\Util\models.py", line 92, in data
if val.startswith("0T"):
AttributeError: 'int' object has no attribute 'startswith'

The error is similar to #10. Discovered device X12 has Sonoff-Tasmota version 6.6.0.18 (Basic Module with BMP280 sensor).

Crashing on Windows 10

Traceback (most recent call last):
File "C:\tasmota\tdm-master\tdm.py", line 287, in mqtt_message
full_topic = loads(msg).get('FullTopic')
File "C:\Users\alexg\AppData\Local\Programs\Python\Python36-32\lib\json_init_.py", line 354, in loads
return _default_decoder.decode(s)
File "C:\Users\alexg\AppData\Local\Programs\Python\Python36-32\lib\json\decoder.py", line 342, in decode
raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 1 column 2 (char 1)

When selecting Configure on MQTT discovered device, crashes with MQTT SetAuth error

I setup the Broker information correctly and it connects successfully. Telemetry data is received from several devices, but when I select one and select Configure it creates a new tab for the device - says Connecting - and crashes with error. I have not configured admin credentials on my devices.

Traceback (most recent call last): File "C:\users\jymorris\Google Drive\Property and Landlording\Home Automation\tdm-master\GUI\DeviceConfig.py", line 105, in setupMqtt self.mqtt.setAuth(self.settings.value('username'), self.settings.value('password')) AttributeError: 'MqttClient' object has no attribute 'setAuth'

image

Change default discovery path

Is it easy to change the Auto Discovery protocol (%topic%/%prefix%/)" path?
I need something in front of the auto discovery protocol /vk/%topic%/%prefix%/
Tried editing various files but no luck yet.

Sonoff 4ch pro r2 : only first relay acted appears

Hi,
Thanks for your tool and the sharing.
I have a problem with a Sonoff 4ch pro r2 module and Tasmota 6.5.0 firmware. When I launch TDM, the 4 relays appear :
Sélection_999(203)
But when I activate one, the icon displayed changes and shows only 1 dot (green or red according the state of the relay acted). But I can change the state of the 4 relay and the dot shows only the state of the first relay acted (for instance the 4th relay if I changed it first).
If I quit the module line, I can only act on the same relay : impossible to chose belong the 4 relays :
Sélection_999(205)
Regards,

Thierry

Enhancement: run tdm.py using python3

Just an/optional enhancement for the read.me.
At start I couldn't get the GUI active due to (let's assume) ignorance.

To have this wonderful code running on my Ubuntu 16.04 standard python intallation, I had to

  1. install python3: sudo apt install python3-pip
  2. install PyQt5 in Python3: pip3 install PyQt5
  3. install mqtt in Python3: pip3 install paho-mqtt
  4. run the GUI using: python3 tdm.py

So, no problem with the code but merely the execution which does not succeed (with me), running standard python 2.7, I had to use python 3.5.2 (standard ubuntu base install)

macintosh install

would anyone know how to install this on a mac? i was able to install python 3.7, PyQt5, paho-mqtt, but get this error when trying to execute tdm.py....

$ cd '/Documents/home assistant/tdm-master/' && '/usr/bin/pythonw' '/Documents/home assistant/tdm-master/tdm.py' && echo Exit status: $? && exit 1
Traceback (most recent call last):
File "/Documents/home assistant/tdm-master/tdm.py", line 3, in
from json import loads, JSONDecodeError
ImportError: cannot import name JSONDecodeError
MacBook-Pro:tdm-master$

thanks for any help

Crashes when selecting 'Rules and Timers'

From the Configure menu, when I switch to the "Rules and Timers" tab tdm crashes and I get the following error:

Traceback (most recent call last):
  File "<full file path removed>tdm/GUI/DeviceConfig.py", line 155, in mqtt_message
    self.parseTimer(msg[first])
  File "<full file path removed>/tdm/GUI/DeviceConfig.py", line 371, in parseTimer
    self.cbxTimerOut.setCurrentIndex(payload['Output']-1)
KeyError: 'Output'
Aborted

I have no rules or timers setup, so perhaps that would be the reason?

README: How to start

It's the first time I am using phython tools with GUI.

Would be great if you can add a hint/link how to start using TDM.

  • Download ZIP?
  • Compile?
  • ...

Thanks!

Prerequisites installation and running - errors

windows string to install is missing the "PyQt5" at the end :
now it says
C:<full path to python3 folder>\python.exe -m pip install

it should say

C:<full path to python3 folder>\python.exe -m pip install PyQt5

ALSO
there is no mention about a need of mqtt-paho module being installed - probably worth mentioning it because without it pythonw.exe tdm.py will not run and will give no msg, only python.exe tdm.py would give a hint

thanks!

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 6: ordinal not in range(128)

Hi,
I just found this nice program, but can't it work. I have one PowR2, I added manually, but details are not shown. In console is this error shown:

Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib64/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/usr/lib64/python3.6/threading.py", line 864, in run
    self._target(*self._args, **self._kwargs)
  File "/home/marian/.local/lib64/python3.6/site-packages/paho/mqtt/client.py", line 2650, in _thread_main
    self.loop_forever(retry_first_connection=True)
  File "/home/marian/.local/lib64/python3.6/site-packages/paho/mqtt/client.py", line 1481, in loop_forever
    rc = self.loop(timeout, max_packets)
  File "/home/marian/.local/lib64/python3.6/site-packages/paho/mqtt/client.py", line 1003, in loop
    rc = self.loop_read(max_packets)
  File "/home/marian/.local/lib64/python3.6/site-packages/paho/mqtt/client.py", line 1284, in loop_read
    rc = self._packet_read()
  File "/home/marian/.local/lib64/python3.6/site-packages/paho/mqtt/client.py", line 1849, in _packet_read
    rc = self._packet_handle()
  File "/home/marian/.local/lib64/python3.6/site-packages/paho/mqtt/client.py", line 2305, in _packet_handle
    return self._handle_publish()
  File "/home/marian/.local/lib64/python3.6/site-packages/paho/mqtt/client.py", line 2500, in _handle_publish
    self._handle_on_message(message)
  File "/home/marian/.local/lib64/python3.6/site-packages/paho/mqtt/client.py", line 2647, in _handle_on_message
    self.on_message(self, self._userdata, message)
  File "/home/marian/programy/tdm/Util/mqtt.py", line 144, in on_message
    mstr = msg.payload.decode("ascii")
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 6: ordinal not in range(128)

The mqtt messages (generated when I click on mqtt button)

cmnd/PowR2/status (null)
cmnd/PowR2/status 1
cmnd/PowR2/status 2
cmnd/PowR2/status 3
cmnd/PowR2/status 5
cmnd/PowR2/status 8
cmnd/PowR2/status 11
stat/PowR2/STATUS {"Status":{"Module":43,"FriendlyName":["Sonoff POW R2"],"Topic":"PowR2","ButtonTopic":"0","Power":0,"PowerOnState":3,"LedState":1,"SaveData":1,"SaveState":1,"SwitchTopic":"0","SwitchMode":[0,0,0,0,0,0,0,0],"ButtonRetain":0,"SwitchRetain":0,"SensorRetain":0,"PowerRetain":0}}
stat/PowR2/STATUS1 {"StatusPRM":{"Baudrate":4800,"GroupTopic":"sonoffs","OtaUrl":"http://thehackbox.org/tasmota/release/sonoff-CZ.bin","RestartReason":"Power on","Uptime":"34T04:29:36","StartupUTC":"2019-01-20T09:13:16","Sleep":0,"BootCount":18,"SaveCount":202,"SaveAddress":"FA000"}}
stat/PowR2/STATUS2 {"StatusFWR":{"Version":"6.3.0","BuildDateTime":"2018-10-30T17:38:46","Boot":6,"Core":"2_3_0","SDK":"1.5.3(aec24ac9)"}}
stat/PowR2/STATUS3 {"StatusLOG":{"SerialLog":2,"WebLog":2,"SysLog":0,"LogHost":"","LogPort":514,"SSId":["my_ssid",""],"TelePeriod":300,"SetOption":["000A8009","55818000","00000000"]}}
stat/PowR2/STATUS5 {"StatusNET":{"Hostname":"Sonoff_PowR2","IPAddress":"192.168.1.70","Gateway":"192.168.1.1","Subnetmask":"255.255.255.0","DNSServer":"192.168.1.1","Mac":"80:xx:xx:xx:xx:xx","Webserver":2,"WifiConfig":5}}
stat/PowR2/STATUS8 {"StatusSNS":{"Time":"2019-02-23T14:42:53","ENERGY":{"TotalStartTime":"2018-10-31T20:32:18","Total":12.163,"Yesterday":0.000,"Today":0.000,"Power":0,"ApparentPower":0,"ReactivePower":0,"Factor":0.00,"Voltage":0,"Current":0.000}}}
stat/PowR2/STATUS11 {"StatusSTS":{"Time":"2019-02-23T14:42:53","Uptime":"34T04:29:37","Vcc":3.219,"POWER":"OFF","Wifi":{"AP":1,"SSId":"my_ssid","BSSId":"BC:xx:xx:xx:xx:xx","Channel":8,"RSSI":76}}}

I'm on Gentoo linux, python 3.6.5, paho-mqt 1.3.1.

Any idea? Could this been caused by Czech FW?

In BSSid, crashes when entries are empty when deleting

While poking around and figuring TDM out, I opened the BSSid window and clicked "Add", noticed a cell was created, selected it and pressed delete and python crashed with this error:

Traceback (most recent call last): File "C:\users\jymorris\Google Drive\Property and Landlording\Home Automation\tdm-master\GUI\BSSID.py", line 60, in delete key = self.tw.item(self.idx.row(), 0).text() AttributeError: 'NoneType' object has no attribute 'text'

image

It was reproducible so submitting here.

Incorrect info...

TDM - very recent - just installed a few days ago... looking at my Sonoffs and other devices... lovely but...

image

It says that heating-cupboard-light (a sonoff) has been on for 539 days - WRONG - the cupboard didnt exist that long ago - and last December we had a new heating sytem installed, whole house power was off while that was happening. That light is using Sonoff-Tasmota 6.4.1 - well, it was until 5 minutes ago, then Iused OTA and it went up to 7.0.0.1 (completely automatically) - 5 minutes later I tried again and it went to 7.0.0.3 - this time I had to refresh the browser but it's working - stioll in light theme though.... I'm getting sidetracked, the MAIN issue is that erronious number of days.. I suess with it being old, not much we can do about it as long as the new version doesnt do the same - so instead, how do I fix that light theme?

Feature request: Remote configuration backup

Hi, thanks for your great app to manage Tasmota devices. I am just digging in to find all things great, but I was primarily looking for a way to remotely backup the configuration of my Tasmota devices. Imho, there are at least two good reasons to facilitate it:

  • Sometimes, a configuration gets lost in the process of updating firmware.
  • What better (okay, quicker) way of replacing a device by a new one on defect than by applying a recent configuration backup to it after flashing.

Just my 2 cents ;). For now, thanks a lot!

ESP info not showing right info.

image

As you can see this tab is not showing info (n/a) although the info is present.
The module name ("OBI socket 2 (61)" and others) are also not present in the source.

Tamota version missing?

Not so much an issue as a feature request of a plea for help depending how it goes... hen watching TDM - its a handy way to see all your devices and update them. If next to the name ethey had the Tasmota version number (ie 7.0.0.5) that would make life a lot easier.

How to delete the config? Error after wrong Topic

Hi, i could not get any device from my IOBROKER. After some trys i ot this when i try to start tdm:

PS C:\ESP\tdm-master> python.exe .\tdm.py
Traceback (most recent call last):
File ".\tdm.py", line 236, in mqtt_connected
self.mqtt_subscribe()
File ".\tdm.py", line 248, in mqtt_subscribe
main_topics.append(self.device_model.commandTopic(idx))
File "C:\ESP\tdm-master\Util\models.py", line 221, in commandTopic
return self._devices[row][DevMdl.FULL_TOPIC].replace("%prefix%", "cmnd").replace("%topic%", self._devices[row][DevMdl.TOPIC])
AttributeError: 'NoneType' object has no attribute 'replace'

Store preferences in ~/.config/

Instead of creating preferences in ~/TDM/ and polluting the users home directory, it would be preferable to store it in a config location such as the commonly used ~/.config/

Error with TDM after changing firmware on device

had an error come up after i ran the script a few times. windows 10 from command line now i cant get it to run at all. i did modify the firmware of a couple devices. not sure if thats related.

Traceback (most recent call last): File "tdm.py", line 284, in mqtt_message payload = loads(msg)['StatusPRM'] File "C:\Users\nekey\AppData\Local\Programs\Python\Python37\lib\json__init__.py", line 348, in loads return _default_decoder.decode(s) File "C:\Users\nekey\AppData\Local\Programs\Python\Python37\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "C:\Users\nekey\AppData\Local\Programs\Python\Python37\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Invalid control character at: line 1 column 113 (char 112)

Unable to connect to broker from tdm on MacOS

I'm unable to connect to my MQTT broker (builtin HomeAssistant). TDM just says Connecting to broker, and after a few seconds Disconnected. Is there any debug switch I can enable?

Right click crashes the application

When right click on device list (empty one) the app crash with the following message

Traceback (most recent call last):
File "D:\ESP8266\Tasmota Device Manager\GUI\Devices.py", line 312, in show_list_ctx_menu
self.select_device(self.device_list.indexAt(at))
File "D:\ESP8266\Tasmota Device Manager\GUI\Devices.py", line 317, in select_device
self.device = self.model.deviceAtRow(self.idx.row())
File "D:\ESP8266\Tasmota Device Manager\Util\models.py", line 30, in deviceAtRow
return self.tasmota_env.devices[row]
IndexError: list index out of range

Entering rules with backlog command is not working

Entering a rule with backlog in the command part is not working since tasmote doesn't support nested backlogs. TDM uses a backlog command to send the rule plus it's settings. Please change this (separate rule transmission and rule settings).

Example rule set:

on System#Boot do 
  backlog MP3Volume 75;MP3Track 1 
endon 
on Wifi#Connected do 
  MP3Track 2 
endon 
on Wifi#Disconnected do 
  MP3Track 3 
endon 
on Mqtt#Connected do 
  MP3Track 4 
endon 
on Mqtt#Disconnected do 
  MP3Track 5 
endon

Unable to connect

Hello

I thought it was gonna be simpler to connect to my broker, but it seems that the current config does not work. With the same parameters (IP, port, user and pw) I´m able to connect from another MQTT client, no problems.

Is there a special condition or another parameter that needs to be touched?

Crashing on Windows 10

Python 3.7 on Windows 10.
After configuring MQTT host, some Sonoff devices found then program crashes.
Program now opens, then crashes after a couple of seconds.

Console:

D:\python\tdm>python tdm.py
Traceback (most recent call last):
File "tdm.py", line 337, in mqtt_message
self.device_model.updateValue(found.index, DevMdl.RESTART_REASON, payload['RestartReason'])
KeyError: 'RestartReason'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.