Colin Kuebler
e459fcc3a6
Attempt to stop process nicely before sending SIGKILL
2019-10-31 18:40:36 -04:00
Colin Kuebler
1b02f66e2c
Filter out units which are not service or the user instance
2019-10-31 18:27:12 -04:00
Colin Kuebler
73a344f043
Be explicit when stopping a service vs terminating process
2019-10-30 15:28:14 -04:00
Colin Kuebler
9e434467c8
Confirmed that sudo is not needed by ps
2019-10-30 15:25:37 -04:00
Colin Kuebler
9fa4599024
Don't print ps header so no need for grep
2019-10-30 15:22:43 -04:00
Colin Kuebler
322e42514f
Missed sudo on ps, might be redundant but couldn't hurt
2019-10-30 15:11:25 -04:00
Colin Kuebler
17525e94f6
Missing newline after user prompt
2019-10-29 19:10:25 -04:00
Colin Kuebler
ccad30f600
Port checks for DHCP and Tuya protocol
2019-10-29 19:01:08 -04:00
Colin Kuebler
ffe9ab7ded
Wait for process to end before proceeding
2019-10-29 18:51:05 -04:00
Colin Kuebler
50f4995b0a
Moved disclaimer to setup_checks
2019-10-29 18:32:28 -04:00
Colin Kuebler
70c70fea1e
Moved config check from setup_ap to setup_checks
2019-10-29 18:28:21 -04:00
Colin Kuebler
b87b272987
Added new script responsible for setup checks
...
Added port checking implementation
2019-10-29 18:25:17 -04:00
Johannes Feichtner
c70e102542
Replace ifconfig and explicitly add route to 10.42.42.0/24
2019-10-27 01:34:41 +02:00
Colin Kuebler
c3952af957
Encode AES key
...
Closes #332
2019-10-23 23:31:58 -04:00
Colin Kuebler
8c5b4da98a
Organized setup_ap into three functions, check_config, setup, and cleanup
...
Use bash trap to guarantee cleanup on script exit
This means the user can ^C out and it will do the right thing
2019-10-13 23:19:06 -04:00
Colin Kuebler
4f8e380956
Merge branch 'no-pw' into development
2019-10-13 23:10:59 -04:00
Colin Kuebler
ce30b6ee7e
Merge branch 'fix-net-inf' into development
2019-10-12 18:06:52 -04:00
Colin Kuebler
5e3db7e4d9
Added check for AP mode support
2019-10-12 17:09:46 -04:00
Colin Kuebler
e3168b8339
Remove hostapd.conf writer from setup_ap, and instead include a static file
...
Cut hostapd.conf down to bare configuration
Added hostapd ctrl interface
Reduce log noise by specifying hostapd log level info
Specify interface for hostapd by argument rather than config
No password on vtrust-flash
Updated smartconfig for no password
2019-10-12 16:07:46 -04:00
Colin Kuebler
ec43e49d16
Replace hardcoded gateway with supplied argument
2019-10-09 23:09:47 -04:00
Colin Kuebler
f72196113d
Change smartconfig notice, fixing typo
2019-10-05 18:57:59 -04:00
Colin Kuebler
da75a2f6b0
Merge branch 'simple-dict' into development
2019-10-05 18:47:13 -04:00
Colin Kuebler
b8a50aa918
Merge branch 'fix-191' into development
2019-10-05 18:46:43 -04:00
Colin Kuebler
8b799fe05f
Merge branch 'fix-net-inf' into development
2019-10-05 18:46:12 -04:00
Colin Kuebler
d9a29ca421
Merge branch 'improve-flow' into development
2019-10-05 18:44:04 -04:00
Colin Kuebler
2fe5cd4fcd
A simple dictionary to track activated ids, instead of a boilerplate class
2019-10-05 17:47:51 -04:00
Colin Kuebler
707636357c
Connect psk frontend to gateway instead of 0.0.0.0 to mitigate potential address conflict
2019-10-05 17:45:30 -04:00
Colin Kuebler
38d1981a9e
Let the user know when they are connected, rather than hello world
2019-10-04 14:33:11 -04:00
Colin Kuebler
0578b32ab5
Enable captive portal detection by responding to unknown requests with 302 (temporary redirect)
...
This should fix mobile devices that disconnect when there is no internet access
2019-10-04 14:29:17 -04:00
Colin Kuebler
ec789ad702
Fix for #191 with thanks to @linusbarth
2019-10-04 13:31:14 -04:00
Colin Kuebler
155dfdaceb
Merge branch 'master' into fix-net-inf
2019-10-03 22:10:30 -04:00
Colin Kuebler
1762c6a66e
Fix schema generation using a global object as an in memory db
2019-10-03 21:16:20 -04:00
Colin Kuebler
b4e893c030
Removed ETH and added GATEWAY to config
2019-10-03 14:41:30 -04:00
Colin Kuebler
8d3de795e5
Merge branch 'master' into fix-net-inf
2019-10-03 14:24:12 -04:00
Colin Kuebler
4cc1e2e875
Don't modify NetworkManager.conf, just stop NetworkManager temporarily
...
Seems to fix issues I was having while already connected to a network when starting AP
No longer a need to backup/restore NetworkManager config
We aren't routing traffic to the internet, so no need for iptable modifications
Stop dnsmasq before restarting NetworkManager
2019-10-03 14:15:38 -04:00
Colin Kuebler
0f8764fa10
Revert changes to mosquitto, apparently the config is not respected and I haven't been able to figure out why
2019-10-03 13:23:44 -04:00
Colin Kuebler
0b48ababcb
Merge branch 'master' into improve-flow
2019-10-03 13:03:09 -04:00
Colin Kuebler
0c3e2d8a4d
Use pkill to find and cancel smartconfig process, both in start_flash and after receiving registration call
2019-10-02 15:22:57 -04:00
Colin Kuebler
966d6ab34c
Call super
2019-10-01 23:09:53 -04:00
Colin Kuebler
84731def1e
Keep track of activation attempts per device to dynamically alter behavior
...
Try extended schema first, then minimal schema
2019-10-01 22:56:07 -04:00
Colin Kuebler
84f9a59023
Remove trigger_upgrade and run mq_pub_15 directly from fake-registration-server
2019-09-29 16:53:28 -04:00
Colin Kuebler
c8cecdbf6b
Use paho mqtt publish.single helper function
...
Also fixes socket error on disconnect
2019-09-29 16:44:18 -04:00
Colin Kuebler
612e53b2c6
Replace pyaes with Crypto.Cipher.AES
2019-09-29 16:41:36 -04:00
Colin Kuebler
b427d48741
Typo
2019-09-28 17:24:05 -04:00
Colin Kuebler
5de40b0a70
Warn users if their Tuya device is not ESP based
2019-09-28 17:22:09 -04:00
Colin Kuebler
2c023f5b18
Print ID as hex, before calculating PSK
2019-09-26 20:09:58 -04:00
Colin Kuebler
f2d20de93e
Python2 friendly print
2019-09-26 16:37:43 -04:00
Colin Kuebler
6983f67f92
Pretty print IP and port
2019-09-26 14:44:08 -04:00
Colin Kuebler
cba1111814
Simplify schema expression
2019-09-26 14:43:32 -04:00
Colin Kuebler
4195c53daf
Experimental workaround, some users are reporting better luck with python vs python3 for psk-frontend
2019-09-26 13:55:01 -04:00
Colin Kuebler
153c8ed842
Start dnsmasq with command line options rather than a config file
...
No need to backup or restore dnsmasq.conf
Use wildcard to resolve all dns queries to 10.42.42.1
Write hostapd.conf locally so we don't need to backup/restore
Use sudo when writing NetworkManager.conf
Added and tweaked some log messages
Use pkill to stop hostapd so the cleanup portion of setup_ap is run
2019-09-26 12:47:39 -04:00
Colin Kuebler
bb39283d95
Do not imply that payload decryption failure is an issue, it is expected for .active endpoints
2019-09-25 16:56:44 -04:00
Colin Kuebler
ec453412de
Activation workaround by extending dummy schema - some devices crash if schema is shorter than expected
...
Added missing URLs in activation response
Readded .updatestatus to avoid .upgrade from catching this endpoint
Verify payload decryption is JSON
2019-09-25 10:25:40 -04:00
Colin Kuebler
97ecf0e305
Log SSL exceptions for debugging
2019-09-24 21:07:40 -04:00
Colin Kuebler
c0e57847a9
Fix variable rename missed
2019-09-23 16:39:31 -04:00
Colin Kuebler
ac19da4d83
Revert python to python3 as per discussion in #273
2019-09-23 16:36:20 -04:00
Colin Kuebler
5df7637452
Combined reply_encrypted in reply with encrypted flag
...
Tidying up by removing some redundant endpoints and adding comments
Now all but the activation endpoints use encryption when requested
2019-09-23 00:01:31 -04:00
Colin Kuebler
2a83af3d29
Set defaults for query params to prevent exceptions when missing
2019-09-22 18:50:24 -04:00
Colin Kuebler
a88db23ee4
Reorganized imports and made secKey configurable via command line option
2019-09-22 18:49:43 -04:00
Colin Kuebler
2104d47be5
Redirect GET requests to our POST handler
2019-09-22 18:29:02 -04:00
Colin Kuebler
da42236a1d
Implemented encrypted response support
...
Removed additional config.get payload, does not appear to be necessary and in some cases was causing problems
Revert upgrade type to 0 since we are trying to update the firmware on the main ESP82xx, not an external MCU
2019-09-22 18:25:30 -04:00
Colin Kuebler
27f1a33605
Enhance logging
...
Print request details, method, headers, and decrypted payload
Print response payload
2019-09-22 18:19:04 -04:00
Colin Kuebler
60c7ccbba7
Print out PSK identity for debugging purposes
2019-09-22 18:13:14 -04:00
Colin Kuebler
769901a673
Added endpoint for /d.json based on reports in #273
2019-09-21 18:32:47 -04:00
Colin Kuebler
5fe523aafe
Merge branch 'master' into new-api
...
Attempted to integrate new API responses with old ones, based on et=1 param
**Untested**
2019-09-21 18:27:31 -04:00
Colin Kuebler
2039394c17
Pass the protocol version from trigger_upgrade to mq_pub_15
2019-09-21 17:34:52 -04:00
Colin Kuebler
5114b1ef7d
Merge branch 'master' into fix-net-inf
2019-09-21 17:28:55 -04:00
Colin Kuebler
41ac947ce7
Readded old protocol 2.1 encoding back into mq_pub_15
...
Added optional argument "--protocol" which specifies whether to use the old or new MQTT encoding
Cleaned up a bit, adding some descriptive variable names and reducing code clutter
2019-09-21 17:08:46 -04:00
Colin Kuebler
8291ced3da
Tidy PSK generation, only define PSK hint in one location
2019-09-21 16:04:10 -04:00
Madmartigan
ea815b7d62
fix: gwId was not parsed
2019-09-19 08:33:28 +02:00
Madmartigan
7d588cda4e
Circumvent new tuya sdk protection
2019-09-18 21:38:11 +02:00
Colin Kuebler
f345e1843d
Only print out smart config parameters once
2019-08-07 13:52:47 -04:00
Colin Kuebler
22bdbb5629
Exit server cleanly on SIGINT (^C) to reduce error message noise
2019-07-04 19:54:12 -04:00
Colin Kuebler
d754802f35
Added auto-retry to smartconfig, make 10 attempts before exiting
2019-07-04 19:26:25 -04:00
Colin Kuebler
da1966ac42
Bugfixes; file_md5 was type bytes vs str, reply() needed argument default, use get_argument() instead of request.arguments[], json to str lambda to ease schema encoding, true => True in python
2019-07-03 14:02:33 -04:00
Colin Kuebler
54af5ebba8
Check for wpa_supplicant #19 #84 #172 #208 and many more
2019-07-02 15:31:37 -04:00
Colin Kuebler
39954071bd
Added API response for s.gw.upgrade.updatestatus
2019-07-02 15:23:23 -04:00
Colin Kuebler
39b9bcd768
Added API methods: .device.upgrade .timer and .config
...
tuya.device.upgrade.get and tuya.device.upgrade.silent.get should allow upgrades on devices where s.gw.upgrade is not called
2019-07-02 14:48:36 -04:00
Colin Kuebler
beab732cfe
Implemented JSONHandler.reply to reduce code repetition
...
Adds timestamp, serializes response, and applies appropriate headers
Fetch gwId and a from query parameters instead of manual uri parsing
Represent API responses as dict objects for clarity and flexibility
Compute upgrade.bin md5 and file size only once when the server is started
2019-07-02 14:43:24 -04:00
Colin Kuebler
d11f94f45d
Backup hostapd config #61
...
Do not overwrite config backups #61
2019-07-02 14:30:09 -04:00
Colin Kuebler
9c8db5752c
Added a check to ensure that the configured network interface exists
2019-07-02 14:22:25 -04:00
Colin Kuebler
48bdc072ed
Added config for mosquitto so it only binds to 10.42.42.1
...
Now that there is no conflict for ports, we do not have to stop apache or mosquitto before starting our own
2019-07-02 14:18:03 -04:00
Colin Kuebler
0e7c1f080c
Modify dnsmasq config to only bind to 10.42.42.1 as suggested in #187
2019-07-02 14:13:04 -04:00
Colin Kuebler
fcbb35019b
Added option for specifying the server bind addr, defaulting to 10.42.42.1
...
Catch bind error and produce a helpful message if port is unavailable
This should make it possible to run the server without interfering with 0.0.0.0:80
2019-07-02 14:00:18 -04:00
Colin Kuebler
2309e03e74
Merge branch 'master' into smart-link-py
2019-03-23 11:37:37 -04:00
Colin Kuebler
780e62d99f
Updated references to upgrade.bin
...
Simplify schema to lowest common denominator
2019-03-22 17:32:08 -04:00
Colin Kuebler
ce49a76f24
Removed old backup script and replaced with curl from new intermediate firmware backup endpoint
2019-03-22 17:09:26 -04:00
Colin Kuebler
40c0c026a7
Default bind address to our fake AP
2019-03-22 16:54:01 -04:00
Colin Kuebler
6f625371a8
Merge branch 'master' into smart-link-py
2019-01-28 12:04:45 -05:00
Colin Kuebler
aa51be827e
Missed file permission commit; mark main.py executable
2019-01-27 15:52:29 -05:00
Michael Behrisch
aa4b4ecf34
Update setup_ap.sh
2019-01-27 18:18:27 +01:00
Colin Kuebler
379b26ffd7
Wrote Python 3 implementation of smartconfig
...
Includes broadcast strategy ported from tuyapi/link
Also includes multicast strategy not yet employed in tuyapi/link
Removed JS script and updated start_flash script to reflect changes
2019-01-26 18:25:16 -05:00
ms_vtrust
927e5c448a
Update fake-registration-server.py
2019-01-22 16:05:54 +01:00
Merlin Schumacher
cb650aa379
Remove useless json file & updated gitignore
2019-01-21 17:46:23 +00:00
Merlin Schumacher
244896a816
Fixes for Python 3
2019-01-21 17:44:00 +00:00
Merlin Schumacher
080a4cb574
Unify python3 usage
2019-01-21 16:42:10 +00:00
Andrijan Möcker
ee8753086e
Change to Python 3
2019-01-17 15:35:25 +01:00
Merlin Schumacher
f443485a6a
Initial Commit
2019-01-16 20:32:16 +01:00