install.py 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. # -*- coding: utf-8 -*-
  2. from demeter.core import *
  3. def manage():
  4. model = Demeter.model('manage_admin')
  5. model.id = 1
  6. info = model.select(type='fetchone')
  7. if not info:
  8. model.role_id = 1
  9. model.username = 'admin'
  10. model.mobile = '15810090845'
  11. model.password = '123456'
  12. model.insert()
  13. model = Demeter.model('manage_role')
  14. model.id = 1
  15. info = model.select(type='fetchone')
  16. if not info:
  17. model.name = '管理员'
  18. model.insert()
  19. def farm():
  20. farm_id = 1
  21. model = Demeter.model('farm')
  22. model.id = farm_id
  23. info = model.select(type='fetchone')
  24. if not info:
  25. model.name = '默认园区'
  26. model.insert()
  27. def device():
  28. # 以下类型只能新增,不能随意更改或删除
  29. # 初始化默认服务
  30. setting_server = (
  31. {'name':'默认mqtt服务', 'server_type':1, 'server_host': '192.168.33.10', 'server_port':'8010', 'server_time': '200'}
  32. ,{'name':'默认modbusTcp服务', 'server_type':2, 'server_host': '192.168.33.10', 'server_port':'8010', 'server_time': '200'}
  33. )
  34. model = Demeter.model('setting_server')
  35. for value in setting_server:
  36. model.server_type = value['server_type']
  37. model.server_host = value['server_host']
  38. model.server_port = value['server_port']
  39. info = model.select(type='fetchone')
  40. if not info:
  41. model.name = value['name']
  42. model.server_type = value['server_type']
  43. model.server_host = value['server_host']
  44. model.server_port = value['server_port']
  45. model.server_time = value['server_time']
  46. model.insert()
  47. # 初始化默认产品
  48. product = (
  49. {'name':'默认产品', 'key':'product'},
  50. )
  51. model = Demeter.model('setting_product')
  52. for value in product:
  53. model.key = value['key']
  54. info = model.select(type='fetchone')
  55. if not info:
  56. model.key = value['key']
  57. model.name = value['name']
  58. model.insert()
  59. # 初始化设备类型
  60. setting_device_type = (
  61. {'name':'温度', 'key':'temprature', 'unit':'℃'}
  62. ,{'name':'湿度', 'key':'humidity','unit':'%RH'}
  63. ,{'name':'光照', 'key':'light','unit':'LUX'}
  64. ,{'name':'二氧化碳', 'key':'co2','unit':'PPM'}
  65. ,{'name':'风速', 'key':'speed','unit':'km/h'}
  66. ,{'name':'风向', 'key':'direction','unit':''}
  67. ,{'name':'PM2.5', 'key':'pm2.5','unit':'μg/m3'}
  68. ,{'name':'电源', 'key':'power','unit':'V'}
  69. ,{'name':'阀门', 'key':'valve','unit':''}
  70. ,{'name':'放风机', 'key':'blower','unit':''}
  71. ,{'name':'卷帘机', 'key':'curtain','unit':''}
  72. )
  73. model = Demeter.model('setting_device_type')
  74. for value in setting_device_type:
  75. model.key = value['key']
  76. info = model.select(type='fetchone')
  77. if not info:
  78. model.key = value['key']
  79. model.name = value['name']
  80. model.exp = '{n}'
  81. model.unit = value['unit']
  82. model.insert()
  83. # 初始化硬件类型 1/1/2/3/4/5/6
  84. hardware_type = (
  85. {'name':'网关', 'key':'gateway'}
  86. ,{'name':'传感器', 'key':'sensor'}
  87. ,{'name':'控制器', 'key':'control'}
  88. ,{'name':'电源', 'key':'power'}
  89. ,{'name':'状态', 'key':'status'}
  90. ,{'name':'摄像头', 'key':'pic'}
  91. ,{'name':'摄像机', 'key':'camera'}
  92. )
  93. model = Demeter.model('hardware_type')
  94. for value in hardware_type:
  95. model.key = value['key']
  96. info = model.select(type='fetchone')
  97. if not info:
  98. model.key = value['key']
  99. model.name = value['name']
  100. model.insert()
  101. # 初始化消息类型
  102. msg_type = (
  103. {'name':'系统消息', 'key':'system'}
  104. ,{'name':'警告提醒', 'key':'notice'}
  105. ,{'name':'操作提示', 'key':'oper'}
  106. ,{'name':'新闻', 'key':'news'}
  107. )
  108. model = Demeter.model('msg_type')
  109. for value in msg_type:
  110. model.key = value['key']
  111. info = model.select(type='fetchone')
  112. if not info:
  113. model.key = value['key']
  114. model.name = value['name']
  115. model.insert()
  116. # 初始化错误码类型
  117. notice_type = (
  118. {'name':'设备离线', 'key':'offline'}
  119. ,{'name':'请求超时', 'key':'timeout'}
  120. )
  121. model = Demeter.model('notice_type')
  122. for value in notice_type:
  123. model.key = value['key']
  124. info = model.select(type='fetchone')
  125. if not info:
  126. model.key = value['key']
  127. model.name = value['name']
  128. model.insert()
  129. manage()
  130. farm()
  131. device()
  132. Demeter.echo('install success!')