[SOLVED (but can somebody explain why)]Not getting any incoming messages...
-
Hi all
I am trying to make a controller for my blinds using a 2 channel relay. I am using MySensors 1.5 and arduino 1.6.5b as dev env.
I am using the following sketch
#include <MySensor.h> #include <SPI.h> #define UP_PIN 3 #define DOWN_PIN 4 #define CHILD_ID 250 MySensor gw; void setup() { gw.begin(incomingMessage, AUTO, false); gw.sendSketchInfo("Blinds", "1.0"); gw.present(CHILD_ID, S_COVER,"Blinds",true); pinMode(UP_PIN, OUTPUT); pinMode(DOWN_PIN, OUTPUT); digitalWrite(UP_PIN, 0); digitalWrite(DOWN_PIN, 0); Serial.println( "Node ready to receive messages..." ); } void loop() { gw.process(); } void incomingMessage(const MyMessage &message) { Serial.println(message.data); if (message.type==V_UP) { digitalWrite(UP_PIN,1); gw.sleep(15000); digitalWrite(UP_PIN,0); Serial.println("opening up covers"); } else if (message.type==V_DOWN) { digitalWrite(DOWN_PIN,1); gw.sleep(15000); digitalWrite(DOWN_PIN,0); Serial.println("closing up covers"); } else if (message.type==V_STOP) { digitalWrite(UP_PIN,0); digitalWrite(DOWN_PIN,0); Serial.println("stopping covers"); } }In the gateway I get
0;0;3;0;9;read: 250-250-0 s=255,c=0,t=17,pt=0,l=3,sg=0:1.5 250;255;0;0;17;1.5 0;0;3;0;9;read: 250-250-0 s=255,c=3,t=6,pt=1,l=1,sg=0:0 250;255;3;0;6;0 0;0;3;0;9;read: 250-250-0 s=255,c=3,t=11,pt=0,l=6,sg=0:Blinds 250;255;3;0;11;Blinds 0;0;3;0;9;read: 250-250-0 s=255,c=3,t=12,pt=0,l=3,sg=0:1.0 250;255;3;0;12;1.0 0;0;3;0;9;read: 250-250-0 s=250,c=0,t=5,pt=0,l=6,sg=0:Blinds 0;0;3;0;9;send: 0-0-250-250 s=250,c=0,t=5,pt=0,l=6,sg=0,st=ok:Blinds 250;250;0;0;5;BlindsI can see the blinds coming up in Domoticz and I can even send data to it (vtype 30,29 and 31) yet nothing is receiving the incoming message (The controller is still connected to my laptop so I can monitor them)
Any clues why this goes wrong?
Kind regards
Steve
-
Hek I just updated the first post a bit (had some issues there I noticed)
this is the node log
send: 250-250-0-0 s=255,c=0,t=17,pt=0,l=3,sg=0,st=ok:1.5
send: 250-250-0-0 s=255,c=3,t=6,pt=1,l=1,sg=0,st=ok:0
sensor started, id=250, parent=0, distance=1
send: 250-250-0-0 s=255,c=3,t=11,pt=0,l=6,sg=0,st=ok:Blinds
send: 250-250-0-0 s=255,c=3,t=12,pt=0,l=3,sg=0,st=ok:1.0
send: 250-250-0-0 s=250,c=0,t=5,pt=0,l=6,sg=0,st=ok:Blinds
Node ready to receive messages...
read: 0-0-250 s=250,c=0,t=5,pt=0,l=6,sg=0:Blinds
BlindsUPDATE: I am a bit further. I can now send one command to the sensor, yet after that it fails. The relay will be enable, but another command fails.
0;0;3;0;9;send: 0-0-250-250 s=10,c=1,t=30,pt=0,l=0,sg=0,st=ok: 0;0;3;0;9;read: 1-3-0 s=0,c=1,t=0.0 0;0;3;0;9;send: 0-0-250-250 s=10,c=1,t=29,pt=0,l=0,sg=0,st=fail:As you can see the V_CLOSE works, but the next command fails when I use gw.sleep. When I reset the sensor or use gw.wait they work again.
I copied the latest sketch below
#include <MySensor.h> #include <SPI.h> #define UP_PIN 3 #define DOWN_PIN 4 #define CHILD_ID 250 MySensor gw; void setup() { gw.begin(incomingMessage, AUTO, false); gw.sendSketchInfo("Blinds", "1.0"); gw.present(CHILD_ID, S_COVER,"Blinds",true); pinMode(UP_PIN, OUTPUT); pinMode(DOWN_PIN, OUTPUT); digitalWrite(UP_PIN, 0); digitalWrite(DOWN_PIN, 0); Serial.println( "Node ready to receive messages..." ); } void loop() { gw.process(); } void incomingMessage(const MyMessage &message) { Serial.println(message.data); if (message.type==V_UP) { Serial.println("opening up covers"); digitalWrite(UP_PIN,1); gw.wait(15000); digitalWrite(UP_PIN,0); } else if (message.type==V_DOWN) { Serial.println("closing up covers"); digitalWrite(DOWN_PIN,1); gw.wait(15000); digitalWrite(DOWN_PIN,0); } else if (message.type==V_STOP) { Serial.println("stopping covers"); digitalWrite(UP_PIN,0); digitalWrite(DOWN_PIN,0); } } -
Hey Hek,
there is currently nothing connected to them. How come the wait works but the sleep doesn't? Does it mean it does no longer wake up?
Kind regards
-
Hey Hek,
there is currently nothing connected to them. How come the wait works but the sleep doesn't? Does it mean it does no longer wake up?
Kind regards
@Steve-Caster how many time do you have between the V_DOWN and V_UP. Is it lower than 15s ?
-
Hi, I am waiting for the relay to stop and next try to use V_UP or V_DOWN. When I use gw.wait, it works fine and I can interrupt the motion by using V_STOP.
-
Hi, I am waiting for the relay to stop and next try to use V_UP or V_DOWN. When I use gw.wait, it works fine and I can interrupt the motion by using V_STOP.
@Steve-Caster so is everything good or do you have another question/issue ?
-
@fets I am good :) Thank for the support :)
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login