Freedomotic
-
hi,
Awesome that you want to implement the support for the AUTO assigning of unique ID's!
yes, as far as i got it now it starts out with the sensor presenting itself by shouting 255;255;3;0;3; across the network.
Decoded this means the following:
node-id: "255;" this means the node has no ID
child-sensor-id: "255;" this means the node has no child sensor ID's assigned to any sensors attached ( i do not know if this would also be automatically assigned aswell.. but i hope @hek could give us some clarification on this? )
message-type: "3;" the message type defines the type of message and basicaly why the message is send. the number 3 means that it is an internal message (propably for configuration)
ack: "0;" no ack needed
sub-type: "3;" this is where the magic happens. since in the message type it was defined this is an internal message we can state what type of internal message it is in this parameter. the 3 means "I_ID_REQUEST" wich means internal ID request. The node is requesting an ID.
payload: "(NULL, nothing, empty)" there is no payload, the request is simply enough.the controller recieves this request and defines what ID's are already in use. the controller picks a unique number between 1 and 254 and assignes it to the node using the same message-type but a different sub-message-type ( sub-message-type 4 means "Id response back to sensor. Payload contains sensor id" .
The assigned ID will be transmitted in the payload section.example:
The node boots and looks in his EEPROM memory if it already has a node-ID. if it doesnt it wil broadcast a request for the ID with: 255;255;3;0;3;The controller then looks in his table of vended ID's and sends back the first number available (in this example i have only one sensor so number 1 would be vended) and transmits the assigned ID to the node with: 255;255;3;0;4;1
The node then owns the number 1.
when something would be transmitted to the node it will listen to this number.i dont yet know how the child-sensor-id's work.. sorry for that :-|
thanks for the help !
i hope i made it a bit more clear what is needed to vend a node ID.vincent,
@diamantmatch said:
i dont yet know how the child-sensor-id's work.. sorry for that :-|
The child sensor Id is defined in the arduino sketch by yourself.
for example the following code:
MySensor gw;
Setup() {
gw.begin();
gw.present(0,S_TEMP); // Present child sensor ID 0 as temperature sensor
}Loop() {
}/ Thomas
-
Thanks @tbowmo !
I uploaded two standard sketches to the node and the gateway so i never noticed before.
It seems quite logical to define the child-sensor-ID in the sketches on the sensor node itself.
will do that next time i upload a new sketch! -
Hi all,
thanks for your explanations. I have some questions:- when the controller assigned an ID, this is stored on the node. If the controller restarts, is this address maintained in the node? or does the node detect this restarting and ask again a new address?
- is the address changed only after a specific request by the node?
Hope my questions are clear. Every freedomotic object must have a fixed address, so if it assign an ID, this shouldn't change at any restarting of software or node.
Thanks for your support.
-
hey,
i really feel like i'm just nagging about things here.. sorry about that.
i can not seem to get the sensor to listen to the serial output from the plugin..
i suspect the plugin from not transmitting a newline, every string transmitted should end with \nthanks :)
-
Hi @diamantmatch,
I implemented a first draft of Auto-ID feature.
If you want you can test it using the attached file (you must extract thejar in it), substituting the old in the plugin folder. Starting Freedomotic from command line you can see all plugin activity.
I'm reviewing the entire plugin, to improve it and support an increasing number of devices.
Let me know and thanks for support mysensors-3.0.zip -
Hi Thomas,
the web client is under development. We hope to realease soon a first demo. If you are interested you can take a look at our repository https://github.com/freedomotic (Polymer). Now is it possible to interact remotely using our REST API (under development). It's the base to create customized clients in every programming languages. More info at http://freedomotic.com/content/plugins/restapi-v3
Remember that Freedomotic is a "framework" to create custom iot/home/building automations solutions.
Thanks for your interest
Mauro -
Hi Vincent,
please can you give me more details? What's the expected reply from the controller (freedomotic)?
And your sensor request? I developed the plugin by simulating devices communications. Maaybe something is not complete.
Thanks for your support.Hi freedomotic, I'm traying to test you plug-in in freedomotic, but dont make it works. Could you please give me a mini setup advise, for example for a** RelayActuator** using Lights General Switch. I set
protocolo: mysensors
dirección: 7;1 //static ip because i don`t use AUTO mode (or should I use AUTO mode? to make it works)
actions: turn on/of MySensors light<property name="serial.port" value="COM5"/> <property name="serial.baudrate" value="115200"/> <property name="serial.databits" value="8"/> <property name="serial.parity" value="0"/> <property name="serial.stopbits" value="1"/>There is allways the same message:
my sensors is reciving a command while is not running. Turn on the plugin first.but the plugin is turned on, what im doing wrong???
thanks -
Hi @asterisco
can you post a complete console log? If you double click on plugin icon (to stop it) and do the same to restart it do you receive the same error? Thanks for support -
Hi @dzairo
I need more info, for example your configuration data. Probably your serial port is not set correctly.
Start Freedomotic, go to Plugins->Configure (in Main menu), select MySensors and set your gateway port.
If you can start freedomotic from command line as "java -jar freedomotic.jar" so you can see all error messages.
I'm improving documentation and log messages.
Thanks for support -
Hi @asterisco
can you post a complete console log? If you double click on plugin icon (to stop it) and do the same to restart it do you receive the same error? Thanks for support@asterisco said:
my sensors is reciving a command while is not running. Turn on the plugin first.
quite similar errors with the plugin started or stoped
plugin stoped: my sensors is reciving a command while is not running. Turn on the plugin first.
** plugin started:** Succesfull test receives a command while is not ruuning. Turn on the plugin firsrthe logs appear and disappear as quikly thar they are almost imposible to read and i de log file is empty
bye
-
Hi @asterisco
I uploaded a new version with improved log messages. Can you remove the old plugin folder and reinstall it?
Are you using the last dailybuild?
Thanks -
I get an exception when i try to use mysensor plugin
Windows 8.1
INFO <AWT-EventQueue-0> [Plugin] Starting plugin MySensors
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/freed
omotic/objects/EnvObjectPersistence
at com.freedomotic.plugins.devices.mysensors.MySensors.loadConfiguredObj
ects(MySensors.java:227)
at com.freedomotic.plugins.devices.mysensors.MySensors.onStart(MySensors
.java:65)
at com.freedomotic.api.Protocol$1.run(Protocol.java:133)
at org.apache.shiro.subject.support.SubjectRunnable.doRun(SubjectRunnabl
e.java:120)
at org.apache.shiro.subject.support.SubjectRunnable.run(SubjectRunnable.
java:108)
at org.apache.shiro.subject.support.DelegatingSubject.execute(Delegating
Subject.java:391)
at com.freedomotic.security.AuthImpl2.executePrivileged(AuthImpl2.java:1
86)
at com.freedomotic.security.AuthImpl2.pluginExecutePrivileged(AuthImpl2.
java:177)
at com.freedomotic.api.Protocol.start(Protocol.java:151)
at com.freedomotic.jfrontend.PluginJList$1$1.actionPerformed(PluginJList
.java:116)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown
Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.freedomotic.objects.EnvObjectPe
rsistence
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 48 more -
Thanks for your report.
I'll take a look ASAP. -
Hi @freedomotic
I've read over all the posts and would like to get an update on the status of the plugin, also would like to know where to get the latest version. If I can get this installed I can help you test in on a very large system with over 50 nodes with various sensors on a ranch. Thanks, -
Hi @sdndba
thanks for your offer. We are working on a new version. When it is available I'll post here.
Happy new year!!!