NEWS
Javascript - Datenpunkt per UDP Senden
-
Hallo zusammen.
Ich hab den iobroker nun seit 3 Wochen und er löst bei mir den Loxberry ab, da ich ein Loxone Smarthome habe.
Viele Dinge sind wirklich sehr leicht verständlich auch für mich als "newby". Jedoch komme ich nun nicht weiter. Bestimmt kann mir hier jemand helfen. Ich würde gerne einen bestehenden Datenpunkt im ioBroker (Aktuelle Produktion des Wechselrichter) welche ich sekündlich per MQTT erhalte, per UDP an den Miniserver senden. Das Javascript war recht simpel aber ich verstehe noch nicht wie ich den Datenpunkt als Wert in mein Script kriege.
// openDTU | PC-current
var dgram = require('dgram');
var message = new Buffer('mqtt.0.DTU.xxxxxxx.0.current');
var client = dgram.createSocket('udp4');
client.send(message, 0, message.length, 6610,'xx.xxx.x.xx', function(err, bytes) {
if (err) throw err;
client.close();
}); -
So ganz verstehe ich deine Frage nicht.
Wenn du wissen willst wie du Änderungen an einem Datenpunkt gemeldet bekommts - sprich eine Funktion deine Scripts ausgeführt wird, wenn sich ein Datenpunkt ändert dann ist "on" das Stcihwort dass du suchst.Beispiel:
// switch
on({id: idEnergethixButtonPressedShort, val:true}, onEnergethixButtonPressedShort);Die Funktion onEnergethix ButtonPressedShort wird heier aufgerufen sobald auf den
Datenpunkt idEnergethixButtonPressedShort geschrieben wird.Werte eines Datenpunktes bekommst du mittels getState Funktion
-
@loxoner86 sagte in Javascript - Datenpunkt per UDP Senden:
// openDTU | PC-current
let myDP=getState('xxxxx').val
-
@mcm57 Mein Wert ist eine Zahl und kein Schater
Ich möchte einen Datenpunkt welchen ich in ioBroker bereitshabe per Javascript bei änderung per UDP versenden.
-
@loxoner86
Mit einem einfachen Trigger erhältst Du bei jeder Änderung Deines Datenpunktes den Wert.
Den kannst Du dann an Deinen Server senden.on({id: "DeinDatenpunkt", change: "ne"}, async function (obj) { var value = obj.state.val; // hier Dein Code zum Senden. In "value" steht der aktuelle Wert des DP });
-
Okay vielen Dank schonmal dafür. Und wenn ich den Wert dann abgefragt habe wie bekomme ich ihn in
die message--> var message = new Buffer('DATENPUNKT'); <--
? -
@loxoner86
Schalter oder Wert macht keinen Unterschied bei den Funktionen.Aber Codierknecht hat eh schon ein ausführlicheres Beispiel geschickt
-
@mcm57 Ja hab ich auch gerade gesehen.