I hope I describe it correct and you understand what I mean.
I’m writing a new module which has to display the information from 2 different URL’s.
When I query them seperate than everythink works OK.
But I want to do query from URL-1 to JSON (MHW-P1) and URL-2 to JSON (MHW-WM).
Is this possible and how?
This is what I’ve came up with, but it doesn’t work.
node_helper.js
// P1 Meter section
//
getMHW_P1: function(urlP1) {
// Make a GET request using the Fetch API for the P1 Meter
fetch(urlP1)
.then(response_P1 => {
if (!response_P1.ok) {
console.error('MMM-MyHomeWizard: Network response was not ok');
}
return response_P1.json();
})
.then(result_P1 => {
// Process the retrieved user data
console.log(result_P1); // Remove trailing slashes to display data in Console for testing
this.sendSocketNotification('MHWP1_RESULT', result_P1);
})
.catch(error => {
console.error('Error:', error);
});
},
socketNotificationReceived: function(notification, payload_P1) {
if (notification === 'GET_MHWP1') {
this.getMHW_P1(payload_P1);
}
},
// Water Meter Section
//
getMHW_WM: function(urlWM) {
// Make a GET request using the Fetch API for the Water Meter
fetch(urlWM)
.then(response_WM => {
if (!response_WM.ok) {
console.error('MMM-MyHomeWizard: Network response was not ok');
}
return response_WM.json();
})
.then(result_WM => {
// Process the retrieved user data
console.log(result_WM); // Remove trailing slashes to display data in Console for testing
this.sendSocketNotification('MHWWM_RESULT', result_WM);
})
.catch(error => {
console.error('Error:', error);
});
},
socketNotificationReceived: function(notification, payload_WM) {
if (notification === 'GET_MHWWM') {
this.getMHW_WM(payload_WM);
}
},
MMM-MyModules.js
// <-- P1 Meter Section -->
// This processes your data P1 Meter
processMHW_P1: function(data_P1) {
this.MHW_P1 = data_P1;
console.log(JSON.stringify(this.MHW_P1)); // uncomment to see if you're getting data (in dev console)
this.loaded = true;
},
// this tells module when to update
scheduleUpdate: function() {
setInterval(() => {
this.getMHW_P1();
this.getMHW_WM();
}, this.config.updateInterval);
this.getMHW_P1();
this.getMHW_WM();
var self = this;
},
// this asks node_helper for data
getMHW_P1: function() {
this.sendSocketNotification('GET_MHWP1', this.urlP1);
},
// this gets data from node_helper
socketNotificationReceived: function(notification_P1, payload_P1) {
if (notification_P1 === "MHWP1_RESULT") {
// this notification doesn't come back on error..
this.processMHW_P1(payload_P1);
this.updateDom(this.config.initialLoadDelay);
}
},
//<-- Water Meter Section -->
// This processes your data Water Meter
processMHW_WM: function(data_WM) {
this.MHW_WM = data_WM;
console.log(JSON.stringify(this.MHW_WM)); // uncomment to see if you're getting data (in dev console)
this.loaded = true;
},
/* // this tells module when to update
scheduleUpdate: function() {
setInterval(() => {
this.getMHW_WM();
}, this.config.updateInterval);
this.getMHW_WM();
var self = this;
},
*/
// this asks node_helper for data
getMHW_WM: function() {
this.sendSocketNotification('GET_MHWWM', this.urlWM);
},
// this gets data from node_helper
socketNotificationReceived: function(notification_WM, payload_WM) {
if (notification_WM === "MHWWM_RESULT") {
// this notification doesn't come back on error..
this.processMHW_WM(payload_WM);
this.updateDom(this.config.initialLoadDelay);
}
},
I hope somebody can help me with this.
I'm not a programmer, but I try to do my best ;-)