For the most part the Python code will use the same over all approach as JavaScript. Get the state sing items
and create QuantityTypes for constants (no |
notation is available). For example,
var incC = items["tempItemC"] + new QuantityType("1 °C");
in JavaScript would be
incC = items["tempItemC"] + new QuantityType("1 °C")
in Python.
JavaScript
logger.info("state contains " + items["tempItemF].toString());
JavaScript
if(items["tempItemC.state"] > new QuantityType("5 °C")) {
if(items["tempItemC"] > items["tempItemF"]){
// JavaScript is much better at casting correctly so you don't need the `as` example.
JavaScript
var numericC = items["tempItemC"].as(DecimalType); // I don't know for sure that works
var numericC = items["tempItemC"].toBigDecimal();
var numericC = items["tempItemC"].intValue(); // floatValue and doubleValue are also supported
var numericF = items["tempItemF"].toBigDecimal();
var numericToC = items["tempItemF"].toUnit("°C").toBigDecimal();
JavaScript
var units = items["tempItemF"].getUnit().toString();
JavaScript
var avg = (items["tempItemC"] + items["tempItemF"]) / 2;
var avgC = ((items["tempItemC"] + items["tempItemF"]) / 2).toUnit("°C");
var avgF = ((items["tempItemC"] + items["tempItemF"]) / 2).toUnit("°F");
JavaScript
var incC = items["tempItemC"] + new QuantityType("1 °C");
var incX = items["tempItemF"] + new QuantityType("1 °C");
var incU = items["tempItemF"].toUnit("°C") + new QuantityType("1 °C");
var incA = (items["tempItemF"].toUnit("°C") + new QunatityType("1 °C")).toUnit(items["tempItemF"].getUnit());
JavaScript
var incMC = items["tempItemC"] + new QuantityType("2 °C") - new QuantityType("0 °C");
var incMF = items["tempItemF"] + new QuantityType("2 °C") - new QuantityType("0 °C");
var incMK = items["tempItemK"] + new QuantityType("2 °C") - new QuantityType("0 °C");
JavaScript
var message = "Temperature is " + items["tempItemC"].format("%.1f%unit%");
Thanks for posting. I think this is an excellent candidate for inclusion in the docs.