# Simple ECMA script to control rollershutter with window sensor

**URL:** <https://community.openhab.org/t/simple-ecma-script-to-control-rollershutter-with-window-sensor/114787>\
**Category:** Solutions\
**Created:** [January 19, 2021, 9:55pm UTC](https://community.openhab.org/t/simple-ecma-script-to-control-rollershutter-with-window-sensor/114787 "2021-01-19T21:55:27Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![papaPhiL](https://community.openhab.org/letter_avatar_proxy/v4/letter/p/e99b99/32.png) [@papaPhiL](https://community.openhab.org/u/papaPhiL)\
**Post date:** [January 19, 2021, 9:55pm UTC](https://community.openhab.org/t/simple-ecma-script-to-control-rollershutter-with-window-sensor/114787/1 "2021-01-19T21:55:27Z")

</div>

When I open the window (or door) that has roller shutters down, I want that roller shutter to go up. And when I close, it should go back to where it was. In Germany, we have a 3rd state (“Gekippt”-“Tilted”).

Not rocket sience here, but as I am new to javascript and syntax, I thought this might help someone get started.

Model is:

 ![image](https://community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/original/3X/a/a/aa03c8b6671efb609ef0f279455441bd66e68b03.png)  
important items:  
i have non-semantic group with all the window sensors and a non-semantic item that remembers the last position of the roller shutter.

And here is the script:

```auto
var logger = Java.type("org.slf4j.LoggerFactory").getLogger('org.openhab.rule.' + ctx.ruleUID);
var triggeringSensor = itemRegistry.getItem( event.itemName );
//var triggeringSensor = itemRegistry.getItem( 'WohnzimmerFensterMitteSensor_Position' )
var related_rollershutter = itemRegistry.getItem( triggeringSensor.getName().replace('Sensor_','Rollladen_') );
var related_rollershutter_lastposition = itemRegistry.getItem( related_rollershutter.getName().replace('Rollladen_','Rollladen_Last') );
switch (triggeringSensor.getState().toString()) {
  case 'Offen':
    events.sendCommand(related_rollershutter_lastposition, (related_rollershutter.getState().toString() ) );
    if ( parseInt( related_rollershutter.getState() ) > 0 ){
      events.sendCommand(related_rollershutter, 'UP');
    }
    break;
  case 'Geschlossen':
      events.sendCommand(related_rollershutter, related_rollershutter_lastposition.getState().toString() );
    break;
  case 'Gekippt':
    events.sendCommand(related_rollershutter_lastposition, related_rollershutter.getState().toString() ) ;
    if ( parseInt( related_rollershutter.getState() ) > 80 ){
      events.sendCommand(related_rollershutter, '80' );
    }
    break;
}

```

it is important to double check the naming on the items → I use a “replace” function to link the sensor item (that triggers the rule) to the rollershutter item that change the pysical position.  
ErdgeschossFensterHintenTuereSensor\_Position  
ErdgeschossFensterHintenTuereRollladen\_Position

 ![image](https://community-openhab-org.s3.dualstack.eu-central-1.amazonaws.com/original/3X/2/2/225373ddb72829ab84171eba7ad93297a90f5756.png)

That’s it.  
Greetings  
PhiL
