[vz-users] Daten auf MQTT Topics verteilen
Christian Wulff
christianwulff at gmx.de
Tue Oct 9 19:05:18 CEST 2018
Hi Frank,
sorry, ich war ein paar Tage im Urlaub und bin seit ein paar Tagen dabei Abend meinen neuen Rechner aufzusetzen.
Bin jetzt aber bald durch damit, so dass ich wieder produktiv sein werde.
Ich melde mich auf jeden Fall noch dazu.
Liebe Grüße und lieben Dank,
Chris
Von: Frank Richter <frank.richter83 at gmail.com>
Gesendet: Montag, 8. Oktober 2018 01:09
An: volkszaehler.org - users <volkszaehler-users at demo.volkszaehler.org>
Betreff: Re: [vz-users] Daten auf MQTT Topics verteilen
Und?
Frank Richter <frank.richter83 at gmail.com <mailto:frank.richter83 at gmail.com> > schrieb am Mi., 3. Okt. 2018, 23:17:
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\":\"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":1120,"wires":[["2d338874.d09c9","f36a2088.552a6"]]},{"id":"3b1859e2.775fbe","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":1160,"wires":[["2d338874.d09c9","9c257f3b.8a2458"]]},{"id":"7f272f2.f6c83d","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":1200,"wires":[["2d338874.d09c9","5d5546f5.439248"]]},{"id":"f36a2088.552a6","type":"debug","z":"aac14499.e7214","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":310,"y":1120,"wires":[]},{"id":"9c257f3b.8a2458","type":"debug","z":"aac14499.e7214","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":310,"y":1160,"wires":[]},{"id":"5d5546f5.439248","type":"debug","z":"aac14499.e7214","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":310,"y":1200,"wires":[]}]
Dazu folgende zwei Problemstellungen:
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)
2. Wie fange ich UUIDs ab, die nicht in der uuidMap stehen?
Momentan kommt dann immer folgende Fehlermeldung bei raus:
"Invalid JSONata expression: Key in object structure must evaluate to a string; got: undefined"
Liebe Grüße,
Chris
Von: Frank Richter [mailto:frank.richter83 at gmail.com <mailto:frank.richter83 at gmail.com> ]
Gesendet: Dienstag, 2. Oktober 2018 02:08
An: volkszaehler.org <http://volkszaehler.org> - users
Betreff: Re: [vz-users] Daten auf MQTT Topics verteilen
Hi Christian,
wenn du noch Hilfe brauchst, schick mal deinen Flow, damit ich eine Basis zum Rumprobieren habe. Vielleicht komme ich diese Woche dazu.
Grüße
Frank
Am Di., 25. Sep. 2018 um 20:22 Uhr schrieb Christian Wulff <christianwulff at gmx.de <mailto:christianwulff at gmx.de> >:
Moin Frank,
Ich steck tief im Schlamm :(
Daran verzweifle ich leider, ich kann kein bisschen JavaScript.
Ich habe forEach() gesucht, gefunden und mehrere Seiten darüber durchgelesen, aber wenn man keine einzige Zeile JavaScript schreiben kann, dann ist das wie Kiswahili und Chinesisch. Kann ich auch beides nicht.
Könntest du mir dabei vielleicht weiter helfen?
Danke und liebe Grüße,
Chris
Von: Frank Richter [mailto:frank.richter83 at gmail.com <mailto:frank.richter83 at gmail.com> ]
Gesendet: Dienstag, 25. September 2018 01:57
An: volkszaehler.org <http://volkszaehler.org> - users
Betreff: Re: [vz-users] Daten auf MQTT Topics verteilen
Hi,
ok, kapiert. Das data-Array kannst du mit forEach() auseinander nehmen. Beim return musst du dann wieder ein Array aus Message-Objekten übergeben (siehe https://nodered.org/docs/writing-functions#multiple-messages).
Den Rest dazwischen musst du selbst basteln ;-)
Grüße
Frank
Christian Wulff <christianwulff at gmx.de <mailto:christianwulff at gmx.de> > schrieb am Mo., 24. Sep. 2018, 23:52:
Da hab ich mich wohl falsch ausgedrückt. Pro UUID ist immer nur ein timestamp und ein Wert drin.
Ich hatte weiter unten drei Beispiele eingefügt.
Hier nochmal:
{
"data": [
{
"uuid": "xxxxxxxx-1111-xxxx-xxxx-xxxxxxxxxxxx",
"tuples": [
[
1537815350021,
13875.6
]
]
}
]
}
Der läuft einwandfrei durch, weil es nur ein Kanal ist.
Beim nächsten sind zwei UUIDs drin, davon kriege ich nur die erste erwischt:
{
"data": [
{
"uuid": "xxxxxxxx-2222-xxxx-xxxx-xxxxxxxxxxxx",
"tuples": [
[
1537815406656,
12309.5
]
]
},
{
"uuid": "xxxxxxxx-3333-xxxx-xxxx-xxxxxxxxxxxx",
"tuples": [
[
1537815405848,
<
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20181009/2dd509aa/attachment-0001.html>
More information about the volkszaehler-users
mailing list