- Platform information:
- Hardware: Pi4
- OS: Raspbian
- Java Runtime Environment: java version “11.0.16" 2022-07-19
- openHAB version: 3.4.0 Stable
I just searched the forum and tried to figure out how I can write the the base64 encoded image from my doorbird to disk in jpg format.
I would like to do that in ecma-2021 scripting. Maybe I got confused between solutions in Java, JavaScript and others and mixed up everything.
The out commented var CamaeraImage, I copied directly from the API, using this the JPG File is written correctly. Obviously I have problems to get the right string from the item and convert it correctly.
Any hint how i have to exctract the correcet base64 image string and convert it, is highly appriciated
configuration: {}
triggers:
- id: "2"
configuration:
thingUID: doorbird:d101:DoorbirdD101
channelUID: doorbird:d101:DoorbirdD101:doorbell
type: core.ChannelEventTrigger
conditions: []
actions:
- inputs: {}
id: "1"
configuration:
type: application/javascript;version=ECMAScript-2021
script: >+
var JDatatypeConverter = Java.type('javax.xml.bind.DatatypeConverter');
var JFile = Java.type('java.io.File');
var JFileOutputStream = Java.type('java.io.FileOutputStream');
var JOutputStream = Java.type('java.io.OutputStream');
var CameraImage = items.getItem("DoorbirdDoorbellD101_Image").state.toString();
//var CameraImage = "/9j/4AAQSkZJRgABA.........";
var data = JDatatypeConverter.parseBase64Binary(CameraImage);
var f = new JFile("/etc/openhab/html/" + "DoorbirdDoorbellD101_Image" + ".jpg");
var os = new JFileOutputStream(f);
os.write(data);
//os.write(CameraImage);
os.close();
console.log(CameraImage);
console.log(data);
type: script.ScriptAction
I get this log, i was expecting the string as it is in the API request.
2022-12-25 11:09:28.321 [INFO ] [mation.script.ui.Doorbird_Save_Image] - raw type (image/jpeg): 22419 bytes
2022-12-25 11:09:28.323 [INFO ] [mation.script.ui.Doorbird_Save_Image] - [B@1b2c771