💬 Building a WiFi Gateway using ESP8266



  • A couple of ESP-12E modules arrived in the mail last Friday and I uploaded the ESP8266 MQTT GW sketch. It worked immediately. Fantastic!
    I am using a cloudserver MQTT broker on cloudmqtt.com and the OpenHab controller subscribes to that as well.

    Just a question... I tried to enable the LED BLINKING feature but it seems there are no free pins on the ESP-12 module. I've tried the not connected pins but whatever pin I select (0,1,3,4,9,10) this seems to stop the GW from starting. Ideas anyone?


  • Mod

    @bgunnarb great that you got it working so quickly!

    Not sure which numbering scheme you are using (there are unfortunately many ways to number the ESP pins) but many of the pins have special use and are therefore hard to utilize. Some of my notes on the subject:

    GPIO0, gpio2 an gpio15 are tricky but can be used if special care is taken: http://www.instructables.com/id/ESP8266-Using-GPIO0-GPIO2-as-inputs/?ALLSTEPS
    gpio16 also seems special, see http://bbs.espressif.com/viewtopic.php?t=632
    GPIO6-GPIO11 are typically used to interface with the flash memory ICs on most esp8266 modules, so these pins should not generally be used.
    http://www.esp8266.com/wiki/doku.php?id=esp8266_gpio_pin_allocations has lots of information on the pins.

    Kolban's book on ESP has a nice clear and color-coded table describing which pins are "safe" to use without any hassle.



  • This post is deleted!


  • This post is deleted!

  • Hardware Contributor

    Please add a wiring diagram for the RFM69.

    I found this:
    https://forum.mysensors.org/topic/3061/solved-esp8266-gateway-with-rfm69-wdt-issues/4

    But I miss the CE in that post.


  • Hero Member

    There is no CE pin on the RFM69

    https://www.mysensors.org/build/connect_radio



  • Please look right connection diagram. Not nrf24l01+. and you see how to connect. If you do not see you van watch with glasses.


  • Hardware Contributor

    @korttoma
    😮
    Shame on me... I am using a NRF2RFM69 adapter with a CE pin and didn't realize it has no function.


  • Hardware Contributor

    I'm currently adding some wifi gateways at work, I was wondering:

    • is ATSHA204 signing support something planned, or will it stay on soft-sign only mode?
    • is IRQ support something planned too?

    It's mostly to see if I need to plan to add these features on the PCB for later, or not.

    Thanks!



  • @FotoFieber Did you come right with the RFM69? I also struggling to get it working and need to confirm the wiring diagram.



  • This post is deleted!


  • @hek Hi, I am new to arduino but not to Vera, have been using Veralite for a few years, I wuould like to know how to add the Serial Gateway to Vera, I find it very confusing, it would be ideal if a video was created or step by step instructions for newbees like me, I will be more than happy to donate via paypal, Thanks so much

    reply


  • Admin

    @ramoncarranza

    What part is confusing? Did you follow the steps outlined here:
    https://www.mysensors.org/controller/vera



  • @hek I got it already, I was confused on the Vera Plugin vs the Arduino Plugin not realizing they were both the same, but now I get the following message on Vera
    "MySensors plugin : Choose the Serial Port"
    "MySensors Plugin[105] : Running Lua Startup"

    I have yet to assemble the Serial Gateway though, so I'm assuming the messages will go away once the Gateway is installed??????

    Thanks


  • Admin

    Yes, once you insert the usb gateway you just have to follow the instructions here:

    https://www.mysensors.org/controller/vera#configuring-the-vera-plugin-for-the-serialusb-gateway



  • Thanks so much!!

    This thing's Amazing!!!!!!



  • Hi all,
    I try to connect the Radio to Wemos D1 mini Pro and it's not working? I used both ESP8266Gateway and RelayActuator sketches and both Radio Fails...
    Are the pins here work fine with Wemos D1Mini?here is the pinout: http://escapequotes.net/wp-content/uploads/2016/02/d1-mini-esp8266-board-sh_fixled.jpg

    And here is the error I get:
    TSM:INIT
    !TSM:RADIO:FAIL
    !TSM:FAILURE
    TSM:PDT

    thanks,


  • Hero Member

    If you are using the NRF24L01+ you should wire it according to the instructions here

    And use the sketch from the same page.

    So check your wiring of the radio module.



  • I used the same link (pins and sketches!). Checked it 10 times!
    I think my Radios are not functional....


  • Hero Member

    @sghazagh maybe you can take a picture of the setup. Maybe someone else can see something that you don't.



  • Good idea,
    Here is the side by side image from front and back of the PCB.
    The 'j1' marked on wrong pin ,that's why I think my radio is not working at all as it seems it's very bad replicate.
    However, I have rotated it by 180 degree and tried that as well. same result!

    0_1478323600970_radio.png



  • Guys, just an update for my issue regarding Radio and my circuit.
    The Radio was faulty, I received the new one, swapped it and all worked fine.

    I just posted that here if someone want to use my last post image as a reference for connecting the Radio.
    The wiring all are correct.

    Thanks



  • Hi Hek,

    Thanks for this guide... I have added an additional 433 RF receiver to my ESP8266 gateway. How can I send the data received from 433 RF to the my Home Assistant controller?



  • Hello, i have build a wifi gateway and use it in jeedom.
    My gateway wifi as connection problem.
    In jeedom, in the log of my sensors node I have almost every 2 days the message: diconnected from network gateway.
    If I restart the node the communication is re-established.
    Is this a problem with nrf24l01?



  • why esp8266 gateway shows only debug info?
    when i comment //#define MY_DEBUG
    where is no any serial output.


  • Mod

    @derrij because it is a wifi gateway?



  • If put in client mode
    #define MY_CONTROLLER_IP_ADDRESS 192, 168, 2, 9
    I get an error. How to win.

    **
    Arduino: 1.8.2 (Windows 7), Плата:"Generic ESP8266 Module, 80 MHz, 40MHz, DIO, 115200, 512K (64K SPIFFS), ck, Disabled, None"

    "C:\Users\DedHP\AppData\Local\Temp\arduino_build_364162\sketch\GatewayESP8266.ino.cpp.o"
    In file included from C:\Users\DedHP\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src/ESP8266WiFi.h:39:0,

                 from C:\Users\DedHP\AppData\Local\Temp\arduino_modified_sketch_313960\GatewayESP8266.ino:132:
    

    C:\Users\DedHP\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src/WiFiClient.h: In instantiation of 'size_t WiFiClient::write(T&, size_t) [with T = char*; size_t = unsigned int]':

    C:\Documents\Arduino\ams\Arduino\libraries\MySensors/core/MyGatewayTransportEthernet.cpp:207:58: required from here

    C:\Users\DedHP\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src/WiFiClient.h:123:36: error: request for member 'available' in 'source', which is of non-class type 'char*'

     size_t left = source.available();
    
                                    ^
    

    C:\Users\DedHP\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi\src/WiFiClient.h:127:5: error: request for member 'read' in 'source', which is of non-class type 'char*'

     source.read(buffer.get(), will_send);
    
     ^
    

    Используем библиотеку ESP8266WiFi версии 1.0 из папки: C:\Users\DedHP\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\ESP8266WiFi
    Используем библиотеку MySensors версии 2.1.1 из папки: C:\Documents\Arduino\ams\Arduino\libraries\MySensors
    Используем библиотеку EEPROM версии 1.0 из папки: C:\Users\DedHP\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\EEPROM
    Используем библиотеку SPI версии 1.0 из папки: C:\Users\DedHP\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0\libraries\SPI
    exit status 1
    Ошибка компиляции для платы Generic ESP8266 Module.*



  • Hi,
    Is it possible to use this setup without the nrf24l01 atached, so that i can use the esp8266 just as a sensor (not as a gateway)?


  • Mod

    @Jonathan-Caes yes. Don't define MY_RADIO_NRF24 and you're good to go. It will still be a gateway, but a gateway with local sensors and no radio.



  • Hi how many Gateways Can i have on a network?


  • Mod

    @joseyapor On one MySensors network there can only be one MySensors gateway. But on one IP network, there can be many MySensors gateways. Exactly how many depends on geography and chosen transports but at the very least a few hundred. Thousands if you really need and plan accordingly.



  • Help! After connecting to the WIFI, I'm getting disconnected. Here's a log : https://goo.gl/fyr7ku

    Any help in figuring this out would be appreaciated!


  • Mod

    Welcome to the MySensors community @alexalex
    The log is missing the first lines, but it looks like the microcontroller is unable to communicate with the radio. Which radio are you using?

    See https://ci.mysensors.org/job/Verifiers/job/MySensors/branch/development/Doxygen_HTML/group__MyTransportgrp.html#details for more details about the log messages and https://forum.mysensors.org/topic/666/debug-faq-and-how-ask-for-help/ for the most common problems and how to fix them.



  • Is there a complete wiring table, diagram, or schematic? I have a working MyController/MySensors network on nRF24s, but I am adding WiFi with a ESP-201 module (white one with pins broken out for 2.54 pitch; see: http://smarpl.com/sites/default/files/images/ESP8266-ESP-201-pin-reference-v01.png)... TIA!


  • Mod

    @Bogus-Exception did you see the instructions linked in the first post in this thread? You probably want the part that says "connect the radio".



  • if i reboot my wifi router mysensors wifi gateway wouldn't try to connect again, is this only with me or its common issue with wifi gateway?


  • Mod

    @pihome said in 💬 Building a WiFi Gateway using ESP8266:

    if i reboot my wifi router mysensors wifi gateway wouldn't try to connect again, is this only with me or its common issue with wifi gateway?

    This question was transferred to a new thread by @pihome. Please don't answer here, to avoid double work and confusion.



  • Reporting batterypercent to Domoticz not working.
    I have built a ESP8266 Gateway and I connecting a BME280 sensor. It report everything right with a serial gateway but with the new wifi gateway it not reciving the battery percent. I look in the serial monitor at the gateway and where is no battery data.



  • Colleagues, tell me.
    can I make it so that hosts register on the gateway only if I press a button on the gateway?

    Perhaps there is an example?



  • Hello,
    I'm receiving the following errors:
    warning: espcomm_sync failed
    error: espcomm_open failed
    error: espcomm_upload_mem failed
    error: espcomm_upload_mem failed

    I have attempted to fix this problem through:
    *Making sure I"m using the "NodeMCU" as my board in the Arduino IDE
    *Trying different upload rates
    *Pressing and holding the flash button while and/or right before upload

    Hardware:
    PC, windows 10
    NodeMCU from eBay link above.

    Any help? It appears others have had this problem as well, but I haven't (yet) been able to fix my issues through their threads.

    Thanks!

    Toozinger




  • Mod

    Welcome to the Mensors community @blackY !

    If you're new to building MySensor nodes, I recommend that you stick with the recommended build examples.

    It is probably possible to use the modules you link to, but it will require knowledge far beyond building the existing examples.



  • yes, I know...but if you are still staying by given examples, you don't develop yourself 😉



  • @blackY I'll just leave this here for a relative reference to that... link text



  • @zboblamont ROTFL...
    I'm kidding. This does not solve the problem. Isn't nice or exploring too.



  • I just want to bypass inbuilt wifi connection method in GatewayESP8266 and use my own code of SmartConfig to create WiFi connection. I'm not able to achieve this. is there any way to do this?
    Ive tried changing library (MyGatewayTransportEthernet) code, but it throws TSM exception. I've tested SmartConfig separately and it works fine with my Android App.



  • Sorry but can someone explain the differance between "Server" and "Client" modes. I got my ESP8266 working with my Vera but then I install a RPi 3 I'm using for MQTT. Do I need 2 gateways, one for the Vera and another for MQTT? Even though I'm moving away from the Vera it's still usfull. Thanks for the help.



  • One for thing will this work with a ESP32?



  • Sorry about the typing. I also have a question about radio pins. The ESP8266 sketch shows different pins for the radio then "Connecting the Radio". I don't see the pins defined in the sketch so where do I go to change them?


  • Mod

    @rwoerz thanks for reporting the difference between the wiring instructions. I have created https://github.com/mysensors/MySensors/issues/1096 to update the sketches.

    As long as you use the default pins, there is no need to change them. If you want to change them, see https://www.mysensors.org/apidocs/group__RadioSettingGrpPub.html



  • HI there, i have been using this code a while, but had to made some changes in my wifi connection info (because it seems that my Domotica controller couldnt command the gateway), but after a failed flash, i have managed to flash it again correctly, but it doesnt seem to connect to the gateway anymore, how can i check this? it wouldnt respond on a ping and i see no wifi connection in de serial log?


  • Mod

    Have you tried other sketches if they work? You may also try to flash a blank .bin file to erase everything on the esp8266



  • seems to work again indeed, had to flash something empty first.



  • Hi,
    I built a ESP8266 gateway using a wemos D1 mini and RFM95. I'd like to debug some communications with sensors with being attached to serial port of a computer, so I tried to connect via telnet.
    I can connect as telnet, but I don't see many details.. First, text in telnet is not aligned on the left, and second, it only lists some raw values instead of displaying same kind of verbose debug info like in the serial monitor.
    Is there a way to display same verbose text than in serial monitor ?

    Thanks,
    ricorico94



  • Hi,
    I answer to myself as it may help some other beginners like me.

    • there's a way to get the debug info via telnet session to the ESP8266 gateway: look fro MyNetDebug library in this forum.
      https://forum.mysensors.org/topic/7044/debug-messages-over-wi-fi

    • be careful if you reuse sketches from 2.2.0 with 2.3.0 library release : now instead of
      #define MY_ESP8266_SSID "MySSID"
      #define MY_ESP8266_PASSWORD "MyVerySecretPassword"

    you should use:
    #define MY_WIFI_SSID "MySSID"
    #define MY_WIFI_PASSWORD "MyVerySecretPassword"

    br,



  • I get the following errors when trying to Verify/Compile. I am trying to use the example sketch without any edits. Any ideas on what to do to fix this problem?
    Under additional Board Mangers I have the following.
    https://raw.githubusercontent.com/mysensors/ArduinoBoards/master/package_mysensors.org_index.json,http://arduino.esp8266.com/stable/package_esp8266com_index.json
    I have MySensors version 2.3.0 installed and have trying using previous versions.

    Errors:
    In file included from E:*\MySketchesNew\libraries\MySensors/MySensors.h:420:0,
    from E:*
    \MySketchesNew\GatewayESP8266\GatewayESP8266.ino:118:
    E:***\MySketchesNew\libraries\MySensors/hal/architecture/ESP8266/MyMainESP8266.cpp:57:53:
    error: declaration of C function 'void ets_update_cpu_frequency(int)'
    conflicts with extern "C" void ets_update_cpu_frequency(int freqmhz);
    In file included from C:\Users*\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\cores\esp8266/pgmspace.h:10:0,
    from C:\Users*
    \AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2\cores\esp8266/Arduino.h:256,
    from C:\Users*\AppData\Local\Temp\arduino_build_755180\sketch\GatewayESP8266.ino.cpp:1:
    C:\Users*
    \AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.2/tools/sdk/include/ets_sys.h:218:6:
    error: previous declaration 'void ets_update_cpu_frequency(uint32_t)' here void ets_update_cpu_frequency(uint32_t ticks_per_us);

    exit status 1
    Error compiling for board NodeMCU 1.0 (ESP-12E Module).

    Thank you for the assistance.


  • Mod



  • I have some strange issues with my ESP8266 Wifi gateway and NRF24L01 connection.
    All goes well for a day or so or sometimes 3, but than the WiFi communication stops, rebooting my WiFi access point solves the problem.
    It shouldn't be a DHCP issue, because that is handled through the firewall, so it must be something else. Problem is i cannot see what goes wrong, because i don't have a log anywhere on the device?
    What could be the best steps to solve or find the issue ?


  • Mod

    @richard-van-der-plas to get a log, activate MY_DEBUG in teh sketch and connect the esp8266 to a computer or a log device like sundberg84's logger.



  • @richard-van-der-plas I recognise the problem you describe. Resetting the router seems related, but the effect of the restart is that the ESP loses its Wifi connection, making it crash and restart. Then it works again, so I think it is because it was reset.
    You could try to program the ESP with an empty bin file to make sure it will be emptied completely, and than reprogram the ESP with your sketch.



  • Hello! I'm so happy with the MySensors community the forum helped me so much to find answers, but I can't figure out the following:
    I'm building an Wi-Fi Gateway using an ESP8266. That gateway is running now but I want to add the LEDS and inclusion mode button. In the comments of the code I find out that I have to use pin 16 for all the leds?

    // Flash leds on rx/tx/err
    // Led pins used if blinking feature is enabled above
    #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
    

    Is that correct? And with D? Pin do I have to use?

    For the inclusion mode button I have to use pin D1:

    // Digital pin used for inclusion mode button
    #define MY_INCLUSION_MODE_BUTTON_PIN D1
    

    But I can't compile this because I have to use an pin number and not just D1. How can I fix that? And how can I test/debug the button to see of it's in the inclusion mode?

    Thanks in advance!
    Robin


  • Mod

    Hi @b0wi, welcome to the forum!

    Some boards (for example Wemos/Lolin) define the Dn pins. If your board does not use the Dn naming convention, or if you like the gpio numbers better, just use the (gpio) number.

    Depending on your board, different pins can be used for different things. Some pins control boot behavior for example. See https://forum.mysensors.org/post/64783 for an earlier discussion on the same subject.



  • Thanks @mfalkvidd, I'm using this board: https://nl.aliexpress.com/item/NodeMcu-Lua-WIFI-Internet-of-Things-development-board-based-ESP8266-module/32448461056.html?spm=a2g0s.13010208.99999999.329.1df83c00aOlGkL

    I've to use different pins for each LED right?

    // Flash leds on rx/tx/err
    // Led pins used if blinking feature is enabled above
    #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
    

    And how can I test my inclusion button?
    Is there something to see in the log output?


  • Mod

    Indication leds: the same pin can be used. Pro: only one pin is needed. Con: you won't be able to see the type of indication. An alternaive, if you can't find enough pins, is to only activate one or two.

    Inclusion: hopefully someone else can assist. I have never used inclusion.



  • @mfalkvidd said in 💬 Building a WiFi Gateway using ESP8266:

    Indication leds: the same pin can be used. Pro: only one pin is needed. Con: you won't be able to see the type of indication. An alternaive, if you can't find enough pins, is to only activate one or two.

    Inclusion: hopefully someone else can assist. I have never used inclusion.

    It's working now!
    I'm using the following pins for the leds:

    // Flash leds on rx/tx/err
    // Led pins used if blinking feature is enabled above
    #define MY_DEFAULT_ERR_LED_PIN 0  // [D3 / GPIO 0] Error led pin (Red)
    #define MY_DEFAULT_RX_LED_PIN 2   // [D4 / GPIO 2] Receive led pin (Green)
    #define MY_DEFAULT_TX_LED_PIN 16  // [D0 / GPIO 16] Send led pin (Yellow)
    

    Pin layout ESP8266

    The leds where on all the time except when there was some activity, so I had to invent the leds:

    // Inverses the behavior of leds
    #define MY_WITH_LEDS_BLINKING_INVERSE
    

    For the inclusion button I've used:

    // Digital pin used for inclusion mode button
    #define MY_INCLUSION_MODE_BUTTON_PIN 5 // [D1 / GPIO 5] Button pin
    

    I needed to use an pull up resistor (10K ohm) for more stability.
    Pull Up Resistor



  • @mfalkvidd
    Quotes:
    "Don't define MY_RADIO_NRF24 and you're good to go. It will still be a gateway, but a gateway with local sensors and no radio."
    and
    "On one MySensors network there can only be one MySensors gateway. But on one IP network, there can be many MySensors gateways. Exactly how many depends on geography and chosen transports but at the very least a few hundred. Thousands if you really need and plan accordingly."

    Let´s say I have multiple ESPs, which should all act like a sensor node. I have a RPi w Domoticz, Mosquitto and MySensors MQTT ethernet gateway.
    I add the MQTT gateway to Domotics, listening on port 1883 (Mosquitto port). Now I set up a sketch, using

    #define MY_IP_ADDRESS 192,168,178,151
    #define MY_CONTROLLER_IP_ADDRESS 192,168,178,200 
    #define MY_PORT 1883
    

    which sets the gateway to client / node mode (as read on the documentation).
    Setting a node Id is ignored, ID is 0 and can´t be changed, so it is recognized as a gateway at domoticz.
    If I now set a second node to a different IP address and name, it overwrites the old one (as you say, there can be only one gateway).
    The question now is: how can I set up another ESP? Do I need another RPi or virtual machine with different IP address to install another gateway?



  • @inso said in 💬 Building a WiFi Gateway using ESP8266:

    Setting a node Id is ignored, ID is 0 and can´t be changed, so it is recognized as a gateway at domoticz.

    Imo using ESP8266-based devices all as GW's with locally attached switches (or other actively addressed children) conflicts also with other controller types (e.g. FHEM also doesn't like that on more than one GW).
    If you want to use that type of hardware, better use a different firmware like ESPEasy or Tasmota. The later seems to be a good fit for any installation using a MQTT-Server. (I personally don't like that kind of setup, wifi shouldn't be used for HA purposes imo).

    Just my2ct.



  • @rejoe2
    If I only would set up 8266´s I´d give it a try - problem is, I´m in love with the ESP 32.
    Bluetooth LE, multithreading, a second core only for the wifi stuff so no crashes on high wlan activity and no problems with time-critical events, lots of GPIO, awesome processor power, combined with the lower power consumption makes this the most-used chip here 🙂
    As far as I can see, both solutions you mentioned are not made for the ESP32 😞 .
    So I´d like to stick to MySensors as I could use lots of the sketches almost 1:1 (can´t be that hard to get more then one MQTT-"Client" running -.-).
    Only real other options I see is using MQTT-Clientsoftware from Basecamp or just set up an asynchronous http socket and code / decode the JSON-parameters send from and to Domoticz myself..



  • Sorry, I'm not familiar with the ESP32; perhaps you have a look around for other more powerful platforms on MySensors, starting here: https://forum.mysensors.org/topic/6961/nrf5-action.

    The problem within MySensors afaik is a double one:

    • First you have to make sure the GW get's the message. Eg. in FHEM, this is a problem, as one node basically is only identified by it's NodeID. As already described, internally there's a distinction between the GW part and the Sensor (node-) part. And the Sensor part gets unavoidably (at least afaik) the NodeID 0 - so for the controller all the Children are located at the same Node.
      As the controller notes just one IO (aka GW) per Node, Messages to the "unified" Node 0 will always be routed to the same GW. If this is different when using MQTT as transport layer and not serial or IP communication? (could be, as more clients can subscribe to a "Node 0"-topic...)

    • Second thing then is to make sure to not mess up messages intented for different GW's when doing some "broadcasting" by MQTT. Means: use different ChildID's for all the GW's sensors and actuators.

    Best success!



  • @andre65 did you figure this out? I have the same problem! Thanks.



  • @rejoe2
    You´re absolutely right.
    After 4+ hours debugging the MQTT gateway + ~10h trying to get MySensors MQTT on ethernet working properly, I tried a different way:
    installed NoteRed on the RPi and an asynchronous MQTT client on the ESP32, and within ~1 hour I had a fast and stable way to send messages from and to my nodes. Adding JSON parser on the ESP, and I can perfectly communicate with dummy Domoticz devices.
    Also, except of you and one very helpful guy within a private chat, noone preplied to MQTT-questions and ESP-stuff. Seems working with ESPs is reluctantly seen here on the forum.?
    So I assume a different way then using MySensors for everything except (battery-powered) Arduinos is the best I can do, to also have no problems in the future..



  • @inso
    Thanks for the feedback, sorry for your ineffective messin around with mysensors. I completely agree to your conclusion using MQTT directly on more powerfull boards able to communicate directly via WiFi.

    @inso said in 💬 Building a WiFi Gateway using ESP8266:

    Seems working with ESPs is reluctantly seen here on the forum.?

    I can only speak for myself 😁 but indeed, I absolutely dislike having (regular) WiFi devices integrated in my home automation. My personal concept is to use as much wires as possible (thus I really love the RS485 stuff here!) and use different RF technologies whereever possible - and connect the corresponding GW's using a USB plug!

    So atm I exactly have 2 ESP8266-based devices integrated: One is a bridge for my MiLight stuff (avoid that type of devices, but in case if, use the sidoh-firmware!), one is a IR-Device to play around...

    But everybody has to find his own way. Just my personal thoughts on that topic 😏


  • Mod

    I am running nrf24 and rfm69 gateways on the raspberry directly, so I don't have the need for additional hw. I am planning to use the esp32 as a presence detector though



  • I built a ESP8266 (Lolin V3) gw with RFM69 868mhz according to instructions.
    I flashed NodeMCU with EspTool without problems. I then uploaded my sketch. It started first OK, but after I set a fixed IP with my router, it will not connect anymore (to router??).

    Debug:

    $l⸮⸮`,ld⸮p :Y⸮56 MCO:BGN:INIT GW,CP=RRNGE---,REL=255,VER=2.3.1
    108 TSF:LRT:OK
    124 TSM:INIT
    137 TSF:WUR:MS=0
    157 TSM:INIT:TSP OK
    scandone
    state: 0 -> 2 (b0)
    state: 2 -> 3 (0)
    state: 3 -> 5 (10)
    add 0
    aid 7
    cnt 
    
    connected with Neptune, channel 11
    dhcp client start...
    323 TSM:INIT:GW MODE
    346 TSM:READY:ID=0,PAR=0,DIS=0
    378 MCO:REG:NOT NEEDED
    406 TSM:READY:NWD REQ
    1840 TSF:MSG:SEND,0-0-255-255,s=255,c=3,t=20,pt=0,l=0,sg=0,ft=0,st=OK:
    scandone
    1923 GWT:TPC:CONNECTING...
    2452 GWT:TPC:CONNECTING...
    2980 GWT:TPC:CONNECTING...
    3508 GWT:TPC:CONNECTING...
    4036 GWT:TPC:CONNECTING...
    4564 GWT:TPC:CONNECTING...
    5092 GWT:TPC:CONNECTING...
    5620 GWT:TPC:CONNECTING...
    6148 GWT:TPC:CONNECTING...
    6676 GWT:TPC:CONNECTING...
    7204 GWT:TPC:CONNECTING...
    7732 GWT:TPC:CONNECTING...
    8260 GWT:TPC:CONNECTING...
    8788 GWT:TPC:CONNECTING...
    9316 GWT:TPC:CONNECTING...
    9844 GWT:TPC:CONNECTING...
    pm open,type:2 0
    10372 GWT:TPC:CONNECTING...
    10901 GWT:TPC:CONNECTING...
    11430 GWT:TPC:CONNECTING...
    11959 GWT:TPC:CONNECTING...
    12488 GWT:TPC:CONNECTING...
    13017 GWT:TPC:CONNECTING...
    

    Sketch:

    #define MY_DEBUG
    #define MY_BAUD_RATE 9600
    #define MY_RADIO_RFM69
    #define MY_RFM69_FREQUENCY RFM69_868MHZ // Set your frequency here
    #define MY_IS_RFM69HW // Omit if your RFM is not "H"
    #define MY_RFM69_IRQ_PIN D1
    #define MY_RFM69_IRQ_NUM MY_RFM69_IRQ_PIN
    
    #define MY_GATEWAY_MQTT_CLIENT
    #define MY_GATEWAY_ESP8266
    #define MY_MQTT_PUBLISH_TOPIC_PREFIX "domoticz/in/mysenRFM69"
    #define MY_MQTT_SUBSCRIBE_TOPIC_PREFIX "domoticz/out/mysenRFM69"
    #define MY_MQTT_CLIENT_ID "mysenRFM69"
    #define MY_MQTT_USER "ZZZZ"
    #define MY_MQTT_PASSWORD "YYYYYYYY"
    
    #define MY_WIFI_SSID "Neptune"
    #define MY_WIFI_PASSWORD "XXXXXXXXXXXX"
    #define MY_HOSTNAME "mqtt-ESP8266-gateway"
    #define MY_CONTROLLER_IP_ADDRESS 192, 168, 1, 51
    #define MY_PORT 1883
    #define MY_DEFAULT_LED_BLINK_PERIOD 300
    // Flash leds on rx/tx/err
    #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 <MySensors.h>
    
    void setup()
    {
    	// Setup locally attached sensors
    }
    
    void presentation()
    {
    	// Present locally attached sensors here
    }
    
    void loop()
    {
    	// Send locally attached sensors data here
    }
    
    

    Sketch or router problem?
    Powered with computer usb + 800mA 5V charger at the moment.



  • 4ff93cc5-84b9-4b2c-8e2e-4cc2b4a92cd8-image.png
    914fdde7-43e9-4e7e-9d61-1a2a4502e7ff-image.png

    Hi I just have build this GW. and it is working. But as you can see in the screenshots, I get really strange readings from my sensors. The serial connected GW is working good.

    the first screenshot, strange temperature. no idea from where this is coming. second screen shot also strange temperature, and a battery reading.....

    I know from which sensors this is coming since the serial GW is also logging them. and these values are simply wrong. any idea what I should change?

    thanks



  • @MasMat said in 💬 Building a WiFi Gateway using ESP8266:

    r usb + 800mA 5V charg

    Sorry if I ask a noob question... I'm new and just arrived at MySensors
    This screenshot, where is from please ? I mean What software you use ?

    Thanks a lot
    Denis



  • Hi there all,
    I'm new here and for first think I'll like to thanks a lot for this wonderful MySensors

    I just folow step-by-step the guide here: Building a WiFi Gateway using ESP8266

    • use all this on a NodeMcu
    • I opened the sketch from Arduino Ide from File>Examples>My Sensors> GatewayESP8266
    • I edited my WiFi credentials, compiled, and write it on the NodeMcu
    • I opened the serial console and watch...

    This is what I see on the NodeMcu log:

    2216 GWT:TIN:CONNECTING...
    scandone
    state: 0 -> 2 (b0)
    3982 GWT:TIN:CONNECTING...
    state: 2 -> 3 (0)
    state: 3 -> 0 (12)
    reconnect
    5068 GWT:TIN:CONNECTING...
    6096 GWT:TIN:CONNECTING...
    7124 GWT:TIN:CONNECTING...
    scandone
    state: 0 -> 2 (b0)
    state: 2 -> 3 (0)
    state: 3 -> 0 (12)
    

    This NodeMcu was always connecting on my WiFi LAN.
    Someone can help me please ?

    Thanks in advance
    Denis



  • I finally understand with was the problem...
    My WiFi Mesh LAN accepted only 802.11.g+n radio... now that I have set 802.11.b+g+n it's ok
    Strange this think cause an all other WiFi Arduino schetch the 802.11.g+n radio was always accepted.

    Anyway... now it's work 🙂
    Denis



  • Hi,
    I have a small problem: I am using the Gateway Mysensor EPS8266 WIFi.
    Everything is correctly working except the leds:

    in the code mysensor code , there is:
    // Flash leds on rx / tx / err
    // Led pins used if blinking feature is enabled above

    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

    I replaced by:

    // Flash leds on rx / tx / err
    // Uncomment to override default HW configurations
    #define MY_DEFAULT_ERR_LED_PIN 1 // Error led pin
    #define MY_DEFAULT_RX_LED_PIN 3 // Receive led pin
    #define MY_DEFAULT_TX_LED_PIN 4 // the PCB, on board LED

    and it does not work: the LEDs are always half-on.

    can You tell me if these pins are used for other things and only PIN16 is available for the user ?

    Thanks for your help

    Gerard



  • Hello,
    I have been using MySensors for a long time. First with serial gateway now with ESP8266 gateway. For months everything worked fine except for small dropouts. Due to dropouts I wanted to switch to current development branch, since then I can not get the gateway to work.
    The ESP delivers only the following output:

     ets Jan  8 2013,rst cause:2, boot mode:(3,6)
    
    load 0x4010f000, len 3460, room 16 
    tail 4
    chksum 0xcc
    load 0x3fff20b8, len 40, room 4 
    tail 4
    chksum 0xc9
    csum 0xc9
    v00051da0
    ~ld
    
    

    I use ESP07 with RFM69 and Standard Sketch. Compiled the code with Arduino IDE as well as with VS code, always with the same result.
    I disconnected RFM69 and checked the supply voltage. Have even used other calculator.
    Have also tested ESP12e.
    Erase Flash I have also already done.
    However, when I run other code on the ESP, it runs without problems.
    Erase Flash I have also already done.
    I just don't understand it.

    #define MY_DEBUG
    #define MY_BAUD_RATE 115200
    #define MY_RADIO_RFM69
    #define MY_IS_RFM69HW
    
    #define MY_GATEWAY_ESP8266
    
    #define MY_WIFI_SSID "my ssid"
    #define MY_WIFI_PASSWORD "my pw"
    
    #define MY_HOSTNAME "MySensors-GW"
    #define MY_PORT 5003
    #define MY_GATEWAY_MAX_CLIENTS 3
    #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
    
    #include <MySensors.h>
    
    void setup()
    {
    }
    
    void presentation()
    {
    }
    
    void loop()
    {
    }
    

  • Mod

    @Zwer2k please don't crosspost!



  • Sorry for crosspost.
    I found out that the error was due to too new version of espressif8266. I had version 3.1.0 installed, but MySensors seems to work only with versions < 3.0.0. Otherwise the error comes up. Unfortunately I did not find any hint about this anywhere.



  • Hello! I'm trying to run ESP8266 gateway with nrf24l01 radio module, but when I run it I don't see any logs, I've enebled debugging mode, but still no logs (and it doesn't run gateway either). I've checked connection between this board end esp32 - they communicate well. Don't know what to do else.


  • Mod

    @Serj-Sam logs are available through serial port. You mention esp8266 and esp32; which one is it?


  • Mod

    @Serj-Sam you mention "connection between this board and esp32". What board are you referring to, and what type of connection? Wifi?



  • @mfalkvidd I have esp8266 NodeMCU v3. I've connected it to esp32 devkit via nrf24l01 using simple test code where I sending and reading constant string. It's just to exclude problems with nrf24l01 and esp8266.
    @Yveaux I don't have any logs through serial port related to the MySensors. When I remove MySensors lib (and the code related to it) I'm able to print messages in setup() and loop() section, but with MySensors lib it stuckted somewhere without logs and do not execute code in setup() and loop() sections.


  • Mod

    @Serj-Sam you could very well have run into the incompatibility of mysensors with the latest esp arduino core 3.x (see eg https://github.com/mysensors/MySensors/issues/1496)
    Easiest solution is to downgrade the esp arduino core to 2.x



  • @Yveaux said in 💬 Building a WiFi Gateway using ESP8266:

    downgrade the esp arduino core

    Thank you @Yveaux ! It works now! Have you heard anything about long-term solution? Looks like this will be overwritten once I update MySensors lib.


  • Mod

    @Serj-Sam there is a pull request included in that pr. Once this is merged it will be available in development, later in the next release.
    If you just downgraded the core, that is persistent until you upgrade the core to 3.x again.



  • Hi,
    I would like to add sendSketchInfo to my gateway.
    I added

    const char* sketch_name = "GatewayESP8266OTA_v3";
    const char* rev = "1.01";

    at the beginning of the sketch and

    sendSketchInfo(sketch_name, rev);

    in the presentation part.

    but this doesn't seem to work. Am I doing anything wrong? Any suggestion on how to do it right? Many thanks in advance!



  • Use this syntax instead:

    #define SN "GatewayESP8266OTA_v3"
    #define SV "1.01"
    [...]
    sendSketchInfo(SN, SV);
    


  • @Fat-Fly i also want the answer of this question



  • Worth noting - use MY_RFM69_NEW_DRIVER define... (2.3.2+)

    #ifdef ESP8266
        // For RFM69
        #define MY_RADIO_RFM69
    	#define MY_RFM69_NEW_DRIVER
        #define MY_RFM69_FREQUENCY  RFM69_868MHZ // Set your frequency here
        #define MY_IS_RFM69HW                    // Omit if your RFM is not "H"
        #define MY_RFM69_IRQ_PIN    D1
        #define MY_RFM69_IRQ_NUM    digitalPinToInterrupt(MY_RFM69_IRQ_PIN)
        #define MY_RFM69_CS_PIN     D8           // NSS. Use MY_RFM69_SPI_CS for older versions (before 2.2.0)
    #endif
    


  • Hi,
    I'm having trouble compiling the ESP gate code. Can you help me?

    In file included from c:\Users\Arkadiusz_Dziura\Documents\Arduino\libraries\MySensors/MySensors.h:441,
    from C:\Users\Arkadiusz_Dziura\Documents\Arduino_OLD\Domoticz_BRAMA_ESP\Domoticz_BRAMA_ESP.ino:61:
    c:\Users\Arkadiusz_Dziura\Documents\Arduino\libraries\MySensors/hal/architecture/ESP8266/MyMainESP8266.cpp: In function 'bool can_yield()':
    c:\Users\Arkadiusz_Dziura\Documents\Arduino\libraries\MySensors/hal/architecture/ESP8266/MyMainESP8266.cpp:95:9: error: 'cont_can_yield' was not declared in this scope; did you mean 'can_yield'?
    95 | return cont_can_yield(g_pcont);
    | ^~~~~~~~~~~~~~
    | can_yield
    c:\Users\Arkadiusz_Dziura\Documents\Arduino\libraries\MySensors/hal/architecture/ESP8266/MyMainESP8266.cpp: In function 'void esp_yield_within_cont()':
    c:\Users\Arkadiusz_Dziura\Documents\Arduino\libraries\MySensors/hal/architecture/ESP8266/MyMainESP8266.cpp:101:2: error: 'cont_yield' was not declared in this scope; did you mean 'can_yield'?
    101 | cont_yield(g_pcont);
    | ^~~~~~~~~~
    | can_yield
    c:\Users\Arkadiusz_Dziura\Documents\Arduino\libraries\MySensors/hal/architecture/ESP8266/MyMainESP8266.cpp: In function 'void loop_task(ETSEvent*)':
    c:\Users\Arkadiusz_Dziura\Documents\Arduino\libraries\MySensors/hal/architecture/ESP8266/MyMainESP8266.cpp:199:26: error: invalid operands of types 'void' and 'int' to binary 'operator!='
    199 | if (cont_check(g_pcont) != 0) {
    | ~~~~~~~~~~~~~~~~~~~ ^~ ~
    | | |
    | void int

    exit status 1

    Compilation error: exit status 1



  • I join the question, I have exactly the same problem: .../MyMainESP8266.cpp:95:9: error: 'cont_can_yield' was not declared in this scope; did you mean 'can_yield'?
    i found a reference #include "cont.h" in MyMainESP8266.cpp but i can't find 'cont.h'



  • @veris25
    I installed an older ESP8266 lib v3.0.0 to compile without errors.



  • You should try downgrading the ESP version below 3.0



  • elektryk ....I do not really understand.




Log in to reply
 

Suggested Topics

  • 3
  • 109
  • 5
  • 110
  • 2
  • 2

0
Online

11.4k
Users

11.1k
Topics

112.7k
Posts