Symfony Bundle as Controller for MySensors + Vuejs + Websocket



  • Hi,

    I plan to release an (bugged) alpha version of my own controller (MonitHomeBundle), soon, soon...
    I will need some coders to help me with this big challenge.
    So this message is to know if people could be interested in testing and contribute to the code; but first to know if you people could be interesting in another controller and specially one builded with php/symfony on top of websockets.
    It could also be interesting to know what kind of features you need !

    Lets see the presentation below :

    Why another controller ?

    • No symfony bundle can be found to use with mysensors
    • Using php is a challenge for hardware communication (but it works)
    • For fun and learn

    What is this about ?

    • It uses vue.js as front end engine to present datas and graph them.
    • It uses dio extension to properly communicate with serial gateway (USB gateway)
    • It uses websockets for a realtime communication between vuejs and php
      • As soon as a message (new value from node) is received from gateway (and treated) it is pushed to vue, realtime here (wip : improving response time by optimizing ws network load)
    • Tested with Symfony 4.2 and PHP 7.2-7.3
    • A pretty good attention is given to GUI (clear and simple)

    Prerequisites and limitations

    • You MUST install php_dio extension (pecl extension) : this will allow php to access serial port directly and it is the only way to do good job with serial port.
    • You need to run daemons in background via cron, nohup or screen (~4% memory on a raspberry pi)
      • One for websockets
      • One for retrieving and treat USB gateway infos
    • Currently only works with a serial gateway (connected to USB) or emulated file gateway
    • Specific server config (mod proxy for apache)

    What it does ?

    • Get and display current sensors status
      • Easy set activators
      • Set actuators
        • Supported values : V_BINARY, V_LIGHT_LEVEL,V_TEMP, V_HUM and more to come...
    • Log received datas
      • Historical view (see when an actuator has changed status)
      • Full graph with all sensors for a global view (line chart)
      • Simple date range query logs
    • Full and very clear gateway debugging by launching daemon in verbose mode (-vvv)
    • Trigger several actuators at a time (actions)
    • Build scenario based on conditions on value of one or several sensors and trigger action accordingly
    • Schedule actions (using rrule RFC both side) to be executed periodically
    • Graph your network topology
    • File emulator gateway for local testing purpose (no fully running gateway needed to contribute)
    • Dispatchs events on new messages received from gateway
    • Minimalistic REST API (that need more attention)
    • Software definition of logging : log periodically sensors (drop unwanted values)

    The work to come...

    • Allow creation and modification of nodes via gui, in fact, only yaml definition is supported for the moment
      • Create new nodes and sensors on gateway's presentation message reception (auto mode not implemented)
    • Test new message type (and sensors), new value, new unit and debug...
    • Improve graphs datas (redondant big queries and not optimized formatting)
    • Improve data socket network usage (be light)
    • Unit/functionnal testing
    • Support more gateway protocols (MQTT)
    • Support exotic sensors
    • Refactor and cleanup
    • [...]

    So tell me...




 

284
Online

8.8k
Users

9.5k
Topics

100.2k
Posts