Navigation

    • Register
    • Login
    • Search
    • OpenHardware.io
    • Categories
    • Recent
    • Tags
    • Popular
    1. Home
    2. thomas.klein
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    thomas.klein

    @thomas.klein

    0
    Reputation
    1
    Posts
    46
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    thomas.klein Follow

    Best posts made by thomas.klein

    This user hasn't posted anything yet.

    Latest posts made by thomas.klein

    • ASL board for stair lightning meets fhem by using my sensor

      Hello guys,

      I am a totally newbie about my senor. It would be nice if I could get a little support/help with my problems.

      I am trying to use this ASL board: link

      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:

      #define MY_RADIO_NRF24
      #define MY_REPEATER_FEATURE
      #include <SPI.h>
      #include <MySensors.h>
      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 <ShiftPWM.h>
      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 &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) >= 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) >= 550) {          //Depend of the sensor type, if 0 when triggered ,than change the comparison to opposite value.
          sensorUpperActive = true;
        }
      }
      
      
      void switchONOFFfromdown() {
        if (sensorBottomActive==true && sensorUpperActive==false){
          
       
              for(int i=0; i<numberOfstairs; i++){
                for(int a=0; a<maxBrightness; a++){
                ShiftPWM.SetOne(i,a);
                delay(faidoutSpeed);
                 }
                }
                
              delay(pause); 
      
              for(int i=0; i<numberOfstairs; i++){
                for(int a=maxBrightness;a>=0;a--){
                ShiftPWM.SetOne(i,a);
                if(a==0){
                ShiftPWM.SetOne(i,0);  
                }
                delay(faidinSpeed);
                 }
                }
              sensorBottomActive = false ;  
        }
      }
               
       void switchONOFFfromUp () {
          if ( sensorUpperActive==true && sensorBottomActive==false) {
      
      
              for(int i=numberOfstairs; i>=0; i--){
                Serial.print(i);
                for(int a=0; a<maxBrightness; a++){
                ShiftPWM.SetOne(i,a);
                delay(faidoutSpeed);
                 }
                }
                
              delay(pause); 
      
                
              for(int i=numberOfstairs; i>=0; i--){
                //Serial.print(i);
                for(int a=maxBrightness;a>=0;a--){
                ShiftPWM.SetOne(i,a);
                if(a==0){
                ShiftPWM.SetOne(i,0);  
                }
                delay(faidinSpeed);
                 }
                }
              sensorUpperActive= false ;  
        }
      }
      

      Here are my FHEM listings:

      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
      

      Next:

      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
      

      and last:

      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
      

      It would be great if I can some help/support 🙂

      Greetings
      Thomas

      posted in FHEM
      thomas.klein
      thomas.klein