Navigation

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

    Best posts made by noelgeorgi

    • SSL support for MQTT on ESP8266

      @hek @Anticimex First install https://github.com/esp8266/arduino-esp8266fs-plugin and upload the crt file to the ESP8266 file system.

      then issue these command from the folder in which MySensors is installed:
      sed -i 's/WiFiClient/WiFiClientSecure/g' Arduino/libraries/MySensors/core/MyGatewayTransportEthernet.cpp

      sed -i 's/WiFiClient/WiFiClientSecure/g' Arduino/libraries/MySensors/core/MyGatewayTransportMQTTClient.cpp

      change your GatewayESP8266MQTTClient to this:

      /**
       * 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.
       *
       *******************************
       *
       * REVISION HISTORY
       * Version 1.0 - Henrik Ekblad
       * 
       * DESCRIPTION
       * The ESP8266 MQTT gateway sends radio network (or locally attached sensors) data to your MQTT broker.
       * The node also listens to MY_MQTT_TOPIC_PREFIX and sends out those messages to the radio network
       *
       * LED purposes:
       * - To use the feature, uncomment WITH_LEDS_BLINKING in MyConfig.h
       * - RX (green) - blink fast on radio message recieved. In inclusion mode will blink fast only on presentation recieved
       * - TX (yellow) - blink fast on radio message transmitted. In inclusion mode will blink slowly
       * - ERR (red) - fast blink on error during transmission error or recieve crc error  
       * 
       * See http://www.mysensors.org/build/esp8266_gateway for wiring instructions.
       * nRF24L01+  ESP8266
       * VCC        VCC
       * CE         GPIO4          
       * CSN/CS     GPIO15
       * SCK        GPIO14
       * MISO       GPIO12
       * MOSI       GPIO13
       *            
       * Not all ESP8266 modules have all pins available on their external interface.
       * This code has been tested on an ESP-12 module.
       * The ESP8266 requires a certain pin configuration to download code, and another one to run code:
       * - Connect REST (reset) via 10K pullup resistor to VCC, and via switch to GND ('reset switch')
       * - Connect GPIO15 via 10K pulldown resistor to GND
       * - Connect CH_PD via 10K resistor to VCC
       * - Connect GPIO2 via 10K resistor to VCC
       * - Connect GPIO0 via 10K resistor to VCC, and via switch to GND ('bootload switch')
       * 
        * Inclusion mode button:
       * - Connect GPIO5 via switch to GND ('inclusion switch')
       * 
       * Hardware SHA204 signing is currently not supported!
       *
       * Make sure to fill in your ssid and WiFi password below for ssid & pass.
       */
      #include "FS.h"
      #include <EEPROM.h>
      #include <SPI.h>
      
      // Enable debug prints to serial monitor
      #define MY_DEBUG 
      
      // Use a bit lower baudrate for serial prints on ESP8266 than default in MyConfig.h
      #define MY_BAUD_RATE 9600
      
      // Enables and select radio type (if attached)
      #define MY_RADIO_NRF24
      //#define MY_RADIO_RFM69
      
      #define MY_GATEWAY_MQTT_CLIENT
      #define MY_GATEWAY_ESP8266
      
      // Set this nodes subscripe and publish topic prefix
      #define MY_MQTT_PUBLISH_TOPIC_PREFIX "mygateway1-out"
      #define MY_MQTT_SUBSCRIBE_TOPIC_PREFIX "mygateway1-in"
      
      // Set MQTT client id
      #define MY_MQTT_CLIENT_ID "mysensors-1"
      
      // Enable these if your MQTT broker requires usenrame/password
      #define MY_MQTT_USER "admin" //your MQTT username
      #define MY_MQTT_PASSWORD "admin" //your MQTT password
      
      // Set WIFI SSID and password
      #define MY_ESP8266_SSID "yourwifissid"
      #define MY_ESP8266_PASSWORD "yourwifipassword"
      
      // Enable MY_IP_ADDRESS here if you want a static ip address (no DHCP)
      #define MY_IP_ADDRESS 172,16,0,120
      
      // If using static ip you need to define Gateway and Subnet address as well
      #define MY_IP_GATEWAY_ADDRESS 172,16,0,1
      #define MY_IP_SUBNET_ADDRESS 255,255,255,0
      
      
      // MQTT broker ip address.  
      #define MY_CONTROLLER_IP_ADDRESS 172, 16, 0, 95
      
      // The MQTT broker port to to open 
      #define MY_PORT 8883      // note this change its port 8883 as per standard for SSL over MQTT
      
       /*
      // Flash leds on rx/tx/err
      #define MY_LEDS_BLINKING_FEATURE
      // Set blinking period
      #define MY_DEFAULT_LED_BLINK_PERIOD 300
      
      // Enable inclusion mode
      #define MY_INCLUSION_MODE_FEATURE
      // Enable Inclusion mode button on gateway
      #define MY_INCLUSION_BUTTON_FEATURE
      // Set inclusion mode duration (in seconds)
      #define MY_INCLUSION_MODE_DURATION 60 
      // Digital pin used for inclusion mode button
      #define MY_INCLUSION_MODE_BUTTON_PIN  3 
      
      #define MY_DEFAULT_ERR_LED_PIN 16  // Error led pin
      #define MY_DEFAULT_RX_LED_PIN  16  // Receive led pin
      #define MY_DEFAULT_TX_LED_PIN  16  // the PCB, on board LED
      */
      
      #include <ESP8266WiFi.h>
      #include <MySensor.h>
      
      void setup() { 
        if (!SPIFFS.begin()) {
          Serial.println("Failed to mount file system");
          return;
        }
      
        File ca = SPIFFS.open("/ca.crt", "r"); //replace ca.crt with the ca file name
        if (!ca) {
          Serial.println("Failed to open ca file");
        }
        else
        Serial.println("Successfully opened ca file");
      
      if(_ethClient.loadCertificate(ca)) //_ethClient as defined in MyGatewayTransportMQTTClient.cpp
        Serial.println("loaded");
        else
        Serial.println("not loaded");
      }
      
      void presentation() {
        // Present locally attached sensors here    
      }
      
      
      void loop() {
        // Send locally attech sensors data here
      }
      
      
      
      

      NB: i used https://github.com/owntracks/tools/raw/master/TLS/generate-CA.sh for generating the ca files

      posted in Development
      noelgeorgi
      noelgeorgi
    • RE: MQTT SSL Support

      finally succeeded in implementing ssl for MQTT with esp8266!!!!!!!😃 😆 ☺ will post in Development...... http://forum.mysensors.org/topic/3385/ssl-support-for-mqtt-on-esp8266

      posted in General Discussion
      noelgeorgi
      noelgeorgi
    • RE: SSL support for MQTT on ESP8266

      @hek pubsubclient has issues with ssl connection, frequent disconnections. Adafruit's MQTT library works like charm, trying to integrate into MySensors

      posted in Development
      noelgeorgi
      noelgeorgi
    • RE: Basic Setup Network

      this is my node to node program:

      // Enable debug prints
      #define MY_DEBUG
      #define SWITCH_PIN 2
      // Enable and select radio type attached
      #define MY_RADIO_NRF24
      //#define MY_RADIO_RFM69
      boolean state=false;
      #include <SPI.h>
      #include <MySensor.h>  
      #define MY_NODE_ID 10
      #define CHILD_ID_SWITCH 1 
      
      MyMessage switchMsg(CHILD_ID_SWITCH, V_LIGHT);
      
      void setup()
      {
        pinMode(SWITCH_PIN,INPUT_PULLUP);
      }
      
      void loop()
      {
        if(digitalRead(SWITCH_PIN)==LOW)
        {
          delay(100);
          if(digitalRead(SWITCH_PIN)==HIGH);
          {
            state=!state;
            if(state)
            {
              send(switchMsg.setDestination(2).set(49));
            }
            else
            {
              send(switchMsg.setDestination(2).set(0));
            }
          }
        }
      }
      
      • destination node id is 2
      • destination of type light variable
      posted in General Discussion
      noelgeorgi
      noelgeorgi