• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
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.

MMM-Rest & pimatic REST-API

Scheduled Pinned Locked Moved Troubleshooting
1 Posts 1 Posters 797 Views 1 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.
  • ? Offline
    A Former User
    last edited by Mar 9, 2018, 6:28 PM

    I need help by my pimatic integration with the MMM-Rest Module.
    In the Module docu the url returns a single Integer but my pimatic api returs a string with more informations. like this

    curl http://user:user@himbeere/api/variables/dht-01.temperature
    {“variable”:{“name”:“dht-01.temperature”,“readonly”:true,“type”:“attribute”,“value”:20,“unit”:“°C”},“success”:true}

    what i need ist the value 20

    how i can filter the response?

    i have found this for an php request but i dont know how i can use it in the node_helper.js

    <b>Single value from weather.temperature:</b><br />
    php
       $curl = curl_init();
       curl_setopt ($curl, CURLOPT_URL, "http://demo:demo@demo.pimatic.org/api/variables/variable-set.temperature");
       curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1);
    
       $result = curl_exec ($curl);// curl to a variable
        curl_close ($curl);
    
    	$result = json_decode($result, true);// decode to associative array
    	$result = $result['variable']['value'];//pick desired value
    
    	print "Temperature: ".$result; 
    

    $result = Temperature 11.4

    node_helper.js

    /* Magic Mirror
     * Module: MMM-Rest
     *
     * By Dirk Melchers 
     * MIT Licensed.
     */
    var NodeHelper = require('node_helper');
    var request = require('request');
    
    module.exports = NodeHelper.create({
        start: function () {
            console.log(this.name + ' helper started ...');
        },
    
        socketNotificationReceived: function(notification, payload) {
            if (notification === 'MMM_REST_REQUEST') {
                var that = this;
                request({
                    url: payload.url,
                    method: 'GET'
                }, function(error, response, body) {
                    // console.log("MMM_REST response:");
                    if (!error && response.statusCode == 200) {
                        // console.log("send notification: "+payload.id);
                        that.sendSocketNotification('MMM_REST_RESPONSE', {
                            id: payload.id,
                            data: response
                        });
                    }
                });
            }
        }
    });
    
    

    does anyone have an idea how i can integrate the decode in the node_helper.js?

    1 Reply Last reply Reply Quote 0
    • 1 / 1
    1 / 1
    • First post
      1/1
      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