mirror of
https://github.com/letscontrolit/ESPEasy.git
synced 2026-07-28 04:07:47 +00:00
263 lines
8.1 KiB
Python
263 lines
8.1 KiB
Python
### High level ESPEasy config.
|
|
### Things like configging a controller or device via http
|
|
### I've created it in way that you can just copy/past form parameters from Chromium's header view
|
|
|
|
from espcore import *
|
|
|
|
|
|
|
|
|
|
class EspEasy:
|
|
|
|
def __init__(self, node):
|
|
self._node=node
|
|
|
|
|
|
def control(self, **kwargs):
|
|
self._node.log.info("Control "+str(kwargs))
|
|
self._node.http_post(
|
|
page="control",
|
|
|
|
params="""
|
|
cmd:{cmd}
|
|
""".format(**kwargs),
|
|
|
|
)
|
|
|
|
|
|
def post_controller(self, index, data):
|
|
"""post controller form to espeasy"""
|
|
self._node.http_post(
|
|
twice=True, # needed for controllers and devices because of the way its implemented
|
|
page="controllers",
|
|
|
|
params="""
|
|
index:{index}
|
|
""".format(index=index),
|
|
|
|
data=data
|
|
)
|
|
|
|
def controller_domoticz_mqtt(self, index=1, controllerip=config.mqtt_broker, controllerport=config.mqtt_port, **kwargs):
|
|
"""config controller to use domoticz via mqtt"""
|
|
|
|
self._node.log.info("Configuring controller domoticz mqtt "+str(kwargs))
|
|
self.post_controller(index,"""
|
|
protocol:2
|
|
usedns:0
|
|
controllerip:{controllerip}
|
|
controllerport:{controllerport}
|
|
controlleruser:
|
|
controllerpassword:
|
|
controllersubscribe:domoticz/out
|
|
controllerpublish:domoticz/in
|
|
controllerenabled:on
|
|
""".format(controllerip=controllerip, controllerport=controllerport, **kwargs)
|
|
)
|
|
|
|
|
|
def controller_domoticz_http(self, index=1, controllerip=config.test_server, controllerport=config.http_port, **kwargs):
|
|
"""config controller to use domoticz via http"""
|
|
|
|
self._node.log.info("Configuring controller domoticz http "+str(kwargs))
|
|
self.post_controller(index,"""
|
|
protocol:1
|
|
usedns:0
|
|
controllerip:{controllerip}
|
|
controllerport:{controllerport}
|
|
controlleruser:
|
|
controllerpassword:
|
|
controllerenabled:on
|
|
""".format(controllerip=controllerip, controllerport=controllerport, **kwargs)
|
|
)
|
|
|
|
|
|
def controller_nodo(self, index=1,controllerip=config.test_server, controllerport=config.linebased_port, **kwargs):
|
|
"""config controller to use nodo"""
|
|
|
|
self._node.log.info("Configuring controller nodo "+str(kwargs))
|
|
self.post_controller(index,"""
|
|
protocol:3
|
|
usedns:0
|
|
controllerip:{controllerip}
|
|
controllerport:{controllerport}
|
|
controllerpassword:
|
|
controllerenabled:on
|
|
""".format(controllerip=controllerip, controllerport=controllerport,**kwargs)
|
|
)
|
|
|
|
|
|
def controller_thingspeak(self, index=1, **kwargs):
|
|
|
|
self._node.log.info("Configuring controller thingspeak "+str(kwargs))
|
|
self.post_controller(index,"""
|
|
protocol:4
|
|
usedns:0
|
|
controllerip:{controllerip}
|
|
controllerport:{controllerport}
|
|
controlleruser:
|
|
controllerpassword:thingspeakkey1234
|
|
controllerenabled:on
|
|
""".format(**kwargs)
|
|
)
|
|
|
|
|
|
|
|
def post_device(self, index, data):
|
|
"""post a device form to espeasy"""
|
|
self._node.log.info("Configuring tasknumber {index}".format(index=index))
|
|
self._node.http_post(
|
|
twice=True, # needed for controllers and devices because of the way its implemented
|
|
page="devices",
|
|
|
|
params="""
|
|
index:{index}
|
|
""".format(index=index),
|
|
data=data
|
|
)
|
|
|
|
# def device_p001(self, index, **kwargs):
|
|
# self._node.log.info("Config device plugin p001 "+str(kwargs))
|
|
#
|
|
# self.post_device(index, """
|
|
# TDNUM:1
|
|
# TDN:
|
|
# TDE:on
|
|
# taskdevicepin1:{taskdevicepin1}
|
|
# plugin_001_type:{plugin_001_type}
|
|
# plugin_001_button:{plugin_001_button}
|
|
# TDSD1:on
|
|
# TDID1:{TDID1}
|
|
# TDT:0
|
|
# TDVN1:Switch
|
|
# edit:1
|
|
# """.format(**kwargs)
|
|
# )
|
|
|
|
|
|
# def device_p004(self, **kwargs):
|
|
# self._node.log.info("Config ds18b20 with "+str(kwargs))
|
|
#
|
|
# self._node.http_post(
|
|
# twice=True, # needed for controllers and devices because of the way its implemented
|
|
# page="devices",
|
|
#
|
|
# params="""
|
|
# index:{index}
|
|
# """.format(**kwargs),
|
|
#
|
|
# data="""
|
|
# TDNUM:4
|
|
# TDN:temp
|
|
# TDE:on
|
|
# taskdevicepin1:{taskdevicepin1}
|
|
# plugin_004_dev:{plugin_004_dev}
|
|
# plugin_004_res:{plugin_004_res}
|
|
# TDT:5
|
|
# TDVN1:Temperature
|
|
# TDF1:
|
|
# TDVD1:2
|
|
# TDSD1:on
|
|
# TDID1:{TDID1}
|
|
# edit:1
|
|
# page:1
|
|
# """.format(**kwargs)
|
|
# )
|
|
|
|
# def device_p005(self, **kwargs):
|
|
# self._node.log.info("Config DHT22 on D3 with "+str(kwargs))
|
|
#
|
|
# self._node.http_post(
|
|
# twice=True, # needed for controllers and devices because of the way its implemented
|
|
# page="devices",
|
|
#
|
|
# params="""
|
|
# index:{index}
|
|
# """.format(**kwargs),
|
|
#
|
|
# data="""
|
|
# TDNUM:5
|
|
# TDN:
|
|
# TDE:on
|
|
# taskdevicepin1:0
|
|
# plugin_005_dhttype:22
|
|
# TDSD1:on
|
|
# TDID1:{TDID1}
|
|
# TDT:5
|
|
# TDVN1:Temperature
|
|
# TDF1:
|
|
# TDVD1:2
|
|
# TDVN2:Humidity
|
|
# TDF2:
|
|
# TDVD2:2
|
|
# edit:1
|
|
# page:1
|
|
# """.format(**kwargs)
|
|
# )
|
|
|
|
|
|
def device_p033(self, index, **kwargs):
|
|
self._node.log.info("Config dummy device "+str(kwargs))
|
|
|
|
self.post_device(index=index,
|
|
data="""
|
|
TDNUM:33
|
|
TDN:
|
|
TDE:on
|
|
plugin_033_sensortype:{plugin_033_sensortype}
|
|
TDSD1:on
|
|
TDID1:{TDID1}
|
|
TDT:1
|
|
TDVN1:first
|
|
TDVD1:2
|
|
TDVN2:second
|
|
TDVD2:2
|
|
TDVN3:third
|
|
TDVD3:2
|
|
TDVN4:fourth
|
|
TDVD4:2
|
|
edit:1
|
|
page:1
|
|
""".format(**kwargs)
|
|
)
|
|
|
|
|
|
# def device_p036(self, **kwargs):
|
|
# self._node.log.info("Config framed oled p036 with "+str(kwargs))
|
|
#
|
|
# self._node.http_post(
|
|
# twice=True, # needed for controllers and devices because of the way its implemented
|
|
# page="devices",
|
|
#
|
|
# params="""
|
|
# index:{index}
|
|
# """.format(**kwargs),
|
|
#
|
|
# data="""
|
|
# TDNUM:36
|
|
# TDN:
|
|
# TDE:on
|
|
# plugin_036_adr:60
|
|
# plugin_036_rotate:1
|
|
# plugin_036_nlines:1
|
|
# plugin_036_scroll:1
|
|
# Plugin_036_template1:espeasy
|
|
# Plugin_036_template2:test
|
|
# Plugin_036_template3:suite
|
|
# Plugin_036_template4:test1
|
|
# Plugin_036_template5:test2
|
|
# Plugin_036_template6:test3
|
|
# Plugin_036_template7:test4
|
|
# Plugin_036_template8:test5
|
|
# Plugin_036_template9:test6
|
|
# Plugin_036_template10:test7
|
|
# Plugin_036_template11:test8
|
|
# Plugin_036_template12:test9
|
|
# taskdevicepin3:-1
|
|
# plugin_036_timer:0
|
|
# TDT:1
|
|
# edit:1
|
|
# page:1
|
|
# """.format(**kwargs)
|
|
# )
|