The new plugin is out, its a tracking device (presence) which uses MQTT, you can find everything in the plugin description.
I hope you can find it useful, i know i am.
New plugin - Owntracks
The new plugin is out, its a tracking device (presence) which uses MQTT, you can find everything in the plugin description.
I hope you can find it useful, i know i am.
@dpressle See https://pimatic.org/guide/development/
You don’t need to fork the template project if you already have your github project in place. Just follow the conventions (naming of files, package descriptor)… Please test if your plugin can be installed into a fresh pimatic setup. From the command line you can install a github project as follows:
cd /home/pi/pimatic-app/node_modules
sudo npm instal MY_ACCOUNT/MY_PROJECT --unsafe-perm
sudo service pimatic restart
Once you’re done, you simply publish the project to npmjs. The project will be automatically listed as a pimatic plugin, but it may take a couple of hours to get it indexed for the first time.
"It always takes longer than you expect, even when you take into account Hofstadter's Law.", Hofstadter's Law
@mwittig Cool, thanks i will follow the guide and publish it.
Plugin is published Thanks.
@dpressle said in New plugin - Owntracks:
The new plugin is out, its a tracking device (presence) which uses MQTT, you can find everything in the plugin description.
Excellent. Thanks for your contribution!
I have just glanced over the docs. If I understand this right you’ll need to set up your own server. As you only support “MQTT mode” the “server” is an MQTT broker, right?
Now my question: Does the MQTT broker needs to be exposed to the internet or is the data relayed via a public broker? It’ll be great if you can drop a few bullets on how you set this up. … Ah, there isa warning notice regarding the use of public brokers: “We urge you to resist the temptation of using MQTT mode with one of the many public brokers hosted by different organizations. While it is an easy way out those brokers are publically accessible which means anybody can see where you are if they can identify you. Furthermore, public brokers often don’t implement access control, so basically anybody can create a “location” update which looks as though it may be yours. Believe us: it’ll drive you crazy.” - http://owntracks.org/booklet/guide/scenarios/#mqtt-mode
"It always takes longer than you expect, even when you take into account Hofstadter's Law.", Hofstadter's Law
I have just glanced over the docs. If I understand this right you’ll need to set up your own server. As you only support “MQTT mode” the “server” is an MQTT broker, right?
Yes.
Does the MQTT broker needs to be exposed to the internet or is the data relayed via a public broker?
Yes must be visible. I have a VPN from my phone to my home network. Uses a public broker for sharing your position is at least unwise.
Pimatic = Smart Home
Yes you will need a broker, and not all brokers on the internet are public, for example i use cloudmqtt.com its a 10 connections free broker on the internet and there are more like it, this way you can access this broker from any where without having to expose your network outside.
If any one need a step by step how to set up an account and connect this broker with owntracks i will be more then happy to do that.
I installed and configured the plugin
{
"plugin": "owntracks",
"host": "127.0.0.1",
"port": 1883,
"username": "kenci",
"password": "password",
"protocolId": "MQIsdp",
"protocolVer": 3
}
and got this
09:08:49.739 [pimatic] error: Cannot set property 'plugin' of undefined
09:08:49.751 [pimatic] debug: TypeError: Cannot set property 'plugin' of undefined
09:08:49.751 [pimatic] debug:> at PluginManager._getConfigSchemaFromPackageInfo (/home/pi/pimatic-app/node_modules/pimatic/lib/plugins.coffee:511:9)
09:08:49.751 [pimatic] debug:> at /home/pi/pimatic-app/node_modules/pimatic/lib/plugins.coffee:479:35
09:08:49.751 [pimatic] debug:> at tryCatcher (/home/pi/pimatic-app/node_modules/pimatic/node_modules/bluebird/js/release/util.js:16:23)
09:08:49.751 [pimatic] debug:> at Promise._settlePromiseFromHandler (/home/pi/pimatic-app/node_modules/pimatic/node_modules/bluebird/js/release/promise.js:503:31)
09:08:49.751 [pimatic] debug:> at Promise._settlePromise (/home/pi/pimatic-app/node_modules/pimatic/node_modules/bluebird/js/release/promise.js:560:18)
09:08:49.751 [pimatic] debug:> at Promise._settlePromiseCtx (/home/pi/pimatic-app/node_modules/pimatic/node_modules/bluebird/js/release/promise.js:597:10)
09:08:49.751 [pimatic] debug:> at Async._drainQueue (/home/pi/pimatic-app/node_modules/pimatic/node_modules/bluebird/js/release/async.js:131:12)
09:08:49.751 [pimatic] debug:> at Async._drainQueues (/home/pi/pimatic-app/node_modules/pimatic/node_modules/bluebird/js/release/async.js:136:10)
09:08:49.751 [pimatic] debug:> at Immediate.Async.drainQueues [as _onImmediate] (/home/pi/pimatic-app/node_modules/pimatic/node_modules/bluebird/js/release/async.js:16:14)
09:08:49.751 [pimatic] debug:> at processImmediate [as _immediateCallback] (timers.js:383:17)
The same error appear with this config
{
"plugin": "owntracks",
"host": "127.0.0.1",
"port": 1883,
"username": "kenci",
"password": "password",
"protocolId": "MQTT",
"protocolVer": 4
}
mosquitto version 1.4.2 (build date 2016-02-19 21:52:12+0100)
mosquitto is an MQTT v3.1 broker.
@kenci checking…
Problem fixed, new version 1.0.2 is published to npm, you can update the plugin.
I dont know what happen but the plugin config and the device config files were mixed, thanks for pointing it out.
BTW: you dont need the special protocolVer and protocolId because your mosquito version is 1.4.2 and the default works fine with it
@dpressle
now i am facing a new problem. pimatic is not starting
08:02:09.836 [pimatic] error: A uncaught exception occured: TypeError: Cannot read property 'forEach' of undefined
08:02:09.836 [pimatic] error:> at outgoing.(anonymous function) (/home/pi/pimatic-app/node_modules/pimatic-owntracks/node_modules/mqtt/lib/client.js:465:11)
08:02:09.836 [pimatic] error:> at that.outgoing.(anonymous function) (/home/pi/pimatic-app/node_modules/pimatic-owntracks/node_modules/mqtt/lib/client.js:140:15)
08:02:09.836 [pimatic] error:> at /home/pi/pimatic-app/node_modules/pimatic-owntracks/node_modules/mqtt/lib/client.js:881:9
08:02:09.836 [pimatic] error:> at Store.del (/home/pi/pimatic-app/node_modules/pimatic-owntracks/node_modules/mqtt/lib/store.js:77:5)
08:02:09.836 [pimatic] error:> at MqttClient._handleAck (/home/pi/pimatic-app/node_modules/pimatic-owntracks/node_modules/mqtt/lib/client.js:868:26)
08:02:09.836 [pimatic] error:> at MqttClient._handlePacket (/home/pi/pimatic-app/node_modules/pimatic-owntracks/node_modules/mqtt/lib/client.js:293:12)
08:02:09.836 [pimatic] error:> at process (/home/pi/pimatic-app/node_modules/pimatic-owntracks/node_modules/mqtt/lib/client.js:242:12)
08:02:09.836 [pimatic] error:> at MqttClient.handleMessage (/home/pi/pimatic-app/node_modules/pimatic-owntracks/node_modules/mqtt/lib/client.js:825:3)
08:02:09.836 [pimatic] error:> at MqttClient._handlePublish (/home/pi/pimatic-app/node_modules/pimatic-owntracks/node_modules/mqtt/lib/client.js:807:12)
08:02:09.836 [pimatic] error:> at MqttClient._handlePacket (/home/pi/pimatic-app/node_modules/pimatic-owntracks/node_modules/mqtt/lib/client.js:286:12)
08:02:09.836 [pimatic] error:> at process (/home/pi/pimatic-app/node_modules/pimatic-owntracks/node_modules/mqtt/lib/client.js:242:12)
08:02:09.836 [pimatic] error:> at MqttClient._handlePacket (/home/pi/pimatic-app/node_modules/pimatic-owntracks/node_modules/mqtt/lib/client.js:294:7)
08:02:09.836 [pimatic] error:> at process (/home/pi/pimatic-app/node_modules/pimatic-owntracks/node_modules/mqtt/lib/client.js:242:12)
08:02:09.836 [pimatic] error:> at Writable.writable._write (/home/pi/pimatic-app/node_modules/pimatic-owntracks/node_modules/mqtt/lib/client.js:252:5)
08:02:09.836 [pimatic] error:> at doWrite (/home/pi/pimatic-app/node_modules/pimatic-owntracks/node_modules/mqtt/node_modules/readable-stream/lib/_stream_writable.js:319:64)
08:02:09.836 [pimatic] error:> at writeOrBuffer (/home/pi/pimatic-app/node_modules/pimatic-owntracks/node_modules/mqtt/node_modules/readable-stream/lib/_stream_writable.js:308:5)
08:02:09.836 [pimatic] error:> at Writable.write (/home/pi/pimatic-app/node_modules/pimatic-owntracks/node_modules/mqtt/node_modules/readable-stream/lib/_stream_writable.js:246:11)
08:02:09.836 [pimatic] error:> at Socket.ondata (_stream_readable.js:536:20)
08:02:09.836 [pimatic] error:> at emitOne (events.js:77:13)
08:02:09.836 [pimatic] error:> at Socket.emit (events.js:169:7)
08:02:09.836 [pimatic] error:> at Socket.emit (/home/pi/pimatic-app/node_modules/pimatic/startup.coffee:63:24)
08:02:09.836 [pimatic] error:> at readableAddChunk (_stream_readable.js:153:18)
08:02:09.836 [pimatic] error:> at Socket.Readable.push (_stream_readable.js:111:10)
08:02:09.836 [pimatic] error:> at TCP.onread (net.js:531:20)
08:02:09.836 [pimatic] error:> This is most probably a bug in pimatic or in a module, please report it!
08:02:09.843 [pimatic] info: exiting...
@kenci said in New plugin - Owntracks:
Readable
Thats strange, looks like its coming from the mqtt library (i am using the same lib as in the mqtt plugin), can you try to comlettly uninstall the plugin? and if possible delete the pimatic-owntracks folder from the node-modules folder in the pimatic installation location, and then reinstall the plugin.
What pimatic version do you have? on what platform it is running? what node and npm version do you run?
pi@home:~/.node-red $ node -v
v4.4.5
pimatic version 0.9.33
pi@home:~/pimatic-app $ npm -v
2.15.5
pi@home:~/pimatic-app $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 8.0 (jessie)
Release: 8.0
Codename: jessie
I will try to reinstall now…
Reinstalled, the same error
It’s not the same version as pimatic-mqtt
pimatic-mqtt
is using 1.12.0
and you are using 2.0.0
@wutu which version of mqtt
are you using for your plugin?
@kenci said in New plugin - Owntracks:
It’s not the same version as
pimatic-mqtt
pimatic-mqtt
is using1.12.0
and you are using2.0.0
can you try to limit the mqtt version in the package.json and try if this is the problem?
try to change this line:
“mqtt”: ">=1.1.x"
to:
“mqtt”: “=1.12.0”
and try to reinstall or npm install on this folder
So for now it’s working, no crash at all.
Another issue that i found is if you edit the device it raises this error
Invalid config of device "position_kenan": Property "lon" is not a valid property
@kenci said in New plugin - Owntracks:
So for now it’s working, no crash at all.
Another issue that i found is if you edit the device it raises this error
Invalid config of device "position_kenan": Property "lon" is not a valid property
may be you put in the device config “lon” instead of “long”? show me the device config properties
@kenci said in New plugin - Owntracks:
“lon”
Looks like a typo in your config?! Property "“long” instead of “lon”
"It always takes longer than you expect, even when you take into account Hofstadter's Law.", Hofstadter's Law
@dpressle said in New plugin - Owntracks:
for example i use cloudmqtt.com its a 10 connections free broker on the internet and there are more like it,
If any one need a step by step how to set up an account and connect this broker with owntracks i will be more then happy to do that.
Well, i have some good interest in this setup (i tried this, but seemed unable to get some proper info…Help/How-To would be highly appreciated!). Would be great for learning the basics of the MQTT protocol without setting up a broker on the Pi!