NEWS
Gelöst - extendObject und Adapterneustart triggern
-
Hallo Zusammen,
ich habe ein "kleines" Problem. Seit geraumer Zeit funktioniert ein kleines Konstrukt nicht mehr. Ich habe hier jetzt schon eine kleine Ewigkeit dran gehockt, komme aber leider nicht weiter.
Daher hoffe ich, dass ihr weiterhelfen könnt. Mein Ziel: Ich möchte die URL im Parser-Adapter updaten.Folgende Schrittfolge hatte ich hier: Die URL wird über eine manuelle angelegte Variable (ManuelleVariablen.0.Webseite_URL) über die VIS eingegeben. Wenn eine Änderung erfolgt, wird diese getriggert und ein Skript aktualisiert mittels extendObject die Objektdaten der Parser-Datenpunkte (z.B. parser.0.Webseite). Im Anschluss wird der Parser-Adapter neu gestartet.
Folgendes funktionierte mal in Kombination:
Skript 1 - Objektdaten aktualisieren
var URL; URL = (getState("ManuelleVariablen.0.Webseite_URL").val) extendObject('parser.0.Webseite', {native: {link: (URL)}}); extendObject('parser.0.Webseite2', {native: {link: (URL)}}); extendObject('parser.0.Webseite3', {native: {link: (URL)}}); extendObject('parser.0.Webseite4', {native: {link: (URL)}}); extendObject('parser.0.Webseite_pic', {native: {link: (URL)}});soll die hinterlegten URLs im Parser-Adapter aktualisieren. Wenn ich im Skript-Editor auf den "Neustart"-Button (rechts neben Datei anzeigen) klicke, funktioniert das Skript und alle obigen Objekte erhalten eine andere URL. Wenn ich allerdings auf den Pfeil "Skript ausführen" klicke, funktioniert das nicht. (Warum überhaupt?)
Für den Neustart des Adapters hatte ich folgendes integriert:
Skript 2 - Parser-Adapter neustarten
var Instanz, start; async function Adapter_start_stop(Instanz, start) { extendObject('system.adapter.' + Instanz, {common: {enabled: start}}); } async function Adapter_neustart(Instanz) { extendObject('system.adapter.' + Instanz, {common: {enabled: true}}); } await Adapter_neustart('parser.0');Über Skript 3.) wird oder soll das Ganze dann getriggert werden.
on({id: 'ManuelleVariablen.0.Webseite_URL', change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setState("javascript.0.scriptEnabled.Parser.Parser_Instanz_neustarten"/*scriptEnabled.Parser.Parser_Instanz_neustarten*/, true); setState("javascript.0.scriptEnabled.Parser.Webseite_Parser_URL"/*scriptEnabled.Parser.Webseite_Parser_URL*/, true); setStateDelayed("javascript.0.scriptEnabled.Parser.Parser_Instanz_neustarten"/*scriptEnabled.Parser.Parser_Instanz_neustarten*/, false, 1000, false); setStateDelayed("javascript.0.scriptEnabled.Parser.Webseite_Parser_URL"/*scriptEnabledWebseite_Parser_URL*/, false, 1000, false); });Warum auch immer, funktioniert das Skript nicht mehr. Ich bin mir nicht bewusst, dass ich im Halbsuff irgendetwas daran verändert hätte.
Die Instanz ist identisch geblieben. Ich vermute beinah, dass es im Zusammenhang mit irgendeinem Update besteht.
Unabhängig davon können die Skripte möglicherweise auch konsolidiert werden.Daher die Frage:
Wie kriege ich den Trigger + Aktualisierung der Objektdaten + Adapterneustart in ein Skript zusammengewurstet?
Das wäre mir jedenfalls aus Übersichtsgründen das Liebste. -
Hallo Zusammen,
ich habe ein "kleines" Problem. Seit geraumer Zeit funktioniert ein kleines Konstrukt nicht mehr. Ich habe hier jetzt schon eine kleine Ewigkeit dran gehockt, komme aber leider nicht weiter.
Daher hoffe ich, dass ihr weiterhelfen könnt. Mein Ziel: Ich möchte die URL im Parser-Adapter updaten.Folgende Schrittfolge hatte ich hier: Die URL wird über eine manuelle angelegte Variable (ManuelleVariablen.0.Webseite_URL) über die VIS eingegeben. Wenn eine Änderung erfolgt, wird diese getriggert und ein Skript aktualisiert mittels extendObject die Objektdaten der Parser-Datenpunkte (z.B. parser.0.Webseite). Im Anschluss wird der Parser-Adapter neu gestartet.
Folgendes funktionierte mal in Kombination:
Skript 1 - Objektdaten aktualisieren
var URL; URL = (getState("ManuelleVariablen.0.Webseite_URL").val) extendObject('parser.0.Webseite', {native: {link: (URL)}}); extendObject('parser.0.Webseite2', {native: {link: (URL)}}); extendObject('parser.0.Webseite3', {native: {link: (URL)}}); extendObject('parser.0.Webseite4', {native: {link: (URL)}}); extendObject('parser.0.Webseite_pic', {native: {link: (URL)}});soll die hinterlegten URLs im Parser-Adapter aktualisieren. Wenn ich im Skript-Editor auf den "Neustart"-Button (rechts neben Datei anzeigen) klicke, funktioniert das Skript und alle obigen Objekte erhalten eine andere URL. Wenn ich allerdings auf den Pfeil "Skript ausführen" klicke, funktioniert das nicht. (Warum überhaupt?)
Für den Neustart des Adapters hatte ich folgendes integriert:
Skript 2 - Parser-Adapter neustarten
var Instanz, start; async function Adapter_start_stop(Instanz, start) { extendObject('system.adapter.' + Instanz, {common: {enabled: start}}); } async function Adapter_neustart(Instanz) { extendObject('system.adapter.' + Instanz, {common: {enabled: true}}); } await Adapter_neustart('parser.0');Über Skript 3.) wird oder soll das Ganze dann getriggert werden.
on({id: 'ManuelleVariablen.0.Webseite_URL', change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setState("javascript.0.scriptEnabled.Parser.Parser_Instanz_neustarten"/*scriptEnabled.Parser.Parser_Instanz_neustarten*/, true); setState("javascript.0.scriptEnabled.Parser.Webseite_Parser_URL"/*scriptEnabled.Parser.Webseite_Parser_URL*/, true); setStateDelayed("javascript.0.scriptEnabled.Parser.Parser_Instanz_neustarten"/*scriptEnabled.Parser.Parser_Instanz_neustarten*/, false, 1000, false); setStateDelayed("javascript.0.scriptEnabled.Parser.Webseite_Parser_URL"/*scriptEnabledWebseite_Parser_URL*/, false, 1000, false); });Warum auch immer, funktioniert das Skript nicht mehr. Ich bin mir nicht bewusst, dass ich im Halbsuff irgendetwas daran verändert hätte.
Die Instanz ist identisch geblieben. Ich vermute beinah, dass es im Zusammenhang mit irgendeinem Update besteht.
Unabhängig davon können die Skripte möglicherweise auch konsolidiert werden.Daher die Frage:
Wie kriege ich den Trigger + Aktualisierung der Objektdaten + Adapterneustart in ein Skript zusammengewurstet?
Das wäre mir jedenfalls aus Übersichtsgründen das Liebste.Scheint ein Bug gewesen zu sein. Problem ist mit Update der Script-Engine behoben.
5.3.3 (2022-03-06)
(bluefox) Added async functions: createStateAsync, deleteStateAsync
5.3.2 (2022-03-06)
(Apollon77) fix problem that scripts were not starting when scriptsEnabled State was triggered (or startScript was used)
(Apollon77) Make sure callbacks on startScript/stopScript work and Async variants also resolve
(Apollon77) Make sure startScriptAsync, stopScriptAsync and runScriptAsync resolve in debug mode too
5.3.1 (2022-03-03)
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