BMS Temperatur Zwischenspeichern?

Ich verwende beide da ich zwei Liontrons habe :upside_down_face:

@Vincent
Ich mache gerade einen Realtest und dabei ist mir folgendes Aufgefallen.

Ich stellte als min Temp 5°C ein, die Batterien waren bei etwa 3°C, die Heizung ging wie gewünscht an und hat auch wie gewünscht mit der Hysterie auf 6°C geheizt. Ab 6°C wir abgeschaltet, nun sinkt die Temp wieder auf 5,9°C und die Heizung springt direkt wieder an.

Ist sicherlich nur etwas kleines im Code, kannst du mir sagen was ich ändern muss?

var min = global.get("minbat");
var temp = global.get("valid_BMStemp");
var hysteresis = 1;


if (temp >= (min+hysteresis)) 
    msg.payload = false;
else if(temp <= (min)) 
    msg.payload = true;


return msg; 

Vielen Dank und viele Grüße
Sven

1 Like

@Bock.auf.Raus

Der Fehler ist, dass ja schon msg.payload = true in diese Node reinkommt. Jetzt tritt keiner der beiden Konditionen ein, mit return msg wird aber die payload weitergegeben, und die steht ja noch auf true.

Lösung:

if (temp >= (min+hysteresis)) {
    msg.payload = false;
    return msg;
}
else if(temp <= (min)) {
    msg.payload = true;
    return msg;
}

msg wird jetzt nur weitergegeben, wenn einer der beiden Fälle eintritt, also das letzte “return msg” nach dem If-Block musst du löschen, oder auf “return null” ändern.

2 Likes

Funktioniert 1000 Dank :slight_smile:

2 Likes

@Bock.auf.Raus
Hallo Sven,
wenn das jetzt funktioniert, kannst du den kompletten Flow mal reinstellen???
Danke
Gruß Arno

Hallo,
anbei der/das? Flow für die Batterie Heizung :slight_smile:

[{"id":"31310aa3d904bd85","type":"tab","label":"Flow 1","disabled":false,"info":"","env":[]},{"id":"ea78fc078b1dee1d","type":"ui_switch","z":"31310aa3d904bd85","name":"ON/OFF Batterie1","label":"","tooltip":"","group":"3a8c8c9c4f3913c6","order":1,"width":2,"height":2,"passthru":true,"decouple":"false","topic":"topic","topicType":"msg","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","animate":false,"className":"","x":430,"y":560,"wires":[["fbedc64547f3770b","f060b697eb462e23","a9069538da1400a4"]]},{"id":"9594ad5810786ff5","type":"inject","z":"31310aa3d904bd85","name":"","props":[{"p":"payload"}],"repeat":"1","crontab":"","once":true,"onceDelay":"2","topic":"","payload":"","payloadType":"date","x":210,"y":480,"wires":[["19b53ac4ed16456b","ea78fc078b1dee1d","d6032a30ec970757","a2be8f555fd268d2"]]},{"id":"3451910c0441fd74","type":"ui_slider","z":"31310aa3d904bd85","name":"Slider Batterie","label":"min Temp","tooltip":"","group":"3a8c8c9c4f3913c6","order":7,"width":0,"height":0,"passthru":true,"outs":"end","topic":"slider","topicType":"msg","min":"0","max":"25","step":"1","className":"","x":620,"y":720,"wires":[["458024ba83f9ed90"]]},{"id":"ed3f9e9e8c521b3a","type":"link out","z":"31310aa3d904bd85","name":"Relay","mode":"link","links":["c698c6e8.416b58"],"x":1035,"y":460,"wires":[]},{"id":"9c9e3296a8e01b3d","type":"function","z":"31310aa3d904bd85","name":"check hysteresis","func":"var min = global.get(\"minbat\");\nvar temp = global.get(\"valid_BMStemp\");\nvar hysteresis = 0.5;\n\nif (temp >= (min + hysteresis)) {\n    msg.payload = false;\n    return msg;\n}\nelse if (temp <= (min)) {\n    msg.payload = true;\n    return msg;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":830,"y":500,"wires":[["ed3f9e9e8c521b3a","ae2adf5a369e72f6"]]},{"id":"458024ba83f9ed90","type":"function","z":"31310aa3d904bd85","name":"set Global","func":"global.set(\"minbat\", msg.payload);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":850,"y":720,"wires":[[]]},{"id":"19b53ac4ed16456b","type":"function","z":"31310aa3d904bd85","name":"Get minBatt","func":"msg.payload = global.get(\"minbat\");\n\nreturn msg;\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":430,"y":720,"wires":[["3451910c0441fd74"]]},{"id":"fbedc64547f3770b","type":"switch","z":"31310aa3d904bd85","name":"","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":630,"y":520,"wires":[["9c9e3296a8e01b3d"],["ae2adf5a369e72f6","ed3f9e9e8c521b3a"]]},{"id":"ae2adf5a369e72f6","type":"ui_switch","z":"31310aa3d904bd85","name":"LED","label":"","tooltip":"","group":"3a8c8c9c4f3913c6","order":3,"width":1,"height":1,"passthru":false,"decouple":"true","topic":"topic","topicType":"msg","style":"","onvalue":"true","onvalueType":"bool","onicon":"fa-fire fa-2x","oncolor":"Red","offvalue":"false","offvalueType":"bool","officon":"fa-fire fa-2x","offcolor":"Grey","animate":true,"className":"","x":1050,"y":520,"wires":[[]]},{"id":"4c73ae19818b1739","type":"comment","z":"31310aa3d904bd85","name":"Batterie Frostschutz","info":"","x":210,"y":360,"wires":[]},{"id":"d6032a30ec970757","type":"function","z":"31310aa3d904bd85","name":"get global bms1 temp","func":"if (isNaN(global.get(\"BMStemp\")) == true) /* => is NOT a number*/ {\n    return null\n}\nelse {\n    global.set(\"valid_BMStemp\", Number(global.get(\"BMStemp\")))\n    msg.payload = global.get(\"valid_BMStemp\")\n    return msg\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":500,"y":360,"wires":[["07516df5d0112f18"]]},{"id":"f060b697eb462e23","type":"ui_switch","z":"31310aa3d904bd85","name":"LED on/off","label":"1","tooltip":"","group":"3a8c8c9c4f3913c6","order":4,"width":1,"height":2,"passthru":false,"decouple":"true","topic":"topic","topicType":"msg","style":"","onvalue":"true","onvalueType":"bool","onicon":"radio_button_checked","oncolor":"lightGreen","offvalue":"false","offvalueType":"bool","officon":"radio_button_unchecked","offcolor":"Grey","animate":false,"className":"","x":630,"y":460,"wires":[[]]},{"id":"a2be8f555fd268d2","type":"function","z":"31310aa3d904bd85","name":"get global bms2 temp","func":"if (isNaN(global.get(\"BMStemp_2\")) == true) /* => is NOT a number*/ {\n    return null\n}\nelse {\n    global.set(\"valid_BMStemp_2\", Number(global.get(\"BMStemp_2\")))\n    msg.payload = global.get(\"valid_BMStemp_2\")\n    return msg\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":500,"y":400,"wires":[["9201b609a2b5ca41"]]},{"id":"9201b609a2b5ca41","type":"ui_text","z":"31310aa3d904bd85","group":"3a8c8c9c4f3913c6","order":5,"width":3,"height":1,"name":"IstTemp Batterie","label":"Beifahrer","format":"{{msg.payload}}°C","layout":"row-spread","className":"","x":700,"y":260,"wires":[]},{"id":"7cf08ad2140b2323","type":"link out","z":"31310aa3d904bd85","name":"Relay","mode":"link","links":["f14867fc.930ab8"],"x":1035,"y":580,"wires":[]},{"id":"cfc10f0c160f8c87","type":"function","z":"31310aa3d904bd85","name":"check hysteresis","func":"var min = global.get(\"minbat\");\nvar temp = global.get(\"valid_BMStemp_2\");\nvar hysteresis = 0.5;\n\nif (temp >= (min + hysteresis)) {\n    msg.payload = false;\n    return msg;\n}\nelse if (temp <= (min)) {\n    msg.payload = true;\n    return msg;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":830,"y":620,"wires":[["7cf08ad2140b2323","1144ff827ce3ec49"]]},{"id":"a9069538da1400a4","type":"switch","z":"31310aa3d904bd85","name":"","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":630,"y":640,"wires":[["cfc10f0c160f8c87"],["1144ff827ce3ec49","7cf08ad2140b2323"]]},{"id":"1144ff827ce3ec49","type":"ui_switch","z":"31310aa3d904bd85","name":"LED","label":"","tooltip":"","group":"3a8c8c9c4f3913c6","order":6,"width":1,"height":1,"passthru":false,"decouple":"true","topic":"topic","topicType":"msg","style":"","onvalue":"true","onvalueType":"bool","onicon":"fa-fire fa-2x","oncolor":"Red","offvalue":"false","offvalueType":"bool","officon":"fa-fire fa-2x","offcolor":"Grey","animate":true,"className":"","x":1050,"y":640,"wires":[[]]},{"id":"07516df5d0112f18","type":"ui_text","z":"31310aa3d904bd85","group":"3a8c8c9c4f3913c6","order":2,"width":3,"height":1,"name":"IstTemp Batterie","label":"Fahrer","format":"{{msg.payload}}°C","layout":"row-spread","className":"","x":700,"y":200,"wires":[]},{"id":"3a8c8c9c4f3913c6","type":"ui_group","name":"Batterie-Frostschutz","tab":"ae9dd05113ee2414","order":3,"disp":true,"width":7,"collapse":false,"className":""},{"id":"ae9dd05113ee2414","type":"ui_tab","name":"Temperatur Steuerung","icon":"mi-device_thermostat","order":2,"disabled":false,"hidden":false}]
1 Like