NEWS
[Gelöst] Script schreit wert mit setState, data sind da aber nicht sichbar under objecten ?
-
Hi there,
Ich schreibe mit setState werte eines sonnesystems weg, das klappt auch bis soweit.
Komische is aber das unter objecten die werte nicht stehen, und stehts wohl und auch de sql adapter logt die daten.
Waarum/wies sorgen ich dafuer das der reite objecte sie auch sehen laesst ?
script: http://forum.iobroker.net/viewtopic.php?f=21&t=6796
! ````
//******************************************
//Dutchman
//V 0.5
//*****************************************
! // define variable
var vbus = require('resol-vbus');
var headerSet = new vbus.HeaderSet();
var conn;
! // Define connection values
conn = new vbus.TcpConnection({
host: 'xxxxxxxx.via.vbus.net', // Can be used with via.vbus.net OR internal 192xxxxx adress !
viaTag: 'xxxxxxxxxx', // only necessary if connected using VBus.net
password: 'vbus',
// channel: 1, // only necessary if connected to a DL3
});
! // Schedule every 20 seconds
schedule("*/20 * * * * *", function () {
! // Log connection status
var onConnectionStateChange = function(state) {
console.log(state);
};
! var onPacket = function(packet) {
headerSet.addHeader(packet);
};
! conn.on('connectionState', onConnectionStateChange);
conn.on('packet', onPacket);
! conn.connect().done(function() {setTimeout(function() { conn.disconnect();
! //create header packages
var packets = headerSet.getSortedHeaders();
var spec = vbus.Specification.getDefaultSpecification();
var packetFields = spec.getPacketFieldsForHeaders(packets);
! var packet = null;packetFields.forEach(function(packetField) { if (packet !== packetField.packet) { packet = packetField.packet; console.log(packetField.packetSpec.fullName);
! }
! // Create new objects
createState("vbus." + packetField.name ,{
name: packetField.name,
type: 'string',
role: 'value'
});// Update values setState("vbus." + packetField.name, packetField.formatTextValue(), true); console.log(packetField.name + packetField.formatTextValue()) });
! // 10 second timer, collection all information takes some seconds
}, 10000);
});});
! ````
Objecte:
States:
SQL daten logger:
Auch in Vis sind sie da:
Die werte bei states machen mich stutzig, irgenwa uebersehen ?
-
Leerzeichen in der Datenpunkt-ID könnten ein Problem sein.
-
Leerzeichen in der Datenpunkt-ID könnten ein Problem sein. `
Danke paul das wars ! Ich habe an meinem script einen counter hinzugefuegt welche ID's generiert.
Eventuel gibt es dafuer eine bessere loesung ?
counter = counter + 1; packetFields.forEach(function(packetField) { // Create new objects createState("vbus." + counter ,{ name: packetField.name, type: 'string', role: 'value' }); setState("vbus." + counter, packetField.formatTextValue(), true); }