_A clear and concise description of what the problem is._
I'm building smart fridge controller and require minimum 2 relays and 2 sensors to be controlled independently. So I have managed to include thermostat feature, compile new firmware and upload it into ESP12f module. I have managed to activate features and set temperatures, set multiple outputs, I'm using Celsius to measure temperature, however when trying to set temperature to negative degrees over console it does not work. Also I do not know how to assign two sensors so each of them would control their own relays (one is for fridge main compressor, second for defrosting heater control).
So far my user_config_override.h file looks like this:
`
#ifndef USE_THERMOSTAT
_Make sure your have performed every step and checked the applicable boxes before submitting your issue. Thank you!_
Backlog Template; Module; GPIO 255
:Configuration output here:
{"GPIO0":{"0":"None"},"GPIO1":{"0":"None"},"GPIO2":{"157":"LedLink"},"GPIO3":{"0":"None"},"GPIO4":{"4":"DS18x20"},"GPIO5":{"21":"Relay1"},"GPIO9":{"0":"None"},"GPIO10":{"0":"None"},"GPIO12":{"0":"None"},"GPIO13":{"0":"None"},"GPIO14":{"22":"Relay2"},"GPIO15":{"0":"None"},"GPIO16":{"0":"None"}}
Backlog Rule1; Rule2; Rule3
: Rules output here:
rule1 ON Power1#boot DO Backlog sensorinputset 1;controllermodeset 2;thermostatmodeset 1;climatemodeset 1;temptargetset %mem1% ENDON
Status 0
: STATUS 0 output here:
15:38:15 RSL: stat/tasmota_04CCC3/STATUS = {"Status":{"Module":0,"DeviceName":"Tasmota","FriendlyName":["Tasmota","Tasmota2"],"Topic":"tasmota_04CCC3","ButtonTopic":"0","Power":2,"PowerOnState":3,"LedState":1,"LedMask":"FFFF","SaveData":1,"SaveState":1,"SwitchTopic":"0","SwitchMode":[0,0,0,0,0,0,0,0],"ButtonRetain":0,"SwitchRetain":0,"SensorRetain":0,"PowerRetain":0}}
15:38:15 RSL: stat/tasmota_04CCC3/STATUS1 = {"StatusPRM":{"Baudrate":115200,"SerialConfig":"8N1","GroupTopic":"tasmotas","OtaUrl":"http://ota.tasmota.com/tasmota/release/tasmota.bin","RestartReason":"External System","Uptime":"0T00:32:26","StartupUTC":"2020-09-13T11:05:49","Sleep":50,"CfgHolder":4617,"BootCount":13,"BCResetTime":"2020-09-13T09:59:27","SaveCount":57,"SaveAddress":"3FA000"}}
15:38:15 RSL: stat/tasmota_04CCC3/STATUS2 = {"StatusFWR":{"Version":"8.5.0(tasmota)","BuildDateTime":"2020-09-13T15:03:44","Boot":31,"Core":"2_7_4","SDK":"2.2.2-dev(38a443e)","CpuFrequency":80,"Hardware":"ESP8266EX","CR":"343/699"}}
15:38:15 RSL: stat/tasmota_04CCC3/STATUS3 = {"StatusLOG":{"SerialLog":2,"WebLog":2,"MqttLog":0,"SysLog":0,"LogHost":"","LogPort":514,"SSId":["Beowolf",""],"TelePeriod":300,"Resolution":"558180C0","SetOption":["00008009","2805C8000100060000005A00000000000000","00000000","00006000","00000000"]}}
15:38:15 RSL: stat/tasmota_04CCC3/STATUS4 = {"StatusMEM":{"ProgramSize":662,"Free":1384,"Heap":23,"ProgramFlashSize":4096,"FlashSize":4096,"FlashChipId":"1640E0","FlashFrequency":40,"FlashMode":0,"Features":["00000809","8FDAE797","00368001","000000CD","010013C0","C000F981","00004404","00000000"],"Drivers":"1,2,3,4,5,6,7,8,9,10,12,16,18,19,20,21,22,24,26,27,29,30,35,37,39","Sensors":"1,2,3,4,5,6"}}
15:38:15 RSL: stat/tasmota_04CCC3/STATUS5 = {"StatusNET":{"Hostname":"tasmota_04CCC3-3267","IPAddress":"192.168.1.31","Gateway":"192.168.1.1","Subnetmask":"255.255.255.0","DNSServer":"192.168.1.1","Mac":"5C:CF:7F:04:CC:C3","Webserver":2,"WifiConfig":4,"WifiPower":17.0}}
15:38:15 RSL: stat/tasmota_04CCC3/STATUS6 = {"StatusMQT":{"MqttHost":"","MqttPort":1883,"MqttClientMask":"DVES_%06X","MqttClient":"DVES_04CCC3","MqttUser":"DVES_USER","MqttCount":0,"MAX_PACKET_SIZE":1200,"KEEPALIVE":30}}
15:38:15 RSL: stat/tasmota_04CCC3/STATUS7 = {"StatusTIM":{"UTC":"2020-09-13T11:38:15","Local":"2020-09-13T15:38:15","StartDST":"2020-03-29T02:00:00","EndDST":"2020-10-25T03:00:00","Timezone":"+04:00","Sunrise":"09:24","Sunset":"22:06"}}
15:38:15 RSL: stat/tasmota_04CCC3/STATUS10 = {"StatusSNS":{"Time":"2020-09-13T15:38:15","DS18B20-1":{"Id":"000006CAA773","Temperature":28.4},"DS18B20-2":{"Id":"000006DC9AA0","Temperature":28.2},"TempUnit":"C"}}
15:38:15 RSL: stat/tasmota_04CCC3/STATUS11 = {"StatusSTS":{"Time":"2020-09-13T15:38:15","Uptime":"0T00:32:26","UptimeSec":1946,"Heap":23,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":0,"POWER1":"OFF","POWER2":"ON","Wifi":{"AP":1,"SSId":"Beowolf","BSSId":"34:E8:94:A7:48:65","Channel":10,"RSSI":86,"Signal":-57,"LinkCount":1,"Downtime":"0T00:00:03"}}}
weblog 4
_for more debug information)_ Console output here:
_Steps to reproduce the behavior:_
_A clear and concise description of what you expected to happen._
_If applicable, add screenshots to help explain your problem._
_Add any other context about the problem here._
(Please, remember to close the issue when the problem has been addressed)
@arijav
I am also interested in this problem. You can help us, plz!
Understood, I will look into it this week and soon fix it into the driver
yes please add feature to be able to control negative temperatures for 2 and more separate relays independently from 2 separate I2C sensors. Thanks for help, will be waiting for updated feature!
I'm also really looking forward to adding this new functionality!
The negative temperatures should be something I can fix fast. The topic of the sensors is more tricky, I have to look into it.
@arijav I think we can all wait to add some good new functionality. And thanks for your great work!
I have today no way to test, need to check on the weekend. I have implemented a possible fix for the negative temperatures. Could somebody test if it works for you? -> https://github.com/arijav/Tasmota/tree/new_branch_dev_3
You have to set the temperature frost limit to a negative value
ok thanks I will test now!
Nop does not work, setting temperature crashed at all:
Ok, thanks for the feedback I will have to test myself. Will build up the setup hopefully within this week
Ok, thanks for the feedback I will have to test myself. Will build up the setup hopefully within this week
Holdon looks like I have made mistake building thermostat custom firmware... maybe it does work, give me half an hour...
Sorry my mistake, copied wrong user_override file (blank one). Negative numbers working now:
Have you managed to implement 2 separate channels of control yet? I would integrate controller into fridge for testing.
I have 2 DS18B20 sensors hookedup to the ESP and two relays. I need to be able independantly set temperatures for each relay so each of them listen to their own sensor and act based on temptargetset
I think need to implement new command set to be able to assign each relay to it's sensor name? then when for instance I send command like settargettemp1 assigned to relay1 sensor will act accordingly, and if I send command settargettemp2 relay2 and so on. just an idea...
Thanks again for your help bud!
settargettem1 and settargettem2 works as I defined in user_config_override file:
however I thing they both outputs (relays) listen to sensor1, not sure, still testing now
I am happy to hear that the negative temperatures work. The topic of the sensors is still not in, I am evaluating the most consistent way to implement it. Hope to solve it soon
Thanks for your support bud!
I have just added a possible fix for the temp sensor. The probability that it works is low since I've changed a couple of things and not tested. Could you give it a try anyway?. You have to modify in my_user_config.h THERMOSTAT_SENSOR_NUMBER to the number of sensors you used. It will just work if all sensor have the same name but differ on the last 2 characters -> "_ + sensor number" (f.i. DS18B20_1, DS18B20_2). I would appreciate if you test it as well with just one sensor and therefore THERMOSTAT_SENSOR_NUMBER to 1
I have just added a possible fix for the temp sensor. The probability that it works is low since I've changed a couple of things and not tested. Could you give it a try anyway?. You have to modify in my_user_config.h THERMOSTAT_SENSOR_NUMBER to the number of sensors you used. It will just work if all sensor have the same name but differ on the last 2 characters -> "_ + sensor number" (f.i. DS18B20_1, DS18B20_2). I would appreciate if you test it as well with just one sensor and therefore THERMOSTAT_SENSOR_NUMBER to 1
Thanks! I have to integrate device into the fridge first, currently it is on prototyping board on my desk at home, It is about 120km far from me now, I'm on remote location till next Tuesday. I can only connect to home workstation through remote desktop connection for manipulation. Once I'm back home will certainly give it a try and get back to you! Meanwhile you can think of how to independently control 2 or more thermostats on one device, maybe we can figure out the way till that day, because one thermostat is not enough for complete fridge controller, minimum need 2, optimum 3? ....
Great. I will try in the meantime to test by myself if the changes at least do not affect working with one sensor. I will not be able to test more than one unfortunately because this is what I have, so I would need your feedback to check if it really works.
I did not fully get the topic of independently control 2 or more thermostats on one device. This feature is existing, you just have to adapt the THERMOSTAT_CONTROLLER_OUTPUTS and configure each Thermostat via MQTT using CommandN, being N the number of the thermostat you want to configure and Command the command you would like to set.
Great. I will try in the meantime to test by myself if the changes at least do not affect working with one sensor. I will not be able to test more than one unfortunately because this is what I have, so I would need your feedback to check if it really works.
I did not fully get the topic of independently control 2 or more thermostats on one device. This feature is existing, you just have to adapt the THERMOSTAT_CONTROLLER_OUTPUTS and configure each Thermostat via MQTT using CommandN, being N the number of the thermostat you want to configure and Command the command you would like to set.
Logic is: Two sensors set up in the fridge: Sensor 1 in the colling box, where all the food stored (idealy 2 sensors as most of the fridges has two compartments deep frost and cool box) another themperature sensor is installed on the radiator behind the fridge, from where cold is transferred into the fridge itself by set of fans. The purpose of the temp sensor on the radiator is - when temperature below certain degree on it, for each radiator is different as shapes and forms are different, it means it is completely blocked with formed ice and need to be defrosen. Controller reads let say -18C from radiator's sensor and stops main compressor (Relay 1) and starts relay 2, which is hooked to the heater. Heater warms up radiator, ice melts down and when radiators temperature raises, lets say above 5C it means all ice gone and system is ready for next cycle of cooling. Relay 2 switches off and relay 1 switches on and listens to sensor 1 and set temperature 1, cools fridges compartment 1 and 2. and switches off the compressor.
Sorry for my bad English maybe I wrote the whole assay not really sound, however cutting long story short - currently I do not know how to set up such logics on the controller without using MQTT requests as MQTT is not reliable (communication with server could be lost e.t.c.) I need each relay, yes I can set 2 or more relays as you said, to be controlled by each sensor. Relay 1 with sensor1, relay2 with sensor2 e.t.c and set mode and temperature for each of them independantly....the rest, for instance if relay1 is on, switch relay2 e.t.c. can be set by rules, but I need to have 2-3 independent thermostat features
@arijav
Hi, any news on this?
Yes, the negative temperature issue is corrected in my branch, I will merge it soon. I have been quite busy with some topics of Opensprinkler, but I am back. The description of the wished functionality from elik745i is too specific for an application, I do not foresee to change the driver for the time being to address this, other than negative temperatures
Most helpful comment
Understood, I will look into it this week and soon fix it into the driver