NEWS
HowTo: Zusatz-Programme fuer jarvis v3
-
@uwe72 Du muss Deinen dp eintragen
deviceItem: 1 -
@mcu sorry, mein Fehler. hatte ich bei irgendeinem Update überschrieben. Funktioniert nun! D.h. deviceitem müssen die ausgeblendeten nicht mitgezählt werden!?
-
@uwe72 Prima, nur die zählen, die man sieht, ab 0.
-
@mcu said in HowTo: Zusatz-Programme fuer jarvis v3:
@uwe72 Prima, nur die zählen, die man sieht, ab 0.
Ganz großen und herzlichen DANK!!
-
@uwe72 Du kannst dann das Logging abschalten.
let loggingSLLC = false;
-
@intruder7 Die ankommenden JSON ->
qJSON
werden ja jetzt gelogggt. Ich sehe zu den normalen keinen Unterschied. Kannst du mal dieqJSON
vor dem Fehler vergleichen, mit dem direkt vor dem Fehler. Wenn der Aufbau gleich ist, kann ich es nicht beeinflussen, dann muss irgendwo in influxdb ein Problem vorliegen.
Laufen zu dem Zeitpunkt irgendwelche anderen Abfragen auf die Datenbank? -
@mcu verfolge gerade einen anderen Weg. Ich habe festgestellt dass es manchmal aus irgendwelchen Gründen zu etlichen Anfragen zum selben Widget (also auch DP) innerhalb von Millisekunden kommt. Dies führte zum "aufhängen" von InfluxDB. Ich habe gerade im Skript eChartsHistoryGetData eine Prüfung eingebaut die eine Abfrage an InfluxDb verhindert wenn es das selbe Widget ist und die Zeit zur letzten Abfrage weniger als eine Sekunde ist.
Das lasse ich jetzt mal laufen und will hoffen das es daran gelegen hat. -
@intruder7 Zeig mal bitte, vielleicht baue ich mit ein.
-
@mcu
geht bestimmt eleganterlet getDataDP = historyAdaptDP + '.getData'; let lastTime = new Date() let aktTime = new Date() let lastWidget = "" //createStateAsync(queryDPsDP, {read: true, write: false, name: "Abfrage-DP", desc:"Abfrage-DP", type: "string", role: "", def: "" }); createStateAsync(queryJSONDP, { read: true, write: true, name: "Abfrage-JSON-DP", desc: '{dp:"",type:"",cnt:"",start:"",end:"",adapt:""}', type: "string", role: "text", def: JSON.stringify({}) }); createStateAsync(dataResultDP, { read: true, write: true, name: "Daten-Ergebnis", desc: "Abfrage-Ergebnis", type: "string", role: "", def: JSON.stringify([]) }); on({ id: queryJSONDP, change: "any" }, function (obj) { let value = obj.state.val; // console.log('Anfrage um: '+ formatDate(new Date(),'DD.MM.YYYY hh:mm:ss') +' für DP '+JSON.parse(value).dp ) aktTime = new Date() let differenz = (aktTime.getTime() - lastTime.getTime()) var Seconds_from_T1_to_T2 = differenz / 1000; var Seconds_Between_Dates = Math.abs(Seconds_from_T1_to_T2); //console.log('aktTime: ' + aktTime) //console.log('lastTime: ' + lastTime) if (JSON.parse(value).widgetId == lastWidget && Seconds_Between_Dates <= 1) { //console.log('gleiches widget und zu häufige Anfrage ') //console.log('last widgetId: ' + lastWidget) //console.log('akt widgetId: ' + JSON.parse(value).widgetId) //console.log('dif: ' + Seconds_Between_Dates) } else { getHist(JSON.parse(value)); lastTime = new Date() lastWidget = JSON.parse(value).widgetId } });
-
@intruder7 Gut dann warten wir mal ab.
Ich würde es dann etwas anders mit einbauen. Entscheidend wäre hier der dp, da man von dem die Daten holt. -
@mcu ja das Problem ist aber nicht der DP. Man kann den DP ja auch in z.B. 2 Widgets haben und deswegen hatte ich auf das Widget getestet.