NEWS
[gelöst] Script Datenpunkte anlegen inkl. Logging
-
Hi,
ich versuche gerade ein Script zu schreiben um Datenpunkte anzulegen, die automatisch über Influxdb mit geloggt werden.
Typischer Datenpunkt:
createState("javascript.0.API.Hauptordner.Straße.Inputs.Input_1", (JSON.stringify(response.data.Data.Inputs[1].Value.Value)))-
Wie kann ich dem Datenpunkt weitere Eigenschaften mitgeben?
role = value
type = number
automatisches Logging über influxdb.0 mit den Voreingestellten Werten aus dem Adapter? -
Kann man beim Erstellen der Datenpunkte den Namen "Straße" als variable hinterlegen, sodass man nur
zu beginn des Scriptes ein Straßennamen eingeben muss? -
Wie kann ich eine zyklische Abfrage einbauen, sodass das Script automatisch alle 5 Minuten neu startet
um die Datenpunkte zu aktualisieren?
Hat jemand einen Lösungsansatz?
-
-
Hi,
ich versuche gerade ein Script zu schreiben um Datenpunkte anzulegen, die automatisch über Influxdb mit geloggt werden.
Typischer Datenpunkt:
createState("javascript.0.API.Hauptordner.Straße.Inputs.Input_1", (JSON.stringify(response.data.Data.Inputs[1].Value.Value)))-
Wie kann ich dem Datenpunkt weitere Eigenschaften mitgeben?
role = value
type = number
automatisches Logging über influxdb.0 mit den Voreingestellten Werten aus dem Adapter? -
Kann man beim Erstellen der Datenpunkte den Namen "Straße" als variable hinterlegen, sodass man nur
zu beginn des Scriptes ein Straßennamen eingeben muss? -
Wie kann ich eine zyklische Abfrage einbauen, sodass das Script automatisch alle 5 Minuten neu startet
um die Datenpunkte zu aktualisieren?
Hat jemand einen Lösungsansatz?
@stockics6 sagte in Script Datenpunkte anlegen inkl. Logging:
Wie kann ich eine zyklische Abfrage einbauen
Zu 2. Ja: String-Verkettung
Zu 1.
createState(id, val, {role: 'value', type: 'number', name: 'xyz'}); -
-
Erst einmal vielen Dank für das schnelle Feedback!
Zu 2:
Die String-Verkettung habe ich hinbekommen und funktioniert auch.
Leider wird die Objektbeschreibung nicht übernommencreateState(filepath + "." + streetname + "." + "Version", JSON.stringify(response.data.Header.Version), {role: 'value', type: 'number', name: 'xyz'});In dem erzeugten Datenpunkt steht weiterhin: role = state und type = mixed
Woran könnte das liegen?
-
Erst einmal vielen Dank für das schnelle Feedback!
Zu 2:
Die String-Verkettung habe ich hinbekommen und funktioniert auch.
Leider wird die Objektbeschreibung nicht übernommencreateState(filepath + "." + streetname + "." + "Version", JSON.stringify(response.data.Header.Version), {role: 'value', type: 'number', name: 'xyz'});In dem erzeugten Datenpunkt steht weiterhin: role = state und type = mixed
Woran könnte das liegen?
@stockics6 sagte: Woran könnte das liegen?
creatState() überschreibt normalerweise keinen existierenden Datenpunkt, außer mit true für forceCreation.
createState(filepath + "." + streetname + "." + "Version", JSON.stringify(response.data.Header.Version), true, {role: 'value', type: 'number', name: 'xyz'});Anmerkung: JSON.stringify() passt nicht zu common.type = "number".
-
@stockics6 sagte: Woran könnte das liegen?
creatState() überschreibt normalerweise keinen existierenden Datenpunkt, außer mit true für forceCreation.
createState(filepath + "." + streetname + "." + "Version", JSON.stringify(response.data.Header.Version), true, {role: 'value', type: 'number', name: 'xyz'});Anmerkung: JSON.stringify() passt nicht zu common.type = "number".
@paul53
Super vielen lieben Dank! :)Bis auf den CRON hat alles perfekt funktioniert.
Ich habe das Example in die erste Zeile des JS-Script kopiert aber dieses startet leider nicht neu, lediglich
die Info wird übers log ausgegeben.// Example with 5 digits: schedule("*/2 * * * *", function () { log("Will be triggered every 2 minutes!"); });Muss ich das irgendwie anders verknüpfen?
-
@paul53
Super vielen lieben Dank! :)Bis auf den CRON hat alles perfekt funktioniert.
Ich habe das Example in die erste Zeile des JS-Script kopiert aber dieses startet leider nicht neu, lediglich
die Info wird übers log ausgegeben.// Example with 5 digits: schedule("*/2 * * * *", function () { log("Will be triggered every 2 minutes!"); });Muss ich das irgendwie anders verknüpfen?
@stockics6
Was soll alle 2 Minuten passieren? -
@stockics6
Was soll alle 2 Minuten passieren? -
das gesamte Script soll neu starten. Aktuell löse ich das über Blockly aber schöner wäre es, wenn es direkt im
Script mit implementiert wäre.@stockics6 sagte: das gesamte Script soll neu starten.
Dann muss alles, was ausgeführt werden soll, in die Callback-Funktion von schedule().
schedule("*/2 * * * *", function () { log("Will be triggered every 2 minutes!"); // Alle weiteren Aktionen, die ausgeführt werden sollen }); -
@stockics6 sagte: das gesamte Script soll neu starten.
Dann muss alles, was ausgeführt werden soll, in die Callback-Funktion von schedule().
schedule("*/2 * * * *", function () { log("Will be triggered every 2 minutes!"); // Alle weiteren Aktionen, die ausgeführt werden sollen });
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden