Further reducing the load on the openhab server, I’ve changed above code to just plain write the base64 decoded image to disk without resizing it:
import javax.xml.bind.DatatypeConverter
import java.io.File
import java.io.FileOutputStream
import java.io.OutputStream
rule "SavePicture"
when
Item imgLastGong changed or
Item Frontdoor_state changed to OPEN
then
logDebug("Imagerule", triggeringItem.name)
var String CameraImage = triggeringItem.state.toFullString //Convert image item to base64 encoded string
val String Image64 = CameraImage.split(",").get(1) //Slice the string up to the delimiter ","
var byte[] data = DatatypeConverter.parseBase64Binary(Image64)
try {
var OutputStream os
val time = new DateTime().millisOfDay().getMillis()
var File f = new File("/etc/openhab2/html/" + triggeringItem.name + "_" + time + ".jpg")
os = new FileOutputStream(f)
os.write(data);
os.close();
} catch (IOException e) {
e.printStackTrace();
}
end