MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    Need some advise. Digital Ocean Modules

    Scheduled Pinned Locked Moved Development
    19 Posts 2 Posters 11.0k Views 2 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • strawberry 3.141S Offline
      strawberry 3.141 Project Sponsor Module Developer
      last edited by

      can you show what you’ve got so far and what you want to use from the api (e.g. which methods) ?

      Please create a github issue if you need help, so I can keep track

      andrewchumchalA 1 Reply Last reply Reply Quote 0
      • andrewchumchalA Offline
        andrewchumchal @strawberry 3.141
        last edited by

        @strawberry-3.141 I would like to pull the IP and Name and the Status. and here is a copy of my MMM-Digital-Ocean.js file https://raw.githubusercontent.com/andyipod1437/MMM-Digital-Ocean/master/MMM-Digital-Ocean.js

        1 Reply Last reply Reply Quote 0
        • strawberry 3.141S Offline
          strawberry 3.141 Project Sponsor Module Developer
          last edited by

          this should give you a litte help
          node_helper.js

          const DIGITALOCEAN = require('dropletapi').Droplets;
          const NodeHelper = require('node_helper');
          
          module.exports = NodeHelper.create({
              
              digitalocean: null,
          
              start: function() {
                  console.log("Starting module: " + this.name);
              },
          
              socketNotificationReceived: function(notification, payload) {
                  if (notification === "CONFIG") {
                      this.config = payload;
                      this.digitalocean = new DIGITALOCEAN(this.config.api_key);
                      setInterval(() => {
                          this.getData();
                      }, this.config.updateInterval);
                      this.getData();
                  }
              },
              
              getData: function() {
                  this.digitalocean.listDroplets((error, result) => {
                      if (error) {
                          console.log(error);
                      } else {
                          this.sendSocketNotification("DATA", result);
                      }
                  });
              }
          });
          

          MMM-Digital-Ocean.js in start method

          this.sendSocketNotification("CONFIG", this.config);
          

          in socketNotificationReceived

          if(notification === "DATA"){
              this.droplets = payload;
          }
          

          in getDom you can iterate over all droplets and build the output you want

          Please create a github issue if you need help, so I can keep track

          andrewchumchalA 1 Reply Last reply Reply Quote 0
          • andrewchumchalA Offline
            andrewchumchal @strawberry 3.141
            last edited by

            @strawberry-3.141

            where do i add the very last part ?

            strawberry 3.141S 1 Reply Last reply Reply Quote 0
            • strawberry 3.141S Offline
              strawberry 3.141 Project Sponsor Module Developer @andrewchumchal
              last edited by

              @andrewchumchal also in MMM-Digital-Ocean.js

              Please create a github issue if you need help, so I can keep track

              andrewchumchalA 1 Reply Last reply Reply Quote 0
              • andrewchumchalA Offline
                andrewchumchal @strawberry 3.141
                last edited by

                @strawberry-3.141

                Any where ? or in a function called socketNotificationReceived

                strawberry 3.141S 1 Reply Last reply Reply Quote 0
                • strawberry 3.141S Offline
                  strawberry 3.141 Project Sponsor Module Developer @andrewchumchal
                  last edited by

                  @andrewchumchal

                  socketNotificationReceived: function(notification, payload){
                      if(notification === "DATA"){
                         this.droplets = payload;
                      }
                  },
                  

                  Please create a github issue if you need help, so I can keep track

                  andrewchumchalA 2 Replies Last reply Reply Quote 0
                  • andrewchumchalA Offline
                    andrewchumchal @strawberry 3.141
                    last edited by

                    @strawberry-3.141
                    Thanks again for all of you help. Now I just need to get the getDom to work :)

                    1 Reply Last reply Reply Quote 0
                    • andrewchumchalA Offline
                      andrewchumchal @strawberry 3.141
                      last edited by

                      @strawberry-3.141

                      Any ideas where i can start? like where i can get the name and status.

                      strawberry 3.141S 1 Reply Last reply Reply Quote 0
                      • strawberry 3.141S Offline
                        strawberry 3.141 Project Sponsor Module Developer @andrewchumchal
                        last edited by

                        @andrewchumchal

                        for(var i = 0; i < this.droplets.droplets.length; i++;){
                            var name = this.droplets.droplets[i].name;
                            var status = this.droplets.droplets[i].status;
                            var ip = '';
                            for(var n = 0; n < this.droplets.droplets[i].networks['v4'].length; n++;){
                                ip += this.droplets.droplets[i].networks['v4'].ip_address + ' | ';
                            }
                            for(var n = 0; n < this.droplets.droplets[i].networks['v6'].length; n++;){
                                ip += this.droplets.droplets[i].networks['v6'].ip_address + ' | ';
                            }
                            ip = ip.replace(/ | $/, '');
                        }
                        
                        

                        Please create a github issue if you need help, so I can keep track

                        andrewchumchalA 1 Reply Last reply Reply Quote 0
                        • 1
                        • 2
                        • 2 / 2
                        • First post
                          Last post
                        Enjoying MagicMirror? Please consider a donation!
                        MagicMirror created by Michael Teeuw.
                        Forum managed by Sam, technical setup by Karsten.
                        This forum is using NodeBB as its core | Contributors
                        Contact | Privacy Policy