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. Objekt erstellt, aber kein State abrufbar

NEWS

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    13
    1
    621

  • Neuer ioBroker-Blog online: MonatsrĂŒckblick MĂ€rz/April 2026
    BluefoxB
    Bluefox
    8
    1
    2.0k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    11
    1
    885

Objekt erstellt, aber kein State abrufbar

Geplant Angeheftet Gesperrt Verschoben JavaScript
18 BeitrÀge 3 Kommentatoren 1.2k Aufrufe 2 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.
  • Proper0912P Proper0912

    @ciddi89
    Hi habe es heute aus Probiert und geht nicht.
    Keine Ahnung was ich falsch mache!

    ? Offline
    ? Offline
    Ein ehemaliger Benutzer
    schrieb am zuletzt editiert von
    #9

    @proper0912 hast mal ein Code wo du das Objekt erstellst, wo du es beschreibst und wo du es abrufst?

    Proper0912P 1 Antwort Letzte Antwort
    0
    • ? Ein ehemaliger Benutzer

      @proper0912 hast mal ein Code wo du das Objekt erstellst, wo du es beschreibst und wo du es abrufst?

      Proper0912P Offline
      Proper0912P Offline
      Proper0912
      schrieb am zuletzt editiert von
      #10

      @ciddi89

      Klar hier ist er:

      async function main() {
      	adapter.log.debug('adapter.main: << MAIN >>');
      
      	settingsID = adapter.config;
      
      	
      	
      	// +++++++++++++++++++ basic framework of Adapter ++++++++++++++++++++
      		
      	
      	await adapter.setObjectNotExistsAsync("alive", {
      		type: "state",
      		common: {
      			name: "connect",
      			type: "boolean",
      			role: "state",
      			read: true,
      			write: true,
      			def: false,
      		},
      		native: {},
      	});
      
      	let settingsIdAlive = false;
      	await adapter.getStateAsync('alive', (err, state) => {
      		if (state) {
      			settingsIdAlive = state.val;	
      		} else{
      			adapter.log.error(err)
      		}
      	});
      	adapter.log.debug(settingsIdAlive);
      
      	if (adapter.on) {
      		if (settingsIdAlive) {
      			// @ts-ignore
      			getDateOfInstanc(settingsID);
      			getValue(settingsID);
      		} else { 
      
      			// +++++++++++++++++++ basic framework with medium of Adapter ++++++++++++++++++++
      
      			if ( settingsID.triggerID > "" && settingsID.medium > "" ){
      
      				await adapter.setObjectNotExistsAsync(settingsID.medium + ".connect", {
      					type: "state",
      					common: {
      						name: "connect",
      						type: "boolean",
      						role: "state",
      						read: true,
      						write: true,
      						def: false,
      					},
      					native: {},
      				});
      
      				await adapter.setObjectNotExistsAsync(settingsID.medium + ".instanceValue", {
      					type: "state",
      					common: {
      						name: "instanceValue_" + settingsID.medium,
      						type: "number",
      						role: "value",
      						read: true,
      						write: true,
      						def: 0,
      						unit: "",
      					},
      					native: {},
      				});
      
      				await adapter.subscribeStates("*");
      
      				
      				adapter.log.debug('adapter.main: << MAIN Objekt greated >>');
      		
      
      			} else {
      				adapter.log.error("Keine referens Objekt-ID oder Medium angegeben")
      			}
      
      			await adapter.setStateAsync("alive", { val: true, ack: true });
      
      		}
      	} else {
      		adapter.log.error("Instance not startet");
      	}
      
      	await adapter.getStateAsync('alive', (err, state) => {
      		if (state) {
      			settingsIdAlive = state.val;	
      		} else{
      			adapter.log.error(err)
      		}
      	});
      	adapter.log.debug(settingsIdAlive);
      
      	adapter.stop();
      };
      

      Das ist er!

      Gruß
      Florian

      System:
      Windows 10
      Admin: 6.3.5
      js-controller: 4.0.23
      Node-js: 16.0.0
      NPM 7.10.0
      repository: lates

      ? 1 Antwort Letzte Antwort
      0
      • Proper0912P Proper0912

        @ciddi89

        Klar hier ist er:

        async function main() {
        	adapter.log.debug('adapter.main: << MAIN >>');
        
        	settingsID = adapter.config;
        
        	
        	
        	// +++++++++++++++++++ basic framework of Adapter ++++++++++++++++++++
        		
        	
        	await adapter.setObjectNotExistsAsync("alive", {
        		type: "state",
        		common: {
        			name: "connect",
        			type: "boolean",
        			role: "state",
        			read: true,
        			write: true,
        			def: false,
        		},
        		native: {},
        	});
        
        	let settingsIdAlive = false;
        	await adapter.getStateAsync('alive', (err, state) => {
        		if (state) {
        			settingsIdAlive = state.val;	
        		} else{
        			adapter.log.error(err)
        		}
        	});
        	adapter.log.debug(settingsIdAlive);
        
        	if (adapter.on) {
        		if (settingsIdAlive) {
        			// @ts-ignore
        			getDateOfInstanc(settingsID);
        			getValue(settingsID);
        		} else { 
        
        			// +++++++++++++++++++ basic framework with medium of Adapter ++++++++++++++++++++
        
        			if ( settingsID.triggerID > "" && settingsID.medium > "" ){
        
        				await adapter.setObjectNotExistsAsync(settingsID.medium + ".connect", {
        					type: "state",
        					common: {
        						name: "connect",
        						type: "boolean",
        						role: "state",
        						read: true,
        						write: true,
        						def: false,
        					},
        					native: {},
        				});
        
        				await adapter.setObjectNotExistsAsync(settingsID.medium + ".instanceValue", {
        					type: "state",
        					common: {
        						name: "instanceValue_" + settingsID.medium,
        						type: "number",
        						role: "value",
        						read: true,
        						write: true,
        						def: 0,
        						unit: "",
        					},
        					native: {},
        				});
        
        				await adapter.subscribeStates("*");
        
        				
        				adapter.log.debug('adapter.main: << MAIN Objekt greated >>');
        		
        
        			} else {
        				adapter.log.error("Keine referens Objekt-ID oder Medium angegeben")
        			}
        
        			await adapter.setStateAsync("alive", { val: true, ack: true });
        
        		}
        	} else {
        		adapter.log.error("Instance not startet");
        	}
        
        	await adapter.getStateAsync('alive', (err, state) => {
        		if (state) {
        			settingsIdAlive = state.val;	
        		} else{
        			adapter.log.error(err)
        		}
        	});
        	adapter.log.debug(settingsIdAlive);
        
        	adapter.stop();
        };
        

        Das ist er!

        ? Offline
        ? Offline
        Ein ehemaliger Benutzer
        schrieb am zuletzt editiert von
        #11

        statt

        	await adapter.getStateAsync('alive', (err, state) => {
        		if (state) {
        			settingsIdAlive = state.val;	
        		} else{
        			adapter.log.error(err)
        		}
        	});
        

        mach mal

        settingsIdAlive = await adapter.getStateAsync('alive')
        adapter.log.debug(settingsIdAlive.val);
        
        Proper0912P 1 Antwort Letzte Antwort
        0
        • ? Ein ehemaliger Benutzer

          statt

          	await adapter.getStateAsync('alive', (err, state) => {
          		if (state) {
          			settingsIdAlive = state.val;	
          		} else{
          			adapter.log.error(err)
          		}
          	});
          

          mach mal

          settingsIdAlive = await adapter.getStateAsync('alive')
          adapter.log.debug(settingsIdAlive.val);
          
          Proper0912P Offline
          Proper0912P Offline
          Proper0912
          schrieb am zuletzt editiert von Proper0912
          #12

          @ciddi89

          Hi wenn ich das einfĂŒge

          settingsIdAlive = await adapter.getStateAsync('alive')
          adapter.log.debug(settingsIdAlive.val);
          

          dann Sagt mein Programm: .val ist fĂŒr boolean nicht verfĂŒgbar! ts(2339)

          Gruß
          Florian

          System:
          Windows 10
          Admin: 6.3.5
          js-controller: 4.0.23
          Node-js: 16.0.0
          NPM 7.10.0
          repository: lates

          ? 1 Antwort Letzte Antwort
          0
          • Proper0912P Proper0912

            @ciddi89

            Hi wenn ich das einfĂŒge

            settingsIdAlive = await adapter.getStateAsync('alive')
            adapter.log.debug(settingsIdAlive.val);
            

            dann Sagt mein Programm: .val ist fĂŒr boolean nicht verfĂŒgbar! ts(2339)

            ? Offline
            ? Offline
            Ein ehemaliger Benutzer
            schrieb am zuletzt editiert von
            #13

            @proper0912 ja weil du vorher settingsIdAlive = false; deklariert hast. Nimmst du das raus und machst nur

            let settingsIdAlive;
            

            dann sollte es gehen.

            Proper0912P 2 Antworten Letzte Antwort
            0
            • ? Ein ehemaliger Benutzer

              @proper0912 ja weil du vorher settingsIdAlive = false; deklariert hast. Nimmst du das raus und machst nur

              let settingsIdAlive;
              

              dann sollte es gehen.

              Proper0912P Offline
              Proper0912P Offline
              Proper0912
              schrieb am zuletzt editiert von
              #14

              @ciddi89 Danke jetzt funktioniert es so wie sein soll danke!

              Gruß
              Florian

              System:
              Windows 10
              Admin: 6.3.5
              js-controller: 4.0.23
              Node-js: 16.0.0
              NPM 7.10.0
              repository: lates

              1 Antwort Letzte Antwort
              0
              • ? Ein ehemaliger Benutzer

                @proper0912 ja weil du vorher settingsIdAlive = false; deklariert hast. Nimmst du das raus und machst nur

                let settingsIdAlive;
                

                dann sollte es gehen.

                Proper0912P Offline
                Proper0912P Offline
                Proper0912
                schrieb am zuletzt editiert von
                #15

                @ciddi89
                Hi kannst du mir noch mal helfen?
                Ich verstehe das einfach nicht.
                Schau dir mal diesen Code an:

                await adapter.setStateAsync(`${settingsID.medium}.connect`, { val: false, ack: true });
                
                await adapter.getForeignState(settingsID.triggerID, (err, state) => {
                	// state can be null!
                	if (state) {
                		adapter.setState(settingsID.path.instanceValue,{ val: state.val, ack: true });
                		adapter.setStateAsync(`${settingsID.medium}.connect`, { val: true, ack: true });
                	} else{
                		adapter.log.info(err)
                	}
                });
                
                settingsID.value.instanceValue = await adapter.getStateAsync(`${settingsID.medium}.instanceValue`);
                adapter.log.debug(settingsID.value.instanceValue.val)
                

                Da lese ich Zahl aus einem andere Adapter und schreibe sie in mein Adapter.
                Danach schreibe ich mir die Zahl aus meinem Adapter in eine Variable und gebe si aus im Debug als Kontrolle!
                Aber erst beim zweiten mal wird sie auch in die Variable geschrieben! Habe ich das was falsch verstanden?
                Oder ist es einfach nur zu spÀt!

                Kannst du mir das noch mal Helfen ?
                Oder ein anderer!

                Danke!

                Gruß
                Florian

                System:
                Windows 10
                Admin: 6.3.5
                js-controller: 4.0.23
                Node-js: 16.0.0
                NPM 7.10.0
                repository: lates

                ? 1 Antwort Letzte Antwort
                0
                • Proper0912P Proper0912

                  @ciddi89
                  Hi kannst du mir noch mal helfen?
                  Ich verstehe das einfach nicht.
                  Schau dir mal diesen Code an:

                  await adapter.setStateAsync(`${settingsID.medium}.connect`, { val: false, ack: true });
                  
                  await adapter.getForeignState(settingsID.triggerID, (err, state) => {
                  	// state can be null!
                  	if (state) {
                  		adapter.setState(settingsID.path.instanceValue,{ val: state.val, ack: true });
                  		adapter.setStateAsync(`${settingsID.medium}.connect`, { val: true, ack: true });
                  	} else{
                  		adapter.log.info(err)
                  	}
                  });
                  
                  settingsID.value.instanceValue = await adapter.getStateAsync(`${settingsID.medium}.instanceValue`);
                  adapter.log.debug(settingsID.value.instanceValue.val)
                  

                  Da lese ich Zahl aus einem andere Adapter und schreibe sie in mein Adapter.
                  Danach schreibe ich mir die Zahl aus meinem Adapter in eine Variable und gebe si aus im Debug als Kontrolle!
                  Aber erst beim zweiten mal wird sie auch in die Variable geschrieben! Habe ich das was falsch verstanden?
                  Oder ist es einfach nur zu spÀt!

                  Kannst du mir das noch mal Helfen ?
                  Oder ein anderer!

                  Danke!

                  ? Offline
                  ? Offline
                  Ein ehemaliger Benutzer
                  schrieb am zuletzt editiert von Ein ehemaliger Benutzer
                  #16

                  @proper0912 also als erstes musst du bei jeder function wo der Name async drin ist auch ein await vorsetzen. Hier etwas zum lesen ĂŒber asynchrone Funktionen. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function

                  Verstehe nun aber nicht ganz was du vorhast? Wenn du mit variablen weiter arbeiten willst wĂŒrde ich erstmal auf arrow functions verzichten. Macht es dir vielleicht ein bisschen einfacher. In dem fall ist es okay weil du ja nur setState nutzt aber achte bitte auf korrekte Deklaration wenn du async functions nutzt.

                  Proper0912P 1 Antwort Letzte Antwort
                  0
                  • ? Ein ehemaliger Benutzer

                    @proper0912 also als erstes musst du bei jeder function wo der Name async drin ist auch ein await vorsetzen. Hier etwas zum lesen ĂŒber asynchrone Funktionen. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function

                    Verstehe nun aber nicht ganz was du vorhast? Wenn du mit variablen weiter arbeiten willst wĂŒrde ich erstmal auf arrow functions verzichten. Macht es dir vielleicht ein bisschen einfacher. In dem fall ist es okay weil du ja nur setState nutzt aber achte bitte auf korrekte Deklaration wenn du async functions nutzt.

                    Proper0912P Offline
                    Proper0912P Offline
                    Proper0912
                    schrieb am zuletzt editiert von
                    #17

                    @ciddi89 Danke noch mal fĂŒr deine Hilfe!
                    Habe mir die Seite durchgelesen und habe es jetzt besser hinbekommen!
                    Klar ist es auch das es immer besser geht, aber fĂŒr den Anfang bin ich schon ein wenig stolz das es jetzt geht.
                    Dank deiner Hilfe!

                    Gruß
                    Florian

                    System:
                    Windows 10
                    Admin: 6.3.5
                    js-controller: 4.0.23
                    Node-js: 16.0.0
                    NPM 7.10.0
                    repository: lates

                    ? 1 Antwort Letzte Antwort
                    0
                    • Proper0912P Proper0912

                      @ciddi89 Danke noch mal fĂŒr deine Hilfe!
                      Habe mir die Seite durchgelesen und habe es jetzt besser hinbekommen!
                      Klar ist es auch das es immer besser geht, aber fĂŒr den Anfang bin ich schon ein wenig stolz das es jetzt geht.
                      Dank deiner Hilfe!

                      ? Offline
                      ? Offline
                      Ein ehemaliger Benutzer
                      schrieb am zuletzt editiert von
                      #18

                      @proper0912 gerne, dafĂŒr ist das Forum ja da 😊

                      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

                      303

                      Online

                      32.9k

                      Benutzer

                      83.0k

                      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