Hello everyone, I’m trying to control a relay from afar using ThingSpeak and the get request function (code linked below). I managed to get it working for some time, but after a while (usually a day or so) the get request stops working for some reason, spitting the following error:
  
 ssl_handshake_status: -256
 Traceback (most recent call last):
 File “main.py”, line 19, in <module>
 File “urequests.py”, line 149, in get
 File “urequests.py”, line 93, in request
 OSError: [Errno 5] EIO
  
 — after looking in some forums, I found some people referring to the OSE error as caused by memory issues. Given that the program works and gets hard resetted properly after the selected amount of cycles, I can’t see why it would be caused by that. About the handshake part, all I’ve found is that it might be due to time/dates settings differences between my board and router, which doesn’t really help either…
  
If someone could point me to a forum thread with a similar error solved, I would be elated. Thanks!
btw the board is an esp01 + relay module from aliexpress with a wire soldered to pin 4.
Start your code here
import json,network,sys
 import urequests as ureq
 from machine import Pin,reset
 from time import sleep
 cycles = 0
 
 with open(‘wlan_set.json’) as c: # Load network config as a dict
     wlan_set = json.load(c)
 
 sta_if = network.WLAN(network.STA_IF)
 sta_if.active(True)
 sta_if.connect(wlan_set[‘ssid’], wlan_set[‘pass’]) # Connect to saved AP
 while not sta_if.isconnected():    # Wait until connection is established
     pass
 print(‘\n\n Connected to {}’.format(wlan_set[‘ssid’]))
 
 for cycles in range(10):
 
     ts_data = ureq.get(‘https://api.thingspeak.com/channels/971598/fields/1.json?api_key=CU5423HHCJIR5X91&results=2’😉 #Requests API data
 
     if not ts_data.status_code == 200:  # Checks status
         print(‘Cant read web’)
 
     dic_data = ts_data.json()   # Convert data from json to python
     signal = dic_data[‘feeds’][-1][‘field1’]    # Nav to the value we want
     pin2 = Pin(4, Pin.OUT)  # Control GPIO based on value
 
     print(signal)
 
     if signal == ‘1’: # Activate the relay for 1 sec
         pin2.on()
         sleep(1)
         pin2.off()
         sleep(15)
         ureq.get(‘https://api.thingspeak.com/update?api_key=295ZUMME6PC3859V&field1=0’😉 # Disables the signal
 
     sleep(5)
 
 reset()
