<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[ASL board for stair lightning meets fhem by using my sensor]]></title><description><![CDATA[<p dir="auto">Hello guys,</p>
<p dir="auto">I am a totally newbie about my senor. It would be nice if I could get a little support/help with my problems.</p>
<p dir="auto">I am trying to use this ASL board: <a href="https://firefly-glow.com/product/asl/" rel="nofollow ugc">link</a></p>
<p dir="auto">It would be great if I can get some infos how the code on the nano sketch and fhem should look like, that I can can trigger/change functions from fhem to the nano/sketch and how can I get an info, when a pir changes a value of a varible in the sketch. Here is the existing code from the ardunio sktech:</p>
<pre><code>#define MY_RADIO_NRF24
#define MY_REPEATER_FEATURE
#include &lt;SPI.h&gt;
#include &lt;MySensors.h&gt;
boolean sensor;
boolean MysenSor;


#define SHIFTPWM_NOSPI                            
const int ShiftPWM_dataPin = 6;                   //  Do not change!!!
const int ShiftPWM_clockPin = 7;                  //  Do not change!!!
const int ShiftPWM_latchPin = 8;                  //  Do not change!!!
#include &lt;ShiftPWM.h&gt;
const bool ShiftPWM_invertOutputs = false;         
const bool ShiftPWM_balanceLoad = false;         
#define sensorLight_PIN A0                        // Light sensor  Do not change!!!
#define sensorBottom_PIN A1                       // Bottom sensor Do not change!!!                     
#define sensorUpper_PIN A2                        // Upper sensor  Do not change!!!
unsigned char maxBrightness = 100;                // Here you set the number of brightness levels. Adjust(0-255)!!
unsigned char pwmFrequency = 75;                  // These values affect the load of ShiftPWM 
unsigned int numRegisters = 3;                    // Number of shift registers Do not change!!!
unsigned int numOutputs = numRegisters * 8;
unsigned int numRGBLeds = numRegisters * 8 / 3;
boolean sensorUpperActive;
boolean sensorBottomActive;
int numberOfstairs=6;                           // Setup Number of Your stairs. Adjust up to 24 !!!!
int pause=30000;                                    // Setup delay ON/OFF  Adjust!!! 
byte faidoutSpeed=5;                              // How fast to fadeout     Adjust!!!
byte faidinSpeed=5;                               // How fast to fadein      Adjust!!!


void before() {
    MysenSor=loadState(sensor);                   // Set relay to last known state (using eeprom storage) 
 }
  
void presentation() { 
     present(sensor, S_LIGHT);
 }

void receive(const MyMessage &amp;message) {          // We only expect one type of message from controller. But we better check anyway.
                                                     
  if (message.type==V_LIGHT) {
    MysenSor=message.getBool();
     // Store state in eeprom
     saveState(message.sensor, message.getBool());
  }
}
void setup() {


  
  ShiftPWM.SetAmountOfRegisters(numRegisters);
  ShiftPWM.Start(pwmFrequency, maxBrightness);
  pinMode(sensorBottom_PIN, INPUT);
  pinMode(sensorUpper_PIN, INPUT);
  pinMode(sensorLight_PIN, INPUT);

    Serial.begin(9600);
  Serial.println("setup");
  
}


void loop() {

                               
  if  ( MysenSor!=0) {                             
                                                   
    BottomTriggerFire();                           //Checking bottom sensor
    UpperTrigerFire();                             //Checking upper sensor
    switchONOFFfromdown();                         //Stairs on/off from down to up
    switchONOFFfromUp();                           //Stairs on/off from up to down
  }
}

void BottomTriggerFire() {

  if (analogRead (sensorBottom_PIN) &gt;= 550 ) {      //Depend of the sensor type, if 0 when triggered ,than change the comparison to opposite value.
    sensorBottomActive = true;
  }
}

void UpperTrigerFire() {

  if (analogRead(sensorUpper_PIN) &gt;= 550) {          //Depend of the sensor type, if 0 when triggered ,than change the comparison to opposite value.
    sensorUpperActive = true;
  }
}


void switchONOFFfromdown() {
  if (sensorBottomActive==true &amp;&amp; sensorUpperActive==false){
    
 
        for(int i=0; i&lt;numberOfstairs; i++){
          for(int a=0; a&lt;maxBrightness; a++){
          ShiftPWM.SetOne(i,a);
          delay(faidoutSpeed);
           }
          }
          
        delay(pause); 

        for(int i=0; i&lt;numberOfstairs; i++){
          for(int a=maxBrightness;a&gt;=0;a--){
          ShiftPWM.SetOne(i,a);
          if(a==0){
          ShiftPWM.SetOne(i,0);  
          }
          delay(faidinSpeed);
           }
          }
        sensorBottomActive = false ;  
  }
}
         
 void switchONOFFfromUp () {
    if ( sensorUpperActive==true &amp;&amp; sensorBottomActive==false) {


        for(int i=numberOfstairs; i&gt;=0; i--){
          Serial.print(i);
          for(int a=0; a&lt;maxBrightness; a++){
          ShiftPWM.SetOne(i,a);
          delay(faidoutSpeed);
           }
          }
          
        delay(pause); 

          
        for(int i=numberOfstairs; i&gt;=0; i--){
          //Serial.print(i);
          for(int a=maxBrightness;a&gt;=0;a--){
          ShiftPWM.SetOne(i,a);
          if(a==0){
          ShiftPWM.SetOne(i,0);  
          }
          delay(faidinSpeed);
           }
          }
        sensorUpperActive= false ;  
  }
}
</code></pre>
<p dir="auto">Here are my FHEM listings:</p>
<pre><code>defmod MySensor MYSENSORS 192.168.0.68:5003
attr MySensor autocreate 1
attr MySensor group Sensorik
attr MySensor icon cul
attr MySensor room Actions,MySensor,System
attr MySensor stateFormat connection
attr MySensor verbose 4

setstate MySensor startup complete
setstate MySensor 2019-08-17 20:25:49 connection startup complete
setstate MySensor 2019-08-17 20:30:50 heartbeat alive
setstate MySensor 2019-08-17 20:25:49 state opened
</code></pre>
<p dir="auto">Next:</p>
<pre><code>defmod MYSENSOR_0 MYSENSORS_DEVICE 0
attr MYSENSOR_0 IODev MySensor
attr MYSENSOR_0 mode repeater
attr MYSENSOR_0 requestAck 1
attr MYSENSOR_0 room MySensor
attr MYSENSOR_0 version 2.2.0-beta

setstate MYSENSOR_0 2019-08-17 20:30:50 heartbeat alive
</code></pre>
<p dir="auto">and last:</p>
<pre><code>defmod MYSENSOR_1 MYSENSORS_DEVICE 1
attr MYSENSOR_1 IODev MySensor
attr MYSENSOR_1 mapReading_power 0 power
attr MYSENSOR_1 mapReading_status 0 status
attr MYSENSOR_1 mode repeater
attr MYSENSOR_1 requestAck 1
attr MYSENSOR_1 room MySensor
attr MYSENSOR_1 setReading_.+ luxwert
attr MYSENSOR_1 setReading_power 1
attr MYSENSOR_1 setReading_status off,on
attr MYSENSOR_1 version 2.1.1

setstate MYSENSOR_1 routingtable cleared
setstate MYSENSOR_1 2017-06-18 11:22:01 parentId 0
setstate MYSENSOR_1 2017-06-17 19:09:48 power 1
setstate MYSENSOR_1 2017-06-17 19:11:22 state routingtable cleared
setstate MYSENSOR_1 2017-06-18 11:59:13 status on
</code></pre>
<p dir="auto">It would be great if I can some help/support :-)</p>
<p dir="auto">Greetings<br />
Thomas</p>
]]></description><link>https://forum.mysensors.org/topic/10618/asl-board-for-stair-lightning-meets-fhem-by-using-my-sensor</link><generator>RSS for Node</generator><lastBuildDate>Tue, 21 Jul 2026 07:40:54 GMT</lastBuildDate><atom:link href="https://forum.mysensors.org/topic/10618.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 30 Aug 2019 15:10:58 GMT</pubDate><ttl>60</ttl></channel></rss>