Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Objekt erstellt, aber kein State abrufbar

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Objekt erstellt, aber kein State abrufbar

    This topic has been deleted. Only users with topic management privileges can see it.
    • ?
      A Former User @Proper0912 last edited by

      @proper0912 this.log.debug(alive.val)

      1 Reply Last reply Reply Quote 0
      • ?
        A Former User last edited by

        Versuch es mal so:

        settingsIdAlive = this.getState('alive');
        this.log.debug(settingsIdAlive.val)
        
        Proper0912 1 Reply Last reply Reply Quote 0
        • Proper0912
          Proper0912 @Guest last edited by

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

          ? 1 Reply Last reply Reply Quote 0
          • ?
            A Former User @Proper0912 last edited by

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

            Proper0912 1 Reply Last reply Reply Quote 0
            • Proper0912
              Proper0912 @Guest last edited by

              @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!

              ? 1 Reply Last reply Reply Quote 0
              • ?
                A Former User @Proper0912 last edited by

                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);
                
                Proper0912 1 Reply Last reply Reply Quote 0
                • Proper0912
                  Proper0912 @Guest last edited by 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)

                  ? 1 Reply Last reply Reply Quote 0
                  • ?
                    A Former User @Proper0912 last edited by

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

                    let settingsIdAlive;
                    

                    dann sollte es gehen.

                    Proper0912 2 Replies Last reply Reply Quote 0
                    • Proper0912
                      Proper0912 @Guest last edited by

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

                      1 Reply Last reply Reply Quote 0
                      • Proper0912
                        Proper0912 @Guest last edited by

                        @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!

                        ? 1 Reply Last reply Reply Quote 0
                        • ?
                          A Former User @Proper0912 last edited by A Former User

                          @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.

                          Proper0912 1 Reply Last reply Reply Quote 0
                          • Proper0912
                            Proper0912 @Guest last edited by

                            @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!

                            ? 1 Reply Last reply Reply Quote 0
                            • ?
                              A Former User @Proper0912 last edited by

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

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              651
                              Online

                              31.8k
                              Users

                              80.0k
                              Topics

                              1.3m
                              Posts

                              3
                              18
                              557
                              Loading More Posts
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes
                              Reply
                              • Reply as topic
                              Log in to reply
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                              The ioBroker Community 2014-2023
                              logo