MySensors Ethernet Gateway goes to OFFLINE state
-
@TimO brief setup: controller and serial gateway on raspberryPi running OH2, serial working OK. Trying to add ESP8266 Huzzah gateway with only local sensor, DHT22 - no radio. It seems I have a similar situation as others, but before I post all my setup and logs a question for you: when using both a serial gateway and ethernet gateway can they be named the same, "gateway", in things file? What bothers me is the "channel" in the items file ends up looking like it is from the same source or am I missing something?
Things file:
Bridge mysensors:bridge-ser:gateway [ serialPort="/dev/ttyMySensorsGateway", sendDelay=200 ] { /** define things connected to that bridge here */ humidity hum01 [ nodeId="1", childId="0" ] temperature temp01 [ nodeId="1", childId="1" ] humidity hum02 [ nodeId="1", childId="2" ] temperature temp02 [ nodeId="1", childId="3" ] humidity hum03 [ nodeId="1", childId="4" ] temperature temp03 [ nodeId="1", childId="5" ] power power01 [ nodeId="2", childId="0" ] mySensorsMessage mySMsg01 [ nodeId="999", childId="999" ] } Bridge mysensors:bridge-eth:gateway [ ipAddress="192.168.1.113", tcpPort=5003, sendDelay=200 ] { /** define things connected to that bridge here */ humidity hum04 [ nodeId="3", childId="0" ] temperature temp04 [ nodeId="3", childId="1" ] }Items file snippet (hum02/temp02 on serial GW and hum04/temp04 on eth GW)
Number mHum "Master Humidity [%.0f %%]" <humidity> (grpChart,grpTemperatures) { channel="mysensors:humidity:gateway:hum02:hum" } Number mTemp "Master Temperature" <temperature> { channel="mysensors:temperature:gateway:temp02:temp" } Number bHum "Bean's Humidity [%.0f %%]" <humidity> (grpChart,grpTemperatures) { channel="mysensors:humidity:gateway:hum04:hum" } Number bTemp "Bean's Temperature" <temperature> { channel="mysensors:temperature:gateway:temp04:temp" } -
@TimO brief setup: controller and serial gateway on raspberryPi running OH2, serial working OK. Trying to add ESP8266 Huzzah gateway with only local sensor, DHT22 - no radio. It seems I have a similar situation as others, but before I post all my setup and logs a question for you: when using both a serial gateway and ethernet gateway can they be named the same, "gateway", in things file? What bothers me is the "channel" in the items file ends up looking like it is from the same source or am I missing something?
Things file:
Bridge mysensors:bridge-ser:gateway [ serialPort="/dev/ttyMySensorsGateway", sendDelay=200 ] { /** define things connected to that bridge here */ humidity hum01 [ nodeId="1", childId="0" ] temperature temp01 [ nodeId="1", childId="1" ] humidity hum02 [ nodeId="1", childId="2" ] temperature temp02 [ nodeId="1", childId="3" ] humidity hum03 [ nodeId="1", childId="4" ] temperature temp03 [ nodeId="1", childId="5" ] power power01 [ nodeId="2", childId="0" ] mySensorsMessage mySMsg01 [ nodeId="999", childId="999" ] } Bridge mysensors:bridge-eth:gateway [ ipAddress="192.168.1.113", tcpPort=5003, sendDelay=200 ] { /** define things connected to that bridge here */ humidity hum04 [ nodeId="3", childId="0" ] temperature temp04 [ nodeId="3", childId="1" ] }Items file snippet (hum02/temp02 on serial GW and hum04/temp04 on eth GW)
Number mHum "Master Humidity [%.0f %%]" <humidity> (grpChart,grpTemperatures) { channel="mysensors:humidity:gateway:hum02:hum" } Number mTemp "Master Temperature" <temperature> { channel="mysensors:temperature:gateway:temp02:temp" } Number bHum "Bean's Humidity [%.0f %%]" <humidity> (grpChart,grpTemperatures) { channel="mysensors:humidity:gateway:hum04:hum" } Number bTemp "Bean's Temperature" <temperature> { channel="mysensors:temperature:gateway:temp04:temp" } -
@TimO I guess it is not in a loop. Here is the serial debug...
0;255;3;0;9;Starting gateway (RNNGA-, 2.0.0) 0;255;3;0;9;TSM:INIT 0;255;3;0;9;TSM:RADIO:OK 0;255;3;0;9;TSM:GW MODE 0;255;3;0;9;TSM:READY IP: 192.168.1.66 0;255;3;0;9;No registration required 0;255;3;0;9;Init complete, id=0, parent=0, distance=0, registration=1 0;255;3;0;9;Eth: connect 0;255;3;0;9;Eth: 0;0;3;0;2; 0;255;3;0;9;Eth: 0;255;3;0;9;Eth: 0;0;3;0;2; 0;255;3;0;9;Eth: 0;255;3;0;9;Eth: 0;0;3;0;2; 0;255;3;0;9;Eth: disconnect 0;255;3;0;9;Eth: connect 0;255;3;0;9;Eth: 0;0;3;0;2; 0;255;3;0;9;TSP:MSG:READ 4-4-255 s=255,c=3,t=7,pt=0,l=0,sg=0: 0;255;3;0;9;TSP:MSG:BC 0;255;3;0;9;TSP:MSG:FPAR REQ (sender=4) 0;255;3;0;9;TSP:CHKUPL:OK 0;255;3;0;9;TSP:MSG:GWL OK 0;255;3;0;9;TSP:MSG:SEND 0-0-4-4 s=255,c=3,t=8,pt=1,l=1,sg=0,ft=0,st=ok:0 0;255;3;0;9;Eth: 0;255;3;0;9;Eth: 0;0;3;0;2; 0;255;3;0;9;TSP:MSG:READ 4-4-0 s=255,c=3,t=24,pt=1,l=1,sg=0:1 0;255;3;0;9;TSP:MSG:PINGED (ID=4, hops=1) 0;255;3;0;9;TSP:MSG:SEND 0-0-4-4 s=255,c=3,t=25,pt=1,l=1,sg=0,ft=0,st=ok:1 0;255;3;0;9;Eth: 0;255;3;0;9;Eth: 0;0;3;0;2; 0;255;3;0;9;TSP:MSG:READ 4-4-0 s=255,c=3,t=15,pt=6,l=2,sg=0:0100 0;255;3;0;9;TSP:MSG:SEND 0-0-4-4 s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=ok:0100 0;255;3;0;9;TSP:MSG:READ 4-4-0 s=255,c=0,t=17,pt=0,l=5,sg=0:2.0.0 0;255;3;0;9;TSP:MSG:READ 4-4-0 s=255,c=3,t=6,pt=1,l=1,sg=0:0 0;255;3;0;9;TSP:MSG:READ 4-4-0 s=255,c=3,t=11,pt=0,l=13,sg=0:Motion Sensor 0;255;3;0;9;TSP:MSG:READ 4-4-0 s=255,c=3,t=12,pt=0,l=3,sg=0:1.0 0;255;3;0;9;Eth: disconnect 0;255;3;0;9;TSP:MSG:READ 4-4-0 s=255,c=3,t=26,pt=1,l=1,sg=0:2 0;255;3;0;9;TSP:MSG:SEND 0-0-4-4 s=255,c=3,t=27,pt=1,l=1,sg=0,ft=0,st=ok:1 0;255;3;0;9;TSP:MSG:READ 4-4-0 s=255,c=3,t=26,pt=1,l=1,sg=0:2 0;255;3;0;9;TSP:MSG:SEND 0-0-4-4 s=255,c=3,t=27,pt=1,l=1,sg=0,ft=0,st=ok:1 0;255;3;0;9;TSP:MSG:READ 4-4-0 s=255,c=3,t=26,pt=1,l=1,sg=0:2 0;255;3;0;9;TSP:MSG:SEND 0-0-4-4 s=255,c=3,t=27,pt=1,l=1,sg=0,ft=0,st=ok:1 0;255;3;0;9;TSP:MSG:READ 4-4-0 s=11,c=1,t=0,pt=7,l=5,sg=0:19.4 0;255;3;0;9;TSP:MSG:READ 4-4-0 s=10,c=1,t=1,pt=7,l=5,sg=0:61.7 0;255;3;0;9;Eth: connect 0;255;3;0;9;Eth: 0;0;3;0;2; 0;255;3;0;9;Eth: disconnect 0;255;3;0;9;Eth: connect 0;255;3;0;9;Eth: 0;0;3;0;2; 0;255;3;0;9;Eth: 0;255;3;0;9;Eth: 0;0;3;0;2; 0;255;3;0;9;Eth: 0;255;3;0;9;Eth: 0;0;3;0;2; 0;255;3;0;9;Eth: disconnect 0;255;3;0;9;TSP:SANCHK:OK@triceT Just to make sure it is still working with the current snapshot I made a clean install.
I've used:
- OH2 Snapshot #631
- current Binding
- MySensors 2.0.0
- Ethernet Gateway (Arduino Uno + Ethernet Shield + NRF24L01+)
Everything works just fine, so don't give up! :-)
-
@TimO thanks for the reply. I changed mysensors:bridge-eth:gateway to mysensors:bridge-eth:ethGateway in things and items, restarted OH2, reset ESP8266, several times, but no luck. If I read this right the GW is not trying to do much, ie get node id, present sensor, send data, etc. Any idea?
GW serial:
0;255;3;0;9;MCO:BGN:STP 0;255;3;0;9;MCO:SLP:MS=2000,SMS=0,I1=255,M1=255,I2=255,M2=255 0;255;3;0;9;MCO:SLP:WUP=-2 0;255;3;0;9;MCO:BGN:INIT OK,TSP=NA Getting temperature T: 20.00 H: 34.70 Getting temperature T: 20.10 H: 33.90I am trying to set node id in sketch:
// Set this to the pin you connected the DHT's data pin to #define DHT_DATA_PIN 2 // Enable debug prints to serial monitor #define MY_DEBUG #define MY_GATEWAY_ESP8266 // ethernet settings #define MY_ESP8266_SSID "xxxxxx" #define MY_ESP8266_PASSWORD "xxxxxxxxxx" // Enable UDP communication //#define MY_USE_UDP // Set the hostname for the WiFi Client. This is the hostname // it will pass to the DHCP server if not static. #define MY_ESP8266_HOSTNAME "HuzzahGateway" // Enable MY_IP_ADDRESS here if you want a static ip address (no DHCP) //#define MY_IP_ADDRESS 192,168,213,113 // If using static ip you need to define Gateway and Subnet address as well //#define MY_IP_GATEWAY_ADDRESS 192,168,213,1 //#define MY_IP_SUBNET_ADDRESS 255,255,255,0 // The port to keep open on node server mode #define MY_PORT 5003 // How many clients should be able to connect to this gateway (default 1) #define MY_GATEWAY_MAX_CLIENTS 1 // Controller ip address. Enables client mode (default is "server" mode). // Also enable this if MY_USE_UDP is used and you want sensor data sent somewhere. //#define MY_CONTROLLER_IP_ADDRESS 192,168,213,116 // 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 #define MY_NODE_ID 3 #include <SPI.h> #include <ESP8266WiFi.h> #include <MySensors.h> #include <DHT.h> -
@TimO thanks for the reply. I changed mysensors:bridge-eth:gateway to mysensors:bridge-eth:ethGateway in things and items, restarted OH2, reset ESP8266, several times, but no luck. If I read this right the GW is not trying to do much, ie get node id, present sensor, send data, etc. Any idea?
GW serial:
0;255;3;0;9;MCO:BGN:STP 0;255;3;0;9;MCO:SLP:MS=2000,SMS=0,I1=255,M1=255,I2=255,M2=255 0;255;3;0;9;MCO:SLP:WUP=-2 0;255;3;0;9;MCO:BGN:INIT OK,TSP=NA Getting temperature T: 20.00 H: 34.70 Getting temperature T: 20.10 H: 33.90I am trying to set node id in sketch:
// Set this to the pin you connected the DHT's data pin to #define DHT_DATA_PIN 2 // Enable debug prints to serial monitor #define MY_DEBUG #define MY_GATEWAY_ESP8266 // ethernet settings #define MY_ESP8266_SSID "xxxxxx" #define MY_ESP8266_PASSWORD "xxxxxxxxxx" // Enable UDP communication //#define MY_USE_UDP // Set the hostname for the WiFi Client. This is the hostname // it will pass to the DHCP server if not static. #define MY_ESP8266_HOSTNAME "HuzzahGateway" // Enable MY_IP_ADDRESS here if you want a static ip address (no DHCP) //#define MY_IP_ADDRESS 192,168,213,113 // If using static ip you need to define Gateway and Subnet address as well //#define MY_IP_GATEWAY_ADDRESS 192,168,213,1 //#define MY_IP_SUBNET_ADDRESS 255,255,255,0 // The port to keep open on node server mode #define MY_PORT 5003 // How many clients should be able to connect to this gateway (default 1) #define MY_GATEWAY_MAX_CLIENTS 1 // Controller ip address. Enables client mode (default is "server" mode). // Also enable this if MY_USE_UDP is used and you want sensor data sent somewhere. //#define MY_CONTROLLER_IP_ADDRESS 192,168,213,116 // 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 #define MY_NODE_ID 3 #include <SPI.h> #include <ESP8266WiFi.h> #include <MySensors.h> #include <DHT.h>@carlyler Serial log looks good. The gateway is receiving it's IP per DHCP, right? Is the IP you configured above still correct? I prefer a static IP for my gateway to prevent a changing of the IP.
Is the gateway reachable by ping? Are you able to connect with "telnet IP 5003" to the gateway?
-
@TimO DHCP: yes, but it is actually static by way of reserved addresses via MAC in the router.
IP: same
ping: yes, works
telnet, yes, all I see is:0;255;3;0;14;Gateway startup complete.Serial is OK? I do not see the send of the Temp and hum; it is printing it because there is code to do that, but I am expecting the MySensors send command; right? My thought was it is not transmitting them for some reason. This is an area I am not confident about and have yet to find a good explanation of it: how a GW handles local sensors. Thoughts?
-
@triceT Just to make sure it is still working with the current snapshot I made a clean install.
I've used:
- OH2 Snapshot #631
- current Binding
- MySensors 2.0.0
- Ethernet Gateway (Arduino Uno + Ethernet Shield + NRF24L01+)
Everything works just fine, so don't give up! :-)
-
@TimO Good news! I finally got it to work; I have been using the dev, 2.1.0, and decided to try master, 2.0.0 and it came right up! I did notice one thing though that you may be interested in: if I start the ethGateway after OH2 is up, or turn it off and back on, the binding does not reconnect. Not sure if there is anything you can do about that.
One other change to mention (before changing to v2.0.0): I found a note from hek about the node id of gateway local sensors will always be 0; I changed that in my things file and in my sketch.16:34:59.286 [DEBUG] [rs.internal.protocol.MySensorsReader] - 0;1;1;0;0;12.5 16:34:59.291 [DEBUG] [ternal.handler.MySensorsThingHandler] - Setting last update for node 0 to 2016-12-10T16:34:59.289-0500 16:34:59.300 [DEBUG] [ternal.handler.MySensorsThingHandler] - Setting last update for node 0 to 2016-12-10T16:34:59.297-0500 16:34:59.333 [INFO ] [marthome.event.ItemStateChangedEvent] - bTemp changed from 12.8 to 12.5 16:34:59.354 [INFO ] [marthome.event.ItemStateChangedEvent] - bTempF changed from 55.04 to 54.50 16:34:59.365 [INFO ] [marthome.event.ItemStateChangedEvent] - bTempC_F changed from 12.8 °C / 55.0 °F to 12.5 °C / 54.5 °F 16:34:59.490 [DEBUG] [al.protocol.ip.MySensorsIpConnection] - Bridge is connected, connection skipped 16:34:59.583 [DEBUG] [rs.internal.protocol.MySensorsReader] - 0;0;1;0;1;34.1 16:34:59.593 [INFO ] [marthome.event.ItemStateChangedEvent] - bHum changed from 34.2 to 34.1@hek I could be wrong, or maybe something has changed configuration wise but as you can see from above posts, dev branch v2.1.0, the radioless ethernet (ESP8266) gateway with local temp & hum sensors was not sending local sensor data. When I switched back to master v2.0.0 it started sending.
-
@TimO Good news! I finally got it to work; I have been using the dev, 2.1.0, and decided to try master, 2.0.0 and it came right up! I did notice one thing though that you may be interested in: if I start the ethGateway after OH2 is up, or turn it off and back on, the binding does not reconnect. Not sure if there is anything you can do about that.
One other change to mention (before changing to v2.0.0): I found a note from hek about the node id of gateway local sensors will always be 0; I changed that in my things file and in my sketch.16:34:59.286 [DEBUG] [rs.internal.protocol.MySensorsReader] - 0;1;1;0;0;12.5 16:34:59.291 [DEBUG] [ternal.handler.MySensorsThingHandler] - Setting last update for node 0 to 2016-12-10T16:34:59.289-0500 16:34:59.300 [DEBUG] [ternal.handler.MySensorsThingHandler] - Setting last update for node 0 to 2016-12-10T16:34:59.297-0500 16:34:59.333 [INFO ] [marthome.event.ItemStateChangedEvent] - bTemp changed from 12.8 to 12.5 16:34:59.354 [INFO ] [marthome.event.ItemStateChangedEvent] - bTempF changed from 55.04 to 54.50 16:34:59.365 [INFO ] [marthome.event.ItemStateChangedEvent] - bTempC_F changed from 12.8 °C / 55.0 °F to 12.5 °C / 54.5 °F 16:34:59.490 [DEBUG] [al.protocol.ip.MySensorsIpConnection] - Bridge is connected, connection skipped 16:34:59.583 [DEBUG] [rs.internal.protocol.MySensorsReader] - 0;0;1;0;1;34.1 16:34:59.593 [INFO ] [marthome.event.ItemStateChangedEvent] - bHum changed from 34.2 to 34.1@hek I could be wrong, or maybe something has changed configuration wise but as you can see from above posts, dev branch v2.1.0, the radioless ethernet (ESP8266) gateway with local temp & hum sensors was not sending local sensor data. When I switched back to master v2.0.0 it started sending.
-
@carlyler
The issue with the oh2 binding is known. You have to restart oh2 or just the binding through oh console and binding:restart
Maybe an update of the binding may help but I didn't try yet. -
@pentti12 I've pushed a new version of the binding to github, please try it out and let me know if it helps.
@TimO
yesterday I tried the new binding with OH2 b4 and I have exactly the faulty behavior as described before. The gateway goes in online state but none of the mysensor node items goes online. They remain uninitialized. I restored the older binding and everything works well again. As it is the same behavior that @pentti12 describes I think it has to with the binding itself.@pentti12 : please try attached binding as that works for me. 0_1482134888619_org.openhab.binding.mysensors-2.0.0-SNAPSHOT.jar
it is an older snapshot from November, 7th.
Good luck -
@TimO
yesterday I tried the new binding with OH2 b4 and I have exactly the faulty behavior as described before. The gateway goes in online state but none of the mysensor node items goes online. They remain uninitialized. I restored the older binding and everything works well again. As it is the same behavior that @pentti12 describes I think it has to with the binding itself.@pentti12 : please try attached binding as that works for me. 0_1482134888619_org.openhab.binding.mysensors-2.0.0-SNAPSHOT.jar
it is an older snapshot from November, 7th.
Good luck -
@jogant you're right, as stated in the wiki the current binding version is only working together with the current snapshot release. I had no luck while trying to create a binding that is backward compatible.
now I tried the new combination of a recent OH2 snapshot as of 2016-12-21 with the recent mysensors binding. I had to restart the gateway and every single node but then everything works well. The nodes were found in the inbox and could be acknowledged as new things. Values are transmitted regularly and my relay node follows the switch items as desired. So no glitch at the moment.
Well done @TimO.