This commit is contained in:
Vitor de Miranda Henrique
2018-04-27 00:51:55 -05:00
parent de98ac44eb
commit a416dac362
3 changed files with 65 additions and 34 deletions

View File

@@ -36,6 +36,9 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin,
temperature_sensor_data = []
last_filament_end_detected = []
print_complete = False
development_mode = False
dummy_value = 30.0
dummy_delta = 0.5
def start_timer(self):
"""
@@ -321,11 +324,11 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin,
if temp is not None and hum is not None:
sensor_data.append(
dict(index_id=sensor['index_id'], temperature=temp, humidity=hum))
self.temperature_sensor_data = sensor_data
self.handle_temp_hum_control()
self.handle_temperature_events()
self.handle_pwm_linked_temperature()
self.update_ui()
self.temperature_sensor_data = sensor_data
self.handle_temp_hum_control()
self.handle_temperature_events()
self.handle_pwm_linked_temperature()
self.update_ui()
except Exception as ex:
self.log_error(ex)
@@ -447,8 +450,10 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin,
regular_status.append(
dict(index_id=index, status=val, auto_startup=startup, auto_shutdown=shutdown))
if output['output_type'] == 'temp_hum_control':
val = GPIO.input(pin) if not output['active_low'] else (
not GPIO.input(pin))
temp_control_status.append(
dict(index_id=index, auto_startup=startup, auto_shutdown=shutdown))
dict(index_id=index, status=val, auto_startup=startup, auto_shutdown=shutdown))
if output['output_type'] == 'neopixel_indirect' or output['output_type'] == 'neopixel_direct':
val = output['neopixel_color']
neopixel_status.append(
@@ -486,27 +491,30 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin,
def get_sensor_data(self, sensor):
try:
if sensor['temp_sensor_type'] in ["11", "22", "2302"]:
self._logger.info("temp_sensor_type dht")
temp, hum = self.read_dht_temp(
sensor['temp_sensor_type'], sensor['gpio_pin'])
elif sensor['temp_sensor_type'] == "18b20":
temp = self.read_18b20_temp(sensor['ds18b20_serial'])
hum = 0
elif sensor['temp_sensor_type'] == "bme280":
temp, hum = self.read_bme280_temp(
sensor['temp_sensor_address'])
elif sensor['temp_sensor_type'] == "si7021":
temp, hum = self.read_si7021_temp(
sensor['temp_sensor_address'])
elif sensor['temp_sensor_type'] == "tmp102":
temp = self.read_tmp102_temp(
sensor['temp_sensor_address'])
hum = 0
if self.development_mode:
temp, hum = self.read_dummy_temp()
else:
self._logger.info("temp_sensor_type no match")
temp = None
hum = None
if sensor['temp_sensor_type'] in ["11", "22", "2302"]:
self._logger.info("temp_sensor_type dht")
temp, hum = self.read_dht_temp(
sensor['temp_sensor_type'], sensor['gpio_pin'])
elif sensor['temp_sensor_type'] == "18b20":
temp = self.read_18b20_temp(sensor['ds18b20_serial'])
hum = 0
elif sensor['temp_sensor_type'] == "bme280":
temp, hum = self.read_bme280_temp(
sensor['temp_sensor_address'])
elif sensor['temp_sensor_type'] == "si7021":
temp, hum = self.read_si7021_temp(
sensor['temp_sensor_address'])
elif sensor['temp_sensor_type'] == "tmp102":
temp = self.read_tmp102_temp(
sensor['temp_sensor_address'])
hum = 0
else:
self._logger.info("temp_sensor_type no match")
temp = None
hum = None
if temp != -1 and hum != -1:
temp = round(self.to_float(
temp), 1) if not sensor['use_fahrenheit'] else round(self.to_float(temp) * 1.8 + 32, 1)
@@ -537,6 +545,17 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin,
temperature_alarm['alarm_set_temp'])
self.send_notification(msg)
def read_dummy_temp(self):
current_value = self.dummy_value
if current_value > 40 or current_value < 30:
self.dummy_delta = - self.dummy_delta
return_value = current_value + self.dummy_delta
self.dummy_value = return_value
return return_value, return_value
def read_dht_temp(self, sensor, pin):
try:
script = os.path.dirname(
@@ -717,15 +736,20 @@ class EnclosurePlugin(octoprint.plugin.StartupPlugin,
current_value = self.to_float(
linked_data['temperature'])
if set_temperature - temp_deadband > current_value:
current_status = True
elif set_temperature < current_value:
current_status = False
else:
current_status = previous_status
if control_type == 'cooler' or control_type == 'dehumidifier':
current_status = not current_status
if current_value <= set_temperature and current_value >= (set_temperature - temp_deadband):
current_status = previous_status
elif current_value < set_temperature:
current_status = False
else:
current_status = True
else:
if current_value <= set_temperature and current_value >= (set_temperature - temp_deadband):
current_status = previous_status
elif current_value > set_temperature:
current_status = False
else:
current_status = True
if control_type == 'heater' and max_temp > 0.0 and max_temp < current_value:
if self._settings.get(["debug"]) is True:

View File

@@ -188,6 +188,7 @@ $(function () {
return (output['index_id'] == item.index_id());
}).pop();
if (linked_output) {
linked_output.gpio_status(output['status'])
linked_output.auto_shutdown(output['auto_shutdown'])
linked_output.auto_startup(output['auto_startup'])
}

View File

@@ -216,6 +216,12 @@
<!-- ko if: ($data.temp_ctr_type() == "dehumidifier") -->
<span class="badge badge-warning">Dehumidifier</span>
<!-- /ko -->
<!-- ko if: ($data.gpio_status()) -->
<span class="badge badge-success help-inline">on</span>
<!-- /ko -->
<!-- ko ifnot: ($data.gpio_status()) -->
<span class="badge badge-important help-inline">off</span>
<!-- /ko -->
</h4>
<!-- /ko -->