Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Controllers
  3. pimatic
  4. pimatic-mysensors controller plugin

pimatic-mysensors controller plugin

Scheduled Pinned Locked Moved pimatic
controllernode idnrf24l01+mysensorsrasp
92 Posts 23 Posters 56.0k Views 11 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • karl261K Offline
    karl261K Offline
    karl261
    wrote on last edited by
    #57

    Hi guys. Thanks for the replies. This seems to work. I created a button and made a rule "if button XY pressed then toggle AB". So I suppose I leave the relay device as is, just remove it from my pimatic page (out of sight) and move in the button instead. IS that right?

    Very cool indeed!

    1 Reply Last reply
    0
    • karl261K Offline
      karl261K Offline
      karl261
      wrote on last edited by
      #58

      Hi there, I have problem that appears recently. I hope somebody can point me in the right direction.

      I had my setup running for the past two weeks without any problems. No changes in hardware. Now the following happened:

      Suddenly out of nowhere pimatic stop transmitting/receiving. Just like this. No error message. Pimatic frontend working finde. But no data going out to or coming in from the serial gateway.

      I checked all logs: Nothing. I re-started pimatic: No success. All logs normal. I restarted the pi2: Nothing. All logs normal. I unplugged/replugged the arduino nano: Nothing. No success.

      Then I shutdown the pi2, I pulled the power cable, I put it back in and voila: Everything worked normally. Still nothing in any logs. Unfortunately, now about 24h later, the same issue.

      What is happening there? How can I debug that? I also tried resetting the usb:

      echo 0 > /sys/bus/usb/devices/1-1.5/authorized
      echo 1 > /sys/bus/usb/devices/1-1.5/authorized
      Nothing.

      What can I do? Why was it running perfectly for two weeks?

      I changed back to a super simple pimatic config with just one device, but still the same issues.

      What to do? Please advice!

      1 Reply Last reply
      0
      • OitzuO Offline
        OitzuO Offline
        Oitzu
        wrote on last edited by
        #59

        @karl261 said:

        I checked all logs: Nothing. I re-started pimatic: No success. All logs normal. I restarted the pi2: Nothing. All logs normal. I unplugged/replugged the arduino nano: Nothing. No success.

        What can I do? Why was it running perfectly for two weeks?

        What to do? Please advice!

        Hi there! Spontaneously i have no idea what could be going wrong, only chance is to narrow down the problem.
        Based on your writing i assume you are using the serial gateway to interface with the mysensors network?
        Did you try to enable the debug output in pimatic?
        You could try to stop pimatic, detach usb, attach usb and look directly with screen on the serial device what the gateway is doing.

        screen <device>
        
        1 Reply Last reply
        0
        • karl261K Offline
          karl261K Offline
          karl261
          wrote on last edited by
          #60

          This is the only thing I see in the screen

          0;0;3;0;9;gateway started, id=0, parent=0, distance=0
          0;0;3;0;14;Gateway startup complete.
          

          Then nothing else. No signal recieved, even if I now my sensors are sending, but also, when I am sending something via pimatic, no send message.

          1 Reply Last reply
          0
          • OitzuO Offline
            OitzuO Offline
            Oitzu
            wrote on last edited by
            #61

            @karl261 maybe a defect nrf24 module? The serial connection to the nano seems to work and should normaly show received messages.
            Do you have any spare modules laying arround?

            1 Reply Last reply
            0
            • karl261K Offline
              karl261K Offline
              karl261
              wrote on last edited by
              #62

              @Oitzu that is possible. And also weird. It was working for three weeks without problem. Is there no way to get an error message from the nrf24? Why does it work after unplugging the pi? Why does it not help to reset the sub bus, which should power cycle the nano and the radio module?
              I have some nrf24 around, but the installation is in a remote place which I can only access from time to time. That's why I installed mysensors and piratical in the first place. To remote control some things. So three weeks before I can try another radio. I hoped I could reset the system somehow to be able to use my system in the meantime...

              OitzuO 1 Reply Last reply
              0
              • karl261K karl261

                @Oitzu that is possible. And also weird. It was working for three weeks without problem. Is there no way to get an error message from the nrf24? Why does it work after unplugging the pi? Why does it not help to reset the sub bus, which should power cycle the nano and the radio module?
                I have some nrf24 around, but the installation is in a remote place which I can only access from time to time. That's why I installed mysensors and piratical in the first place. To remote control some things. So three weeks before I can try another radio. I hoped I could reset the system somehow to be able to use my system in the meantime...

                OitzuO Offline
                OitzuO Offline
                Oitzu
                wrote on last edited by
                #63

                @karl261 said:

                @Oitzu that is possible. And also weird. It was working for three weeks without problem. Is there no way to get an error message from the nrf24? Why does it work after unplugging the pi? Why does it not help to reset the sub bus, which should power cycle the nano and the radio module?
                I have some nrf24 around, but the installation is in a remote place which I can only access from time to time. That's why I installed mysensors and piratical in the first place. To remote control some things. So three weeks before I can

                Well i can only guess whats the problem or whats the reason to it.
                A faulty device can fail at the first day or just after 3 weeks.
                The mysensors libs will check at start time the communication with the nrf24 module. If the communication don't work it will give out a "check wires" instead of the "Gateway startup complete.".

                Maybe the difference between the full power cycle and the nano power cycle is the duration of the power cycle?
                I can guess that the full power cycle left the nrf24 module for a longer time without power?
                A longer power down of the nano would result in more time for the caps to discharge?

                1 Reply Last reply
                0
                • karl261K Offline
                  karl261K Offline
                  karl261
                  wrote on last edited by karl261
                  #64

                  @Oitzu thanks a lot for your help. I appreciate it.

                  Some more observations:

                  • If I reboot the pi, I get
                  0;0;3;0;9;gateway started, id=0, parent=0, distance=0
                  0;0;3;0;14;Gateway startup complete.
                  

                  in the screen session.

                  • However, if I do
                  echo '1-1.5' > /sys/bus/usb/drivers/usb/unbind
                  echo '1-1.5' > /sys/bus/usb/drivers/usb/bind
                  

                  which should power cycle the usb device I do not see anything in the screen session. Which means that the arduino nano was not power cycled.

                  However I do see that something happened in the log file:

                  Nov 12 17:31:40 raspberrypi kernel: [  300.831131] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0
                  Nov 12 17:31:40 raspberrypi kernel: [  300.839881] ftdi_sio 1-1.5:1.0: device disconnected
                  Nov 12 17:31:46 raspberrypi kernel: [  306.271337] ftdi_sio 1-1.5:1.0: FTDI USB Serial Device converter detected
                  Nov 12 17:31:46 raspberrypi kernel: [  306.278553] usb 1-1.5: Detected FT232RL
                  Nov 12 17:31:46 raspberrypi kernel: [  306.283631] usb 1-1.5: FTDI USB Serial Device converter now attached to ttyUSB0
                  

                  So, what does it mean? I don't understand. Maybe there is something wrong with the pi's USB hub? Which is only reset when I pull the plug? But then the wifi should also not work, because it is sitting on the same USB hub.

                  /:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
                      |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M
                          |__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=smsc95xx, 480M
                          |__ Port 4: Dev 4, If 0, Class=Vendor Specific Class, Driver=rtl8192cu, 480M
                          |__ Port 5: Dev 5, If 0, Class=Vendor Specific Class, Driver=ftdi_sio, 12M
                  

                  I really don't like that there is no error message nowhere...

                  Is there any other place I could ask for help?

                  1 Reply Last reply
                  0
                  • karl261K Offline
                    karl261K Offline
                    karl261
                    wrote on last edited by
                    #65

                    Ok, so I found a way to reset the usb bus using hub-ctrl.c. There is interesting information here:
                    https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=93463
                    https://github.com/codazoda/hub-ctrl.c
                    https://www.raspberrypi.org/forums/viewtopic.php?t=71044&p=513908
                    http://raspberrypi.stackexchange.com/questions/27903/usb-power-cycling-problem
                    So, in my case I can issue the command

                    ./hub-ctrl -h 0 -P 5 -p 0 ; sleep 3; ./hub-ctrl  -h 0 -P 5 -p 1
                    

                    and it does indeed reset the right port, because if I open now the screen sessoin I get the usual

                    0;0;3;0;9;gateway started, id=0, parent=0, distance=0
                    0;0;3;0;14;Gateway startup complete.
                    

                    BUT: Still the thing is not sending receiving anything. WHY?

                    1 Reply Last reply
                    0
                    • OitzuO Offline
                      OitzuO Offline
                      Oitzu
                      wrote on last edited by
                      #66

                      Tried to extend the sleep between power down and up?

                      1 Reply Last reply
                      0
                      • karl261K Offline
                        karl261K Offline
                        karl261
                        wrote on last edited by
                        #67

                        Yes, I also tried with 30 seconds. Longer?

                        1 Reply Last reply
                        0
                        • OitzuO Offline
                          OitzuO Offline
                          Oitzu
                          wrote on last edited by
                          #68

                          Well.. i think you can't lose anything. :D
                          Will be hard to debug after that without access to the actual hardware.

                          1 Reply Last reply
                          0
                          • karl261K Offline
                            karl261K Offline
                            karl261
                            wrote on last edited by
                            #69

                            So, I made some modifications to the Serial Gateway sketch so it includes

                            radio.printDetails();
                            

                            I see that it is looping though the loop function, but I actually see NO ouput from this function. What does this mean? That there is actually no radio connected? Wouldn't it say something like "no radio" or so?

                            1 Reply Last reply
                            0
                            • OitzuO Offline
                              OitzuO Offline
                              Oitzu
                              wrote on last edited by
                              #70

                              https://github.com/mysensors/Arduino/blob/f9c8579bbdeaa50a0937287d4f7c14f794460540/libraries/MySensors/drivers/RF24/RF24.cpp#L455
                              Do you have MY_DEBUG_VERBOSE defined?

                              1 Reply Last reply
                              0
                              • karl261K Offline
                                karl261K Offline
                                karl261
                                wrote on last edited by
                                #71

                                Good point. I had not, now I have. But still, there is absolutely 0 output from this. The only message I see is the "Gateway startup complete" stuff.

                                fetsF 1 Reply Last reply
                                0
                                • E Offline
                                  E Offline
                                  edautz
                                  wrote on last edited by edautz
                                  #72

                                  I use Pimatic for more than a year now and I am using the Mysensors plugin 0.8.21 for more than 4 weeks now.
                                  I use a serial gateway based on a arduino nano and a NRF24 radio.

                                  I have already several sensors running without troubles and it appear to be stable.

                                  What I see from your information is that the serial gateway is communicating, but seems to recieve nothing from your sensors.

                                  If you can see on the PI that your gateway is started up, then the PI is able to recieve the information.

                                  I debugged my serial gateway using the
                                  serial monitor in the Arduino ide. This is also the way to test your sensors. In the serial monitor you can see if they are connecting to the gateway and sending information.

                                  1 Reply Last reply
                                  0
                                  • B Offline
                                    B Offline
                                    BastienVH
                                    wrote on last edited by
                                    #73

                                    Hi,

                                    After using OpenHAB for quite some time, I've made the transition to Pimatic.
                                    I've got a pro mini 3V running on 2 AA batteries with a DS18B20-temp-sensor.
                                    I would like to be able to display the battery level but am having some trouble.
                                    I combined the temp and battery sensor into 1, but the battery status isn't being analyzed properly.
                                    When I restart the node it transmits a value of 12 and shortly after that a value of 0.

                                    Any ideas how to solve this?
                                    Is this related to pimatic and the format in which it receives battery data or is it simply a fault in my code?

                                    Thanks in advance!

                                    This is my code:

                                    /**
                                     * The MySensors Arduino library handles the wireless radio link and protocol
                                     * between your home built sensors/actuators and HA controller of choice.
                                     * The sensors forms a self healing radio network with optional repeaters. Each
                                     * repeater and gateway builds a routing tables in EEPROM which keeps track of the
                                     * network topology allowing messages to be routed to nodes.
                                     *
                                     * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
                                     * Copyright (C) 2013-2015 Sensnology AB
                                     * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
                                     *
                                     * Documentation: http://www.mysensors.org
                                     * Support Forum: http://forum.mysensors.org
                                     *
                                     * This program is free software; you can redistribute it and/or
                                     * modify it under the terms of the GNU General Public License
                                     * version 2 as published by the Free Software Foundation.
                                     *
                                     *******************************
                                     *
                                     * DESCRIPTION
                                     *
                                     * Example sketch showing how to send in DS1820B OneWire temperature readings back to the controller
                                     * http://www.mysensors.org/build/temp
                                     */
                                    
                                    #include <MySensor.h>  
                                    #include <SPI.h>
                                    #include <DallasTemperature.h>
                                    #include <OneWire.h>
                                    
                                    #define COMPARE_TEMP 1 // Send temperature only if changed? 1 = Yes 0 = No
                                    #define ONE_WIRE_BUS 3 // Pin where dallase sensor is connected 
                                    #define MAX_ATTACHED_DS18B20 16
                                    unsigned long SLEEP_TIME = 30000; // Sleep time between reads (in milliseconds)
                                    OneWire oneWire(ONE_WIRE_BUS); // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
                                    DallasTemperature sensors(&oneWire); // Pass the oneWire reference to Dallas Temperature. 
                                    MySensor gw;
                                    float lastTemperature[MAX_ATTACHED_DS18B20];
                                    int numSensors=0;
                                    int node_id = 12;
                                    int BATTERY_SENSE_PIN = A0;  // select the input pin for the battery sense point
                                    int oldBatteryPcnt = 0;
                                    boolean receivedConfig = false;
                                    boolean metric = true; 
                                    // Initialize temperature message
                                    MyMessage msg(0,V_TEMP);
                                    
                                    void setup()  
                                    { 
                                      // Startup up the OneWire library
                                      sensors.begin();
                                      // requestTemperatures() will not block current thread
                                      sensors.setWaitForConversion(false);
                                    
                                      // use the 1.1 V internal reference
                                    #if defined(__AVR_ATmega2560__)
                                       analogReference(INTERNAL1V1);
                                    #else
                                       analogReference(INTERNAL);
                                    #endif
                                    
                                     // Startup and initialize MySensors library. Set callback for incoming messages. 
                                      gw.begin(NULL, node_id);
                                    
                                      // Send the sketch version information to the gateway and Controller
                                      gw.sendSketchInfo("Temperature Sensor met battery", "1.0");
                                    
                                      // Fetch the number of attached temperature sensors  
                                      numSensors = sensors.getDeviceCount();
                                    
                                      // Present all sensors to controller
                                      for (int i=0; i<numSensors && i<MAX_ATTACHED_DS18B20; i++) {   
                                         gw.present(i, S_TEMP);
                                      }
                                    }
                                    
                                    
                                    void loop()     
                                    {     
                                       // get the battery Voltage
                                       int sensorValue = analogRead(BATTERY_SENSE_PIN);
                                       #ifdef DEBUG
                                       Serial.println(sensorValue);
                                       #endif
                                       
                                       // 1M, 470K divider across battery and using internal ADC ref of 1.1V
                                       // Sense point is bypassed with 0.1 uF cap to reduce noise at that point
                                       // ((1e6+470e3)/470e3)*1.1 = Vmax = 3.44 Volts
                                       // 3.44/1023 = Volts per bit = 0.003363075
                                       float batteryV  = sensorValue * 0.003363075;
                                       int batteryPcnt = sensorValue / 10;
                                    
                                       #ifdef DEBUG
                                       Serial.print("Battery Voltage: ");
                                       Serial.print(batteryV);
                                       Serial.println(" V");
                                    
                                       Serial.print("Battery percent: ");
                                       Serial.print(batteryPcnt);
                                       Serial.println(" %");
                                       #endif
                                    
                                       if (oldBatteryPcnt != batteryPcnt) {
                                         // Power up radio after sleep
                                         gw.sendBatteryLevel(batteryPcnt);
                                         oldBatteryPcnt = batteryPcnt;}
                                         
                                      // Process incoming messages (like config from server)
                                      gw.process(); 
                                    
                                      // Fetch temperatures from Dallas sensors
                                      sensors.requestTemperatures();
                                    
                                      // query conversion time and sleep until conversion completed
                                      int16_t conversionTime = sensors.millisToWaitForConversion(sensors.getResolution());
                                      // sleep() call can be replaced by wait() call if node need to process incoming messages (or if node is repeater)
                                      gw.sleep(conversionTime);
                                    
                                      // Read temperatures and send them to controller 
                                      for (int i=0; i<numSensors && i<MAX_ATTACHED_DS18B20; i++) {
                                     
                                        // Fetch and round temperature to one decimal
                                        float temperature = static_cast<float>(static_cast<int>((gw.getConfig().isMetric?sensors.getTempCByIndex(i):sensors.getTempFByIndex(i)) * 10.)) / 10.;
                                     
                                        // Only send data if temperature has changed and no error
                                        #if COMPARE_TEMP == 1
                                        if (lastTemperature[i] != temperature && temperature != -127.00 && temperature != 85.00) {
                                        #else
                                        if (temperature != -127.00 && temperature != 85.00) {
                                        #endif
                                     
                                          // Send in the new temperature
                                          gw.send(msg.setSensor(i).set(temperature,1));
                                          // Save new temperatures for next compare
                                          lastTemperature[i]=temperature;
                                        }
                                      }
                                      gw.sleep(SLEEP_TIME);
                                    }
                                    
                                    D 1 Reply Last reply
                                    0
                                    • B BastienVH

                                      Hi,

                                      After using OpenHAB for quite some time, I've made the transition to Pimatic.
                                      I've got a pro mini 3V running on 2 AA batteries with a DS18B20-temp-sensor.
                                      I would like to be able to display the battery level but am having some trouble.
                                      I combined the temp and battery sensor into 1, but the battery status isn't being analyzed properly.
                                      When I restart the node it transmits a value of 12 and shortly after that a value of 0.

                                      Any ideas how to solve this?
                                      Is this related to pimatic and the format in which it receives battery data or is it simply a fault in my code?

                                      Thanks in advance!

                                      This is my code:

                                      /**
                                       * The MySensors Arduino library handles the wireless radio link and protocol
                                       * between your home built sensors/actuators and HA controller of choice.
                                       * The sensors forms a self healing radio network with optional repeaters. Each
                                       * repeater and gateway builds a routing tables in EEPROM which keeps track of the
                                       * network topology allowing messages to be routed to nodes.
                                       *
                                       * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
                                       * Copyright (C) 2013-2015 Sensnology AB
                                       * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
                                       *
                                       * Documentation: http://www.mysensors.org
                                       * Support Forum: http://forum.mysensors.org
                                       *
                                       * This program is free software; you can redistribute it and/or
                                       * modify it under the terms of the GNU General Public License
                                       * version 2 as published by the Free Software Foundation.
                                       *
                                       *******************************
                                       *
                                       * DESCRIPTION
                                       *
                                       * Example sketch showing how to send in DS1820B OneWire temperature readings back to the controller
                                       * http://www.mysensors.org/build/temp
                                       */
                                      
                                      #include <MySensor.h>  
                                      #include <SPI.h>
                                      #include <DallasTemperature.h>
                                      #include <OneWire.h>
                                      
                                      #define COMPARE_TEMP 1 // Send temperature only if changed? 1 = Yes 0 = No
                                      #define ONE_WIRE_BUS 3 // Pin where dallase sensor is connected 
                                      #define MAX_ATTACHED_DS18B20 16
                                      unsigned long SLEEP_TIME = 30000; // Sleep time between reads (in milliseconds)
                                      OneWire oneWire(ONE_WIRE_BUS); // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
                                      DallasTemperature sensors(&oneWire); // Pass the oneWire reference to Dallas Temperature. 
                                      MySensor gw;
                                      float lastTemperature[MAX_ATTACHED_DS18B20];
                                      int numSensors=0;
                                      int node_id = 12;
                                      int BATTERY_SENSE_PIN = A0;  // select the input pin for the battery sense point
                                      int oldBatteryPcnt = 0;
                                      boolean receivedConfig = false;
                                      boolean metric = true; 
                                      // Initialize temperature message
                                      MyMessage msg(0,V_TEMP);
                                      
                                      void setup()  
                                      { 
                                        // Startup up the OneWire library
                                        sensors.begin();
                                        // requestTemperatures() will not block current thread
                                        sensors.setWaitForConversion(false);
                                      
                                        // use the 1.1 V internal reference
                                      #if defined(__AVR_ATmega2560__)
                                         analogReference(INTERNAL1V1);
                                      #else
                                         analogReference(INTERNAL);
                                      #endif
                                      
                                       // Startup and initialize MySensors library. Set callback for incoming messages. 
                                        gw.begin(NULL, node_id);
                                      
                                        // Send the sketch version information to the gateway and Controller
                                        gw.sendSketchInfo("Temperature Sensor met battery", "1.0");
                                      
                                        // Fetch the number of attached temperature sensors  
                                        numSensors = sensors.getDeviceCount();
                                      
                                        // Present all sensors to controller
                                        for (int i=0; i<numSensors && i<MAX_ATTACHED_DS18B20; i++) {   
                                           gw.present(i, S_TEMP);
                                        }
                                      }
                                      
                                      
                                      void loop()     
                                      {     
                                         // get the battery Voltage
                                         int sensorValue = analogRead(BATTERY_SENSE_PIN);
                                         #ifdef DEBUG
                                         Serial.println(sensorValue);
                                         #endif
                                         
                                         // 1M, 470K divider across battery and using internal ADC ref of 1.1V
                                         // Sense point is bypassed with 0.1 uF cap to reduce noise at that point
                                         // ((1e6+470e3)/470e3)*1.1 = Vmax = 3.44 Volts
                                         // 3.44/1023 = Volts per bit = 0.003363075
                                         float batteryV  = sensorValue * 0.003363075;
                                         int batteryPcnt = sensorValue / 10;
                                      
                                         #ifdef DEBUG
                                         Serial.print("Battery Voltage: ");
                                         Serial.print(batteryV);
                                         Serial.println(" V");
                                      
                                         Serial.print("Battery percent: ");
                                         Serial.print(batteryPcnt);
                                         Serial.println(" %");
                                         #endif
                                      
                                         if (oldBatteryPcnt != batteryPcnt) {
                                           // Power up radio after sleep
                                           gw.sendBatteryLevel(batteryPcnt);
                                           oldBatteryPcnt = batteryPcnt;}
                                           
                                        // Process incoming messages (like config from server)
                                        gw.process(); 
                                      
                                        // Fetch temperatures from Dallas sensors
                                        sensors.requestTemperatures();
                                      
                                        // query conversion time and sleep until conversion completed
                                        int16_t conversionTime = sensors.millisToWaitForConversion(sensors.getResolution());
                                        // sleep() call can be replaced by wait() call if node need to process incoming messages (or if node is repeater)
                                        gw.sleep(conversionTime);
                                      
                                        // Read temperatures and send them to controller 
                                        for (int i=0; i<numSensors && i<MAX_ATTACHED_DS18B20; i++) {
                                       
                                          // Fetch and round temperature to one decimal
                                          float temperature = static_cast<float>(static_cast<int>((gw.getConfig().isMetric?sensors.getTempCByIndex(i):sensors.getTempFByIndex(i)) * 10.)) / 10.;
                                       
                                          // Only send data if temperature has changed and no error
                                          #if COMPARE_TEMP == 1
                                          if (lastTemperature[i] != temperature && temperature != -127.00 && temperature != 85.00) {
                                          #else
                                          if (temperature != -127.00 && temperature != 85.00) {
                                          #endif
                                       
                                            // Send in the new temperature
                                            gw.send(msg.setSensor(i).set(temperature,1));
                                            // Save new temperatures for next compare
                                            lastTemperature[i]=temperature;
                                          }
                                        }
                                        gw.sleep(SLEEP_TIME);
                                      }
                                      
                                      D Offline
                                      D Offline
                                      Dheeraj
                                      Plugin Developer
                                      wrote on last edited by Dheeraj
                                      #74

                                      @BastienVH . check few things first.

                                      1. hardware wiring is correct and as per mysensor guide.
                                      2. what debug value "sensorValue" you are seeing on serial console if you debug your sensor node.
                                      3. check the debug log in pimatic
                                      B 1 Reply Last reply
                                      0
                                      • D Dheeraj

                                        @BastienVH . check few things first.

                                        1. hardware wiring is correct and as per mysensor guide.
                                        2. what debug value "sensorValue" you are seeing on serial console if you debug your sensor node.
                                        3. check the debug log in pimatic
                                        B Offline
                                        B Offline
                                        BastienVH
                                        wrote on last edited by
                                        #75

                                        @Dheeraj
                                        I feel so stupid now... I built this circuit on a breadboard and after fiddling around with it yesterday, I forgot to place the resistor for the battery in the right pin. It was now on a different row.
                                        Saw it and fixed it. Now I get a battery percentage in Pimatic!

                                        Thanks for your help!

                                        1 Reply Last reply
                                        0
                                        • karl261K karl261

                                          Good point. I had not, now I have. But still, there is absolutely 0 output from this. The only message I see is the "Gateway startup complete" stuff.

                                          fetsF Offline
                                          fetsF Offline
                                          fets
                                          wrote on last edited by
                                          #76

                                          @karl261 Do you have any news ?
                                          Which raspberry pi are you using ? PI 2 ?

                                          I experienced the same issue with domoticz on raspberry pi2 + serial gateway with RFM69 radio.
                                          I really don't think that the issue is the controller. It seems that the radio is stuck cause when I debug my node after reset, all outgoing messages are marked with st=fail meaning that radios can't reach each other.
                                          I don't know if it's my chinese arduino nano or raspberry pi 2 usb power or my radio module.
                                          Investigation in progress. Something a reboot is not enough, I have to disconnect usb cable in order to make it work again.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          11

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.1k

                                          Posts


                                          Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • MySensors
                                          • OpenHardware.io
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular