PiDome Domotica/Home Automation



  • Great news I now have PIdome running with Hum sensor and Dallas temp sensor.

    upload-2de9399e-840b-4589-9d3d-93eca635c53d



  • @john this morning I have a funny issue as I add the new door sensor to PiDome all the Custom device disappear. Even it I add i new custom device it is not showing up in the list. I reboot the PI and it is still doing the same thing what can the issue be?

    upload-79baf84d-614a-40d3-8dfc-786d31154bef


  • Plugin Developer

    @Fwessels
    Could you provide me the appLog file? This i have not seen before.



  • @John I did not start it with the trace. I will rest start the server with trace on.

    appLog.txt



  • @John here is the applog with trace enable. I also created the door sensor and still it is not showing up in the Custom device.

    appLog.txt

    upload-7edd95cb-dfaa-4f29-b8e3-f431022f83a7


  • Plugin Developer

    First i'm seeing data coming in from the gateway before a gateway started message appears:
    2014-09-07 10:11:13,452 [Thread-19] TRACE org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - Received from hardware driver:
    2014-09-07 10:11:13,456 [Thread-19] ERROR org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - Faulty data or method handling: 2 (�
    )

    014-09-07 10:11:23,828 [Thread-19] TRACE org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - Received from hardware driver: 0;0;3;0;14;Gateway startup complete.

    It does not interfere, but still, strange.

    Do the devices show on the main start page e.q. dashboard? because i do see responses (still checking if server send valid ones)



  • @john Yes all the sensor are still reporting


  • Plugin Developer

    I think i've found it... i see a name with a "" in it: "Door\Window" all though it does not have a special meaning in json, it could mess with the tables code showing the devices, one moment. It is possible to edit a custom device with a direct link, i will send that one in a chat if you don't mind.



  • @john not a problem


  • Plugin Developer

    The usage of "" characters in the custom device editors device naming have been tackled in the latest available snapshot.


  • Plugin Developer

    I have added an MQTT bridge for MySensors based on the gateway/broker created by @Damme .

    I was only not being able to test it on the real gateway but have tested it against a regular MQTT server. So if there is someone willing to test it i will be very thankful :). The tests i have done was with iot.eclipse.org, so i'm also not exactly sure if the data is implemented correctly
    iot.eclipse.org test method

    It has been implemented as a plugin which has the possibility to execute device mutations, so to add this plugin go to "Plugin management > Device Plugins". Click "Add new plugin". Choose the "MySensors MQTT bridge".

    Fill in a name and description, use the MQTT gateway ip address. leave the port and prefix as the shown default if you have not changed it.

    To create devices for the MQTT gateway refer to the first post and instead choosing the MySensors serial device, choose the MySensors MQTT device.

    The plugin's view shows devices reported by the MQTT gateway, it shows the device address and sketch information. Adding devices shown on that page is exact the same as done with the serial version.



  • @John I did as you say with the MqTT drive now if I click on the driver and then on the "Pidome MySensor Mqtt" noting happen

    upload-235f809e-bcb0-4de6-9104-ee41273114bd

    applog:appLog.txt

    Also if I click in view nothing happens
    upload-40f6c457-0d63-4919-a618-7e37b7536bb7


  • Plugin Developer

    Clear your browsers cache and try again. The devices appear at the plugin.

    P.S.
    I will in a later state modify the driver name, it is an emulator between the devices and the plugin so the plugin can create devices the same way a driver can. The reason why it is a plugin is that drivers are hardware based (GPIO, USB access). The plugin now behaves like it is hardware.



  • @John Hi I am back again. I now can see the MQTT node sensor. When I want to add the node sensor the custom devices don't show up in the "Select device to use" Why will that be?

    Custom device adde

    upload-c9a0b7b8-0e8a-4b1b-8d98-0bd9584820e9

    Custom device not show.

    upload-245527f8-f376-400c-96d2-b46432d82a93


  • Plugin Developer

    Device skeletons are limited to their driver/plugin and can not be interchanged (yet). When you are using the MQTT plugin you should create a MySensors MQTT custom device/skeleton. The first listing above shows these devices as a device for the serial version.



  • @john Mysensor MQTT is now working. Thank for all you help 🙂 👍


  • Plugin Developer

    👍 Next step would be integrating the Ethernet gateway, but that could take a week or so (working on other demanding tasks currently).



  • @John I see that you don't have any time days in your automation triggers. Do you plan to do this at a later stage?
    I see that you are going to do twitter integration are you look as other message integration tools like pushbullet?


  • Plugin Developer

    Currently the triggers do days in the form of "Every day", "Weekdays", "Weekend" and per day like "Mon", "Tue":

    Alt text

    The time currently can be fixed, sunrise or sunset with calculations:

    Alt text

    The above can then be resulted in a rule like below:

    Alt text

    The above would then say that: "turn true every day when it is 30 minutes before sunset".


    About messaging integration:

    The messaging framework is currently partly integrated and currently only takes care of SMS messages (outgoing). When the full messaging framework is implemented twitter will be added together with it's messaging API which could then be used to integrate web services. Currently i'm still very busy with a lot of core parts where developing devices, plugins stands next to it when specific API parts are done. So i can not say if or when pushbullet integration will be available and/or it is created by me.



  • @John what will I do if my Alarm is trigger and I want to switch it off after 10 min?


  • Plugin Developer

    Because triggers are meant to be used as real triggers. If this happens quickly do that. If you would automate your alarm you would need to create a second trigger which would say, depending on the earlier example: when every day it is 20 minutes before sunset, execute alarm off.

    Currently next to the triggers i'm busy with Automation flows you can build with blockly. But this is still under heavy development: https://twitter.com/Pi_Dome/status/510355701114605568/photo/1



  • @john I have the automation trigger for if the humidity for the bathroom. I have two trigger on for switching the fan on if Hum is >20 and one to switch the fan off it is Hum <19 this work. What I try now do now is combine this into one trigger where I use the "or" function . Can the execution list only execute one function for multiple condition?

    upload-c4e64a4f-3ec2-48c0-8888-75e85bb0c6b1


  • Plugin Developer

    @Fwessels
    The above is one trigger.

    Currently you have set it up like:
    IF (the data description of room 01 > 20%H) OR (the data description of room 01 < 19%H) DO (set study lights to On)

    Triggers are really also meant as triggers and are based on a combination of rules which should always revert to true with a list of actions of the total list of rules are true. To put it simple: "When this, then that". There is no "else" 😉

    If you want to turn on and turn of based on a quick trigger action you should or create two triggers, or wait for the Automation rules to be implemented in the server which currently is in development.



  • @john I have two triggers and that is working.



  • @John Hi did not bug you for an while. I change my setup to work with the MQTTGateway but now I have the following issue.

    1. My motion and door sensors is not changing status in the "Data description" field. This did work with the serial gateway.
    2. On my relay button sensor the "Toggle description" is not changing it I press the button this did work on the serial gateway.

    I run you latest snapshot (373)

    PS the Android client is now working on my Tablet and Phone (4.4.2)


  • Plugin Developer

    @Francois

    That's the current latest yeah, have you defined the the data and/or toggle buttons as boolean or as an integer?

    The Android client was kinda annoying, when deployed on a device from the development it worked, but when installed by the apk file it stopped working... Thanks for confirming it now works!



  • @John I did the same as the serial configuration as data field and boolean


  • Plugin Developer

    @Francois

    So both the data field as the toggle buttons are defined as booleans?

    Since alpha 271 the server also displays the last received date and time positioned above the controls, are these modified? Not yet real time in the web interface, you have to click the device again in the list to see if it is updated.



  • @John both the fields are defined as data fields and as boolean. But the data field is not changing. This configuration is working in the serial gateway. Should I change this to toggle button for the MQTTGateway?

    upload-0c9c8b71-3c36-4c09-a365-6c2c6b6863b8


  • Plugin Developer

    @Francois
    Not needed, i understood you also had a toggle button.

    Is it possible to mail you an updated MySensors library package? it currently is not possible to compile the whole server.



  • @John Yes you can email the update library. Do you still have my email address?


  • Plugin Developer

    @Francois
    Yep, and it's on it's way.

    [EDIT]Confirmed as fixed and also generally available with server download[/EDIT]


  • Plugin Developer

    I want to thank @Francois and others for some intensive testing of MySensors (and other stuff) in PiDome via both the serial and MQTT gateways.

    P.S. From today until October 3rd responses are somewhat delayed due to the upcomming JavaOne conference.


  • Plugin Developer

    Well, normally i do not brag about things, and this has nothing to do with MySensors, but i thought that this might be ok.

    Sunday night PiDome has received the Duke's Choice Award for being innovative. It is not only for the server but comprehends the whole PiDome platform (Server, Desktop OS like client, Android client, upcoming Raspberry Pi client which can be self designed on the server and the upcoming Netbeans PiDome Platform development plugin). They have not only looked at the current state of the project but also future promises and future platform part releases (from which there is code in progress)

    The price announcement included the following sentence: "Because it's so exceptional what your project has done, we decided to upgrade you to the duke's choice award instead."

    So we are proud as [FILL_IN].

    So yeah, i just wanted to brag about it 🙂


  • Hero Member

    @John Well deserved! Congrats! You've almost made me a believer in Java so that is saying something 😉

    Some of these other home automation controllers (OpenHAB ...) should really reconsider what and how they're doing things. I know they didn't start out on single board computers like the RPi, but just to recapitulate, both running their factory defaults, OpenHAB takes almost as long to boot on my i7 as PiDome takes on the RPi.


  • Plugin Developer

    @bjornhallberg
    Thanks!

    To be honest, i had my doubts, certainly when running Java7 on the PI and the early bird releases of Java8. But since the final Java8 release and the Late Development releases i started to believe in it (again). With JDK 1.8 they did a huge step forward, and with Java9 and if i have to believe their Major opening keynote this year, it should be becoming faster, at least during java initialization.

    Also i'm targeting Java SE Embedded, which is more optimized for embedded use like the PI.

    Well, the default factory boot of PiDome includes the initialization of security certificates. when SSL is disabled you will win at least 5 seconds boot time (where the secure http and sockets startups are not taken into account).



  • @John Congrats for winning this price 😉 and well deserved for all the hard work that you and team put into the PiDome.

    From the first time that I start playing with PIDome I like the way it was running on Pi and the users interface. Over the last few week I playing with other Home Automation system and every time I come back to PiDome as it is just that easy to use and setup. You can have your system up and running within 30 min or less that also including configuring the sensors. Create rules is now so easy with the integration of Blockly.

    Keep up the good work and it is really great working with you.


  • Plugin Developer

    @Francois
    Thnx! It really is a joy be working with you and that you have been hammering me with emails of which helped a lot to get the MySensors support at the current level and also exposed some internal design flaws which have been changed. I'm glad you like it. And if there is anything, you know how to find me 🙂



  • I've installed Pidome on my Pi yesterday and everything seems to work, then I plugged in my Arduino nano clone with gateway sketch installed and nRF connected to it. Using python I communicated with it without any problems. But then I opened the Peripheral setting in Pidome to add the device and it doesn't see a thing... Don't know what I'm doing wrong. Seems like Pidome doesn't have enough rights. My user is in dialout group just as it was explained in PiDome installation guide. Can anybody help?

    BTW, this is my first post on this forum so I'd like to say hi to everyone.



  • @Arielpod what gateway are you using Serial or MQTT?



  • Wow, you're quick! I'm using serial gateway, haven't installed any usb drivers or plugins to PiDome.


  • Plugin Developer

    It is possible that clones are not working because currently there is no web interface to ask if you are sure you want to use a specific device and how to use it. It is part of a security mechanism built in the server for this read on:

    We support a range of USB device types like USB-HID, USB-RAW and USB-[FILL_IN_EMULATOR] (Emulators like serial ports etc...). I have came across USB devices reporting multiple interface types which is very strange, so in the known peripherals database only the real thing has been flagged as a known peripheral and what it does.

    There is code present in the sever (locally on my workstation) which can identify these devices and the anomalies but is not 50% stable yet, i can include this code with the next or follow up release so also cloned devices which correctly report their USB capabilities will show up in the interface.

    Gimme a day of three for this because the web interface module for this has to be created.

    [EDIT]You do not need to install any drivers etc... because for serial based devices it already is integrated in the server[/EDIT]



  • Ok, thanks! I'll reinstall it in the meantime just to find out if that would help. BTW, in lsusb, the device appears as 'qinheng electronics hl-340 usb-serial adapter'.

    Patiently waiting for some news then. Cheers!


  • Plugin Developer

    Would you by accident also have the vid and pid from this device?



  • This post is deleted!


  • I'll check that when I get home.


  • Plugin Developer

    That would be cool, it then could be included as a default "considered good and save to use" device if it performs as it should. The interface will also be added though, but in a later stage



  • Ok, it's 1a86:7523


  • Plugin Developer

    Thanks, i will add this one to the safe list (for the time being). I will notify you when it is available.


  • Plugin Developer

    @Arielpod said:

    Ok, it's 1a86:7523

    I have included the mentioned device in the latest build. I do have to say that this is a quick build for testing purposes so some functionalities may be broken.

    The build for now is only available on the build server at: http://builder.pidome.org/job/PiDome Server platform snapshot build/lastSuccessfulBuild/

    This build does require a clean installation though, but is update safe so when newer builds are available you won't loose any data.



  • I'm not quite sure what you meant by "clean installation" but I just removed the directory of the previous installation and downloaded the one you've given the link to. Every time I connect the device I get an error:
    error.png


  • Plugin Developer

    Resolved on the build server and available in the link posted above.



  • Great, it's working! Thanks a lot.



  • Hi, looking for some advice on connecting sensor to PiDome. Think I've followed the instructions correctly but when connecting sensor under 'Devices' I get this message 'New device: Possible new address: 1 if not occupied before adding (Restart node after assigning).' and nothing to choose.

    forum1.png

    My custom device settings are as follows with the Arduino CHILD_ID set to 1. Is there something obvious I've missed or is S_MOTION not included yet?
    Thanks, Jon

    forum1a.png forum2.png


  • Plugin Developer

    @jonnyfishman
    Hi,

    If you use S_MOTION in the Arduino code then the group id should be 1 and the data control should correspond with the V_ value used in the Arduino code.
    With the motion detection you can use the boolean data type (the integers 1 and 0 will be correctly handled). This will make it easier in triggers and automation rules where you can select "true" or "false" from a drop down instead of filling in the 1 or 0.

    By clicking on the "Add sensor node" you will get a popup where you can choose the device created in the device editor.



  • Hi,

    Thanks for the reply. I have checked the settings and changed the Group ID to 1 and the Data field ID to V_TRIPPED, using the Boolean option.

    The problem I have is that when I click 'Add sensor node' I get the message 'Done (no choice of device)' and nothing is added in devices and the error log shows the following:

    10-10-2014 21:59:53 0;0;3;0;9;send: 0-0-255-255 s=255,c=3,t=4,pt=0,l=1,st=fail:1
    10-10-2014 21:57:50 Trying assigning address '1' to a new node

    Thanks, Jon


  • Plugin Developer

    Do you see the device back in the "New nodes presentation" with an address when you restart the node? this would mean that the node did not got it's address assigned. I have understood from @hek that the line:

    10-10-2014 21:59:53 0;0;3;0;9;send: 0-0-255-255 s=255,c=3,t=4,pt=0,l=1,st=fail:1
    

    does not say if that it has failed or succeeded.

    The system needs a Node with an address before it can be added, the reason why there is no device selection is because of the above line can not guarantee a success or a failure. So after "Add sensor node" you have to restart the node, because only then the address is known. I should change the name of the button though to "Assign address" for making it more obvious.



  • Awesome, that sorted it! Thanks. Think I was leaving to long a time (or to short) between restarting the node. Really enjoying the Server interface, the macros and automation rules are really powerful (just need to get some more nodes to really have a play).

    I saw on one of your posts that battery monitoring is a to do, has that happened or is it still in the pipeline. Also is there a way to trigger an email as I don't have a SMS dongle (thinking I could do it with a sensor set as RelayActuator on a GPIO pin on the pi that would trigger a PHP mail function but there's probably a more efficient way to do it).

    Sorry for all the questions...


  • Plugin Developer

    Sorry for the late response, had a meeting with my (hardware) development partner in crime this weekend...

    Yes this still is in the pipeline, i think it has slipped between all the other work currently going on, as the same is with the email notification. You would help me a lot if you would make a feature request for the both above at: https://bitbucket.org/pidome/pidome-server/issues?status=new&status=open (via the create issue link). It is our main global to do list ;).

    No problem, all questions are welcome!



  • First of all - great work with PiDome!

    I've been trying to create a Custom device with a color picker but I always get following message:
    error.png
    and in appLog this appears:
    applog.png


  • Admin

    Tried to use the xbmc 13 media plugin, but after enabling it, it shows up as XBMC 12 in media plugins. Also my XBMC box tells me that a version 12 client is connecting to it.

    Also, I noticed that it only shows "playing" state, when I'm watching a movie from local storrage. If I watch live tv, or use a streaming plugin, it seems that pidome doesn't know about it. Is this because of lack of functionality in xbmc protocol?

    / Thomas


  • Plugin Developer

    The above both are correct, As long as the server is an Alpha version all supplied downloads are automated this also means any test build is also supplied.

    The color picker error is due to the fact the color picker is currently being modified to support different color schemes and color set possibilities. It was set to only accept hex parameters. This is being changed to HEX, RGB, HSB and Kelvin with color modes: HSB, HSL, CIE and RGB. So this control is currently heavily being overhauled and also in snapshot state.

    The functionalities of XBMC 12 and 13 regarding exposed for base XBMC 12/13 functionalities are the same. It is correct that the streams and live TV are not included yet. I have created a request at: https://bitbucket.org/pidome/pidome-server/issue/133/extend-xbmc-plugin-func to extend the features. The build server does have an updated version where correct plugin usage is shown.

    I do suggest to keep an eye on http://builder.pidome.org/view/Snapshot builds/job/PiDome Server platform snapshot build/ and report bugs/issues found not related to MySensors on https://bitbucket.org/pidome/pidome-server/issues?status=new&status=open


  • Admin

    @John
    I tried the "latest" snapshot (downloaded today at 20:30 CET).
    After starting pidome up, went to the peripherals page, I then connected the mysensors gateway (arduino nano with the default serial gateway sketch) to my raspberry. Nothing happens in pidome at all..

    Shouldn't it popup with something about the new peripheral that was attached?

    Regards
    Thomas


  • Plugin Developer

    @Thomas-Bowman-Mørch

    Hi Thomas, Yes it should, also security has been tightened in the server which in some cases causes the real time web interface updating to fail. Does clicking the peripheral pages again show the nano? Also is the nano a clone or the real thing?


  • Admin

    @John

    Yeah, did also notice that it asks for user/password when opening the PiDome admin interface now. Nice thing 🙂

    Tried to reload the page, etc.but it didn't help.

    The gateway is a clone, with a PL2303 as usb->serial gateway.. I noticed that the real nano is using a ftdi chip.

    Does PiDome check the VID/PID of the usb device, in order to figure out what it is?

    / Thomas


  • Plugin Developer

    @Thomas-Bowman-Mørch

    Hi Thomas, yes it does. A feature build in is that users won't have to do anything if a specific device is connected via USB. It will then give the user the possibility to choose a driver based on the vid/pid in this example usb-serial so you should get the option to set serial options.

    An example: When a specific RFXCOM device is supported with fixed settings and connected to usb the server will autoload everything for this device and the end-user would only have to add devices.

    There is an interface on it's way that when an vid/pid is not recognized the server will check what kind of usb device it is and present the possible options for this device. You can then set the appropriate driver type and this then will be stored on the server. So every time this specific device is connected you will be presented with the correct device options. Also in the future we will build a webservice which will be capable of sharing vid/pid driver types and download appropiate drivers if the user wishes to do so.

    To make a long story short, what vid/pid is it using so it can be added as default known?


  • Admin

    @John
    Thanks John...

    The usb vid/pid is as follows

    idVendor 0x067b Prolific Technology, Inc.
    idProduct 0x2303 PL2303 Serial Port

    taken from lsusb -v

    / Thomas


  • Plugin Developer

    @Thomas-Bowman-Mørch It wil be included in the next build (411, current is 410). This one will be build tomorrow, let me know how the device handles.


  • Admin

    I patched the database in my install, by taking the sql update file you created for my device, and changing the db schema.

    I can now add mysensors to pidome! Yahoo! 🙂

    Next step is to get something usefull done with it

    / Thomas


  • Plugin Developer

    Good! Did you do this manual or just stopped, overwritten and restarted the server? The latter would have precedence ;). Updating happens automatically.

    If you did this manual make sure to execute

    PRAGMA user_version=4;
    

    in the SQL editor to make sure the DB is consistent with the configuration file otherwise the server will keep on trying update the database. To check the version you can run "PRAGMA user_version;" without the "=4" to see which version it currently is.

    Report any findings you have so i can make the plugin better!


  • Admin

    I shutdown the server, put the file 4.sql in the Database/private/update directory, also updated mysensors.default.config to reflect latest db version, and then restarted the server.

    In the meantime while trying to add sensors, I have replaced the entire pidome with the latest snapshot build. But it still gives me grey hairs trying to trying to figure out how to add the first temperature sensor node (based on the dalas ds18s20 demo sketch comming with mysensors code). It has two dalas chips, so reporting two temperatures, gw.present(0, S_TEMP); gw.present(1, S_TEMP);

    In PiDome, I have created a custom sensor, with two groups (0 and 1), each having a datafield configured as:
    Control ID: 0
    Control name: Temperature
    Datatype : Float
    Graph : timeseries (average)
    Suffix : C
    Floormap type: Temperature

    After adding the mysensor node, with this custom sensor description, I then go to "Control/Views" and "Devices" clicking on my new sensor, it repports 0C for both sensors, The timestamp is updated to the time that the node last send in it's temperature.

    I can't seem to figure out why it repports 0 as temperature. Looking at the data from the gateway with minicom (while server is shutdown), it does repport correct temperatures for both sensors attached to the remote node.

    Am I doing things wrong here, or have I found a unknown "feature"?

    / Thomas


  • Plugin Developer

    @tbowmo The control id should be the V_VAR naming and the control id you have used as group id.

    More info can be found at: http://pidome.wordpress.com/2014/08/10/added-partly-mysensors-org-wireless-devices-support-api-1-4-beta/


  • Admin

    That did it.. Changed the control id, to V_TEMP on both temperature data fields

    And now I am able to get temperature measurements..
    🙂


  • Plugin Developer

    Good to hear! 👍

    Uhmm.. read...


  • Plugin Developer

    @tbowmo

    Regarding the update method you did

    "I shutdown the server, put the file 4.sql in the Database/private/update directory, also updated mysensors.default.config to reflect latest db version, and then restarted the server."

    Could possibly mess things up.

    This method:
    "I have replaced the entire pidome with the latest snapshot build" can also be "I have overwritten the entire pidome with the latest snapshot build". The last method will auto-update.

    With a database update there also is an high possibility of changes in code. Fortunate DB structure update version 4 only adds data 😉


  • Admin

    @John
    Well i'm still testing things out, so if something goes wrong, I delete everything (including databases), and start all over again.. That was what I meant by "I have replaced the entire pidome with the latest snapshot build" 🙂

    Still experimenting with adding sensor nodes. Think I have to solder up a couple of extra nodes, just to have something to generate input, and to send some output to (Have the parts ready for 4 more nodes)

    / Thomas


  • Admin

    One thing that is a bit unclear to me..

    If I have a node with 3 temperature sensors on. They are made with gw.present(0, S_TEMP); gw.present(1,S_TEMP)...

    This node also functions as a thermostat, using sensor 0, so when temperature is below setpoint make output go high

    Now in pidome, I have made a sensor node with 3 groups (1 for each S_TEM), each one of them defines one datafield with V_TEMP as ID.

    I also want to be able to set the target temperature for sensor 0 on the node (that is, the node itself turns on the heater until desired temperature is reached)

    How should I define this in pidome? Should I make a new group, and attach a slider to that one, in order to set a value in the node? Because I can't see any option to send a datafield value to the node.

    / Thomas


  • Plugin Developer

    @tbowmo Sorry for the late response, was at a conference yesterday.

    It depends on how to interpret the value to be send. If you want to let the node control the heater, you should on the node create for example a threshold vairable let's say "int trigger value". If you would create a VAR_1 control which can be a slider in the node 0 group of type int and set a minimal value of 0 and max value of for example 50, you will be able to send a value to the node between 0-50.

    On the node you should listen for incoming data for sensor 0, with variable VAR_1. and store it in the var on the node.

    When you change the slider values the value is immediately send.


  • Plugin Developer

    I know it has should been added earlier, but you can now add battery level to a device added to the server.

    When you are creating your own device in the visual device editor do the following to show the battery level:

    • Drag an drop a group to the device declaration field. You can give it any name you want, but the group id must be named "INTERNAL"(capital letters without the " (quotes)).
    • Drag and drop a data field control to this group. You can give it any name. but the id must be "I_BATTERY_LEVEL" (also without the quotes).
    • Set the datatype to "FLOAT". All battery levels in the server are handled this way.
    • If you want, you can select "Battery (0-100%)" as a visual type. This is for future references when the server is able to report low battery levels to users and visualize this in clients.

    That's it.

    Cheers,
    John.

    P.S. We are on a level where we can start defining an online servers for users to share custom devices. We hope to have this available in a month or 2/3. So if you then create a MySensors node and added a custom device on the server. You can share this custom device setup with others also creating your MySensors node.



  • Hey;
    can someone pinpoint what the "Waiting for gateway" means?

    Thanks!
    capture.png


  • Plugin Developer

    Sorry for the late response!

    The server waits for a message from the gateway which tells the server it is ready to serve data. When you attach the gateway to your pc, and watch it in the terminal, do you see a "Gateway ready" message?

    John.



  • @John said:

    Sorry for the late response!

    No problem 🙂

    The server waits for a message from the gateway which tells the server it is ready to serve data. When you attach the gateway to your pc, and watch it in the terminal, do you see a "Gateway ready" message?

    John.

    Yes, as a matter of fact i do (via ssh -> miniterm.py on RPi)

    capture.png

    EDIT : I Just now realized this is not necessarily the "Gateway ready signal" 👯
    Btw is there support for mysensors from the RPi SIO pins? It would be great to not need to use the FTDI 🙂


  • Plugin Developer

    Well, this IS the gateway ready message. It is an internal message the "3". And it is saying "14" which is the ready message (i should have said startup complete). I will take a look into it. Your sure using the same settings as with miniterm?

    The second remark you gave. I will soon start with the driver which will support mysensors using the rpi pins. Highly possible this will start somewhere next. Already are in contact with an user who also wants to use mysensors this way



  • About the GW : Yes, same settings than the pidome server (no parity, 1 stop bit, 115200 bauds, 8 data bits); you can see it from the screenshot.

    About the SPI : Great to hear! I can imagine switching from the USB driver to the SPI's should not be too much of a hassle; I wanted to have a look at the code myself (out of curiousity), but did not get to it yet.
    One question, I noticed the tty used is exclusively locked by the server once it is started;
    I believe it would be of great help to be able to access it at the same time as the pidome server, from the shell (say with miniterm.py), for debugging purpouses.


  • Plugin Developer

    Yes, i will also be using mysensors that way, I will then have an USB port free for RFXCom and another one for my IR transceiver (my hub died). When available i will tweet it and put a notification here.

    I will take a look into using JSSC_NO_TIOCEXCL when connecting to prevent the exclusive lock.


  • Plugin Developer

    @tortoisedoc I have updated the serial driver not to do an exclusive lock. It is available on the build server. Currently not tested, i have no (usb) serial devices running earlier then the day after tomorrow. You should be able to debug the channel.

    Anyway, data flow should be as following:
    <- Wait for the gateway to receive the ready message
    -> send out a request for the version
    <- receive version
    *remove the waiting for gateway message with the gateway version number in the web interface.



  • @John Sorry for the late reply;
    I just managed to fry two arduino's today thanks to my stubborness to try to get them powered with a 9V on RAW. So, I am stuck until I can find more arduinos 😕
    It appears the regulator can only take so much incoming current if the output current is very low (3.3V in my case). Otherwise, it will overheat and bang, that's it.


  • Plugin Developer

    Well, i was also quite busy today (doing some arduino style "modifications" to a slot car track with my son), so no problem, otherwise i had to excuse ;).

    But uhm.. you are quite, how do i call it, enthusiastic.. Take your time, i will ask around regarding the address assignments and gateway ready message. If you find something, just mail to support at the project name with dot org. This is watched more closely then the forum



  • @John said:

    Well, i was also quite busy today (doing some arduino style "modifications" to a slot car track with my son), so no problem, otherwise i had to excuse ;).

    But uhm.. you are quite, how do i call it, enthusiastic.. Take your time, i will ask around regarding the address assignments and gateway ready message. If you find something, just mail to support at the project name with dot org. This is watched more closely then the forum

    You mean because of the Arduinos or because of fast moving 😉


  • Plugin Developer

    @tortoisedoc The Arduino's :x



  • @John Yeah, well, seems trusting teh internet is not cutting it anymore (up to 12 V should be supported on the RAW-in according to the arduino website). But meh! One of the two is not dead yet, I can still power it on (and it works!).
    So here some miniterm.py data with the build of 8.12:
    Notice the "25" in front of the 255 (with the "stable" build it was 255)!

    --- Miniterm on /dev/ttyUSB0: 115200,8,N,1 ---
    --- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
    0;0;3;0;;read: 25-255-0 s255,c=3,=3,pt=0,=0:
    255;55;3;03;
    0;0;3;0;;read: 25-255-0 s255,c=3,=3,pt=0l=0:
    255255;3;0;;
    0;0;3;0;;read: 25-255-0 =255,c3,t=3,pt=0l=0:
    255;55;3;0;3;Exception in thread Thread-1:
    Traceback (most recent call last):
    File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
    self.run()
    File "/usr/lib/python2.7/threading.py", line 505, in run
    self.__target(*self.__args, **self.__kwargs)
    File "/usr/bin/miniterm.py", line 200, in reader
    data = self.serial.read(1)
    File "/usr/lib/python2.7/dist-packages/serial/serialposix.py", line 456, in re ad
    raise SerialException('device reports readiness to read but returned no data (device disconnected?)')
    SerialException: device reports readiness to read but returned no data (device d isconnected?)

    Seems also the miniterm is not cutting it for some reason (port disconnected?)

    BUT still no success yet. Node keeps on asking for new ID...next, will generate a trace dump...

    ================== BEGIN ===================

    2014-12-09 13:24:03,320 [Thread-12] TRACE org.pidome.server.connector.drivers.peripherals.hardware.PeripheralHardwareDriver - Data received from device: 65 byte(s)
    2014-12-09 13:24:03,324 [Thread-12] TRACE org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - Received from hardware driver: 0;0;3;0;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0:
    255;255;3;0;3;
    2014-12-09 13:24:03,338 [Thread-12] DEBUG org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - Handling internal: 0;0;INTERNAL;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0:
    2014-12-09 13:24:03,340 [Thread-12] DEBUG org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - Log request: 0;0;3;0;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0:
    2014-12-09 13:24:03,344 [Thread-12] DEBUG org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - Handling internal: 255;255;INTERNAL;3;
    2014-12-09 13:24:04,122 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - GET /jsonrpc.json?rpc={%22jsonrpc%22:%20%222.0%22,%20%22method%22:%20%22HardwareService.getSoftwareDriverPresentation%22,%20%22params%22:%20{%22port%22:%22/dev/ttyUSB0%22}%20%22id%22:%22HardwareService.getSoftwareDriverPresentation%22}&=1418131338168 HTTP/1.1
    2014-12-09 13:24:04,138 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Host: 192.168.1.6:8080
    2014-12-09 13:24:04,141 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Connection: keep-alive
    2014-12-09 13:24:04,148 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Accept: /
    2014-12-09 13:24:04,151 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - X-Requested-With: XMLHttpRequest
    2014-12-09 13:24:04,159 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36
    2014-12-09 13:24:04,174 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Referer: http://192.168.1.6:8080/desktop/index.html
    2014-12-09 13:24:04,181 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Accept-Encoding: gzip, deflate, sdch
    2014-12-09 13:24:04,185 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Accept-Language: en-US,en;q=0.8
    2014-12-09 13:24:04,198 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Cookie: key=3e148748-34e5-4ce6-8336-fcd5c8aaa0af
    2014-12-09 13:24:04,203 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler -
    2014-12-09 13:24:04,206 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Having header collection: {REQUEST=/jsonrpc.json, PLAINFILE=jsonrpc, METHOD=GET, HOST=192.168.1.6:8080, FILETYPE=json, QUERYSTRING=rpc={%22jsonrpc%22:%20%222.0%22,%20%22method%22:%20%22HardwareService.getSoftwareDriverPresentation%22,%20%22params%22:%20{%22port%22:%22/dev/ttyUSB0%22}%20%22id%22:%22HardwareService.getSoftwareDriverPresentation%22}&
    =1418131338168}
    2014-12-09 13:24:04,214 [WEBCLIENT:192.168.1.24] DEBUG org.pidome.server.services.clients.http.HTTPClientHandler - 192.168.1.24 - GET: /jsonrpc.json
    2014-12-09 13:24:04,243 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Complete constructed from header: {REQUEST=/jsonrpc.json, PLAINFILE=jsonrpc, METHOD=GET, HOST=192.168.1.6:8080, FILETYPE=json, QUERYSTRING=rpc={%22jsonrpc%22:%20%222.0%22,%20%22method%22:%20%22HardwareService.getSoftwareDriverPresentation%22,%20%22params%22:%20{%22port%22:%22/dev/ttyUSB0%22}%20%22id%22:%22HardwareService.getSoftwareDriverPresentation%22}&=1418131338168}
    2014-12-09 13:24:04,249 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Get query data: {rpc={%22jsonrpc%22:%20%222.0%22,%20%22method%22:%20%22HardwareService.getSoftwareDriverPresentation%22,%20%22params%22:%20{%22port%22:%22/dev/ttyUSB0%22}%20%22id%22:%22HardwareService.getSoftwareDriverPresentation%22}, =1418131338168}
    2014-12-09 13:24:04,268 [WEBCLIENT:192.168.1.24] DEBUG org.pidome.server.system.rpc.PidomeJSONRPC - JSON String to parse: {"jsonrpc": "2.0", "method": "HardwareService.getSoftwareDriverPresentation", "params": {"port":"/dev/ttyUSB0"} "id":"HardwareService.getSoftwareDriverPresentation"}
    2014-12-09 13:24:04,282 [WEBCLIENT:192.168.1.24] DEBUG org.pidome.server.system.rpc.PidomeJSONRPC - Parsed JSON Object: {method=HardwareService.getSoftwareDriverPresentation, id=HardwareService.getSoftwareDriverPresentation, jsonrpc=2.0, params={port=/dev/ttyUSB0}}
    2014-12-09 13:24:04,295 [WEBCLIENT:192.168.1.24] DEBUG org.pidome.server.system.rpc.PidomeJSONRPC - Set request id: HardwareService.getSoftwareDriverPresentation
    2014-12-09 13:24:04,298 [WEBCLIENT:192.168.1.24] DEBUG org.pidome.server.system.rpc.AbstractRPCMethodExecutor - Searching named parameter set for getSoftwareDriverPresentation in HardwareService
    2014-12-09 13:24:04,301 [WEBCLIENT:192.168.1.24] DEBUG org.pidome.server.system.rpc.AbstractRPCMethodExecutor - Found param key: port
    2014-12-09 13:24:04,317 [WEBCLIENT:192.168.1.24] DEBUG org.pidome.server.system.rpc.AbstractRPCMethodExecutor - searching for getSoftwareDriverPresentation in HardwareService
    2014-12-09 13:24:04,320 [WEBCLIENT:192.168.1.24] DEBUG org.pidome.server.system.rpc.AbstractRPCMethodExecutor - Declared params for getSoftwareDriverPresentation : [class java.lang.String]
    2014-12-09 13:24:04,324 [WEBCLIENT:192.168.1.24] DEBUG org.pidome.server.system.rpc.AbstractRPCMethodExecutor - Passed in params for 'getSoftwareDriverPresentation': [/dev/ttyUSB0]
    2014-12-09 13:24:04,334 [WEBCLIENT:192.168.1.24] DEBUG org.pidome.server.system.rpc.PidomeJSONRPC - Response data: {data={presentation=[{description=Information about the hardware used by this driver, title=Hardware link, content=[{label=Hardware, type=SIMPLE_NVP, content=Future Technology Devices International, Ltd, FT232 USB-Serial (UART) IC}, {label=Hardware port, type=SIMPLE_NVP, content=/dev/ttyUSB0}]}, {description=Gateway information, title=Gateway info, content=[{label=Version, type=SIMPLE_NVP, content=Waiting for gateway}, {label=Last receive time, type=SIMPLE_NVP, content=09-12-2014 14:24:03}, {label=Last send time, type=SIMPLE_NVP, content=09-12-2014 14:23:28}]}, {description=When a new node is added it will be displayed below. You will then have the option to add the node to the server. When in AUTO mode you can only add one sensor at a time. When using fixed addresses you can add multiple at the same time. Also, if you mix AUTO and fixed, always, but always add the fixed first otherwise the address allocations of the AUTO node can allocate a fixed one. It is required for the nodes to use presentation., title=New nodes presentation, content=[{label=Address request presentation, type=LIST_NVP, content=[]}, {label=Presentation, type=COMPLEX_NVP, content={255=[{custom_driver_function={identifier=newNodeRequest, function_label=Add sensor node, ADDRESS=2, function_id=customFunction}, 09-12-2014 14:24:03=New device: Possible new address: 2 if not occupied before adding (Restart node after assigning).}]}}]}, {description=Below is a list of last known 20 messages, title=Last known messages, content=[{label=Messages list, type=LIST_NVP, content=[{custom_driver_function={identifier=clearLogList, function_label=Clear log list, function_id=customFunction}}, {09-12-2014 14:24:03=0;0;3;0;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0:}, {09-12-2014 14:23:49=0;0;3;0;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0:}, {09-12-2014 14:23:15=Trying assigning address '2' to a new node}, {09-12-2014 14:23:15=0;0;3;0;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0:}, {09-12-2014 14:23:12=0;0;3;0;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0:}, {09-12-2014 14:23:10=0;0;3;0;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0:}, {09-12-2014 14:23:08=0;0;3;0;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0:}, {09-12-2014 14:23:04=0;0;3;0;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0:}, {09-12-2014 14:23:02=0;0;3;0;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0:}]}]}], driver=MySensors USB (serial) driver API 1.4, port=/dev/ttyUSB0, hardware=Future Technology Devices International, Ltd, FT232 USB-Serial (UART) IC}, success=true, message=}
    2014-12-09 13:24:05,329 [Thread-12] TRACE org.pidome.server.connector.drivers.peripherals.hardware.PeripheralHardwareDriver - Data received from device: 65 byte(s)
    2014-12-09 13:24:05,333 [Thread-12] TRACE org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - Received from hardware driver: 0;0;3;0;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0:
    255;255;3;0;3;
    2014-12-09 13:24:05,336 [Thread-12] DEBUG org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - Handling internal: 0;0;INTERNAL;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0:
    2014-12-09 13:24:05,339 [Thread-12] DEBUG org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - Log request: 0;0;3;0;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0:
    2014-12-09 13:24:05,342 [Thread-12] DEBUG org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - Handling internal: 255;255;INTERNAL;3;
    2014-12-09 13:24:07,337 [Thread-12] TRACE org.pidome.server.connector.drivers.peripherals.hardware.PeripheralHardwareDriver - Data received from device: 65 byte(s)
    2014-12-09 13:24:07,340 [Thread-12] TRACE org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - Received from hardware driver: 0;0;3;0;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0:
    255;255;3;0;3;
    2014-12-09 13:24:07,343 [Thread-12] DEBUG org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - Handling internal: 0;0;INTERNAL;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0:
    2014-12-09 13:24:07,346 [Thread-12] DEBUG org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - Log request: 0;0;3;0;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0:
    2014-12-09 13:24:07,350 [Thread-12] DEBUG org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - Handling internal: 255;255;INTERNAL;3;
    2014-12-09 13:24:07,790 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - GET /jsonrpc.json?rpc={%22jsonrpc%22:%20%222.0%22,%20%22method%22:%20%22DeviceService.peripheralDeviceFunction%22,%20%22params%22:%20{%22peripheralport%22:%22/dev/ttyUSB0%22,%22params%22:{%22identifier%22:%22newNodeRequest%22,%22function_label%22:%22Add%20sensor%20node%22,%22ADDRESS%22:%222%22,%22function_id%22:%22customFunction%22}}%20%22id%22:%22DeviceService.peripheralDeviceFunction%22}&
    =1418131338169 HTTP/1.1
    2014-12-09 13:24:07,795 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Host: 192.168.1.6:8080
    2014-12-09 13:24:07,800 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Connection: keep-alive
    2014-12-09 13:24:07,803 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Accept: /
    2014-12-09 13:24:07,807 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - X-Requested-With: XMLHttpRequest
    2014-12-09 13:24:07,812 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36
    2014-12-09 13:24:07,815 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Referer: http://192.168.1.6:8080/desktop/index.html
    2014-12-09 13:24:07,818 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Accept-Encoding: gzip, deflate, sdch
    2014-12-09 13:24:07,822 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Accept-Language: en-US,en;q=0.8
    2014-12-09 13:24:07,825 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Cookie: key=3e148748-34e5-4ce6-8336-fcd5c8aaa0af
    2014-12-09 13:24:07,838 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler -
    2014-12-09 13:24:07,841 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Having header collection: {REQUEST=/jsonrpc.json, PLAINFILE=jsonrpc, METHOD=GET, HOST=192.168.1.6:8080, FILETYPE=json, QUERYSTRING=rpc={%22jsonrpc%22:%20%222.0%22,%20%22method%22:%20%22DeviceService.peripheralDeviceFunction%22,%20%22params%22:%20{%22peripheralport%22:%22/dev/ttyUSB0%22,%22params%22:{%22identifier%22:%22newNodeRequest%22,%22function_label%22:%22Add%20sensor%20node%22,%22ADDRESS%22:%222%22,%22function_id%22:%22customFunction%22}}%20%22id%22:%22DeviceService.peripheralDeviceFunction%22}&
    =1418131338169}
    2014-12-09 13:24:07,844 [WEBCLIENT:192.168.1.24] DEBUG org.pidome.server.services.clients.http.HTTPClientHandler - 192.168.1.24 - GET: /jsonrpc.json
    2014-12-09 13:24:07,854 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Complete constructed from header: {REQUEST=/jsonrpc.json, PLAINFILE=jsonrpc, METHOD=GET, HOST=192.168.1.6:8080, FILETYPE=json, QUERYSTRING=rpc={%22jsonrpc%22:%20%222.0%22,%20%22method%22:%20%22DeviceService.peripheralDeviceFunction%22,%20%22params%22:%20{%22peripheralport%22:%22/dev/ttyUSB0%22,%22params%22:{%22identifier%22:%22newNodeRequest%22,%22function_label%22:%22Add%20sensor%20node%22,%22ADDRESS%22:%222%22,%22function_id%22:%22customFunction%22}}%20%22id%22:%22DeviceService.peripheralDeviceFunction%22}&=1418131338169}
    2014-12-09 13:24:07,859 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Get query data: {rpc={%22jsonrpc%22:%20%222.0%22,%20%22method%22:%20%22DeviceService.peripheralDeviceFunction%22,%20%22params%22:%20{%22peripheralport%22:%22/dev/ttyUSB0%22,%22params%22:{%22identifier%22:%22newNodeRequest%22,%22function_label%22:%22Add%20sensor%20node%22,%22ADDRESS%22:%222%22,%22function_id%22:%22customFunction%22}}%20%22id%22:%22DeviceService.peripheralDeviceFunction%22}, =1418131338169}
    2014-12-09 13:24:07,864 [WEBCLIENT:192.168.1.24] DEBUG org.pidome.server.system.rpc.PidomeJSONRPC - JSON String to parse: {"jsonrpc": "2.0", "method": "DeviceService.peripheralDeviceFunction", "params": {"peripheralport":"/dev/ttyUSB0","params":{"identifier":"newNodeRequest","function_label":"Add sensor node","ADDRESS":"2","function_id":"customFunction"}} "id":"DeviceService.peripheralDeviceFunction"}
    2014-12-09 13:24:07,869 [WEBCLIENT:192.168.1.24] DEBUG org.pidome.server.system.rpc.PidomeJSONRPC - Parsed JSON Object: {method=DeviceService.peripheralDeviceFunction, id=DeviceService.peripheralDeviceFunction, jsonrpc=2.0, params={peripheralport=/dev/ttyUSB0, params={identifier=newNodeRequest, function_label=Add sensor node, ADDRESS=2, function_id=customFunction}}}
    2014-12-09 13:24:07,872 [WEBCLIENT:192.168.1.24] DEBUG org.pidome.server.system.rpc.PidomeJSONRPC - Set request id: DeviceService.peripheralDeviceFunction
    2014-12-09 13:24:07,875 [WEBCLIENT:192.168.1.24] DEBUG org.pidome.server.system.rpc.AbstractRPCMethodExecutor - Searching named parameter set for peripheralDeviceFunction in DeviceService
    2014-12-09 13:24:07,878 [WEBCLIENT:192.168.1.24] DEBUG org.pidome.server.system.rpc.AbstractRPCMethodExecutor - Found param key: peripheralport
    2014-12-09 13:24:07,881 [WEBCLIENT:192.168.1.24] DEBUG org.pidome.server.system.rpc.AbstractRPCMethodExecutor - Found param key: params
    2014-12-09 13:24:07,884 [WEBCLIENT:192.168.1.24] DEBUG org.pidome.server.system.rpc.AbstractRPCMethodExecutor - searching for peripheralDeviceFunction in DeviceService
    2014-12-09 13:24:07,887 [WEBCLIENT:192.168.1.24] DEBUG org.pidome.server.system.rpc.AbstractRPCMethodExecutor - Declared params for peripheralDeviceFunction : [class java.lang.String, interface java.util.Map]
    2014-12-09 13:24:07,890 [WEBCLIENT:192.168.1.24] DEBUG org.pidome.server.system.rpc.AbstractRPCMethodExecutor - Passed in params for 'peripheralDeviceFunction': [/dev/ttyUSB0, {identifier=newNodeRequest, function_label=Add sensor node, ADDRESS=2, function_id=customFunction}]
    2014-12-09 13:24:07,894 [WEBCLIENT:192.168.1.24] DEBUG org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - Sending internal message to device: '255;255;3;0;4;2'
    2014-12-09 13:24:07,899 [pool-11-thread-1] DEBUG org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - sending: [B@17ba9e8
    2014-12-09 13:24:07,902 [WEBCLIENT:192.168.1.24] DEBUG org.pidome.server.system.rpc.PidomeJSONRPC - Response data: {data=true, success=true, message=}
    2014-12-09 13:24:08,026 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - GET /desktop/driversedit.html?requesttype=ajax&
    =1418131338170 HTTP/1.1
    2014-12-09 13:24:08,029 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Host: 192.168.1.6:8080
    2014-12-09 13:24:08,032 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Connection: keep-alive
    2014-12-09 13:24:08,035 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Accept: text/html, /; q=0.01
    2014-12-09 13:24:08,039 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - X-Requested-With: XMLHttpRequest
    2014-12-09 13:24:08,046 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36
    2014-12-09 13:24:08,049 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Referer: http://192.168.1.6:8080/desktop/index.html
    2014-12-09 13:24:08,053 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Accept-Encoding: gzip, deflate, sdch
    2014-12-09 13:24:08,056 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Accept-Language: en-US,en;q=0.8
    2014-12-09 13:24:08,059 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Cookie: key=3e148748-34e5-4ce6-8336-fcd5c8aaa0af
    2014-12-09 13:24:08,064 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler -
    2014-12-09 13:24:08,067 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Having header collection: {REQUEST=/desktop/driversedit.html, PLAINFILE=desktop/driversedit, METHOD=GET, HOST=192.168.1.6:8080, FILETYPE=html, QUERYSTRING=requesttype=ajax&
    =1418131338170}
    2014-12-09 13:24:08,070 [WEBCLIENT:192.168.1.24] DEBUG org.pidome.server.services.clients.http.HTTPClientHandler - 192.168.1.24 - GET: /desktop/driversedit.html
    2014-12-09 13:24:08,073 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Complete constructed from header: {REQUEST=/desktop/driversedit.html, PLAINFILE=desktop/driversedit, METHOD=GET, HOST=192.168.1.6:8080, FILETYPE=html, QUERYSTRING=requesttype=ajax&_=1418131338170}
    2014-12-09 13:24:08,080 [WEBCLIENT:192.168.1.24] TRACE org.pidome.server.services.clients.http.HTTPClientHandler - Get query data: {requesttype=ajax, _=1418131338170}
    c2014-12-09 13:24:11,360 [Thread-12] TRACE org.pidome.server.connector.drivers.peripherals.hardware.PeripheralHardwareDriver - Data received from device: 65 byte(s)
    2014-12-09 13:24:11,363 [Thread-12] TRACE org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - Received from hardware driver: 0;0;3;0;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0:
    255;255;3;0;3;
    2014-12-09 13:24:11,366 [Thread-12] DEBUG org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - Handling internal: 0;0;INTERNAL;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0:
    2014-12-09 13:24:11,369 [Thread-12] DEBUG org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - Log request: 0;0;3;0;9;read: 255-255-0 s=255,c=3,t=3,pt=0,l=0:
    2014-12-09 13:24:11,372 [Thread-12] DEBUG org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - Handling internal: 255;255;INTERNAL;3;


  • Plugin Developer

    @tortoisedoc
    This is very strange because if data was not able to be send, it would appear in the trace log right after:
    2014-12-09 13:24:07,899 [pool-11-thread-1] DEBUG org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - sending: [B@17ba9e8

    When you send "255;255;3;0;4;2\n" using term the node is assigned an id?



  • @John pardon my ignorance - can I just send by typing in miniterm or is there some special character sequence to be used before I can do so?
    EDIT : Wrote a python program; data is going out (TX led on FTDI flashes right after writing) but has no effect. Funnily, miniterm does NOT see the written data passing by...


  • Plugin Developer

    @tortoisedoc I have no experience with miniterm.... Does the TX led flash when you send press the button to assign a node id?



  • Ok, got ahold of some more components and am back up testing!

    One question : is the value displayed in the drop-down box correct?
    This appears once I try to connect the sensor.

    capture.png


  • Plugin Developer

    @tortoisedoc Welcome back! Yes that is a temporary node address of a new node not having an address assigned. You shold be able to use the assign address button to assign an address to the node. After that is done restart the node so it can present itself properly.



  • @John Update:
    two things.

    1. the "Waiting for Gateway" is still here, even tho the gateway seems to be correctly receiving & sending data
      capture.png
    2. it appears the bluetooth of my laptop might potentially be jamming with the sensor radio signal. Is this possible? Knowing the protocols share the same radio band (2.4 ghz)? Or am I hallucinating?

  • Plugin Developer

    @tortoisedoc Yes bluetooth can certainly interfere also (it think around 70 channels) 2.4 ghz - 2.47 +/- band. Especially the older ones. As long as the driver is in waiting for gateway mode not all the data is being send out.

    Also, do you have multiple nodes asking for an address at the same time? (because of the two seconds between requests) Please add one node at a time. 255 is a temporary address, if multiple nodes are requesting a node id multiple nodes will receive the same new address.

    What the driver does is when there is a gateway ready message, it sends out a request for the version number. When this is received from the gateway the driver knows which version (future usage if/when a new protocol is implemented) of mysensors it must load.

    Is it ok with you to test for me that receiving only the gateway message would be sufficient for the driver to enable all sending?

    If possible. could you do the following for me?

    1. Stop the server
    2. Disconnect the gateway.
    3. Start the server with "./server.sh trace".
    4. When the server is started, connect the gateway.
    5. Give it a couple of seconds and take a look at the driver page. After a maximum of let's say 7 seconds it should show the version number instead of "Waiting".
    6. Let a single node ask for an address, and try to supply one.
    7. After the above actions go to "Settings > Server settings" in the web interface and disable debug mode (this also disables trace mode only available via command line).
    8. Please send the log file with your mysensors username so i know it's you to support.a.t.pidome.org

    Trace mode logging provides me with the most information possible. If all of the above is included i can take a look at all these at the same time.

    P.S. Sorry for the late response, wife's birthday today.



  • @John Okay. Seems we have something here now; see the attached log here:

    appLog.txt

    in particular :
    2014-12-15 21:55:59,811 [USB-discovery] INFO org.pidome.server.system.hardware.drivers.Drivers - Something went wrong width the hardware: MEthod does not support NID to request driver.


  • Plugin Developer

    @tortoisedoc Yeah... that one is an oldie and can be discarded, that one was for example going to be used with for example arduino serial devices. Responding to the NID request with a driver id can load the driver specific for the software written on the arduino. this function is disabled in the api for mysensors.

    Ok, i'm seeing the next:

    2014-12-15 21:58:34,527 [Thread-29] TRACE org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - Received from hardware driver: 0;0;3;0;14;Gateway startup complete.
    2014-12-15 21:58:34,530 [Thread-29] DEBUG org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - Handling internal: 0;0;INTERNAL;14;Gateway startup complete.
    2014-12-15 21:58:34,533 [Thread-29] DEBUG org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - Sending internal message to device: '0;0;3;0;2;Get Version'
    2014-12-15 21:58:34,575 [pool-15-thread-1] DEBUG org.pidome.driver.driver.nativeMySensorsDriver14.NativeMySensorsDriver14 - sending: [B@13038e1

    It is sended to the gateway, but there is no response. This routine has been working since implemented (almost the beginning when gateway ready was available).

    @hek Am i missing something? Has the version info message been changed?

    @tortoisedoc At moment of speaking i'm building a new test version on the build server (http://builder.pidome.org) which enables data when gateway ready arrives, but before it asks for a version. So you now should be able to send.

    P.S. there now is a devices discovery page. devices with id appear here, devices without id (node id 255, so requesting one) still appear in the mysensors driver page. Also discovery is now enabled continuously. this is a quick build to get you going



Suggested Topics

0
Online

11.4k
Users

11.1k
Topics

112.7k
Posts