[defaults]
hostname = 'localhost'
port = 1883
username = test
password = test
clientid = 'mqttwarn'
lwt = 'clients/mqttwarn'
skipretained = False
cleansession = True
# MQTTv31 = 3 (default)
# MQTTv311 = 4
protocol = 3
; logging
logformat = '%(asctime)-15s %(levelname)-5s [%(module)s] %(message)s'
logfile = 'mqttwarn.log'
; one of: CRITICAL, DEBUG, ERROR, INFO, WARN
loglevel = DEBUG
; name the service providers you will be using.
launch = file, log, instapush, smtp, http, twitter
[config:file]
append_newline = True
targets = {
'data' : ['/overlay/mosquitto/mqtt-data.log'],
'mqttwarn' : ['/overlay/mosquitto/mqttwarn.err'],
}
[config:log]
targets = {
'info' : [ 'info' ],
'warn' : [ 'warn' ],
'crit' : [ 'crit' ],
'error' : [ 'error' ]
}
; special config for 'failover' events
[failover]
targets = log:error, file:mqttwarn
[config:http]
timeout = 60
targets = {
#method #URL # query params or None # list auth
'thingspeak' : [ "get", "http://api.thingspeak.com/update?key=XXXXXXXXXXXXXXXXXXX&field1={micros}&field2={counter}", None, None ]
}
[config:smtp]
server = 'smtp.mail.ru:25'
sender = "MQTTwarn <esp8266@mail.ru>"
username = esp8266@mail.ru
password = XXXXXXXXX
starttls = True
targets = {
'notify' : [ '4refr0nt@gmail.com' ],
'special' : [ 'ben@gmail', 'suzie@example.net' ]
}
[config:instapush]
appid = 'XXXXXXXXXXXXXXXXXXXXXXXX'
appsecret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
targets = {
# event # tracker
'alerts' : [ 'alerts', {"object":"counter", "action":'{counter}'}],
'gpio' : [ 'gpio' , {"status":'{status}'}]
}
[config:twitter]
targets = {
'tweet' : [ 'XXXXXXXXXXXXXXXXXXXXXXXXX', # consumer_key
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', # consumer_secret
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', # access_token_key
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' # access_token_secret
]
}
[/ESP8266/DATA]
targets = log:info, file:data, smtp:notify, instapush:alerts, http:thingspeak, instapush:alerts
[/ESP8266/STATUS/GPIO/4]
targets = instapush:gpio
twitter:tweet
В таких случаях всегда помогают логи - смотрите логи и увидите в чем проблема.запуск, сопровождался 10 - ти секундной паузой, а затем изменением значка, что этот модуль загружен, на указание, о том, что он не загружен.
В том то и проблема, я забыл сказать, что ни лога mqtt-data.log, ни файла ошибок mqttwarn.err не формируется. На что ещё стоит обратить внимание?В таких случаях всегда помогают логи - смотрите логи и увидите в чем проблема.
Достаточно одной запятой не в том месте в конфиге, чтобы это привело к ошибке при запуске.
попробуйте сократить mqttwarn.ini до минимума, добейтесь чтобы запускалось и писало логи, а потом добавляйте свои настройки по чуть-чутьНа что ещё стоит обратить внимание?
Внутри локальной сети можно поднять Wireshark, тогда увидите все пакеты (придется правда поставить второй сетевой интерфейс на комп, или еще как-то сделать, чтобы весь трафик шел через сетевой интерфейс компа).Как вообще можно проверить, что данные покидают маршрутизатор и доходят до ThingSpeak?
http://api.thingspeak.com/update?key=J11B6MT8FV2Q8VV&field1=0&field2=0
сложно что-то советовать с таким минимумом информацииОдним словом как быть и что делать?
[defaults]
hostname = 'localhost'
port = 1883
username = test
password = test
clientid = 'mqttwarn'
lwt = 'clients/mqttwarn'
skipretained = False
cleansession = True
# MQTTv31 = 3 (default)
# MQTTv311 = 4
protocol = 3
; logging
logformat = '%(asctime)-15s %(levelname)-5s [%(module)s] %(message)s'
logfile = 'mqttwarn.log'
; one of: CRITICAL, DEBUG, ERROR, INFO, WARN
loglevel = DEBUG
; name the service providers you will be using.
launch = file, log, instapush, smtp, http
[config:file]
append_newline = True
targets = {
'data' : ['/overlay/mosquitto/mqtt-data.log'],
'mqttwarn' : ['/overlay/mosquitto/mqttwarn.err'],
}
[config:log]
targets = {
'info' : [ 'info' ],
'warn' : [ 'warn' ],
'crit' : [ 'crit' ],
'error' : [ 'error' ]
}
; special config for 'failover' events
[failover]
targets = log:error, file:mqttwarn
[config:http]
timeout = 60
targets = {
#method #URL # query params or None # list auth
'thingspeak' : [ "get", "http://api.thingspeak.com/update?key=J11B6MT8FV2QWDVV&field1={micros}&field2={counter}", None, None ]
}
[config:instapush]
appid = '55ce2e53a5c48a6934c9a5df'
appsecret = '4539a3f86c271c45c249751293c62d07'
targets = {
# event # tracker
'alerts' : [ 'alerts', {"object":"counter", "action":'{counter}'}],
'gpio' : [ 'gpio' , {"status":'{status}'}]
}
[/ESP8266/DATA]
targets = http:thingspeak, smtp:notify, instapush:alerts
[inline]ps acx | grep mqttwarn[/inline]какими ещё средствами можно убедиться в работе mqttwarn
root@OpenWrt:~# ps | grep mqttwarn
1329 root 16724 S {mqttwarn.py} /usr/bin/python /overlay/mosquitto/mqttwarn.py
9162 root 1356 S grep mqttwarn
root@OpenWrt:~#
#!/bin/sh /etc/rc.common
# Script to start mqttwarn as a daemon
START=95
STOP=10
DIR="/overlay/mosquitto/"
BIN="/overlay/mosquitto/mqttwarn.py"
PIDFILE=/var/run/mqttwarn.pid
start() {
echo start
cd $DIR
start-stop-daemon -b -S -q -m -p $PIDFILE -x $BIN
}
stop() {
echo stop
start-stop-daemon -K -q -p $PIDFILE
rm -f $PIDFILE
}
root@OpenWrt:/# ps | grep mqttwarn
3200 root 1356 S grep mqttwarn
root@OpenWrt:/#
root@OpenWrt:/# /usr/bin/python /overlay/mosquitto/mqttwarn.py
Traceback (most recent call last):
File "/overlay/mosquitto/mqttwarn.py", line 4, in <module>
import paho.mqtt.client as paho # pip install paho-mqtt
ImportError: No module named paho.mqtt.client
root@OpenWrt:/#
root@OpenWrt:/# pip install paho-mqtt
Downloading/unpacking paho-mqtt
Downloading paho-mqtt-1.1.tar.gz (41kB): 41kB downloaded
Running setup.py (path:/tmp/pip_build_root/paho-mqtt/setup.py) egg_info for package paho-mqtt
Installing collected packages: paho-mqtt
Running setup.py install for paho-mqtt
warning: build_py: byte-compiling is disabled, skipping.
warning: install_lib: byte-compiling is disabled, skipping.
Successfully installed paho-mqtt
Cleaning up...
root@OpenWrt:/# ps | grep mqttwarn
3571 root 1356 S grep mqttwarn
root@OpenWrt:/# /usr/bin/python /overlay/mosquitto/mqttwarn.py
Cannot open configuration at mqttwarn.ini: [Errno 2] No such file or directory: 'mqttwarn.ini'
[EMAIL]root@OpenWrt:/#[/EMAIL]