In 1.4b1 1.4b1 (18848a2) Scene Controller support is present, and works fine
Present with:
gw.present(CHILD_ID, S_SCENE_CONTROLLER);
And it shows as a generic scene controller in Vera:
The sketch to support a 4 button wall controller:
// Simple SceneController
#include <MySensor.h>
#include <SPI.h>
#include <Bounce2.h>
#define CHILD_ID 3
// PIN for the buttons
byte buttons[] = {3, 4, 5, 6};
#define NUMBUTTONS sizeof(buttons)
byte pressed[NUMBUTTONS], justpressed[NUMBUTTONS], justreleased[NUMBUTTONS];
MySensor gw;
Bounce debouncer[NUMBUTTONS];
int oldValue[NUMBUTTONS];
MyMessage msgOn(CHILD_ID,V_SCENE_ON);
MyMessage msgOff(CHILD_ID,V_SCENE_OFF);
void setup()
{
gw.begin();
/// Make input & enable pull-up resistors on switch pins
for (short i=0; i < NUMBUTTONS; i++){
pinMode(buttons[i], INPUT);
digitalWrite(buttons[i], HIGH);
oldValue[i] = -1;
// After setting up the button, setup debouncer
debouncer[i].attach(buttons[i]);
debouncer[i].interval(5);
}
// Send the Sketch Version Information to the Gateway
gw.sendSketchInfo("LK 4-Tryk", "1.0");
// Register binary input sensor to gw (they will be created as child devices)
gw.present(CHILD_ID, S_SCENE_CONTROLLER);
}
// Check if digital input has changed and send in new value
void loop()
{
for (short i=0; i < NUMBUTTONS; i++){
debouncer[i].update();
// Get the update value
int value = debouncer[i].read();
if (value != oldValue[i]) {
// Send in the new value
if (value==HIGH) {
gw.send(msgOff.set(i));
}
else {
gw.send(msgOn.set(i));
}
oldValue[i] = value;
}
}
}