MyNodes.NET moving to node.js.


  • Contest Winner

    Happy to announce that I started working on a new version of MyNodes.
    I decided to port the program to node.js. I don't expect that the new version will see many changes in functionality, but the whole internal architecture will be redesigned.
    In my plans the following changes:

    • The event-driven system will be replaced per cycle. Now, for example, if the software node has inputs A, B and output C, then C will updated the first time you change A, and again when changing B. This complicates the process of creating circuits from nodes, because we need to ensure that C has not sent the changes ahead of time. In the future system we are confident that any node will perform its own logic for one iteration of the loop, and so it will be easier to understand how the value will change in the chain of nodes.
    • The new version is designed so that it can be easy to add support for new protocols.
    • MongoDB support.
    • The program will work under OS X.
    • Serial gateway will work under linux.

    I'll write about all the new features and changes.
    If you have any thoughts about this or suggestions, please write here.
    If you wish to contribute, please join.



  • Hi,

    I knew about MyNodes.Net already a couple of months ago, but only tried it yesterday, and man, why the hell didn't i tried this sooner, it is absolutely a breeze to work with, you can do complex things in very little time. Amazingly job you did there.

    The editor is really great, but it would be nice to see the actual values on the nodes, especially the constant node. Now you always have to go to configure to see/check what the constant node contains.

    I think there is a bug in the Google speech part. I played around a bit with it, but no matter what i try, it always plays the message twice.

    And one more issue, if you add 4 panels, with the 1st one being a bit long, the 4th one appears in the middle on the 2nd row with many whitespace between the 2nd panel and the 4th panel, is this intended?

    BTW, moving to node.js, does that mean you will abandon .Net ?

    Keep up the great work.

    Greetings,
    Eric



  • Great news. Have ou take a look to node-red and node-red-dashboard ?



  • This post is deleted!

  • Contest Winner

    @ericvdb Thanks for the feedback. It would be very cool if it was possible to see the values on the inputs/outputs. I have thought about it, but I don't specialist in front-end development and I haven't tried to implement it yet. However, in the new version I'm going to do step-by-step code execution in the nodes (instead of events). Thus you can manually control the speed with which the changed value is pushed along the chain of nodes (up to each step).

    I don't refuse support .net version of the controller. The new version will be developed in a separate repository. I decided to write a new version in node.js for two reasons:

    Microsoft has released a new (still beta) version ASP.NET and they changed so many things in it compared to the last. I wanted to port the code to a new version, but it turned out that it's not easy. If I do the porting now, I will have to do it again when Microsoft will release the final version ASP.NET. So I decided to wait until the API is finally completed.

    I expect there are developers who join the development MyNodes.NET. But the interest of developers is not so strong as I expected. Perhaps ASP.NET not so popular among developers who may be interested in creating a smart home, and such things. I thought MyNodes may become more popular if it will be written in node.js. Let's see what will come out of this.


  • Contest Winner

    @Fabien No. How can it be useful for MyNodes.net?


  • Contest Winner

    @ericvdb I have not noticed problems with the panels and the Google speech. Take note of this and will look later. Thank you.



  • looks like its going to be a great controller, node is one of the strongest players these days, good luck to you i hope i can help in development.

    Few notes:

    1. You are using some deprecated node libraries, you get an warning when running node install.
      npm WARN deprecated jade@1.11.0: Jade has been renamed to pug, please install the latest version of pug instead of jade
      npm WARN deprecated transformers@2.1.0: Deprecated, use jstransformer
    2. I would try to use angular as front end
    3. when trying to run "node ./bin/www" i get exception:
      mys_gateway.connectToSerialPort(config.gateway.mysensors.serial.port, config.gateway.mysensors.serial.baudRate);
      ^

    TypeError: mys_gateway.connectToSerialPort is not a function


  • Contest Winner

    @dpressle
    Hi. connectToSerialPort should work. The connection with the gateway is already working, and all is displayed correctly on the /mysensors page.
    I'm not familiar with Angular yet. To me it seems pretty cumbersome. Handlebars now works not bad in the role of templating engine. What are the advantages of switching to angular?



  • @derwish
    You are right, Handlebars and Angular together would be pretty useless.

    Handlebars and Angular are completely different things.

    Handlebars is a template engine. You write a fancy templatey-string, give it a JSON object, and it renders out HTML from the data. There's no data-binding, no updating, it's just a once-off render.

    AngularJS is an HTML compiler and databinder. Angular will look through the HTML for angular-templating tags, interpret/compile them, and update the HTML with changes to data on a given controller scope. Angular doesn't just render an HTML string once, it compiles the HTML, binds it to a scope, and updates when data on that scope changes.



  • Great work. The most stable controller of i tried. I think it will be good sending e-mail and/or sms When an alarm condition/event occurs. thank you .


  • Contest Winner

    @ismail-çataroğlu Thank you. I will add an email node. Perhaps an sms, if I can find a good service.



  • I have no idea how you are getting this to work, when i try to run with the latest code i get this error:
    node bin\www
    C:\Users\dpressle\Documents\github_repos\mynodes.js\modules\mysensors\gateway-io.js:13
    gateway.on('newNode', function (node) {
    ^

    TypeError: gateway.on is not a function
    at Object.module.exports.listen (C:\Users\dpressle\Documents\github_repos\mynodes.js\modules\mysensors\gateway-io.js:13:10)
    at C:\Users\dpressle\Documents\github_repos\mynodes.js\modules\web-server\configure.js:17:46
    at Object.<anonymous> (C:\Users\dpressle\Documents\github_repos\mynodes.js\modules\web-server\configure.js:86:3)
    at Module._compile (module.js:410:26)
    at Object.Module._extensions..js (module.js:417:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Module.require (module.js:354:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (C:\Users\dpressle\Documents\github_repos\mynodes.js\bin\www:9:2)

    my node version is:

    node --version
    v4.3.0
    npm --version
    2.14.12


  • Contest Winner

    @dpressle I use:
    node -v
    v6.2.0
    npm -v
    3.8.9



  • @derwish strange seems like latest node is 4.4.7 for windows and linux how do you get V 6.xxx
    node official download page


  • Contest Winner

    @dpressle
    https://nodejs.org/en/download/current/
    Current version: v6.2.2 (includes npm 3.9.5)



  • @derwish got it thanks, i will try.



  • Getting close (or not)

    node -v
    v6.2.2

    npm -v
    3.10.3

    node bin\www
    C:\Users\dpressle\Documents\github_repos\mynodes.js\node_modules\serialport\node_modules\bindings\bindings.js:83
    throw e
    ^

    Error: Module version mismatch. Expected 48, got 46.



  • ok its working now, after deleting the node_modules dir and runing "npm install" again


  • Hero Member

    @derwish said:

    I expect there are developers who join the development MyNodes.NET. But the interest of developers is not so strong as I expected. Perhaps ASP.NET not so popular among developers who may be interested in creating a smart home, and such things. I thought MyNodes may become more popular if it will be written in node.js. Let's see what will come out of this.

    Hello, I have some interest in the project in ASP.NET as it looks very promising, just didn't have time to check the code yet, but I hope I will be able to do it in the coming weeks.

    I'm not sure it's necessary to hurry to move to the next version of ASP.NET, you can keep using the current version and let MS finish, then let it some time to smooth out the rough edges after the final version is released :)


Log in to reply
 

Looks like your connection to MySensors Forum was lost, please wait while we try to reconnect.