Commit Graph

148 Commits (v2.4.2)

Author SHA1 Message Date
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