Sorry for the late reply, i was a bit absent.
17-02-28 21:50:59 DEBUG (Thread-13) [homeassistant.components.mysensors] Update sensor_update: node 24
17-02-28 21:50:59 INFO (Thread-13) [homeassistant.components.mysensors] No sketch_name: node 24
17-02-28 21:50:59 INFO (Thread-13) [homeassistant.components.mysensors] No sketch_name: node 24
17-02-28 21:50:59 INFO (Thread-13) [homeassistant.components.mysensors] No sketch_name: node 24
17-02-28 21:50:59 INFO (Thread-13) [homeassistant.components.mysensors] No sketch_name: node 24
17-02-28 21:50:59 INFO (Thread-13) [homeassistant.components.mysensors] No sketch_name: node 24
17-02-28 21:50:59 INFO (Thread-13) [homeassistant.components.mysensors] No sketch_name: node 24
17-02-28 21:50:59 DEBUG (Thread-13) [mysensors.mysensors] n:0 c:0 t:3 s:9 p:read: 24-24-0 s=255,c=3,t=6,pt=1,l=1,sg=0:0
17-02-28 21:50:59 DEBUG (Thread-13) [mysensors.mysensors] n:0 c:0 t:3 s:9 p:send: 0-0-24-24 s=255,c=3,t=6,pt=0,l=1,sg=0,st=ok:M
17-02-28 21:51:01 DEBUG (Thread-13) [mysensors.mysensors] n:0 c:0 t:3 s:9 p:read: 24-24-0 s=255,c=3,t=11,pt=0,l=4,sg=0:A SP
17-02-28 21:51:01 DEBUG (Thread-13) [homeassistant.components.mysensors] Update sensor_update: node 24
17-02-28 21:51:01 DEBUG (Thread-13) [mysensors.mysensors] n:0 c:0 t:3 s:9 p:read: 24-24-0 s=255,c=3,t=12,pt=0,l=3,sg=0:1.0
17-02-28 21:51:01 DEBUG (Thread-13) [homeassistant.components.mysensors] Update sensor_update: node 24
17-02-28 21:51:01 DEBUG (Thread-13) [mysensors.mysensors] n:0 c:0 t:3 s:9 p:read: 24-24-0 s=10,c=0,t=3,pt=0,l=0,sg=0:
17-02-28 21:51:01 DEBUG (Thread-13) [homeassistant.components.mysensors] Update sensor_update: node 24
17-02-28 21:51:01 DEBUG (Thread-13) [mysensors.mysensors] n:0 c:0 t:3 s:9 p:read: 24-24-0 s=255,c=3,t=0,pt=1,l=1,sg=0:100
17-02-28 21:51:01 DEBUG (Thread-13) [homeassistant.components.mysensors] Update sensor_update: node 24
17-02-28 21:51:01 DEBUG (Thread-13) [mysensors.mysensors] n:0 c:0 t:3 s:9 p:read: 24-24-0 s=10,c=2,t=2,pt=0,l=0,sg=0:
I miss the add entity line, like for the other sensor nodes:
Adding new devices: <Entity S SP 6 1: None>
Config as usual:
gateways:
- device: '/dev/ttyUSB0'
persistence_file: '/root/.homeassistant/mysensors/mysensors.json'
baud_rate: 115200
debug: true
persistence: true
version: '1.5'
#optimistic: 'true'
Gateway sketch should be 1.6, i want to update soon to 2.1 but as i have plenty of nodes and no OTA intentionally running it will take a while and especially because of a lack of time.
Thats the node sketch:
/**
* MySensors RoomSensor with piezo alarm for audio feedback, like weather alarm when there's a huricane alarm.
* The alarm is just a standard alarm in your Home Automation controller.
*
* Version 1.0
* Created 25-10-2015
* release date 25-10-2015
* Author by Theo
*
*
* Parts used:
* - Arduino ProMini 3.3V
* - 3V Piezo buzzer (is actually surprisingly loud for such a tiny PIEZO), You can greatly improve on the volume by wrapping a paper tube around the piezo
*/
/**
* Include all needed libraries.
*/
#include <MySensor.h> // The core of this Sketch. Enables communication from the radio to the MySensors gateway
#include <SPI.h> // Needed by the MySensors Radio, it communicates with the Arduino by SPI
/**
* Define the child ID's of the supported sensors.
*/
#define SIRENE_CHILD_ID 10 // The child ID of the sirene as presented to the Domotica Controller
/**
* Declare constants for the PIN's we use in this sketch.
*/
#define PIEZO_PIN 8 // The arduino pin to which the piezo buzzer is attached
/**
* Declare other constants used by the sketch
*/
#define PIEZO_ON_DURATION 600 // The period the piezo makes a sound when the alarm is on and snooze mode is off.
#define PIEZO_OFF_DURATION 500 // The silent period when the alarm is on and snooze mode is off
/**
* Section for MySensors specific variables and declarations.
*/
#define SN "A SP" // The name of the sketch as being presented to the MySensors gateway. B.t.w. current Domoticz version ignores it
#define SV "1.0" // The version of the sketch as being presented to the MySensors gateway. B.t.w. current Domoticz version ignores it
MySensor gw; // You'll need this object for communication from an to the Gateway. Contains all logic inl the Radio communication
MyMessage sireneMsg( SIRENE_CHILD_ID, V_STATUS ); // trying to figure out what type type to use to make it known as a siren..???
// Message for sending the alarm on/off state to the MySensors gateway
/**
* Declare variables used by the Sketch
*/
boolean alarmOn = false; // alarm state indicator. False meaning off, true meaning we're in business.
unsigned long nextPiezoEvent = 0; // The next timestamp the piezo sound has to be turned on or off. We'll use the arduino's internal clock for this
boolean piezoOn = false; // indicator whether the sound is on or off during the alarm
/**
* Initialize everything we need before we can start the Sketch:
* - setup MySensors communication
* - present the child id's to the MySensors gateway
* - declare pin modes and initialize the debouncer
*/
void setup() {
#ifdef DEBUG // turn on the Serial monitor if #define DEBUG is uncommented in MyConfig.h (MySensors library)
Serial.begin( 115200 ); // only debug to serial monitor during development
#endif
// setup a connection to the MySensor's gateway and request an ID if we do not have one yet.
gw.begin(incomingMessage);
gw.sendSketchInfo(SN, SV);
#ifdef DEBUG // Print some debug info
Serial.println( "Radio is connect right." );
#endif
// present the children to the gateway
gw.present(SIRENE_CHILD_ID, S_LIGHT); // S_LIGHT is not correct
gw.sendBatteryLevel(100); // Let the Domotica controller no that we're a 100% powered sensor.
gw.request(SIRENE_CHILD_ID, V_STATUS); // request current state. An alarm might be active.
// setup the pin's used by this Sketch
pinMode( PIEZO_PIN, OUTPUT);
}
/**
* Piezo event has been triggered, depending on the current sirence state we need to make some nois or turn it off.
* We'll determine the timestamp of the next piezo event as well
*/
void handlePiezoEvent() {
unsigned long curMS = millis();
if ( piezoOn == true ) { // Piezo is currently on, we need to switch it of
digitalWrite( PIEZO_PIN, 0 );
nextPiezoEvent = curMS + PIEZO_OFF_DURATION;
piezoOn = false;
}
else { // Piezo is off, time to make some noise ;-)
analogWrite( PIEZO_PIN, 255 );
nextPiezoEvent = curMS + PIEZO_ON_DURATION;
piezoOn = true;
}
}
/**
* Main loop of the sketch.
*/
void loop() {
if ( alarmOn == true ) { // Alarm handling code
if ( millis() >= nextPiezoEvent ) { // check if the piezo has to be turned on or off.
handlePiezoEvent();
}
}
gw.wait( 5 ); // Just wait 50s not really necessary but give the arduino some rest. It's working really hard for us and we should be grateful for that.
// besides it calls gw.process() which we need for incomming messages.
}
/**
* Call back handler, for handling messages send by the MySensors gateway
*/
void incomingMessage(const MyMessage &message) {
if ( message.type == V_STATUS ) { // Check if the Gateway has reported an Alarm_type message (should be an V_ALARM as off the next Domoticz release.
if ( message.sensor == SIRENE_CHILD_ID ) { // Is the message for our alarm child?
alarmOn = message.getBool(); // get alarm value sent by Domotica controller
#ifdef DEBUG // print some debug info
Serial.println( "Sirene state changed to " + (String)alarmOn );
#endif
if ( alarmOn == false ) { // turn off the alarm as asked by the Domotica controller
analogWrite( PIEZO_PIN, 0 ); // turn off the noise
}
else { // Schedule the next piezo event
nextPiezoEvent = 0;
piezoOn = false;
}
}
}
}
I changed already a couple Values in the sketch for and backward, but it didn't change anything.
thank you for your help.