diff --git a/brewpi.py b/brewpi.py index 4fd663e..f3c220e 100644 --- a/brewpi.py +++ b/brewpi.py @@ -163,9 +163,13 @@ class TcTask(ATask): print ("Temp soll change to {}".format(value)) asyncio.create_task(self.send({'Soll': {'Temp': value}})) - def on_rate_soll_changed(self, value): + def on_rate_soll_curr_changed(self, value): print ("Rate soll change to {}".format(value)) - asyncio.create_task(self.send({'Soll': {'Rate': value}})) + asyncio.create_task(self.send({'Soll': {'Rate': {'Current': value}}})) + + def on_rate_soll_set_changed(self, value): + print ("Rate soll change to {}".format(value)) + asyncio.create_task(self.send({'Soll': {'Rate': {'Set': value}}})) def on_temp_ist_changed(self, value): print ("Temp ist change to {}".format(value)) @@ -196,7 +200,8 @@ class TcTask(ATask): self.tc.set_on_changed('theta_ist', ChangedFloat(self.on_temp_ist_changed, prec=1).set) self.tc.set_on_changed('heatrate_ist', ChangedFloat(self.on_rate_ist_changed, prec=1).set) self.tc.set_on_changed('theta_soll_set', ChangedFloat(self.on_temp_soll_changed, prec=1).set) - self.tc.set_on_changed('heatrate_soll', ChangedFloat(self.on_rate_soll_changed, prec=1).set) + self.tc.set_on_changed('heatrate_soll', ChangedFloat(self.on_rate_soll_curr_changed, prec=1).set) + self.tc.set_on_changed('heatrate_soll_set', ChangedFloat(self.on_rate_soll_set_changed, prec=1).set) self.tc.set_theta_soll(20.0) self.tc.set_heatrate_soll(1.0) @@ -267,14 +272,14 @@ if __name__ == '__main__': "kp": 0.5, "ki": 0.0, "kd": 0.0, - "rho": 1.0 + "kt": 0.0 }, "Heat": { "dt": DT_PARAMS, "kp": 0.1, "ki": 0.01, "kd": 0.0, - "rho": 1.0 + "kt": 1.0 } } diff --git a/brewpi_gui.py b/brewpi_gui.py index 85dee3c..ef754ea 100644 --- a/brewpi_gui.py +++ b/brewpi_gui.py @@ -91,10 +91,14 @@ class Window(QtWidgets.QMainWindow, Ui_MainWindow): self.Slider_temp_soll.setValue(submsg['Temp']) self.slider_temp_soll_initial_update = False if 'Rate' in submsg: - self.lcdNumber_heatrate_soll.display(str(submsg['Rate'])) - if self.heatrate_soll_initial_update: - self.heatrate_soll_initial_update = False - self.doubleSpinBox_heatrate_soll.setValue(submsg['Rate']) + subsubmsg = submsg['Rate'] + for subkey in subsubmsg: + if "Current" in subkey: + self.lcdNumber_heatrate_soll.display(str(subsubmsg['Current'])) + if "Set" in subkey: + if self.heatrate_soll_initial_update: + self.heatrate_soll_initial_update = False + self.doubleSpinBox_heatrate_soll.setValue(subsubmsg['Set']) if "Ist" in key: submsg = msg['Ist'] if 'Temp' in submsg: