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. `
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); }
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden