How do I turn a Pin to HIGH from controller?
-
I thought it would be really easy but I can't understand how to do this simple task. I have a Led connected so if Pin 9 = High it turns on.
But how can I write the sketch so that I can control the Led from my controller (domoticz) ?
I have started with this by modifying the motion-sketch:
#define DIGITAL_INPUT_SENSOR 3 // The digital input you attached your motion sensor. (Only 2 and 3 generates interrupt!) #define LIGHT_PIN 9 #define CHILD_ID 1 // Id of the sensor child #define SECONDARY_CHILD_ID 4 // Initialize motion message MyMessage msg(CHILD_ID, V_TRIPPED); MyMessage msg2(SECONDARY_CHILD_ID, V_LIGHT); void setup() { pinMode(DIGITAL_INPUT_SENSOR, INPUT); // sets the motion sensor digital pin as input pinMode(LIGHT_PIN, OUTPUT); } void presentation() { // Send the sketch version information to the gateway and Controller sendSketchInfo("Motion Sensor ikea", "1.0"); // Register all sensors to gw (they will be created as child devices) present(CHILD_ID, S_MOTION); present(SECONDARY_CHILD_ID, S_LIGHT); } }
But nothing happens when I press the on/off switch that appears in domoticz witch kind of makes sense as I guess I need to add something in the loop. But how do do that? Are there some kind of " if [message-from-controller] then do this - command?
And why does not the PIR show up in domoticz? I have only added a few lines, does that disable the original PIR code in someway.
-
@Cliff-Karlsson you need to manage incoming message from gateway/controller : (function void receive(const MyMessage &message) { ...}) and to chage pin state according message .
See this example.And why does not the PIR show up in domoticz?
I thing that domoticz needs at least 1 data message to show device
-
There is an example that exactly gives you what you need. The Relay example is the structure of what you need to use.