[vz-users] Daten auf MQTT Topics verteilen
Christian Wulff
christianwulff at gmx.de
Tue Oct 9 21:43:31 CEST 2018
Oh ja, beides cool!
http GET läuft schonmal 😊
Andreas‘ Node-RED nodes habe ich mir auch installiert.
Gibt’s dazu irgendeine Beschreibung was man damit machen kann? So intuitiv bin ich damit nicht klargekommen.
Liebe Grüße,
Chris
Von: Frank Richter <frank.richter83 at gmail.com>
Gesendet: Dienstag, 9. Oktober 2018 20:52
An: volkszaehler.org - users <volkszaehler-users at demo.volkszaehler.org>
Betreff: Re: [vz-users] Daten auf MQTT Topics verteilen
API abfragen geht wie immer: HTTP GET und dann das JSON auseinander nehmen.
Beispiel für Verbrauch des aktuellen Tages (im Request-Node UUID einfügen):
[{"id":"930c1bf1.540458","type":"inject","z":"1faadd0a.425383","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"*/1 0-23 * * *","once":false,"x":126,"y":873,"wires":[["9f23e5d3.4b7598"]]},{"id":"9f23e5d3.4b7598","type":"http request","z":"1faadd0a.425383","name":"","method":"GET","ret":"obj","url":"http://127.0.0.1/middleware.php/data/UUID.json?from=today <http://127.0.0.1/middleware.php/data/UUID.json?from=today&group=day> &group=day","tls":"","x":306,"y":873,"wires":[["efbfc0a.6bc514"]]},{"id":"efbfc0a.6bc514","type":"function","z":"1faadd0a.425383","name":"Extract consumption","func":"msg.topic = \"volkszaehler/bezug/heute\"\nmsg.payload = msg.payload.data.consumption;\nreturn msg;","outputs":1,"noerr":0,"x":516,"y":873,"wires":[["e602adc4.442a5"]]},{"id":"e602adc4.442a5","type":"debug","z":"1faadd0a.425383","name":"","active":true,"console":"false","complete":"false","x":714,"y":873,"wires":[]}]
Oder du nimmst https://www.npmjs.com/package/node-red-contrib-volkszaehler von Andreas.
Grüße
Frank
Am Di., 9. Okt. 2018 um 20:32 Uhr schrieb Christian Wulff <christianwulff at gmx.de <mailto:christianwulff at gmx.de> >:
Öhm ?! gute Frage, wo sind die denn abgeblieben?!
Tja, Klammer rein und schon läuft es.
COOL!
Und vielen lieben Dank!
Jetzt fehlt mir nur noch die Wasseruhr, also der Zählerstand der Wasseruhr.
Da das ja eine S0 Wasseruhr ist, spukt die ja nur Impulse aus.
Die krieg ich dann wohl nur über die Middleware, nehme ich an.
Aber an der Stelle ist das Wiki leider noch leer:
https://wiki.volkszaehler.org/howto/node-red#apiget_data
Lieben Gruß und lieben Dank,
Chris
Von: Frank Richter <frank.richter83 at gmail.com <mailto:frank.richter83 at gmail.com> >
Gesendet: Dienstag, 9. Oktober 2018 20:26
An: volkszaehler.org <http://volkszaehler.org> - users <volkszaehler-users at demo.volkszaehler.org <mailto:volkszaehler-users at demo.volkszaehler.org> >
Betreff: Re: [vz-users] Daten auf MQTT Topics verteilen
Und was hast du mit meinen eckigen Klammern in
return [outputMsgs];
gemacht?
Am Di., 9. Okt. 2018 um 20:14 Uhr schrieb Christian Wulff <christianwulff at gmx.de <mailto:christianwulff at gmx.de> >:
Hallo Frank,
jetzt konnte ich es schnell zwischendurch mal testen.
Leider wird immer nur der erste Datensatz ausgegeben, egal ob das Array 1,2 oder 18 Datensätze enthält.
Immerhin kommt da kein Fehler bei raus.
Aber woran das liegen könnte finde ich leider nicht heraus.
Ich vermute das ist noch irgendwie verschachtelt.
Das JSON sieht so aus:
{
"_msgid":"54a836a8.ad32c8",
"topic":"",
"payload":{
"data":[
{
"uuid":"xxxxxxxx-0034-xxxx-xxxx-xxxxxxxxxxxx",
"tuples":[[1538425899278,20.062]]
},
{
"uuid":"xxxxxxxx-0033-xxxx-xxxx-xxxxxxxxxxxx",
"tuples":[[1538425900088,19.625]]
},
{
"uuid":"xxxxxxxx-0026-xxxx-xxxx-xxxxxxxxxxxx",
"tuples":[[1538425886648,20.5]]
},
{
"uuid":"xxxxxxxx-0025-xxxx-xxxx-xxxxxxxxxxxx",
"tuples":[[1538425893608,21.25]]
},
{
"uuid":"xxxxxxxx-0024-xxxx-xxxx-xxxxxxxxxxxx",
"tuples":[[1538425896039,18.875]]
},
{
"uuid":"xxxxxxxx-0006-xxxx-xxxx-xxxxxxxxxxxx",
"tuples":[[1538425889078,46.937]]
},
{
"uuid":"xxxxxxxx-0032-xxxx-xxxx-xxxxxxxxxxxx",
"tuples":[[1538425887458,19.562]]
},
{
"uuid":"xxxxxxxx-0014-xxxx-xxxx-xxxxxxxxxxxx",
"tuples":[[1538425885838,20.312]]
},
{
"uuid":"xxxxxxxx-0023-xxxx-xxxx-xxxxxxxxxxxx",
"tuples":[[1538425890698,19.5]]
},
{
"uuid":"xxxxxxxx-0005-xxxx-xxxx-xxxxxxxxxxxx",
"tuples":[[1538425896848,9.937]]
},
{
"uuid":"xxxxxxxx-0008-xxxx-xxxx-xxxxxxxxxxxx",
"tuples":[[1538425885028,21.437]]
},
{
"uuid":"xxxxxxxx-0031-xxxx-xxxx-xxxxxxxxxxxx",
"tuples":[[1538425897659,20.187]]
},
{
"uuid":"xxxxxxxx-0022-xxxx-xxxx-xxxxxxxxxxxx",
"tuples":[[1538425894418,20.812]]
},
{
"uuid":"xxxxxxxx-0007-xxxx-xxxx-xxxxxxxxxxxx",
"tuples":[[1538425889888,39.375]]
},
{
"uuid":"xxxxxxxx-0018-xxxx-xxxx-xxxxxxxxxxxx",
"tuples":[[1538425895228,29.687]]
},
{
"uuid":"xxxxxxxx-0019-xxxx-xxxx-xxxxxxxxxxxx",
"tuples":[[1538425888268,29.5]]
},
{
"uuid":"xxxxxxxx-0020-xxxx-xxxx-xxxxxxxxxxxx",
"tuples":[[1538425892798,20.812]]
},
{
"uuid":"xxxxxxxx-0021-xxxx-xxxx-xxxxxxxxxxxx",
"tuples":[[1538425898468,21.375]]
}
]
}
}
Hier ist nochmal die komplette Testsequenz mit den vier Input-Datensätzen:
„1 from /vzpush“ enthält ein Datensatz, das funktioniert.
„2 from /vzpush“ enthält ein Datensatz, das funktioniert.
„3 from /vzpush“ enthält ein 18 Datensätze, von denen aber nur der erste rauskommt, sonst nichts.
„4 from /vzpush“ enthält ein 2 Datensätze, von denen aber nur der erste rauskommt, sonst nichts.
[{"id":"7302fa5a.fb35fc","type":"debug","z":"aac14499.e7214","name":"","active":true,"tosidebar":true,"console":false,"complete":"payload","x":330,"y":1820,"wires":[]},{"id":"8db30bf8.a98f08","type":"inject","z":"aac14499.e7214","name":"1 from /vzpush","topic":"","payload":"{\"data\":[{\"uuid\":\"xxxxxxxx-0001-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425885138,13924.9]]}]}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":120,"y":1820,"wires":[["7302fa5a.fb35fc","f193d955.50d8f"]]},{"id":"c718ba1b.74ba98","type":"inject","z":"aac14499.e7214","name":"2 from /vzpush","topic":"","payload":"{\"data\":[{\"uuid\":\"xxxxxxxx-0004-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425891985,7.25]]}]}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":120,"y":1860,"wires":[["4e4df194.16e57","f193d955.50d8f"]]},{"id":"35d9aff6.73e3d8","type":"inject","z":"aac14499.e7214","name":"3 from /vzpush","topic":"","payload":"{\"data\":[{\"uuid\":\"xxxxxxxx-0034-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425899278,20.062]]},{\"uuid\":\"xxxxxxxx-0033-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425900088,19.625]]},{\"uuid\":\"xxxxxxxx-0026-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425886648,20.5]]},{\"uuid\":\"xxxxxxxx-0025-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425893608,21.25]]},{\"uuid\":\"xxxxxxxx-0024-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425896039,18.875]]},{\"uuid\":\"xxxxxxxx-0006-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425889078,46.937]]},{\"uuid\":\"xxxxxxxx-0032-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425887458,19.562]]},{\"uuid\":\"xxxxxxxx-0014-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425885838,20.312]]},{\"uuid\":\"xxxxxxxx-0023-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425890698,19.5]]},{\"uuid\":\"xxxxxxxx-0005-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425896848,9.937]]},{\"uuid\":\"xxxxxxxx-0008-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425885028,21.437]]},{\"uuid\":\"xxxxxxxx-0031-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425897659,20.187]]},{\"uuid\":\"xxxxxxxx-0022-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425894418,20.812]]},{\"uuid\":\"xxxxxxxx-0007-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425889888,39.375]]},{\"uuid\":\"xxxxxxxx-0018-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425895228,29.687]]},{\"uuid\":\"xxxxxxxx-0019-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425888268,29.5]]},{\"uuid\":\"xxxxxxxx-0020-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425892798,20.812]]},{\"uuid\":\"xxxxxxxx-0021-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425898468,21.375]]}]}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":120,"y":1900,"wires":[["4d208feb.3858d8","f193d955.50d8f"]]},{"id":"802bf900.66516","type":"inject","z":"aac14499.e7214","name":"4 from /vzpush","topic":"","payload":"{\"data\":[{\"uuid\":\"xxxxxxxx-0003-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425943890,12330.1]]},{\"uuid\":\"xxxxxxxx-0002-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425943080,13704.1]]}]}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":120,"y":1940,"wires":[["b5dd8c2b.762f7","f193d955.50d8f"]]},{"id":"4e4df194.16e57","type":"debug","z":"aac14499.e7214","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":330,"y":1860,"wires":[]},{"id":"4d208feb.3858d8","type":"debug","z":"aac14499.e7214","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":330,"y":1900,"wires":[]},{"id":"b5dd8c2b.762f7","type":"debug","z":"aac14499.e7214","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":330,"y":1940,"wires":[]},{"id":"589755ad.08c4dc","type":"comment","z":"aac14499.e7214","name":"Chris example:","info":"","x":120,"y":1780,"wires":[]},{"id":"f193d955.50d8f","type":"function","z":"aac14499.e7214","name":"Format payload for MQTT only value","func":"var uuidMap = {\n 'xxxxxxxx-0001-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Strom/Haus'},\n 'xxxxxxxx-0002-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Strom/WärmepumpeHaupttarif'},\n 'xxxxxxxx-0003-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Strom/WärmepumpeNebentarif'},\n 'xxxxxxxx-0004-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T01Aussen'},\n 'xxxxxxxx-0005-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T02Fortluft'},\n 'xxxxxxxx-0006-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Heizung/T03Warmwasserspeicher'},\n 'xxxxxxxx-0007-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Heizung/T04WarmwasserVorlauf'},\n 'xxxxxxxx-0008-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T05Bad'},\n 'xxxxxxxx-0009-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T06LeniRauchmelder'},\n 'xxxxxxxx-0010-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T07SchlafenWand'},\n 'xxxxxxxx-0011-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T08SchlafenRauchmelder'},\n 'xxxxxxxx-0012-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T09Spitzboden'},\n 'xxxxxxxx-0013-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T10BadTür'},\n 'xxxxxxxx-0014-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T11TemperaturServerBreadboard'},\n 'xxxxxxxx-0015-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/Haus/Temperatur/T12LeniTür'},\n 'xxxxxxxx-0016-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T13JoniRauchmelder'},\n 'xxxxxxxx-0017-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T14JoniTür'},\n 'xxxxxxxx-0018-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Heizung/T15ZirkulationKüche'},\n 'xxxxxxxx-0019-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Heizung/T16ZirkulationBad'},\n 'xxxxxxxx-0020-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Heizung/T17HausVorlauf'},\n 'xxxxxxxx-0021-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Heizung/T18HausRücklauf'},\n 'xxxxxxxx-0022-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Heizung/T19KellerVorlauf'},\n 'xxxxxxxx-0023-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Heizung/T20KellerRücklauf'},\n 'xxxxxxxx-0024-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T21ZuluftHaus'},\n 'xxxxxxxx-0025-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T22AbluftHaus'},\n 'xxxxxxxx-0026-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T23AbluftKeller'},\n 'xxxxxxxx-0027-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T24DieleRauchmelder'},\n 'xxxxxxxx-0028-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T25WohnzimmerRauchmelder'},\n 'xxxxxxxx-0029-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T26EssenRauchmelder'},\n 'xxxxxxxx-0030-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T27EssenTürRaumtemp'},\n 'xxxxxxxx-0031-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T28BüroRauchmelder'},\n 'xxxxxxxx-0032-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T29HobbyRauchmelder'},\n 'xxxxxxxx-0033-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T30FlurKellerRauchmelder'},\n 'xxxxxxxx-0034-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T31HWRRauchmelder'},\n 'xxxxxxxx-0035-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T32FlurobenRauchmelder'},\n 'xxxxxxxx-0036-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T33FlurobenWand'},\n 'xxxxxxxx-0037-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T34JoniZuluftmobilerESP_3'},\n 'xxxxxxxx-0038-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T35LeniZuluftmobilerESP_4'},\n 'xxxxxxxx-0039-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T36SchlafenZuluftmobilerESP_5'},\n 'xxxxxxxx-0040-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T37KellerabgangRauchmelder'},\n 'xxxxxxxx-0041-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T38Breadboard'},\n 'xxxxxxxx-0042-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T39BME280_07'},\n 'xxxxxxxx-0043-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T40BME280_08'},\n 'xxxxxxxx-0044-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T41BME280_01'},\n 'xxxxxxxx-0045-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T42BME280_02'},\n 'xxxxxxxx-0046-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T43BME280_03'},\n 'xxxxxxxx-0047-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T44BME280_04'},\n 'xxxxxxxx-0048-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T45BME280_05'},\n 'xxxxxxxx-0049-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T46BME280_06'},\n 'xxxxxxxx-0050-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftfeuchtigkeit/BME280_07'},\n 'xxxxxxxx-0051-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftfeuchtigkeit/BME280_08'},\n 'xxxxxxxx-0052-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftfeuchtigkeit/BME280_01'},\n 'xxxxxxxx-0053-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftfeuchtigkeit/BME280_02'},\n 'xxxxxxxx-0054-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftfeuchtigkeit/BME280_03'},\n 'xxxxxxxx-0055-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftfeuchtigkeit/BME280_04'},\n 'xxxxxxxx-0056-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftfeuchtigkeit/BME280_05'},\n 'xxxxxxxx-0057-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftfeuchtigkeit/BME280_06'},\n 'xxxxxxxx-0058-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftdruck/BME280_07'},\n 'xxxxxxxx-0059-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftdruck/BME280_08'},\n 'xxxxxxxx-0060-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftdruck/BME280_01'},\n 'xxxxxxxx-0061-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftdruck/BME280_02'},\n 'xxxxxxxx-0062-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftdruck/BME280_03'},\n 'xxxxxxxx-0063-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftdruck/BME280_04'},\n 'xxxxxxxx-0064-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftdruck/BME280_05'},\n 'xxxxxxxx-0065-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftdruck/BME280_06'},\n 'xxxxxxxx-0066-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Heizung/DrehzahlZuluft'},\n 'xxxxxxxx-0067-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Heizung/DrehzahlAbluft'},\n 'xxxxxxxx-0068-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Heizung/DrehzahlFortluft'},\n 'xxxxxxxx-0069-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Wasser/Meter'}\n\t}; \n\nvar outputMsgs = [];\t\n\n// loop trough data array\nmsg.payload.data.forEach(function(element) {\n // Get UUID, timestamp and value\n var myUuid = element.uuid;\n var myValue = element.tuples[0][1];\n\n if (uuidMap[myUuid] !== undefined) {\n // Create output message\n var myOutput = {};\n myOutput.topic = uuidMap[myUuid]['topic'];\n myOutput.payload = myValue;\n outputMsgs.push(myOutput);\n }\n});\n\nreturn outputMsgs;","outputs":1,"noerr":0,"x":410,"y":1980,"wires":[["ce3a1827.c2346"]]},{"id":"ce3a1827.c2346","type":"debug","z":"aac14499.e7214","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":670,"y":1980,"wires":[]}]
Lieben Dank und lieben Gruß,
Chris
Von: Frank Richter <frank.richter83 at gmail.com <mailto:frank.richter83 at gmail.com> >
Gesendet: Mittwoch, 3. Oktober 2018 23:17
An: volkszaehler.org <http://volkszaehler.org> - users <volkszaehler-users at demo.volkszaehler.org <mailto:volkszaehler-users at demo.volkszaehler.org> >
Betreff: Re: [vz-users] Daten auf MQTT Topics verteilen
Hi Christian,
probier's mal mit folgendem Code im Function-Node (nach uuidMap {}). Die bei dir vorgeschalteten JSON-Nodes fliegen raus, das ist nur sinnloses hin- und herkonvertieren zwischen JSON-String und JS-Object.
var outputMsgs = [];
// loop trough data array
msg.payload.data.forEach(function(element) {
// Get UUID, timestamp and value
var myUuid = element.uuid;
var myValue = element.tuples[0][1];
if (uuidMap[myUuid] !== undefined) {
// Create output message
var myOutput = {};
myOutput.topic = uuidMap[myUuid]['topic'];
myOutput.payload = myValue;
outputMsgs.push(myOutput);
}
});
return [outputMsgs];
Grüße
Frank
Am Di., 2. Okt. 2018 um 18:10 Uhr schrieb Christian Wulff <christianwulff at gmx.de <mailto:christianwulff at gmx.de> >:
Moin Frank,
die vier inject nodes sind vier aufeinander folgende Datensätze die der /vzpush gesendet hat.
Danach wiederholt sich das dann immer wieder mit ähnlichen Datensätzen.
Die Datensätze sind (nach meinem Verständnis) leicht unterschiedlich aufgebaut, weil 1 oder 2 oder z.B. 18 Kanäle darin enthalten sind.
Dadurch wird (wenn ich mich jetzt richtig ausdrücke?!) das JSON Object mit mehr oder weniger Zweigen strukturiert.
Die vier Datensätze habe ich einfach zum Testen kopiert, damit ich sie jederzeit antriggern kann.
Mir hat jemand den Tipp gegeben, das mit einem Change Node und der darin enthaltenen JSONata expression zu lösen. Das habe ich probiert. Inzwischen ist auch das Abfangen einer nicht eingetragenen UUID gelöst. Soweit wie es dort drin ist bin ich gekommen.
Warum das gerade nicht funktioniert schau ich mir grad nochmal an, wahrscheinlich beim hin und- her kopieren irgendwo ein Fehler eingebaut. Funktioniert hatte es soweit.
Zusätzlich als alternative Variante habe ich jetzt den Function Node wieder hinzugefügt.
Hier die überarbeitete Testsequenz:
[{"id":"cf961e49.49d18","type":"debug","z":"44c69799.54d068","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":530,"y":880,"wires":[]},{"id":"4f9b4202.44a6f4","type":"change","z":"44c69799.54d068","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"(\t $uuidMap := {\t 'xxxxxxxx-0001-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Strom/Haus',\t 'xxxxxxxx-0002-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Strom/WärmepumpeHaupttarif',\t 'xxxxxxxx-0003-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Strom/WärmepumpeNebentarif',\t 'xxxxxxxx-0004-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T01Aussen',\t 'xxxxxxxx-0005-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T02Fortluft',\t 'xxxxxxxx-0006-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Heizung/T03Warmwasserspeicher',\t 'xxxxxxxx-0007-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Heizung/T04WarmwasserVorlauf',\t 'xxxxxxxx-0008-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T05Bad',\t 'xxxxxxxx-0009-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T06LeniRauchmelder',\t 'xxxxxxxx-0010-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T07SchlafenWand',\t 'xxxxxxxx-0011-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T08SchlafenRauchmelder',\t 'xxxxxxxx-0012-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T09Spitzboden',\t 'xxxxxxxx-0013-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T10BadTür',\t 'xxxxxxxx-0014-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T11TemperaturServerBreadboard',\t 'xxxxxxxx-0015-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/Haus/Temperatur/T12LeniTür',\t 'xxxxxxxx-0016-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T13JoniRauchmelder',\t 'xxxxxxxx-0017-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T14JoniTür',\t 'xxxxxxxx-0018-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Heizung/T15ZirkulationKüche',\t 'xxxxxxxx-0019-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Heizung/T16ZirkulationBad',\t 'xxxxxxxx-0020-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Heizung/T17HausVorlauf',\t 'xxxxxxxx-0021-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Heizung/T18HausRücklauf',\t 'xxxxxxxx-0022-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Heizung/T19KellerVorlauf',\t 'xxxxxxxx-0023-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Heizung/T20KellerRücklauf',\t 'xxxxxxxx-0024-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T21ZuluftHaus',\t 'xxxxxxxx-0025-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T22AbluftHaus',\t 'xxxxxxxx-0026-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T23AbluftKeller',\t 'xxxxxxxx-0027-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T24DieleRauchmelder',\t 'xxxxxxxx-0028-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T25WohnzimmerRauchmelder',\t 'xxxxxxxx-0029-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T26EssenRauchmelder',\t 'xxxxxxxx-0030-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T27EssenTürRaumtemp',\t 'xxxxxxxx-0031-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T28BüroRauchmelder',\t 'xxxxxxxx-0032-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T29HobbyRauchmelder',\t 'xxxxxxxx-0033-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T30FlurKellerRauchmelder',\t 'xxxxxxxx-0034-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T31HWRRauchmelder',\t 'xxxxxxxx-0035-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T32FlurobenRauchmelder',\t 'xxxxxxxx-0036-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T33FlurobenWand',\t 'xxxxxxxx-0037-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T34JoniZuluftmobilerESP_3',\t 'xxxxxxxx-0038-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T35LeniZuluftmobilerESP_4',\t 'xxxxxxxx-0039-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T36SchlafenZuluftmobilerESP_5',\t 'xxxxxxxx-0040-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T37KellerabgangRauchmelder',\t 'xxxxxxxx-0041-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T38Breadboard',\t 'xxxxxxxx-0042-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T39BME280_07',\t 'xxxxxxxx-0043-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T40BME280_08',\t 'xxxxxxxx-0044-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T41BME280_01',\t 'xxxxxxxx-0045-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T42BME280_02',\t 'xxxxxxxx-0046-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T43BME280_03',\t 'xxxxxxxx-0047-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T44BME280_04',\t 'xxxxxxxx-0048-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T45BME280_05',\t 'xxxxxxxx-0049-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T46BME280_06',\t 'xxxxxxxx-0050-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Luftfeuchtigkeit/BME280_07',\t 'xxxxxxxx-0051-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Luftfeuchtigkeit/BME280_08',\t 'xxxxxxxx-0052-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Luftfeuchtigkeit/BME280_01',\t 'xxxxxxxx-0053-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Luftfeuchtigkeit/BME280_02',\t 'xxxxxxxx-0054-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Luftfeuchtigkeit/BME280_03',\t 'xxxxxxxx-0055-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Luftfeuchtigkeit/BME280_04',\t 'xxxxxxxx-0056-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Luftfeuchtigkeit/BME280_05',\t 'xxxxxxxx-0057-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Luftfeuchtigkeit/BME280_06',\t 'xxxxxxxx-0058-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Luftdruck/BME280_07',\t 'xxxxxxxx-0059-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Luftdruck/BME280_08',\t 'xxxxxxxx-0060-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Luftdruck/BME280_01',\t 'xxxxxxxx-0061-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Luftdruck/BME280_02',\t 'xxxxxxxx-0062-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Luftdruck/BME280_03',\t 'xxxxxxxx-0063-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Luftdruck/BME280_04',\t 'xxxxxxxx-0064-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Luftdruck/BME280_05',\t 'xxxxxxxx-0065-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Luftdruck/BME280_06',\t 'xxxxxxxx-0066-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Heizung/DrehzahlZuluft',\t 'xxxxxxxx-0067-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Heizung/DrehzahlAbluft',\t 'xxxxxxxx-0068-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Heizung/DrehzahlFortluft',\t 'xxxxxxxx-0069-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Wasser/Meter' \t \t };\t payload.data.(\t $key := $lookup($uuidMap, uuid);\t {\t ($key? $key: \"unknown\"): tuples[0] \t \t }\t \t )\t\t)","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":340,"y":880,"wires":[["cf961e49.49d18","6111810d.c1a1d"]]},{"id":"9da8917b.d2f6d","type":"debug","z":"44c69799.54d068","name":"","active":false,"tosidebar":true,"console":false,"complete":"payload","x":330,"y":660,"wires":[]},{"id":"4ba5f0b7.85044","type":"inject","z":"44c69799.54d068","name":"1 from /vzpush","topic":"","payload":"{\"data\":[{\"uuid\":\"xxxxxxxx-0001-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425885138,13924.9]]}]}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":120,"y":660,"wires":[["9da8917b.d2f6d","4f9b4202.44a6f4","f68bfb1e.a795c"]]},{"id":"6c6f7971.06ff","type":"inject","z":"44c69799.54d068","name":"2 from /vzpush","topic":"","payload":"{\"data\":[{\"uuid\":\"xxxxxxxx-0004-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425891985,7.25]]}]}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":120,"y":700,"wires":[["4f9b4202.44a6f4","cc9e1672.681e48","95b37d53.c33588"]]},{"id":"fefc81e5.8d139","type":"inject","z":"44c69799.54d068","name":"3 from /vzpush","topic":"","payload":"{\"data\":[{\"uuid\":\"xxxxxxxx-0034-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425899278,20.062]]},{\"uuid\":\"xxxxxxxx-0033-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425900088,19.625]]},{\"uuid\":\"xxxxxxxx-0026-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425886648,20.5]]},{\"uuid\":\"xxxxxxxx-0025-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425893608,21.25]]},{\"uuid\":\"xxxxxxxx-0024-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425896039,18.875]]},{\"uuid\":\"xxxxxxxx-0006-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425889078,46.937]]},{\"uuid\":\"xxxxxxxx-0032-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425887458,19.562]]},{\"uuid\":\"xxxxxxxx-0014-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425885838,20.312]]},{\"uuid\":\"xxxxxxxx-0023-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425890698,19.5]]},{\"uuid\":\"xxxxxxxx-0005-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425896848,9.937]]},{\"uuid\":\"xxxxxxxx-0008-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425885028,21.437]]},{\"uuid\":\"xxxxxxxx-0031-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425897659,20.187]]},{\"uuid\":\"xxxxxxxx-0022-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425894418,20.812]]},{\"uuid\":\"xxxxxxxx-0007-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425889888,39.375]]},{\"uuid\":\"xxxxxxxx-0018-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425895228,29.687]]},{\"uuid\":\"xxxxxxxx-0019-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425888268,29.5]]},{\"uuid\":\"xxxxxxxx-0020-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425892798,20.812]]},{\"uuid\":\"xxxxxxxx-0021-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425898468,21.375]]}]}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":120,"y":740,"wires":[["4f9b4202.44a6f4","8efc19ee.4692d8","af4a18f8.020c4"]]},{"id":"db1fdebf.b479b8","type":"inject","z":"44c69799.54d068","name":"4 from /vzpush","topic":"","payload":"{\"data\":[{\"uuid\":\"xxxxxxxx-0003-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425943890,12330.1]]},{\"uuid\":\"xxxxxxxx-0002-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538425943080,13704.1]]}]}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":120,"y":780,"wires":[["4f9b4202.44a6f4","8ac8e7a6.d8fc8","a80474e5.7aaf68"]]},{"id":"cc9e1672.681e48","type":"debug","z":"44c69799.54d068","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":330,"y":700,"wires":[]},{"id":"8efc19ee.4692d8","type":"debug","z":"44c69799.54d068","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":330,"y":740,"wires":[]},{"id":"8ac8e7a6.d8fc8","type":"debug","z":"44c69799.54d068","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":330,"y":780,"wires":[]},{"id":"6111810d.c1a1d","type":"split","z":"44c69799.54d068","name":"","splt":"\\n <file://n> ","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":510,"y":920,"wires":[["3173493c.e862f6","f4e53fe3.30269"]]},{"id":"3173493c.e862f6","type":"debug","z":"44c69799.54d068","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":670,"y":920,"wires":[]},{"id":"f4e53fe3.30269","type":"json","z":"44c69799.54d068","name":"","property":"payload","action":"","pretty":false,"x":650,"y":960,"wires":[["5a450f72.c8fd9"]]},{"id":"5a450f72.c8fd9","type":"debug","z":"44c69799.54d068","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":810,"y":960,"wires":[]},{"id":"df3c8bb2.0628f8","type":"function","z":"44c69799.54d068","name":"Format payload for MQTT only value","func":"var uuidMap = {\n 'xxxxxxxx-0001-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Strom/Haus'},\n 'xxxxxxxx-0002-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Strom/WärmepumpeHaupttarif'},\n 'xxxxxxxx-0003-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Strom/WärmepumpeNebentarif'},\n 'xxxxxxxx-0004-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T01Aussen'},\n 'xxxxxxxx-0005-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T02Fortluft'},\n 'xxxxxxxx-0006-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Heizung/T03Warmwasserspeicher'},\n 'xxxxxxxx-0007-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Heizung/T04WarmwasserVorlauf'},\n 'xxxxxxxx-0008-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T05Bad'},\n 'xxxxxxxx-0009-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T06LeniRauchmelder'},\n 'xxxxxxxx-0010-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T07SchlafenWand'},\n 'xxxxxxxx-0011-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T08SchlafenRauchmelder'},\n 'xxxxxxxx-0012-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T09Spitzboden'},\n 'xxxxxxxx-0013-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T10BadTür'},\n 'xxxxxxxx-0014-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T11TemperaturServerBreadboard'},\n 'xxxxxxxx-0015-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/Haus/Temperatur/T12LeniTür'},\n 'xxxxxxxx-0016-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T13JoniRauchmelder'},\n 'xxxxxxxx-0017-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T14JoniTür'},\n 'xxxxxxxx-0018-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Heizung/T15ZirkulationKüche'},\n 'xxxxxxxx-0019-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Heizung/T16ZirkulationBad'},\n 'xxxxxxxx-0020-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Heizung/T17HausVorlauf'},\n 'xxxxxxxx-0021-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Heizung/T18HausRücklauf'},\n 'xxxxxxxx-0022-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Heizung/T19KellerVorlauf'},\n 'xxxxxxxx-0023-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Heizung/T20KellerRücklauf'},\n 'xxxxxxxx-0024-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T21ZuluftHaus'},\n 'xxxxxxxx-0025-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T22AbluftHaus'},\n 'xxxxxxxx-0026-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T23AbluftKeller'},\n 'xxxxxxxx-0027-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T24DieleRauchmelder'},\n 'xxxxxxxx-0028-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T25WohnzimmerRauchmelder'},\n 'xxxxxxxx-0029-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T26EssenRauchmelder'},\n 'xxxxxxxx-0030-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T27EssenTürRaumtemp'},\n 'xxxxxxxx-0031-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T28BüroRauchmelder'},\n 'xxxxxxxx-0032-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T29HobbyRauchmelder'},\n 'xxxxxxxx-0033-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T30FlurKellerRauchmelder'},\n 'xxxxxxxx-0034-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T31HWRRauchmelder'},\n 'xxxxxxxx-0035-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T32FlurobenRauchmelder'},\n 'xxxxxxxx-0036-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T33FlurobenWand'},\n 'xxxxxxxx-0037-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T34JoniZuluftmobilerESP_3'},\n 'xxxxxxxx-0038-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T35LeniZuluftmobilerESP_4'},\n 'xxxxxxxx-0039-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T36SchlafenZuluftmobilerESP_5'},\n 'xxxxxxxx-0040-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T37KellerabgangRauchmelder'},\n 'xxxxxxxx-0041-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T38Breadboard'},\n 'xxxxxxxx-0042-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T39BME280_07'},\n 'xxxxxxxx-0043-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T40BME280_08'},\n 'xxxxxxxx-0044-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T41BME280_01'},\n 'xxxxxxxx-0045-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T42BME280_02'},\n 'xxxxxxxx-0046-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T43BME280_03'},\n 'xxxxxxxx-0047-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T44BME280_04'},\n 'xxxxxxxx-0048-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T45BME280_05'},\n 'xxxxxxxx-0049-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Temperatur/T46BME280_06'},\n 'xxxxxxxx-0050-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftfeuchtigkeit/BME280_07'},\n 'xxxxxxxx-0051-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftfeuchtigkeit/BME280_08'},\n 'xxxxxxxx-0052-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftfeuchtigkeit/BME280_01'},\n 'xxxxxxxx-0053-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftfeuchtigkeit/BME280_02'},\n 'xxxxxxxx-0054-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftfeuchtigkeit/BME280_03'},\n 'xxxxxxxx-0055-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftfeuchtigkeit/BME280_04'},\n 'xxxxxxxx-0056-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftfeuchtigkeit/BME280_05'},\n 'xxxxxxxx-0057-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftfeuchtigkeit/BME280_06'},\n 'xxxxxxxx-0058-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftdruck/BME280_07'},\n 'xxxxxxxx-0059-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftdruck/BME280_08'},\n 'xxxxxxxx-0060-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftdruck/BME280_01'},\n 'xxxxxxxx-0061-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftdruck/BME280_02'},\n 'xxxxxxxx-0062-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftdruck/BME280_03'},\n 'xxxxxxxx-0063-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftdruck/BME280_04'},\n 'xxxxxxxx-0064-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftdruck/BME280_05'},\n 'xxxxxxxx-0065-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Luftdruck/BME280_06'},\n 'xxxxxxxx-0066-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Heizung/DrehzahlZuluft'},\n 'xxxxxxxx-0067-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Heizung/DrehzahlAbluft'},\n 'xxxxxxxx-0068-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Heizung/DrehzahlFortluft'},\n 'xxxxxxxx-0069-xxxx-xxxx-xxxxxxxxxxxx':{topic:'Haus/Wasser/Meter'}\n\t}; \n\n// Parse JSON\nvar myJsonObj = [];\nvar myJsonObj = JSON.parse(msg.payload);\n\n// Get UUID, timestamp and value\nvar myUuid = myJsonObj.data[0].uuid;\nvar myTimestamp = myJsonObj.data[0].tuples[0][0];\nvar myValue = myJsonObj.data[0].tuples[0][1];\n\nif (uuidMap[myUuid] !== undefined) {\n // Create output payload\n var myOutput = {};\n myOutput.topic = uuidMap[myUuid]['topic'];\n myOutput.payload = myValue;\n return myOutput;\n}","outputs":1,"noerr":0,"x":570,"y":1120,"wires":[["b60a6e1e.3e5868"]]},{"id":"b60a6e1e.3e5868","type":"debug","z":"44c69799.54d068","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":830,"y":1120,"wires":[]},{"id":"f68bfb1e.a795c","type":"json","z":"44c69799.54d068","name":"","property":"payload","action":"","pretty":false,"x":310,"y":1060,"wires":[["df3c8bb2.0628f8"]]},{"id":"95b37d53.c33588","type":"json","z":"44c69799.54d068","name":"","property":"payload","action":"","pretty":false,"x":310,"y":1100,"wires":[["df3c8bb2.0628f8"]]},{"id":"af4a18f8.020c4","type":"json","z":"44c69799.54d068","name":"","property":"payload","action":"","pretty":false,"x":310,"y":1140,"wires":[["df3c8bb2.0628f8"]]},{"id":"a80474e5.7aaf68","type":"json","z":"44c69799.54d068","name":"","property":"payload","action":"","pretty":false,"x":310,"y":1180,"wires":[["df3c8bb2.0628f8"]]},{"id":"6cf9515c.8336d8","type":"comment","z":"44c69799.54d068","name":"Lösung mit function node:","info":"","x":370,"y":1020,"wires":[]},{"id":"29c2d21c.cae516","type":"comment","z":"44c69799.54d068","name":"Lösung mit change node:","info":"","x":370,"y":840,"wires":[]}]
Es bleibt jetzt noch die Fragestellung:
1. Wie krieg ich das so aufgeteilt, dass dabei für jedes Topic eine eigene Message mit folgendem Format erzeugt wird:
{"topic":"Haus/Heizung/T18HausRücklauf","payload":21.062,"_msgid":"c6a81ec4.8f35f"} ?
(ich brauche nur “topic” und “payload”, die _msgid brauche ich nicht)
Lieben Dank und liebe Grüße,
Chris
Von: Frank Richter [mailto:frank.richter83 at gmail.com <mailto:frank.richter83 at gmail.com> ]
Gesendet: Dienstag, 2. Oktober 2018 12:48
An: volkszaehler.org <http://volkszaehler.org> - users
Betreff: Re: [vz-users] Daten auf MQTT Topics verteilen
Hi Chiristian,
folgende Fragen/Anmerkungen:
* Worin unterscheiden sich die 4 Inject-Nodes?
* Warum benutzt du den Change-Node? Mehr als ein "undefined" kommt da nicht raus.
* Ich vermisse den Function-Node mit dem bisherigen Code, der zumindest das erste Array-Element auswertet.
Grüße
Frank
Am Di., 2. Okt. 2018 um 10:07 Uhr schrieb Christian Wulff <christianwulff at gmx.de <mailto:christianwulff at gmx.de> >:
Hallo Frank,
das wäre wirklich sehr lieb, wenn du mir dabei nochmal helfen könntest.
Ich hab mich ne ganze Weile damit beschäftigt, aber leider noch keine gut funktionierende Lösung gefunden.
Hier ist eine Testsequenz mit Testdaten, die aus dem /vzpush rauskommen:
[{"id":"58b4a1f0.38211","type":"debug","z":"aac14499.e7214","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":510,"y":1240,"wires":[]},{"id":"2d338874.d09c9","type":"change","z":"aac14499.e7214","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"(\t $uuidMap := {\t 'xxxxxxxx-0000-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Strom/Haus',\t 'xxxxxxxx-1111-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Strom/WärmepumpeHaupttarif',\t 'xxxxxxxx-2222-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Strom/WärmepumpeNebentarif',\t 'xxxxxxxx-3333-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T01Aussen',\t 'xxxxxxxx-4444-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T02Fortluft',\t 'xxxxxxxx-5555-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Heizung/T03Warmwasserspeicher',\t 'xxxxxxxx-6666-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Heizung/T04WarmwasserVorlauf',\t 'xxxxxxxx-7777-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T05Bad',\t 'xxxxxxxx-8888-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T06LeniRauchmelder',\t 'xxxxxxxx-9999-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T07SchlafenWand',\t 'xxxxxxxx-aaaa-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T08SchlafenRauchmelder',\t 'xxxxxxxx-bbbb-xxxx-xxxx-xxxxxxxxxxxx': 'Haus/Temperatur/T12LeniTür'\t };\t\t payload.data.{\t $lookup($uuidMap, uuid): tuples[0]\t }\t)\t","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":320,"y":1240,"wires":[["58b4a1f0.38211"]]},{"id":"a13bb1ff.e694e","type":"debug","z":"aac14499.e7214","name":"","active":false,"tosidebar":true,"console":false,"complete":"payload","x":310,"y":1080,"wires":[]},{"id":"2b063ddf.a29fb2","type":"inject","z":"aac14499.e7214","name":"from /vzpush","topic":"","payload":"{\"_msgid\":\"91a80fdc.ad383\",\"payload\":{\"data\":[{\"uuid\":\"xxxxxxxx-0000-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380292008,20.187]]},{\"uuid\":\"xxxxxxxx-1111-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380292818,19.75]]},{\"uuid\":\"xxxxxxxx-2222-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380279628,20.562]]},{\"uuid\":\"xxxxxxxx-3333-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380286108,21.125]]},{\"uuid\":\"xxxxxxxx-4444-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380288744,19.437]]},{\"uuid\":\"xxxxxxxx-5555-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380282058,46.937]]},{\"uuid\":\"xxxxxxxx-6666-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380280438,19.625]]},{\"uuid\":\"xxxxxxxx-7777-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380278798,20.437]]},{\"uuid\":\"xxxxxxxx-8888-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380283678,19.625]]},{\"uuid\":\"xxxxxxxx-9999-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380289573,12.125]]},{\"uuid\":\"xxxxxxxx-aaaa-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380277983,21.562]]},{\"uuid\":\"xxxxxxxx-bbbb-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380290388,20.187]]},{\"uuid\":\"xxxxxxxx-cccc-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380286917,20.687]]},{\"uuid\":\"xxxxxxxx-dddd-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380282868,39.5]]},{\"uuid\":\"xxxxxxxx-eeee-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380287728,31.125]]},{\"uuid\":\"xxxxxxxx-ffff-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380281248,30.875]]},{\"uuid\":\"xxxxxxxx-gggg-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380285298,20.687]]},{\"uuid\":\"xxxxxxxx-hhhh-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380291198,21.187]]}]},\"req\":{\"_readableState\":{\"objectMode\":false,\"highWaterMark\":16384,\"buffer\":{\"head\":null,\"tail\":null,\"length\":0},\"length\":0,\"pipes\":null,\"pipesCount\":0,\"flowing\":true,\"ended\":true,\"endEmitted\":true,\"reading\":false,\"sync\":false,\"needReadable\":false,\"emittedReadable\":false,\"readableListening\":false,\"resumeScheduled\":false,\"destroyed\":false,\"defaultEncoding\":\"utf8\",\"awaitDrain\":0,\"readingMore\":false,\"decoder\":null,\"encoding\":null},\"readable\":false,\"domain\":null,\"_events\":{},\"_eventsCount\":0,\"socket\":\"[internal]\",\"connection\":\"[internal]\",\"httpVersionMajor\":1,\"httpVersionMinor\":1,\"httpVersion\":\"1.1\",\"complete\":true,\"headers\":{\"host\":\"127.0.0.1:1880 <http://127.0.0.1:1880> \",\"content-type\":\"application/json\",\"accept\":\"application/json\",\"user-agent\":\"vzlogger/0.6.0 (libcurl/7.38.0 OpenSSL/1.0.1t zlib/1.2.8 libidn/1.29 libssh2/1.4.3 librtmp/2.3)\",\"content-length\":\"1805\",\"expect\":\"100-continue\"},\"rawHeaders\":[\"Host\",\"127.0.0.1:1880 <http://127.0.0.1:1880> \",\"Content-type\",\"application/json\",\"Accept\",\"application/json\",\"User-Agent\",\"vzlogger/0.6.0 (libcurl/7.38.0 OpenSSL/1.0.1t zlib/1.2.8 libidn/1.29 libssh2/1.4.3 librtmp/2.3)\",\"Content-Length\",\"1805\",\"Expect\",\"100-continue\"],\"trailers\":{},\"rawTrailers\":[],\"upgrade\":false,\"url\":\"/vzpush\",\"method\":\"POST\",\"statusCode\":null,\"statusMessage\":null,\"client\":\"[internal]\",\"_consuming\":true,\"_dumped\":false,\"baseUrl\":\"\",\"originalUrl\":\"/vzpush\",\"_parsedUrl\":{\"protocol\":null,\"slashes\":null,\"auth\":null,\"host\":null,\"port\":null,\"hostname\":null,\"hash\":null,\"search\":null,\"query\":null,\"pathname\":\"/vzpush\",\"path\":\"/vzpush\",\"href\":\"/vzpush\",\"_raw\":\"/vzpush\"},\"params\":{},\"query\":{},\"res\":\"[internal]\",\"body\":{\"data\":[{\"uuid\":\"xxxxxxxx-0000-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380292008,20.187]]},{\"uuid\":\"xxxxxxxx-1111-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380292818,19.75]]},{\"uuid\":\"xxxxxxxx-2222-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380279628,20.562]]},{\"uuid\":\"xxxxxxxx-3333-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380286108,21.125]]},{\"uuid\":\"xxxxxxxx-4444-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380288744,19.437]]},{\"uuid\":\"xxxxxxxx-5555-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380282058,46.937]]},{\"uuid\":\"xxxxxxxx-6666-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380280438,19.625]]},{\"uuid\":\"xxxxxxxx-7777-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380278798,20.437]]},{\"uuid\":\"xxxxxxxx-8888-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380283678,19.625]]},{\"uuid\":\"xxxxxxxx-9999-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380289573,12.125]]},{\"uuid\":\"xxxxxxxx-aaaa-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380277983,21.562]]},{\"uuid\":\"xxxxxxxx-bbbb-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380290388,20.187]]},{\"uuid\":\"xxxxxxxx-cccc-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380286917,20.687]]},{\"uuid\":\"xxxxxxxx-dddd-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380282868,39.5]]},{\"uuid\":\"xxxxxxxx-eeee-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380287728,31.125]]},{\"uuid\":\"xxxxxxxx-ffff-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380281248,30.875]]},{\"uuid\":\"xxxxxxxx-gggg-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380285298,20.687]]},{\"uuid\":\"xxxxxxxx-hhhh-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380291198,21.187]]}]},\"_body\":true,\"_passport\":{\"instance\":{\"_key\":\"passport\",\"_strategies\":{\"session\":{\"name\":\"session\"},\"bearer\":{\"name\":\"bearer\",\"_realm\":\"Users\"},\"oauth2-client-password\":{\"name\":\"oauth2-client-password\"},\"anon\":{\"name\":\"anon\"}},\"_serializers\":[],\"_deserializers\":[],\"_infoTransformers\":[],\"_framework\":{},\"_userProperty\":\"user\",\"_sm\":{\"_key\":\"passport\"},\"strategies\":{}}},\"route\":{\"path\":\"/vzpush\",\"stack\":[{\"name\":\"cookieParser\",\"keys\":[],\"regexp\":{\"fast_star\":false,\"fast_slash\":false},\"method\":\"post\"},{\"name\":\"httpMiddleware\",\"keys\":[],\"regexp\":{\"fast_star\":false,\"fast_slash\":false},\"method\":\"post\"},{\"name\":\"corsHandler\",\"keys\":[],\"regexp\":{\"fast_star\":false,\"fast_slash\":false},\"method\":\"post\"},{\"name\":\"metricsHandler\",\"keys\":[],\"regexp\":{\"fast_star\":false,\"fast_slash\":false},\"method\":\"post\"},{\"name\":\"jsonParser\",\"keys\":[],\"regexp\":{\"fast_star\":false,\"fast_slash\":false},\"method\":\"post\"},{\"name\":\"urlencodedParser\",\"keys\":[],\"regexp\":{\"fast_star\":false,\"fast_slash\":false},\"method\":\"post\"},{\"name\":\"multipartParser\",\"keys\":[],\"regexp\":{\"fast_star\":false,\"fast_slash\":false},\"method\":\"post\"},{\"name\":\"rawBodyParser\",\"keys\":[],\"regexp\":{\"fast_star\":false,\"fast_slash\":false},\"method\":\"post\"},{\"name\":\"<anonymous>\",\"keys\":[],\"regexp\":{\"fast_star\":false,\"fast_slash\":false},\"method\":\"post\"},{\"name\":\"<anonymous>\",\"keys\":[],\"regexp\":{\"fast_star\":false,\"fast_slash\":false},\"method\":\"post\"}],\"methods\":{\"post\":true}},\"cookies\":{},\"signedCookies\":{}},\"res\":{\"_res\":\"[internal]\"}}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":1080,"wires":[["a13bb1ff.e694e","2d338874.d09c9"]]},{"id":"d9cc42a5.c5641","type":"inject","z":"aac14499.e7214","name":"from /vzpush","topic":"","payload":"{\"_msgid\":\"91a80fdc.ad383\",\"payload\":{\"data\":[{\"uuid\":\"xxxxxxxx-0000-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380292008,20.187]]},{\"uuid\":\"xxxxxxxx-1111-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380292818,19.75]]},{\"uuid\":\"xxxxxxxx-2222-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380279628,20.562]]},{\"uuid\":\"xxxxxxxx-3333-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380286108,21.125]]},{\"uuid\":\"xxxxxxxx-4444-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380288744,19.437]]},{\"uuid\":\"xxxxxxxx-5555-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380282058,46.937]]},{\"uuid\":\"xxxxxxxx-6666-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380280438,19.625]]},{\"uuid\":\"xxxxxxxx-7777-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380278798,20.437]]},{\"uuid\":\"xxxxxxxx-8888-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380283678,19.625]]},{\"uuid\":\"xxxxxxxx-9999-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380289573,12.125]]},{\"uuid\":\"xxxxxxxx-aaaa-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380277983,21.562]]},{\"uuid\":\"xxxxxxxx-bbbb-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380290388,20.187]]},{\"uuid\":\"xxxxxxxx-cccc-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380286917,20.687]]},{\"uuid\":\"xxxxxxxx-dddd-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380282868,39.5]]},{\"uuid\":\"xxxxxxxx-eeee-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380287728,31.125]]},{\"uuid\":\"xxxxxxxx-ffff-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380281248,30.875]]},{\"uuid\":\"xxxxxxxx-gggg-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380285298,20.687]]},{\"uuid\":\"xxxxxxxx-hhhh-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380291198,21.187]]}]},\"req\":{\"_readableState\":{\"objectMode\":false,\"highWaterMark\":16384,\"buffer\":{\"head\":null,\"tail\":null,\"length\":0},\"length\":0,\"pipes\":null,\"pipesCount\":0,\"flowing\":true,\"ended\":true,\"endEmitted\":true,\"reading\":false,\"sync\":false,\"needReadable\":false,\"emittedReadable\":false,\"readableListening\":false,\"resumeScheduled\":false,\"destroyed\":false,\"defaultEncoding\":\"utf8\",\"awaitDrain\":0,\"readingMore\":false,\"decoder\":null,\"encoding\":null},\"readable\":false,\"domain\":null,\"_events\":{},\"_eventsCount\":0,\"socket\":\"[internal]\",\"connection\":\"[internal]\",\"httpVersionMajor\":1,\"httpVersionMinor\":1,\"httpVersion\":\"1.1\",\"complete\":true,\"headers\":{\"host\":\"127.0.0.1:1880 <http://127.0.0.1:1880> \",\"content-type\":\"application/json\",\"accept\":\"application/json\",\"user-agent\":\"vzlogger/0.6.0 (libcurl/7.38.0 OpenSSL/1.0.1t zlib/1.2.8 libidn/1.29 libssh2/1.4.3 librtmp/2.3)\",\"content-length\":\"1805\",\"expect\":\"100-continue\"},\"rawHeaders\":[\"Host\",\"127.0.0.1:1880 <http://127.0.0.1:1880> \",\"Content-type\",\"application/json\",\"Accept\",\"application/json\",\"User-Agent\",\"vzlogger/0.6.0 (libcurl/7.38.0 OpenSSL/1.0.1t zlib/1.2.8 libidn/1.29 libssh2/1.4.3 librtmp/2.3)\",\"Content-Length\",\"1805\",\"Expect\",\"100-continue\"],\"trailers\":{},\"rawTrailers\":[],\"upgrade\":false,\"url\":\"/vzpush\",\"method\":\"POST\",\"statusCode\":null,\"statusMessage\":null,\"client\":\"[internal]\",\"_consuming\":true,\"_dumped\":false,\"baseUrl\":\"\",\"originalUrl\":\"/vzpush\",\"_parsedUrl\":{\"protocol\":null,\"slashes\":null,\"auth\":null,\"host\":null,\"port\":null,\"hostname\":null,\"hash\":null,\"search\":null,\"query\":null,\"pathname\":\"/vzpush\",\"path\":\"/vzpush\",\"href\":\"/vzpush\",\"_raw\":\"/vzpush\"},\"params\":{},\"query\":{},\"res\":\"[internal]\",\"body\":{\"data\":[{\"uuid\":\"xxxxxxxx-0000-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380292008,20.187]]},{\"uuid\":\"xxxxxxxx-1111-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380292818,19.75]]},{\"uuid\":\"xxxxxxxx-2222-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380279628,20.562]]},{\"uuid\":\"xxxxxxxx-3333-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380286108,21.125]]},{\"uuid\":\"xxxxxxxx-4444-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380288744,19.437]]},{\"uuid\":\"xxxxxxxx-5555-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380282058,46.937]]},{\"uuid\":\"xxxxxxxx-6666-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380280438,19.625]]},{\"uuid\":\"xxxxxxxx-7777-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380278798,20.437]]},{\"uuid\":\"xxxxxxxx-8888-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380283678,19.625]]},{\"uuid\":\"xxxxxxxx-9999-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380289573,12.125]]},{\"uuid\":\"xxxxxxxx-aaaa-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380277983,21.562]]},{\"uuid\":\"xxxxxxxx-bbbb-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380290388,20.187]]},{\"uuid\":\"xxxxxxxx-cccc-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380286917,20.687]]},{\"uuid\":\"xxxxxxxx-dddd-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380282868,39.5]]},{\"uuid\":\"xxxxxxxx-eeee-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380287728,31.125]]},{\"uuid\":\"xxxxxxxx-ffff-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380281248,30.875]]},{\"uuid\":\"xxxxxxxx-gggg-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380285298,20.687]]},{\"uuid\":\"xxxxxxxx-hhhh-xxxx-xxxx-xxxxxxxxxxxx\",\"tuples\":[[1538380291198,21.187]]}]},\"_body\":true,\"_passport\":{\"instance\":{\"_key\":\"passport\",\"_strategies\":{\"session\":{\"name\":\"session\"},\"bearer\":{\"name\":\"bearer\",\"_realm\":\"Users\"},\"oauth2-client-password\":{\"name\":\"oauth2-client-password\"},\"anon\":{\"name\":\"anon\"}},\"_serializers\":[],\"_deserializers\":[],\"_infoTransformers\":[],\"_framework\":{},\"_userProperty\":\"user\",\"_sm\":{\"_key\":\"passport\"},\"strategies\":{}}},\"route\":{\"path\":\"/vzpush\",\"stack\":[{\"name\":\"cookieParser\",\"keys\":[],\"regexp\":{\"fast_star\":false,\"fast_slash\":false},\"method\":\"post\"},{\"name\":\"httpMiddleware\",\"keys\":[],\"regexp\":{\"fast_star\":false,\"fast_slash\":false},\"method\":\"post\"},{\"name\":\"corsHandler\",\"keys\":[],\"regexp\":{\"fast_star\":false,\"fast_slash\":false},\"method\":\"post\"},{\"name\":\"metricsHandler\",\"keys\":[],\"regexp\":{\"fast_star\":false,\"fast_slash\":false},\"method\":\"post\"},{\"name\":\"jsonPars
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20181009/83d2a22a/attachment-0001.html>
More information about the volkszaehler-users
mailing list