mirror of
https://github.com/letscontrolit/ESPEasy.git
synced 2026-07-28 04:07:47 +00:00
now supports powercycle to test for bugs like #719
This commit is contained in:
@@ -93,6 +93,9 @@ class EspEasy:
|
||||
logging.getLogger("domoticz http").info("Waiting for request idx {idx} with sensortype {sensor_type}".format(sensor_type=sensor_type,idx=idx))
|
||||
|
||||
# read and parse http requests
|
||||
while not http_requests.empty():
|
||||
http_requests.get()
|
||||
|
||||
while time.time()-start_time<timeout:
|
||||
request=http_requests.get(block=True, timeout=timeout)
|
||||
if request.path == "/json.htm" and int(request.params.get('idx'))==idx:
|
||||
|
||||
+1
-1
@@ -77,4 +77,4 @@ def run():
|
||||
def test_in_range(value, min, max):
|
||||
|
||||
if value < min or value > max:
|
||||
raise("Value {value} should be between {min} and {max}".format(value=value, min=min, max=max))
|
||||
raise(Exception("Value {value} should be between {min} and {max}".format(value=value, min=min, max=max)))
|
||||
|
||||
@@ -54,11 +54,52 @@ class Node():
|
||||
|
||||
def reboot(self):
|
||||
'''reboot the esp via the serial DTR line'''
|
||||
self.log.debug("Rebooting")
|
||||
|
||||
self.serial_needed()
|
||||
self._serial.setDTR(0)
|
||||
time.sleep(0.1)
|
||||
self._serial.setDTR(1)
|
||||
|
||||
def powercycle(self):
|
||||
"""powercycle the device"""
|
||||
self.poweroff()
|
||||
self.poweron()
|
||||
|
||||
def poweroff(self):
|
||||
"""power off device"""
|
||||
|
||||
|
||||
#cant yet be done automaticly unfortunatly
|
||||
self.log.info("Please power off node "+self._id)
|
||||
|
||||
done=False
|
||||
while not done:
|
||||
try:
|
||||
self.serial_needed()
|
||||
self._serial.readline()
|
||||
except serial.SerialException:
|
||||
done=True
|
||||
if hasattr(self, '_serial'):
|
||||
del self._serial
|
||||
|
||||
self.log.debug("Detected power off")
|
||||
|
||||
def poweron(self):
|
||||
"""power on device"""
|
||||
|
||||
self.log.info("Please power on node "+self._id)
|
||||
|
||||
done=False
|
||||
while not done:
|
||||
try:
|
||||
self.serial_needed()
|
||||
self._serial.readline()
|
||||
done=True
|
||||
except serial.SerialException:
|
||||
time.sleep(0.1)
|
||||
|
||||
self.log.debug("Detected power on")
|
||||
|
||||
def pingwifi(self, timeout=60):
|
||||
"""waits until espeasy reponds via wifi"""
|
||||
|
||||
@@ -13,9 +13,12 @@ from esptest import *
|
||||
|
||||
# espeasy[0].controller_thingspeak(index=1, controllerip=config.http_server, controllerport=config.http_port)
|
||||
|
||||
|
||||
@step
|
||||
def prepare():
|
||||
"""configure devices and controller"""
|
||||
node[0].reboot()
|
||||
node[0].pingserial()
|
||||
espeasy[0].controller_domoticz_http(index=1, controllerip=config.http_server, controllerport=config.http_port)
|
||||
espeasy[0].device_p004(index=1, taskdevicepin1=2, plugin_004_dev=0, plugin_004_res=9, TDID1=1417)
|
||||
espeasy[0].device_p004(index=2, taskdevicepin1=2, plugin_004_dev=1, plugin_004_res=9, TDID1=1418)
|
||||
@@ -29,6 +32,14 @@ def recv():
|
||||
results=espeasy[0].recv_domoticz_http(SENSOR_TYPE_SINGLE,1418)
|
||||
test_in_range(results[0], -5,40)
|
||||
|
||||
@step
|
||||
def powercycle():
|
||||
"""test result on poweron"""
|
||||
node[0].powercycle()
|
||||
results=espeasy[0].recv_domoticz_http(SENSOR_TYPE_SINGLE,1417)
|
||||
test_in_range(results[0], -5,40)
|
||||
results=espeasy[0].recv_domoticz_http(SENSOR_TYPE_SINGLE,1418)
|
||||
test_in_range(results[0], -5,40)
|
||||
|
||||
|
||||
# @step
|
||||
|
||||
Reference in New Issue
Block a user