Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Gelöst - extendObject und Adapterneustart triggern

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    6
    1
    215

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    8
    1
    215

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    890

Gelöst - extendObject und Adapterneustart triggern

Geplant Angeheftet Gesperrt Verschoben JavaScript
2 Beiträge 1 Kommentatoren 344 Aufrufe 1 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • U Offline
    U Offline
    Ulfhednir
    schrieb am zuletzt editiert von Ulfhednir
    #1

    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.

    U 1 Antwort Letzte Antwort
    0
    • U Ulfhednir

      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.

      U Offline
      U Offline
      Ulfhednir
      schrieb am zuletzt editiert von
      #2

      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)

      1 Antwort Letzte Antwort
      0

      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
      Antworten
      • In einem neuen Thema antworten
      Anmelden zum Antworten
      • Älteste zuerst
      • Neuste zuerst
      • Meiste Stimmen


      Support us

      ioBroker
      Community Adapters
      Donate

      500

      Online

      32.8k

      Benutzer

      82.8k

      Themen

      1.3m

      Beiträge
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
      ioBroker Community 2014-2025
      logo
      • Anmelden

      • Du hast noch kein Konto? Registrieren

      • Anmelden oder registrieren, um zu suchen
      • Erster Beitrag
        Letzter Beitrag
      0
      • Home
      • Aktuell
      • Tags
      • Ungelesen 0
      • Kategorien
      • Unreplied
      • Beliebt
      • GitHub
      • Docu
      • Hilfe