I’m relatively new to Python and wondered whether anyone could point me to a very basic example of retrieving current data from my Tempest using Python websockets. To get started, all I want to do is open a socket, get the current data from my Tempest in the console and close the socket. I’ve been trying to use the online documentation, but I haven’t been successful. There’s something missing in my understanding of the process and I’m hoping a simple example will get me over the the hump. Thanks for any help provided!
This is the simplest example I could come up with. It will connect to the Websocket, start listening for Tempest messages, and then disconnect once it has received a single data message:
from websocket import create_connection
personal_token = ' '
tempest_ID = ' '
print('Opening Websocket connection...')
ws = create_connection('wss://ws.weatherflow.com/swd/data?api_key=' + personal_token)
result = ws.recv()
print("Received '%s'" % result)
print('')
print('Listening to Tempest endpoint...')
ws.send('{"type":"listen_start",' + ' "device_id":' + tempest_ID + ',' + ' "id":"Tempest"}')
result = ws.recv()
print("Received '%s'" % result)
print('')
print('Receiving Tempest data...')
result = ws.recv()
print("Received '%s'" % result)
print('')
ws.close()
You need to install the Python websockets module with python3 -m pip install websocket-client
(https://pypi.org/project/websocket_client/) and in the code above you need to enter a personal access token and device ID of your Tempest as strings. Hope this help
5 Likes
That’s a BIG help…thanks! I got it working just fine. Now that I see how it works, I think the online documentation will make more sense to me. I really appreciate the help!
2 Likes