• How to receive a notification when a message has no Ack

    Developers Zone
    5
    0 Votes
    5 Posts
    673 Views
    D
    Done! 494
  • Unable to retrieve data from any node

    Troubleshooting
    9
    0 Votes
    9 Posts
    677 Views
    S
    Thanks for all the help. I have not been able to rework the code yet, but I will take that as a working thesis and consider this problem closed. I really appreciate your help and patience as I work my way through this.
  • 0 Votes
    4 Posts
    1k Views
    A
    @matth1187 hi there, "Does MYSBootloader prevent me from uploading sketch to a node via IDE. so in otherwords a node with MYSBootloader can only be program with OTA and not from serial/arduino ide?" I'm allso still wondering about this. At first i had my nodes programmed via ftdi and arduinoIDE, then burned mysbootloader and could start OTA (allthough it didn't seem to succeed). I could then still program the nodes via ftdi (atleast arduinoIDE didn't throw an error and would write). Then i tried burning bootloader and then program with usbasp using shift-upload in arduinoIDE. When powering on nodes mycontroller can still descover them but when requesting firmware OTA i would only see "nodeID/255/4/0/1" in mqtt client but no response. So i'm still very confused. Did you find an answer to this question? Thanks
  • More information about Cmd=4 messages (stream messages)

    Troubleshooting
    13
    0 Votes
    13 Posts
    756 Views
    A
    @jkandasa ok thanks, i will upgrade
  • FOTA not working

    Troubleshooting
    15
    0 Votes
    15 Posts
    1k Views
    skywatchS
    @guille That is a great resource, thanks. My only comment would be that channels 111-125 are missing in the current version.
  • Missing Parent EUI

    Dashboard
    12
    0 Votes
    12 Posts
    906 Views
    jkandasaJ
    @guille Ah, do not know why? let me have a look sometime later. I hope this gives some hints to fix https://github.com/mycontroller-org/mycontroller/issues/484
  • A few starter questions

    Getting Started
    2
    0 Votes
    2 Posts
    559 Views
    jkandasaJ
    @aliasjim MYController discovered a sensor called "SENSOR_BC", any idea what this is? I guess this is related to the issue: https://github.com/mycontroller-org/mycontroller/issues/484, But still, I did not get any clue, Is it possible to select a unit for a sensor "lightlevel(lux)" instead of (%)? It is possible to change a unit, MyController does not have the unit lightlevel(lux). Can you create a ticket to add this? I have one sensor with 2 "variable types", what does this mean and how can i remove one (one has no value) Edit sensor and uncheck a variable, which you do not want. I hope it is reported by your sketch/node. So it may recreate again a later time. I have digital sensors that are interrupt driven both when going low and when going high, but in mycontroller the sensor gets tripped and stays tripped (in dashboard, on the graph it does revert state back) MyController graphs are updated every 30 seconds(default) once. You can refresh the page to see the changes. If not your sketch/node may not report the new state. I love this software esspechially the FOTA part, no more running around with laptop and cables. Great work Thank you
  • FOTA tutorial?

    Getting Started
    9
    0 Votes
    9 Posts
    1k Views
    G
    @aliasjim That's great! Just for the record, I compiled all the bootloaders here: https://github.com/guillebot/MYSensors-Bootloaders all the channels, for 1, 8 and 16MHz.
  • cannot select firmware for node

    Troubleshooting
    7
    0 Votes
    7 Posts
    492 Views
    A
    @jkandasa yes, after i couldn't remove the firmware in the ui, i deleted it from this path. I might of been a little hasty
  • Weather Icons....

    Comments & Feedback
    7
    0 Votes
    7 Posts
    815 Views
    jkandasaJ
    @skywatch I hope it is possible. I will check it locally and update the status
  • 1 Votes
    4 Posts
    797 Views
    G
    Works great! Thanks
  • OTA firmware update with external MQTT broker

    General Discussion
    46
    0 Votes
    46 Posts
    31k Views
    jkandasaJ
    @Marcel Thank you for your patience! OTA works in the following way, send available firmware details(version, checksum, etc.,) to the node If node thinks, it is a different sketch, it will request block by block. MyController sends firmware block data(requested block) When I have a new node, this will publish an auto node ID. Then I cannot upload new firmware because if I do this the default firmware will be loaded? I am not sure if that is even possible with manually assigned numberings of nodes. Assigning node ID is a different process than OTA. So do not get confuse with node ID assignment. So the next step is that I press edit on the new node and assign the firmware to it (that I added to utilities\firmware tab) and save this and the press the above button upload firmware? This seems to work but I am not sure if this is the correct process as I find this not very logical. Yes, this is the correct way to upload firmware and it is by design. You can keep any number of version of the firmware and assign a version to a particular node. When I would like to update a node, I add the software again to the utilities\firmware tab, edit the specific node and assign this new software and do the upload firmware again? Correct? Yes, correct The part where it did goes wrong is that I put the default switch on for firmware as I saw errors in the logging about this. Then this will upload software (which is already on another node) to the new node and you get duplicated node numbers. Default firmware should not contain node id statically. It is mainly used when we use MYSBootloader. With this boot loader, we may not have any firmware. So we can keep default firmware for the first time. and later we can switch to new firmware by assigning manually. That is up to our convenience. We can go without default firmware also. You can disable it as follows, [image: 1548310349559-461787f1-c759-4063-9c35-8af7e073c66d-image.png] So preferable, I would like to see. Add also the possibility that you have a split menu. Upload Assigned/default firmware or upload firmware where you get a popup and select the one you would like to upload to your node. Yes, nice feedback/enhancement request. Could you please create a ticket in GitHub? Secondly, I had a problem with my boot software. The first time it advertises itself and after the upload of the new firmware, I could never upload new firmware again. I have downloaded the MySensors Bootloader and recompiled it for my hardware (slim node atMega328p 8MHz) and this bootloader seems to work okay Great! I hope you have mentioned MYSBootloader ^^
  • FOTA updates while connected to openhab

    General Discussion
    2
    0 Votes
    2 Posts
    301 Views
    jkandasaJ
    @aliasjim Yes, you should disable serial port from openhab and enable the serial port(gateway) in MyController, when you want to run FOTA
  • cant get mycontroller app to open

    Getting Started
    4
    0 Votes
    4 Posts
    613 Views
    jkandasaJ
    @aliasjim I never tested with two kinds of a controller, May be possible. MQTT might fit for this requirement. Other users might experience this setup.
  • Gateway type and performance

    Developers Zone
    5
    0 Votes
    5 Posts
    706 Views
    jkandasaJ
    @Daniele Personally I do not see any performance difference/issue when using MQTT.
  • notification on node down status

    Developers Zone
    8
    0 Votes
    8 Posts
    993 Views
    jkandasaJ
    @Daniele Your code looks super cool and awesome. I just added few HTML template style (you may not like ) and minor tune. Thanks for the awesome code!! var myImports = new JavaImporter(java.io, java.lang, java.util,java.lang.Object, org.mycontroller.standalone.utils.McUtils); with(myImports) { var options = new HashMap(); options.put("orderBy", "Eui"); options.put("order", "asc"); options.put("pageLimit", new Long(-1)); // -1 to list all the nodes var nodes = mcApi.node().getAll(options); var nodesVar = mcApi.variable().get("nodes_state"); // It is good to have key in lowercase and no space var nodesOU = JSON.parse(nodesVar.value); var nodesOD = JSON.parse(nodesVar.value2); var nodesU = []; var nodesD = []; var subject = "[MyController] Nodes status"; var tableBody = ""; for (i = 0; i < nodes.data.length; i++) { var nodeStatus = { }; var _nodeId = nodes.data[i].getId(); // nodeId is unique and internal // but still if you want to refer node EUI and gateway id, use the following line and comment above line. //var _nodeId = nodes.data[i].getGatewayTable().getId() + '-' + nodes.data[i].getEui(); var _nodeState = nodes.data[i].getState(); nodeStatus[_nodeId] = _nodeState; // update in to our common map if (_nodeState == "UP") { nodesU.push(_nodeId); var prevState = ""; for (j = 0; j < nodesOU.length; j++){ if (nodesOU[j] == _nodeId) prevState = "UP"; } if (prevState != "UP") tableBody += "<tr style='color: green;'><td>" + _nodeId + "</td><td>" + nodes.data[i].getName() + "</td><td>" + nodes.data[i].getEui() + "</td><td>" + _nodeState + "</td><td>" + mcApi.utils().friendlyTime(nodes.data[i].getLastSeen()) + "</td></tr>"; } if (_nodeState == "DOWN") { nodesD.push(_nodeId); var prevState = ""; for (j = 0; j < nodesOD.length; j++){ if (nodesOD[j] == nodeId) prevState = "DOWN"; } if (prevState != "DOWN") tableBody += "<tr style='color: red;'><td>" + _nodeId + "</td><td>" + nodes.data[i].getName() + "</td><td>" + nodes.data[i].getEui() + "</td><td>" + _nodeState + "</td><td>" + mcApi.utils().friendlyTime(nodes.data[i].getLastSeen()) + "</td></tr>"; } } if (tableBody.length > 0){ var pageStart = "Hello,<BR><BR>"; var tableStyle = '<table border = "1" cellpadding = "5" style="border-collapse: collapse;border: none;"><tbody><tr><th align="left">Id</th><th align="left">Name</th><th align="left">EUI</th><th align="left">State</th><th align="left">Since</th></tr>'; var tableEnd = '</tbody></table>'; var pageEnd = "<BR><BR>--MyController.org<BR>"; // mcApi.operation().sendPushbulletNote(null, "abc@xyz.com", null, subject, message); mcApi.operation().sendEmail("abc@xyz.com", subject, pageStart + tableStyle + tableBody + tableEnd + pageEnd); } nodesVar.value = JSON.stringify(nodesU); nodesVar.value2 = JSON.stringify(nodesD); nodesVar.save(); } Email will be looking like this, [image: 1548079561113-310032a4-3e1b-4191-9c0e-c42d7a1ff5f0-image.png]
  • Web server stopped responding.

    Troubleshooting
    2
    0 Votes
    2 Posts
    260 Views
    jkandasaJ
    @skywatch Thanks to reporting this log. Unfortunately I could not get any useful information for the issue faced
  • Send battery level to influxdb?

    General Discussion
    6
    0 Votes
    6 Posts
    667 Views
    B
    I opened up an issue: https://github.com/mycontroller-org/mycontroller/issues/488
  • getting correct values.....

    Troubleshooting
    4
    0 Votes
    4 Posts
    371 Views
    jkandasaJ
    @skywatch I guess dashboard graph and sensor page graph are in different time duration? Can you share dashboard graph settings screenshot? AFAIK, we could not keep all the data in our system, will lead disk issue, poor performance, etc., In MyController we keep min,max,avg for a duration, as mentioned in metrics retention settings. If you enable min, max, avg, will cover all the data for a duration.
  • Device rebooting, whats the problem?

    Troubleshooting
    5
    0 Votes
    5 Posts
    1k Views
    jkandasaJ
    @njbuch Do you know what the core problem is with newer versions of the framework? No, I do not have enough time to look into it