11#!/usr/bin/env python
22# -*- coding: utf-8 -*-
3- VER = '2.3.0034 '
3+ VER = '2.3.0035 '
44
55"""
66 decode-config.py - Backup/Restore Sonoff-Tasmota configuration data
4343 [--cmnd-indent <indent>] [--cmnd-groups]
4444 [--cmnd-nogroups] [--cmnd-sort] [--cmnd-unsort]
4545 [-c <filename>] [-S] [-T json|cmnd|command]
46- [-g {Control,Devices,Display,Domoticz,Internal,KNX ,Light,MQTT, Management,Power,Rules,Sensor,Serial,SetOption,SonoffRF, System,Timer,Wifi} [{Control,Devices,Display,Domoticz,Internal,KNX ,Light,MQTT, Management,Power,Rules,Sensor,Serial,SetOption,SonoffRF ,System,Timer,Wifi} ...]]
46+ [-g {Control,Devices,Display,Domoticz,Internal,Knx ,Light,Management,Mqtt, Power,Rules,Sensor,Serial,Setoption,Shutter,Sonoffrf, System,Timer,Wifi} [{Control,Devices,Display,Domoticz,Internal,Knx ,Light,Management,Mqtt, Power,Rules,Sensor,Serial,Setoption,Shutter,Sonoffrf ,System,Timer,Wifi} ...]]
4747 [--ignore-warnings] [-h] [-H] [-v] [-V]
4848
4949 Backup/Restore Sonoff-Tasmota configuration data. Args that start with '--'
123123 (default do not output on backup or restore usage)
124124 -T, --output-format json|cmnd|command
125125 display output format (default: 'json')
126- -g, --group {Control,Devices,Display,Domoticz,Internal,KNX ,Light,MQTT, Management,Power,Rules,Sensor,Serial,SetOption,SonoffRF ,System,Timer,Wifi}
126+ -g, --group {Control,Devices,Display,Domoticz,Internal,Knx ,Light,Management,Mqtt, Power,Rules,Sensor,Serial,Setoption,Shutter,Sonoffrf ,System,Timer,Wifi}
127127 limit data processing to command groups (default no
128128 filter)
129129 --ignore-warnings do not exit on warnings. Not recommended, used by your
@@ -832,6 +832,9 @@ def WebSensor(value, idx):
832832 })
833833# ======================================================================
834834Setting_6_4_1_8 = copy .deepcopy (Setting_6_4_1_7 )
835+ Setting_6_4_1_8 .update ({
836+ 'my_gp' : ('B' , 0x484 , ([17 ], None , ('Management' , '"Gpio{} {}".format(#,$)' )) ),
837+ })
835838Setting_6_4_1_8 ['flag3' ][0 ].update ({
836839 'split_interlock' : ('<L' , (0x3A0 ,1 ,13 ), (None , None , ('SetOption' , '"SetOption63 {}".format($)' )) ),
837840 })
@@ -908,7 +911,12 @@ def WebSensor(value, idx):
908911 'no_power_feedback' : ('<L' , (0x3A0 ,1 ,13 ), (None , None , ('SetOption' , '"SetOption63 {}".format($)' )) ),
909912 })
910913# ======================================================================
911- Setting_6_5_0_11 = copy .deepcopy (Setting_6_5_0_9 )
914+ Setting_6_5_0_10 = copy .deepcopy (Setting_6_5_0_9 )
915+ Setting_6_5_0_10 .update ({
916+ 'my_adc0' : ('B' , 0x495 , (None , None , ('Sensor' , '"Adc {}".format($)' )) ),
917+ })
918+ # ======================================================================
919+ Setting_6_5_0_11 = copy .deepcopy (Setting_6_5_0_10 )
912920Setting_6_5_0_11 ['flag3' ][0 ].update ({
913921 'use_underscore' : ('<L' , (0x3A0 ,1 ,14 ), (None , None , ('SetOption' , '"SetOption64 {}".format($)' )) ),
914922 })
@@ -1015,7 +1023,48 @@ def WebSensor(value, idx):
10151023 'energy_weekend' : ('<L' , (0x3A0 ,1 ,20 ), (None , None , ('Power' , '"Tariff9 {}".format($)' )) ),
10161024 })
10171025# ======================================================================
1026+ Setting_6_6_0_13 = copy .deepcopy (Setting_6_6_0_12 )
1027+ Setting_6_6_0_13 ['SensorBits1' ][0 ].update ({
1028+ 'hx711_json_weight_change' : ('B' , (0x717 ,1 , 6 ), (None , None , ('Sensor' , '"Sensor34 8 {}".format($)' )) ),
1029+ })
1030+ # ======================================================================
1031+ Setting_6_6_0_14 = copy .deepcopy (Setting_6_6_0_13 )
1032+ Setting_6_6_0_14 .pop ('register8_ENERGY_TARIFF1_ST' ,None )
1033+ Setting_6_6_0_14 .pop ('register8_ENERGY_TARIFF2_ST' ,None )
1034+ Setting_6_6_0_14 .pop ('register8_ENERGY_TARIFF1_DS' ,None )
1035+ Setting_6_6_0_14 .pop ('register8_ENERGY_TARIFF2_DS' ,None )
1036+ Setting_6_6_0_14 .update ({
1037+ 'register8' : ('B' , 0x1D6 , ([16 ], None , ('Power' , None )) ),
1038+ 'tariff1_0' : ('<H' , 0xE30 , (None , None , ('Power' , '"Tariff1 {:02d}:{:02d},{:02d}:{:02d}".format(@["tariff1_0"]/60,@["tariff1_0"]%60,@["tariff1_1"]/60,@["tariff1_1"]%60)' )) ),
1039+ 'tariff1_1' : ('<H' , 0xE32 , (None , None , ('Power' , None )) ),
1040+ 'tariff2_0' : ('<H' , 0xE34 , (None , None , ('Power' , '"Tariff2 {:02d}:{:02d},{:02d}:{:02d}".format(@["tariff2_0"]/60,@["tariff2_0"]%60,@["tariff2_1"]/60,@["tariff2_1"]%60)' )) ),
1041+ 'tariff2_1' : ('<H' , 0xE36 , (None , None , ('Power' , None )) ),
1042+ 'mqttlog_level' : ('B' , 0x1E7 , (None , None , ('Management' , '"MqttLog {}".format($)' )) ),
1043+ 'pcf8574_config' : ('B' , 0xE88 , ([8 ], None , ('Devices' , None )) ),
1044+ 'shutter_accuracy' : ('B' , 0x1E6 , (None , None , ('Shutter' , None )) ),
1045+ 'shutter_opentime' : ('<H' , 0xE40 , ([4 ], None , ('Shutter' , '"ShutterOpenDuration{} {:.1f}".format(#,$/10)' )) ),
1046+ 'shutter_closetime' : ('<H' , 0xE48 , ([4 ], None , ('Shutter' , '"ShutterCloseDuration{} {:.1f}".format(#,$/10)' )) ),
1047+ 'shuttercoeff' : ('<H' , 0xE50 , ([5 ,4 ],None , ('Shutter' , None )) ),
1048+ 'shutter_invert' : ('B' , 0xE78 , ([4 ], None , ('Shutter' , '"ShutterInvert{} {}".format(#,$)' )) ),
1049+ 'shutter_set50percent' : ('B' , 0xE7C , ([4 ], None , ('Shutter' , '"ShutterSetHalfway{} {}".format(#,$)' )) ),
1050+ 'shutter_position' : ('B' , 0xE80 , ([4 ], None , ('Shutter' , '"ShutterPosition{} {}".format(#,$)' )) ),
1051+ 'shutter_startrelay' : ('B' , 0xE84 , ([4 ], None , ('Shutter' , '"ShutterRelay{} {}".format(#,$)' )) ),
1052+ })
1053+ Setting_6_6_0_14 ['flag3' ][0 ].update ({
1054+ 'dds2382_model' : ('<L' , (0x3A0 ,1 ,21 ), (None , None , ('SetOption' , '"SetOption71 {}".format($)' )) ),
1055+ 'shutter_mode' : ('<L' , (0x3A0 ,1 ,30 ), (None , None , ('SetOption' , '"SetOption80 {}".format($)' )) ),
1056+ 'pcf8574_ports_inverted' : ('<L' , (0x3A0 ,1 ,31 ), (None , None , ('SetOption' , '"SetOption81 {}".format($)' )) ),
1057+ })
1058+ # ======================================================================
1059+ Setting_6_6_0_15 = copy .deepcopy (Setting_6_6_0_14 )
1060+ Setting_6_6_0_15 ['flag3' ][0 ].update ({
1061+ 'hardware_energy_total' : ('<L' , (0x3A0 ,1 ,22 ), (None , None , ('SetOption' , '"SetOption72 {}".format($)' )) ),
1062+ })
1063+ # ======================================================================
10181064Settings = [
1065+ (0x606000F ,0x1000 , Setting_6_6_0_15 ),
1066+ (0x606000E ,0x1000 , Setting_6_6_0_14 ),
1067+ (0x606000D ,0x1000 , Setting_6_6_0_13 ),
10191068 (0x606000C ,0x1000 , Setting_6_6_0_12 ),
10201069 (0x606000B ,0x1000 , Setting_6_6_0_11 ),
10211070 (0x606000A ,0x1000 , Setting_6_6_0_10 ),
@@ -1030,7 +1079,7 @@ def WebSensor(value, idx):
10301079 (0x605000F , 0xe00 , Setting_6_5_0_15 ),
10311080 (0x605000C , 0xe00 , Setting_6_5_0_12 ),
10321081 (0x605000B , 0xe00 , Setting_6_5_0_11 ),
1033- (0x605000B , 0xe00 , Setting_6_5_0_11 ),
1082+ (0x605000A , 0xe00 , Setting_6_5_0_10 ),
10341083 (0x6050009 , 0xe00 , Setting_6_5_0_9 ),
10351084 (0x6050007 , 0xe00 , Setting_6_5_0_7 ),
10361085 (0x6050006 , 0xe00 , Setting_6_5_0_6 ),
@@ -2162,7 +2211,7 @@ def IsFilterGroup(group):
21622211 if group is None :
21632212 return False
21642213 if group == '*' :
2165- return False
2214+ return True
21662215 if group .title () != INTERNAL .title () and group .title () not in (groupname .title () for groupname in args .filter ):
21672216 return False
21682217 return True
0 commit comments