Navigation

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

    Posts made by Madhias

    • RE: 💬 MySensors @Eindhoven Maker Fair 2017 2-3 September

      Hopefully you'll make some pictures or videos for those who can't attend!

      posted in Announcements
      Madhias
      Madhias
    • RE: 'getConfig' was not declared in this scope (V2.1.1) - FIXED

      @Newzwaver If I remember correctly you have to change in your sketches from getConfig() to getControllerConfig()

      posted in Troubleshooting
      Madhias
      Madhias
    • RE: [SOLVED] device_tracker unable to load / known_devices.yaml not found after HA update

      @martinhjelmare OK, It was not an update, since when booting the gateway device from my backup drive I have the same radio problem. So I'll have a look onto that. The gateway is installed on a Raspberry Pi 3, powered by the 'normal' micro USB adapter. I could exchange the capacitor on the radio there as a start.

      [EDIT] Solved, just 'touched' the capacitor and wobbled around on the gateways radio, and radio communication works again. Sorry for the confusion...

      posted in Home Assistant
      Madhias
      Madhias
    • RE: [SOLVED] device_tracker unable to load / known_devices.yaml not found after HA update

      @martinhjelmare I'll do right now, what can be the problem there. Very strange, since it was working perfect for a long time now, maybe an update broke it (HA and Rasbian Lite). I have a fear about radio problems though, to solve them. It must be the gateway, since it is the same for all sensors.

      posted in Home Assistant
      Madhias
      Madhias
    • RE: [SOLVED] device_tracker unable to load / known_devices.yaml not found after HA update

      @martinhjelmare Thanks again for your help! In the HA log this is the only error shown. I installed it in a Python virtual environment, the path locations are correct – I called the user homeass 😃

      But looking at my gateway log there seems to be another error, with all sensors the same output:

      TSF:MSG:READ,3-3-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
      TSF:MSG:BC
      TSF:MSG:FPAR REQ,ID=3
      TSF:CKU:OK,FCTRL
      TSF:MSG:GWL OK
      !TSF:MSG:SEND,0-0-3-3,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=NACK:0
      
      posted in Home Assistant
      Madhias
      Madhias
    • [SOLVED] device_tracker unable to load / known_devices.yaml not found after HA update

      Hi,

      I am not sure if my problem fits in here or rather to Home Assistant itself, but after an upgrade of HA to 0.48.1 sensor information is not updated, only after restarting Home Assistant once, but with an old value (the one before upgrading). I updated netdisco manually as always to the now correct version (1.0.1). Maybe that is the cause? The Philips Hue lamp is detected and working.

      ERROR (MainThread) [homeassistant.components.device_tracker] Unable to load 
      /home/homeass/.homeassistant/known_devices.yaml: Config file not found:
      /home/homeass/.homeassistant/known_devices.yaml
      

      Do I have to use the device_tracker component now which I did not used before? Is the problem related to netdisco? Creating manually the *.yaml file did not help (of course).

      posted in Home Assistant
      Madhias
      Madhias
    • RE: Correct presentation of Sensebender temperature and humidity?

      @martinhjelmare It works now! I think it is a hardware issue I have here, since I just put the decoupling capacitor in between the radio and the pin header socket. Checking that connection helped (pushing again in), and the presentation was correct now - including the sketch name.

      posted in Home Assistant
      Madhias
      Madhias
    • RE: Correct presentation of Sensebender temperature and humidity?

      I thought I have a correct sketch now, but as I loaded the sketch to another sensor, something must be wrong, since I always get this error in the Home Assistant log:

      WARNING:mysensors.mysensors:Node 2 is unknown
      INFO:mysensors.mysensors:Requesting new presentation for node 2
      INFO:homeassistant.components.mysensors:No sketch_name: node 2
      WARNING:mysensors.mysensors:child_id 1 already exists in children of node 2, cannot add child
      WARNING:mysensors.mysensors:child_id 2 already exists in children of node 2, cannot add child
      

      The json file looks like it got some values (I just changed the format for better reading here):

      {
          "2": {
              "sketch_version": "1.4",
              "children": {
                  "1": {
                      "type": 6,
                      "id": 1,
                      "description": "",
                      "values": {
                          "0": "25.6"
                      }
                  },
                  "2": {
                      "type": 7,
                      "id": 2,
                      "description": "",
                      "values": {
                          "1": "65"
                      }
                  }
              },
              "sensor_id": 2,
              "type": 17,
              "protocol_version": "2.1.1",
              "sketch_name": null,
              "battery_level": 104
          }
      }
      

      This is the sketch:

      // Enable debug prints to serial monitor
      #define MY_DEBUG 
      
      // Define a static node address, remove if you want auto address assignment
      #define MY_NODE_ID 2
      
      // Enable and select radio type attached
      #define MY_RADIO_NRF24
      //#define MY_RADIO_RFM69
      
      // Enable to support OTA for this node (needs DualOptiBoot boot-loader to fully work)
      #define MY_OTA_FIRMWARE_FEATURE
      
      #include <SPI.h>
      #include <MySensors.h>
      #include <Wire.h>
      #include <SI7021.h>
      #ifndef MY_OTA_FIRMWARE_FEATURE
      #include "drivers/SPIFlash/SPIFlash.cpp"
      #endif
      #include <EEPROM.h>  
      #include <sha204_lib_return_codes.h>
      #include <sha204_library.h>
      #include <RunningAverage.h>
      //#include <avr/power.h>
      
      // Uncomment the line below, to transmit battery voltage as a normal sensor value
      //#define BATT_SENSOR    199
      
      #define RELEASE "1.4"
      
      #define AVERAGES 2
      
      // Child sensor ID's
      #define CHILD_ID_TEMP  1
      #define CHILD_ID_HUM   2
      
      // How many milli seconds between each measurement
      #define MEASURE_INTERVAL 60000
      
      // How many milli seconds should we wait for OTA?
      #define OTA_WAIT_PERIOD 300
      
      // FORCE_TRANSMIT_INTERVAL, this number of times of wakeup, the sensor is forced to report all values to the controller
      #define FORCE_TRANSMIT_INTERVAL 30 
      
      // When MEASURE_INTERVAL is 60000 and FORCE_TRANSMIT_INTERVAL is 30, we force a transmission every 30 minutes.
      // Between the forced transmissions a tranmission will only occur if the measured value differs from the previous measurement
      
      // HUMI_TRANSMIT_THRESHOLD tells how much the humidity should have changed since last time it was transmitted. Likewise with
      // TEMP_TRANSMIT_THRESHOLD for temperature threshold.
      #define HUMI_TRANSMIT_THRESHOLD 0.5
      #define TEMP_TRANSMIT_THRESHOLD 0.5
      
      // Pin definitions
      #define TEST_PIN       A0
      #define LED_PIN        A2
      #define ATSHA204_PIN   17 // A3
      
      const int sha204Pin = ATSHA204_PIN;
      atsha204Class sha204(sha204Pin);
      
      SI7021 humiditySensor;
      SPIFlash flash(8, 0x1F65);
      
      // Sensor messages
      MyMessage msgHum(CHILD_ID_HUM, V_HUM);
      MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
      
      #ifdef BATT_SENSOR
      MyMessage msgBatt(BATT_SENSOR, V_VOLTAGE);
      #endif
      
      // Global settings
      int measureCount = 0;
      int sendBattery = 0;
      boolean isMetric = true;
      boolean highfreq = true;
      boolean transmission_occured = false;
      
      bool state = false;
      bool initialValueSent = false;
      
      // Storage of old measurements
      float lastTemperature = -100;
      int lastHumidity = -100;
      long lastBattery = -100;
      
      RunningAverage raHum(AVERAGES);
      
      /****************************************************
       *
       * Setup code 
       *
       ****************************************************/
      void setup() {
        
        pinMode(LED_PIN, OUTPUT);
        digitalWrite(LED_PIN, LOW);
      
        Serial.begin(115200);
        Serial.print(F("Sensebender Micro FW "));
        Serial.print(RELEASE);
        Serial.flush();
      
        // First check if we should boot into test mode
      
        pinMode(TEST_PIN,INPUT);
        digitalWrite(TEST_PIN, HIGH); // Enable pullup
        if (!digitalRead(TEST_PIN)) testMode();
      
        // Make sure that ATSHA204 is not floating
        pinMode(ATSHA204_PIN, INPUT);
        digitalWrite(ATSHA204_PIN, HIGH);
        
        digitalWrite(TEST_PIN,LOW);
        
        digitalWrite(LED_PIN, HIGH); 
      
        humiditySensor.begin();
      
        digitalWrite(LED_PIN, LOW);
      
        Serial.flush();
        Serial.println(F(" - Online!"));
        
        isMetric = getControllerConfig().isMetric;
        Serial.print(F("isMetric: ")); Serial.println(isMetric);
        raHum.clear();
        sendTempHumidityMeasurements(false);
        sendBattLevel(false);
        
      #ifdef MY_OTA_FIRMWARE_FEATURE  
        Serial.println("OTA FW update enabled");
      #endif
      
      }
      
      void presentation()  {
        sendSketchInfo("Sensebender Micro", RELEASE);
      
        present(CHILD_ID_TEMP, S_TEMP);
        present(CHILD_ID_HUM, S_HUM);
          
      #ifdef BATT_SENSOR
        present(BATT_SENSOR, S_POWER);
      #endif
      }
      
      
      /***********************************************
       *
       *  Main loop function
       *
       ***********************************************/
      void loop() {
      
        if (!initialValueSent) {
          bool forceMeasure = true;
          sendTempHumidityMeasurements(forceMeasure);
          Serial.println("Requesting initial value from controller");
          request(CHILD_ID_HUM, V_HUM);
          request(CHILD_ID_TEMP, V_TEMP);
          wait(2000, C_SET, V_TEMP);
        }
        
        measureCount ++;
        sendBattery ++;
        bool forceTransmit = false;
        transmission_occured = false;
      #ifndef MY_OTA_FIRMWARE_FEATURE
        if ((measureCount == 5) && highfreq) 
        {
          clock_prescale_set(clock_div_8); // Switch to 1Mhz for the reminder of the sketch, save power.
          highfreq = false;
        } 
      #endif
        
        if (measureCount > FORCE_TRANSMIT_INTERVAL) { // force a transmission
          forceTransmit = true; 
          measureCount = 0;
        }
          
        sendTempHumidityMeasurements(forceTransmit);
      /*  if (sendBattery > 60) 
        {
           sendBattLevel(forceTransmit); // Not needed to send battery info that often
           sendBattery = 0;
        }*/
      #ifdef MY_OTA_FIRMWARE_FEATURE
        if (transmission_occured) {
            wait(OTA_WAIT_PERIOD);
        }
      #endif
      
        sleep(MEASURE_INTERVAL);  
      }
      
      
      /*********************************************
       *
       * Sends temperature and humidity from Si7021 sensor
       *
       * Parameters
       * - force : Forces transmission of a value (even if it's the same as previous measurement)
       *
       *********************************************/
      void sendTempHumidityMeasurements(bool force)
      {
        bool tx = force;
      
        si7021_env data = humiditySensor.getHumidityAndTemperature();
        
        raHum.addValue(data.humidityPercent);
        
        float diffTemp = abs(lastTemperature - (isMetric ? data.celsiusHundredths : data.fahrenheitHundredths)/100.0);
        float diffHum = abs(lastHumidity - raHum.getAverage());
      
        Serial.print(F("TempDiff :"));Serial.println(diffTemp);
        Serial.print(F("HumDiff  :"));Serial.println(diffHum); 
      
        if (isnan(diffHum)) tx = true; 
        if (diffTemp > TEMP_TRANSMIT_THRESHOLD) tx = true;
        if (diffHum > HUMI_TRANSMIT_THRESHOLD) tx = true;
      
        if (tx) {
          measureCount = 0;
          float temperature = (isMetric ? data.celsiusHundredths : data.fahrenheitHundredths) / 100.0;
           
          int humidity = data.humidityPercent;
          Serial.print("T: ");Serial.println(temperature);
          Serial.print("H: ");Serial.println(humidity);
          
          send(msgTemp.set(temperature,1));
          send(msgHum.set(humidity));
          lastTemperature = temperature;
          lastHumidity = humidity;
          transmission_occured = true;
          if (sendBattery > 60) {
           sendBattLevel(true); // Not needed to send battery info that often
           sendBattery = 0;
          }
        }
      }
      
      /********************************************
       *
       * Sends battery information (battery percentage)
       *
       * Parameters
       * - force : Forces transmission of a value
       *
       *******************************************/
      void sendBattLevel(bool force)
      {
        if (force) lastBattery = -1;
        long vcc = readVcc();
        if (vcc != lastBattery) {
          lastBattery = vcc;
      
      #ifdef BATT_SENSOR
          float send_voltage = float(vcc)/1000.0f;
          send(msgBatt.set(send_voltage,3));
      #endif
      
          // Calculate percentage
      
          vcc = vcc - 1900; // subtract 1.9V from vcc, as this is the lowest voltage we will operate at
          
          long percent = vcc / 14.0;
          sendBatteryLevel(percent);
          transmission_occured = true;
        }
      }
      
      /*******************************************
       *
       * Internal battery ADC measuring 
       *
       *******************************************/
      long readVcc() {
        // Read 1.1V reference against AVcc
        // set the reference to Vcc and the measurement to the internal 1.1V reference
        #if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
          ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
        #elif defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
          ADMUX = _BV(MUX5) | _BV(MUX0);
        #elif defined (__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)
          ADcdMUX = _BV(MUX3) | _BV(MUX2);
        #else
          ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
        #endif  
       
        delay(2); // Wait for Vref to settle
        ADCSRA |= _BV(ADSC); // Start conversion
        while (bit_is_set(ADCSRA,ADSC)); // measuring
       
        uint8_t low  = ADCL; // must read ADCL first - it then locks ADCH  
        uint8_t high = ADCH; // unlocks both
       
        long result = (high<<8) | low;
       
        result = 1125300L / result; // Calculate Vcc (in mV); 1125300 = 1.1*1023*1000
        return result; // Vcc in millivolts
       
      }
      
      /****************************************************
       *
       * Verify all peripherals, and signal via the LED if any problems.
       *
       ****************************************************/
      void testMode()
      {
        uint8_t rx_buffer[SHA204_RSP_SIZE_MAX];
        uint8_t ret_code;
        byte tests = 0;
        
        digitalWrite(LED_PIN, HIGH); // Turn on LED.
        Serial.println(F(" - TestMode"));
        Serial.println(F("Testing peripherals!"));
        Serial.flush();
        Serial.print(F("-> SI7021 : ")); 
        Serial.flush();
        
        if (humiditySensor.begin()) 
        {
          Serial.println(F("ok!"));
          tests ++;
        }
        else
        {
          Serial.println(F("failed!"));
        }
        Serial.flush();
      
        Serial.print(F("-> Flash : "));
        Serial.flush();
        if (flash.initialize())
        {
          Serial.println(F("ok!"));
          tests ++;
        }
        else
        {
          Serial.println(F("failed!"));
        }
        Serial.flush();
      
        
        Serial.print(F("-> SHA204 : "));
        ret_code = sha204.sha204c_wakeup(rx_buffer);
        Serial.flush();
        if (ret_code != SHA204_SUCCESS)
        {
          Serial.print(F("Failed to wake device. Response: ")); Serial.println(ret_code, HEX);
        }
        Serial.flush();
        if (ret_code == SHA204_SUCCESS)
        {
          ret_code = sha204.getSerialNumber(rx_buffer);
          if (ret_code != SHA204_SUCCESS)
          {
            Serial.print(F("Failed to obtain device serial number. Response: ")); Serial.println(ret_code, HEX);
          }
          else
          {
            Serial.print(F("Ok (serial : "));
            for (int i=0; i<9; i++)
            {
              if (rx_buffer[i] < 0x10)
              {
                Serial.print('0'); // Because Serial.print does not 0-pad HEX
              }
              Serial.print(rx_buffer[i], HEX);
            }
            Serial.println(")");
            tests ++;
          }
      
        }
        Serial.flush();
      
        Serial.println(F("Test finished"));
        
        if (tests == 3) 
        {
          Serial.println(F("Selftest ok!"));
          while (1) // Blink OK pattern!
          {
            digitalWrite(LED_PIN, HIGH);
            delay(200);
            digitalWrite(LED_PIN, LOW);
            delay(200);
          }
        }
        else 
        {
          Serial.println(F("----> Selftest failed!"));
          while (1) // Blink FAILED pattern! Rappidly blinking..
          {
          }
        }  
      }
      

      @Mark69 Can't post a helpful sketch so far. Sorry!

      posted in Home Assistant
      Madhias
      Madhias
    • RE: 'getConfig' was not declared in this scope (V2.1.1) - FIXED

      Thanks, had the same problem!

      posted in Troubleshooting
      Madhias
      Madhias
    • RE: 💬 Building a Raspberry Pi Gateway

      @marceloaqno OK, many thanks for that hint!

      I was wrong from the beginning on, since I thought my configuration for the gateway was correct because of --my-serial-groupname=dialout - but that was not compiled. I edited now the mysgw.cpp manually (there was tty instead of dialout; and of course there was all the time the warning when compiling...). Now it works! Without chmod, or chowning anything later!

      posted in Announcements
      Madhias
      Madhias
    • RE: 💬 Building a Raspberry Pi Gateway

      I have a question regarding the --my-serial-groupname option: since I start the gateway under an user account with sudo, the gateway device ([EDIT] symlink) will be created with ownership root:root. Shouldn't it be created with root:dialout (as I chose dialout as group in my case)?

      [DELETED]

      posted in Announcements
      Madhias
      Madhias
    • RE: Correct presentation of Sensebender temperature and humidity?

      I have called the measurement function now inside the loop function (that is way better of course), and changed the third wait argument to V_TEMP. That works.

      I had a request in the code, but commented it out, it was like: request(CHILD_ID_TEMP, V_TEMP); because I was not sure if it is needed.

      Thanks for your help!

      posted in Home Assistant
      Madhias
      Madhias
    • Correct presentation of Sensebender temperature and humidity?

      Hi,

      I am starting slowly to get into MySensors, and currently my setup is sporting one Sensebender connected to a Raspberry serial gateway and Home Assistant on this Raspberry. This setup works, and the controller gets temperature and humidity from the sensor.

      I have some questions regarding the presentation in the loop function: the current temperature must be presented? Humidity also? To get the current temperature I have to add in the loop function everything needed to get a temperature value - since the values of the loop function are seen in Home Assistant? So looking at the sketch the temperature and humidity is sent twice to the gateway - once in loop, once in sendTempHumidityMeasurements? Should I get rid of one measurement sent to the gateway?

      Sorry for my basic questions... I am really happy to be so far though 🙂

      Here are those parts of the sketch:

      void presentation()  {
        sendSketchInfo("Sensebender Micro", RELEASE);
      
        present(CHILD_ID_TEMP,S_TEMP);
        present(CHILD_ID_HUM,S_HUM);
          
      #ifdef BATT_SENSOR
        present(BATT_SENSOR, S_POWER);
      #endif
      }
      
      void loop() {
        if (!initialValueSent) {
          si7021_env data = humiditySensor.getHumidityAndTemperature();
          float temperature = (isMetric ? data.celsiusHundredths : data.fahrenheitHundredths) / 100.0;
          int humidity = data.humidityPercent;
          Serial.println("Sending initial value");
          send(msgTemp.set(temperature,1));
          send(msgHum.set(humidity));
          wait(2000, C_SET, V_STATUS);
        }
      }
      
      void sendTempHumidityMeasurements(bool force)
      {
        bool tx = force;
      
        si7021_env data = humiditySensor.getHumidityAndTemperature();
        
        raHum.addValue(data.humidityPercent);
        
        float diffTemp = abs(lastTemperature - (isMetric ? data.celsiusHundredths : data.fahrenheitHundredths)/100.0);
        float diffHum = abs(lastHumidity - raHum.getAverage());
      
        Serial.print(F("TempDiff :"));Serial.println(diffTemp);
        Serial.print(F("HumDiff  :"));Serial.println(diffHum); 
      
        if (isnan(diffHum)) tx = true; 
        if (diffTemp > TEMP_TRANSMIT_THRESHOLD) tx = true;
        if (diffHum > HUMI_TRANSMIT_THRESHOLD) tx = true;
      
        if (tx) {
          measureCount = 0;
          float temperature = (isMetric ? data.celsiusHundredths : data.fahrenheitHundredths) / 100.0;
           
          int humidity = data.humidityPercent;
          Serial.print("T: ");Serial.println(temperature);
          Serial.print("H: ");Serial.println(humidity);
          
          send(msgTemp.set(temperature,1));
          send(msgHum.set(humidity));
          lastTemperature = temperature;
          lastHumidity = humidity;
          transmission_occured = true;
          if (sendBattery > 60) {
           sendBattLevel(true); // Not needed to send battery info that often
           sendBattery = 0;
          }
        }
      }
      
      posted in Home Assistant
      Madhias
      Madhias
    • RE: How to connect Sensebender with serial gateway?

      Adding a capacitor at the radio solved my issues... Sorry for not trying that from the very beginning, today I bought some capacitors, and now it looks good!

      Happy now!

      33804 TSF:MSG:SEND,3-3-0-0,s=1,c=1,t=0,pt=7,l=5,sg=0,ft=0,st=OK:24.0
      33818 TSF:MSG:SEND,3-3-0-0,s=2,c=1,t=1,pt=2,l=2,sg=0,ft=0,st=OK:62
      34127 MCO:SLP:MS=60000,SMS=0,I1=255,M1=255,I2=255,M2=255
      34134 MCO:SLP:TPD
      34136 MCO:SLP:WUP=-1
      Sending initial value
      34154 TSF:MSG:SEND,3-3-0-0,s=1,c=1,t=0,pt=2,l=2,sg=0,ft=0,st=OK:1
      Requesting initial value from controller
      34164 TSF:MSG:SEND,3-3-0-0,s=1,c=2,t=2,pt=0,l=0,sg=0,ft=0,st=OK:
      TempDiff :1.01
      HumDiff  :1.50
      T: 23.00
      H: 65
      
      posted in Troubleshooting
      Madhias
      Madhias
    • RE: How to connect Sensebender with serial gateway?

      I will try to find other NRF24L01+ modules. The long range versions I got were from the same seller. However next weekend I will make a restart with new parts 🙂

      I am still wondering if it is really more or less easy to setup and thinking that I must have forgotten something. But I have to admit in the beginning it looked for me like a fast job, connecting some dupont cables, load up some sketches, and voila.

      posted in Troubleshooting
      Madhias
      Madhias
    • RE: How to connect Sensebender with serial gateway?

      What is the difference between the Sensebender example sketch at Github (https://github.com/mysensors/SensebenderMicro/blob/master/Arduino/SensebenderMicro/SensebenderMicro.ino) and the preloaded sketch on the Sensebender?

      With the preloaded sketch the serial monitor output looks like this (I have deleted some lines in between to see the T / H values are also there):

      req node id
      send: 255-255-255-0 s=255,c=3,t=3,pt=0,l=0,st=fail:
      sensor started, id 255
       - Online!
      req node id
      send: 255-255-255-0 s=255,c=3,t=3,pt=0,l=0,st=fail:
      T: 23.10
      H: 63
      

      And with the sketch from Github I have the output as seen in my first post of this thread.

      posted in Troubleshooting
      Madhias
      Madhias
    • RE: 💬 Building a Raspberry Pi Gateway

      After installing a Raspberry Gateway, is this output OK, or have I forgotten something?

      mysgw: Starting gateway...
      mysgw: Protocol version - 2.2.0-beta
      mysgw: MCO:BGN:INIT GW,CP=RNNG---,VER=2.2.0-beta
      mysgw: TSF:LRT:OK
      mysgw: TSM:INIT
      mysgw: TSF:WUR:MS=0
      mysgw: TSM:INIT:TSP OK
      mysgw: TSM:INIT:GW MODE
      mysgw: TSM:READY:ID=0,PAR=0,DIS=0
      mysgw: MCO:REG:NOT NEEDED
      mysgw: MCO:BGN:STP
      mysgw: MCO:BGN:INIT OK,TSP=1
      

      I configured with (should be a serial gateway with a controller on the same machine):

      ./configure --soc=BCM2835 --my-gateway=serial --my-serial-is-pty --my-serial-pty=/dev/ttyMySensorGateway --my-serial-groupname=dialout --my-debug=enable
      
      posted in Announcements
      Madhias
      Madhias
    • RE: How to connect Sensebender with serial gateway?

      I have tried different setups now, next one will be with an original Genuino Uno Rev 3 board as a gateway. Also I'll have later another USB serial adapter. Store is closed today. Argh. So it will be next week then.

      I tried a long range NRF24 too.
      I have also reset the EEPROM on the Sensebender, and on the Arduino clone.

      For now I do not know what to do except to change all remaining parts.

      I already dreamed of !TSM:FPAR:NO REPLY !TSM:FPAR:NO REPLY !TSM:FPAR:NO REPLY Ahhh! 😥

      posted in Troubleshooting
      Madhias
      Madhias
    • RE: How to connect Sensebender with serial gateway?

      I have attached the ethernet gateway (Itead IBoard), to the LAN and PC, and the serial monitor output of the gateway looks like this when batteries are in the Sensebender node (unfortunately I have only one FTDI adapter):

      0;255;3;0;9;MCO:BGN:STP
      0;255;3;0;9;MCO:BGN:INIT OK,TSP=1
      0;255;3;0;9;TSF:MSG:READ,255-255-0,s=255,c=3,t=3,pt=0,l=0,sg=0:
      0;255;3;0;9;MCO:BGN:INIT GW,CP=RNNGA--,VER=2.1.0
      0;255;3;0;9;TSM:INIT
      0;255;3;0;9;TSF:WUR:MS=0
      0;255;3;0;9;TSM:INIT:TSP OK
      0;255;3;0;9;TSM:INIT:GW MODE
      0;255;3;0;9;TSM:READY:ID=0,PAR=0,DIS=0
      0;255;3;0;9;MCO:REG:NOT NEEDED
      
      0;255;3;0;9;MCO:BGN:STP
      0;255;3;0;9;MCO:BGN:INIT OK,TSP=1
      0;255;3;0;9;TSF:MSG:READ,255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
      0;255;3;0;9;TSF:MSG:BC
      0;255;3;0;9;TSF:MSG:FPAR REQ,ID=255
      0;255;3;0;9;TSF:PNG:SEND,TO=0
      0;255;3;0;9;TSF:CKU:OK
      0;255;3;0;9;TSF:MSG:GWL OK
      0;255;3;0;9;TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=OK:0
      0;255;3;0;9;TSF:MSG:READ,255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
      

      It looks good?

      I also tried the next possible gateway I could build: an ethernet gateway with a W5100 shield attached to the Uno. But with this combination I get this output:

      0;255;3;0;9;MCO:BGN:INIT GW,CP=RNNGA--,VER=2.1.0
      0;255;3;0;9;TSM:INIT
      0;255;3;0;9;TSF:WUR:MS=0
      0;255;3;0;9;!TSM:INIT:TSP FAIL
      0;255;3;0;9;TSM:FAIL:CNT=1
      0;255;3;0;9;TSM:FAIL:PDT
      0;255;3;0;9;TSM:FAIL:RE-INIT
      

      But this is another story, and could it be that this Uno clone is the problem part - since it also did not work with the serial setup?

      posted in Troubleshooting
      Madhias
      Madhias
    • RE: How to connect Sensebender with serial gateway?

      Thanks for your reply!

      In the gateway log nothing else shows up. I got these NRF modules.

      My next step was - which I wanted to try out later - to hook up an IBoard (version 1.1), and use it as Ethernet gateway. I uploaded the sketch found here from TimO, and put some batteries in the node, and got this output - is this the sensor talking with the gateway? This MSG:READ makes me happy somehow...

      0;255;3;0;9;MCO:BGN:INIT GW,CP=RNNGA--,VER=2.1.0
      0;255;3;0;9;TSM:INIT
      0;255;3;0;9;TSF:WUR:MS=0
      0;255;3;0;9;TSM:INIT:TSP OK
      0;255;3;0;9;TSM:INIT:GW MODE
      0;255;3;0;9;TSM:READY:ID=0,PAR=0,DIS=0
      0;255;3;0;9;MCO:REG:NOT NEEDED
      IP: 10.20.30.4
      0;255;3;0;9;MCO:BGN:STP
      0;255;3;0;9;MCO:BGN:INIT OK,TSP=1
      0;255;3;0;9;TSF:MSG:READ,255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
      0;255;3;0;9;TSF:MSG:BC
      0;255;3;0;9;TSF:MSG:FPAR REQ,ID=255
      0;255;3;0;9;TSF:PNG:SEND,TO=0
      0;255;3;0;9;TSF:CKU:OK
      0;255;3;0;9;TSF:MSG:GWL OK
      0;255;3;0;9;TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=OK:0
      0;255;3;0;9;TSF:MSG:READ,255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0:
      0;255;3;0;9;TSF:MSG:BC
      0;255;3;0;9;TSF:MSG:FPAR REQ,ID=255
      0;255;3;0;9;TSF:PNG:SEND,TO=0
      0;255;3;0;9;TSF:CKU:OK
      0;255;3;0;9;TSF:MSG:GWL OK
      0;255;3;0;9;TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=OK:0
      

      I only have one FTDI adapter, so I can't see right now the serial monitor of the node. Later I will connect the ethernet gateway to the LAN.

      Another question: is it possible to see a local time in the serial monitor?

      posted in Troubleshooting
      Madhias
      Madhias
    • How to connect Sensebender with serial gateway?

      Hi all,

      A few weeks ago I got some packages in the mail, including 4 Sensebenders, and some other parts. I wanted to start on a small scale and try to connect a node with a serial gateway, since everything is new for me!

      I uploaded the (example) serial gateway sketch to an Uno clone, with a NRF24L01 attached to it, and also the (example) SensebenderMicro sketch to the Sensebender (with a Foca FTDI serial adapter), also with a NRF24L01 attached.

      Looking at the serial monitor of the gateway, this is the output:

      u�jI�0;255;3;0;9;MCO:BGN:INIT GW,CP=RNNGA--,VER=2.1.0
      0;255;3;0;9;TSM:INIT
      0;255;3;0;9;TSF:WUR:MS=0
      0;255;3;0;9;TSM:INIT:TSP OK
      0;255;3;0;9;TSM:INIT:GW MODE
      0;255;3;0;9;TSM:READY:ID=0,PAR=0,DIS=0
      0;255;3;0;9;MCO:REG:NOT NEEDED
      0;255;3;0;14;Gateway startup complete.
      0;255;0;0;18;2.1.0
      0;255;3;0;9;MCO:BGN:STP
      0;255;3;0;9;MCO:BGN:INIT OK,TSP=1
      

      Looking at the Sensebenders output:

      4 TSM:INIT
      4 TSF:WUR:MS=0
      12 TSM:INIT:TSP OK
      14 TSM:FPAR
      16 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
      2025 !TSM:FPAR:NO REPLY
      2027 TSM:FPAR
      2029 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
      4038 !TSM:FPAR:NO REPLY
      

      Did I miss a simple setting to do in the sketches? It took a while until I am this point, to ask this question 😃 My wife asked me again why I don't have a simple hobby like playing tennis.

      posted in Troubleshooting
      Madhias
      Madhias