Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • 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. Array mit Funktionsreferenzen in Objekt speichern

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.4k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.6k

Array mit Funktionsreferenzen in Objekt speichern

Geplant Angeheftet Gesperrt Verschoben JavaScript
3 Beiträge 2 Kommentatoren 293 Aufrufe 3 Watching
  • Ä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.
  • S Offline
    S Offline
    steeffan
    schrieb am zuletzt editiert von steeffan
    #1

    Ich versuche ein Array mit Funktionsreferenzen in einem Objekt zu speichern, allerdings werden in dem Objekt nur leere Felder angelegt. Muss ich dabei etwas beachten?

    function testFnc1()
    {}
    function testFnc2()
    {}
    
    createState(
            'ActiveRoomsTimeCtrl', { name: 'Räume mit Zeitsteuerung', type: 'array', role:"state"}, 
             function (obj) {prepareArrayRooms()}
        );
    }
    
    function prepareArrayRooms()
    {
        if(null == getState('ActiveRoomsTimeCtrl').val)
        {   
            var init = [testFnc1, testFnc2];
            setState('ActiveRoomsTimeCtrl', init, true);
        }
    }
    

    In der ObjectView wird allerdings nur ein leeres Array angezeigt. Die leeren Felder erhalte ich auch, wenn ich das Objekt wieder auslesen will.
    d47396d4-932d-4bba-a2fa-bdf99fd9b1ca-image.png

    Background: Ich möchte, je nach selektierten Buttons (Räumen) in vis, Funktionen stündlich aufrufen. Dafür möchte ich die Funktionen in ein array ein-/austragen und dieses Array stündlich durchgehen und die Funktionen aufrufen.

    schedule("01 * * * *", timerCallback);
    function timerCallback()
    {
        var activeRooms = getState('ActiveRoomsTimeCtrl').val;
        activeRooms.forEach(function(element) {
            if (element != 0)
            {
                element();
            }
        });
    }
    
    1 Antwort Letzte Antwort
    0
    • S Offline
      S Offline
      steeffan
      schrieb am zuletzt editiert von
      #2

      Ich habe die Ursache für das Problem in der Doku gefunden:
      "val - the actual value - can be any type that is JSON-"encodable""
      Funktionen sind nicht in JSON codierbar.

      Ich werde somit eine andere Lösung suchen.

      1 Antwort Letzte Antwort
      0
      • T Nicht stören
        T Nicht stören
        ticaki
        schrieb am zuletzt editiert von
        #3

        Eine einfach Lösung wäre die Funktion als string zu übergeben und dann über

        switch(func){
        case 'set1': set1(args); break;
        case 'get1': return get1(); break;
        }
        

        die entsprechende Funktion aufzurufen.

        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

        Spenden

        1 Antwort Letzte Antwort
        0
        Antworten
        • In einem neuen Thema antworten
        Anmelden zum Antworten
        • Älteste zuerst
        • Neuste zuerst
        • Meiste Stimmen


        Support us

        ioBroker
        Community Adapters
        Donate

        799

        Online

        32.4k

        Benutzer

        81.4k

        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