Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Javascript - wie lese ich diese Werte aus?

    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

    Javascript - wie lese ich diese Werte aus?

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      tempestas last edited by

      Hallo zusammen,

      nach fast zwei Jahren, in der meine Anlage einfach lief, habe ich mal wieder etwas Neues angeschafft.

      Ich habe nun u.a. die Blink XT2 Kameras.
      Hiermit: https://www.npmjs.com/package/node-blink-security
      soll man sie zumindest partiell auch steuern können.

      Ein- ausschalten geht auch, was ich aber nicht hinbekomme ist, den Aktivierungszustand einfach abzufragen.
      Wenn ich die beschriebene Method nutze, bekomme ich im Log nur "[object object]".

      Ok, dann habe ich das ganze mal mit JSON.stringify versucht und konnte dann zumindest mal das hier

      {"_username":"streng_geheim","_password":"ultra_geheim",
      "_token":"r7uBIq3NnNeMwe5IukhcoA",
      "_auth_header":{"Host":"e001.immedia-semi.com","TOKEN_AUTH":"r7uBIq3NnNeMwe5IukhcoA"},
      
      "_networks":[{"id":120720,"created_at":"2020-02-15T11:04:48+00:00",
      	"updated_at":"2020-02-16T16:29:41+00:00","name":"Zuhause",
      	"network_key":"RZ0Bmh6hChZCcUKB","description":"",
      	"network_origin":"normal","locale":"","time_zone":"Europe/Berlin","dst":true,
      	"ping_interval":60,"encryption_key":null,
      	"armed":true,
      	"autoarm_geo_enable":false,"autoarm_time_enable":false,"lv_mode":"relay","lfr_channel":0,"video_destination":"server","storage_used":0,"storage_total":0,"video_count":0,"video_history_count":4000,
      	"arm_string":"Armed","busy":false,"camera_error":false,"sync_module_error":false,"feature_plan_id":null,"account_id":101346}],
      
      "_account_id":101346,"_region":"Europe","_region_id":"e001","_host":"e001.immedia-semi.com",
      "_events":[],
      
      "_cameras":{"263174":{"urls":{"base_url":"https://rest.e001.immedia-semi.com","event_url":"https://rest.e001.immedia-semi.com/events/network/","network_url":"https://rest.e001.immedia-semi.com/network/",
      	"networks_url":"https://rest.e001.immedia-semi.com/networks","video_url":"https://rest.e001.immedia-semi.com/api/v2/videos","home_url":"https://rest.e001.immedia-semi.com/homescreen"},"_id":263174,"_name":"Haustür",
      	"_status":true,"_enabled":true,"_thumb":"https://rest.e001.immedia-semi.com/media/e001/account/101346/network/120720/camera/263174/thumbnail/fw_7.96__PLZHASze_2020_02_16__16_28PM.jpg","_clip":
      	"https://rest.e001.immedia-semi.com/media/e001/account/101346/network/120720/camera/263174/thumbnail/fw_7.96__PLZHASze_2020_02_16__16_28PM.mp4","_temperature":57,"_battery":3,"_notifications":1,"_motion":{},
      	"_header":{"Host":"e001.immedia-semi.com","TOKEN_AUTH":"r7uBIq3NnNeMwe5IukhcoA"},"_image_link":"https://rest.e001.immedia-semi.com/network/120720/camera/263174/thumbnail","_arm_link":"https://rest.e001.immedia-semi.com/network/120720/camera/263174/",
      	"_updated_at":"2020-02-16T19:31:16+00:00","_region_id":"e001","_wifi":null,"_lfr":null,"_network_id":"120720"}
      
      ,"263227":{"urls":{"base_url":"https://rest.e001.immedia-semi.com","event_url":"https://rest.e001.immedia-semi.com/events/network/",
      "network_url":"https://rest.e001.immedia-semi.com/network/","networks_url":"https://rest.e001.immedia-semi.com/networks","video_url":"https://rest.e001.immedia-semi.com/api/v2/videos","home_url":"https://rest.e001.immedia-semi.com/homescreen"},"_id":263227,"_name":"Carport","_status":true,"_enabled":true,
      "_thumb":"https://rest.e001.immedia-semi.com/media/e001/account/101346/network/120720/camera/263227/thumbnail/fw_7.96___ueAcOXX_2020_02_16__08_32AM.jpg","_clip":"https://rest.e001.immedia-semi.com/media/e001/account/101346/network/120720/camera/263227/thumbnail/fw_7.96___ueAcOXX_2020_02_16__08_32AM.mp4",
      "_temperature":57,"_battery":3,"_notifications":1,"_motion":{},"_header":{"Host":"e001.immedia-semi.com","TOKEN_AUTH":"r7uBIq3NnNeMwe5IukhcoA"},"_image_link":"https://rest.e001.immedia-semi.com/network/120720/camera/263227/thumbnail","_arm_link":"https://rest.e001.immedia-semi.com/network/120720/camera/263227/",
      "_updated_at":"2020-02-16T19:31:16+00:00","_region_id":"e001","_wifi":null,"_lfr":null,"_network_id":"120720"}},"_idlookup":{"263174":"Haustür","263227":"Carport"},
      
      
      "urls":{"base_url":"https://rest.e001.immedia-semi.com","event_url":"https://rest.e001.immedia-semi.com/events/network/",
      "network_url":"https://rest.e001.immedia-semi.com/network/","networks_url":"https://rest.e001.immedia-semi.com/networks","video_url":"https://rest.e001.immedia-semi.com/api/v2/videos",
      "home_url":"https://rest.e001.immedia-semi.com/homescreen"}
      
      }
      

      auslesen.

      Allerdings bin ich zu blöd, sei es mit den beschriebenen Properties und / oder methods oder auch direkt hier den "armed" Status abzufragen.

      Kann mir einer von euch Könnern auf die Sprünge helfen?

      Danke euch

      1 Reply Last reply Reply Quote 0
      • OliverIO
        OliverIO last edited by

        @tempestas sagte in Javascript - wie lese ich diese Werte aus?:

        networks

        Ungetested
        Müsste das folgende sein.
        Du hast nach Networks eine spitze Klammer , das ist ein Array und davon das erste Element.
        Nach Spitzer Klammer kommt eine geschweifte Klammer. Das ist dann das Objekt und davon willst du das property armed

        _ networks[0].armed

        T 1 Reply Last reply Reply Quote 1
        • OliverIO
          OliverIO last edited by OliverIO

          Sowas am besten in die Developer Tools von chrome oder Firefox in die Console packen. Da kannst dann direkt ausprobieren

          1 Reply Last reply Reply Quote 0
          • T
            ticaki Developer @OliverIO last edited by ticaki

            @OliverIO sagte in Javascript - wie lese ich diese Werte aus?:

            @tempestas sagte in Javascript - wie lese ich diese Werte aus?:

            networks

            Müsste das folgende sein.
            Du hast nach Networks eine spitze Klammer , das ist ein Array und davon das erste Element.
            Nach Spitzer Klammer kommt eine geschweifte Klammer. Das ist dann das Objekt und davon willst du das property armed

            _ networks[0].armed

            ist es, habs getestet. Da war die Frage aber schon beantwortet 🙂

            T 1 Reply Last reply Reply Quote 0
            • T
              tempestas @ticaki last edited by

              @ticaki

              Leider bekomme ich es Code Technisch nicht hin. War nie ein großer Programmierer und meine "besseren Zeiten" sind nun einige Jahre her. Seitdem Kind da, keine Zeit mehr.
              Kannst du mir kurz auf die Sprünge helfen?

              wenn ich blink._network[0].armed eingebe sagt er nur cannot read armed from undefined.

              1 Reply Last reply Reply Quote 0
              • T
                ticaki Developer last edited by ticaki

                Ich weiß nicht was blink ist... aber wenn ich das Json, welches du oben gepostet hast, in eine Variable schreibe und dann:

                var jsonvar = 'das Json von oben';
                var test = JSON.parse(jsonvar);
                console.log(test._networks[0].armed);
                

                ausführe, steht true im log.

                EDIT Oha 🙂

                //Fehler 
                blink._network[0].armed 
                
                //Richtig 
                blink._networks[0].armed
                
                1 Reply Last reply Reply Quote 0
                • T
                  tempestas last edited by

                  @OliverIO
                  @ticaki
                  erstmal vielen Dank euch beiden.

                  ich fürchte, mein Problem liegt woanders.
                  Ich verstehe das thema promise/return nicht.

                  Im npm pack für die blink kameras steht als Beispiel:

                  Usage
                  
                  const Blink = require('node-blink-security');
                   
                  var blink = new Blink('YOUR_EMAIL', 'YOUR_PASSWORD');
                  blink.setupSystem()
                    .then(() => {
                      blink.setArmed()
                        .then(() => {
                          // see the object dump for details
                          console.log(blink);
                        });
                    }, (error) => {
                      console.log(error);
                    });
                  

                  ok, das wollte ich einfach nur für die method blink.isArmed() nachbauen

                  aber zum einen schmeißt das obere in der console nur [object object] raus (daher kam ich auf das JSON?)
                  und umbauen auf blink.isArmed() klappt auch nicht.

                  Ich will nur verstehen, wie ich den Zustand abfragen und dann ggf. in einen datenpunkt schreiben kann.

                  Help pls 🙂

                  1 Reply Last reply Reply Quote 0
                  • T
                    ticaki Developer last edited by ticaki

                    Diese Logausgabe könnte daher rühren, dass der Javascript-Adapter nichts mit der Klasse Blink anfangen kann. Wenn du das Objekt in einen String umwandelst geht es oder?

                    Die Abfrage von isArmed() müsste eigentlich mit

                    blink.isArmed()
                      .then(function(val) {
                        console.log(val);
                      }
                    

                    funktionieren. Kann es aber nicht testen, hab kein vergleichbares Gerät.

                    T 1 Reply Last reply Reply Quote 0
                    • T
                      tempestas @ticaki last edited by

                      @ticaki said in Javascript - wie lese ich diese Werte aus?:

                      blink.isArmed()

                      Ich danke dir.
                      es bleibt bei[object object]

                      Initial habe ich im Skript stehen:

                      const Blink = require('node-blink-security');
                      var blink = new Blink('xxxxxx', '|yyyyyyyyyyyy');

                      er sollte also mit der Klasse was anfangen können, soweit ich das sehe.

                      T 1 Reply Last reply Reply Quote 0
                      • T
                        ticaki Developer @tempestas last edited by

                        @tempestas

                        was passiert wenn du das hier ausprobierst?

                        const Blink = require('node-blink-security'); 
                        var blink = new Blink('YOUR_EMAIL', 'YOUR_PASSWORD');
                        blink.setupSystem()
                          .then(() => {
                            blink.setArmed()
                              .then(() => {
                                console.log(blink.isArmed());
                                // see the object dump for details
                                console.log(JSON.stringify(blink));
                              });
                          }, (error) => {
                            console.log(error);
                          });
                        
                        T 1 Reply Last reply Reply Quote 0
                        • T
                          tempestas last edited by tempestas

                          Hi,

                          danke bekomme ich fürs erste Log wieder [object promise] und das zweite wirft das bekannte JSON raus.

                          VG

                          So funktioniert es jetzt:

                                  // see the object dump for details
                                  var json = JSON.stringify(blink)
                                  console.log(json);
                                  var parsed = JSON.parse(json);
                                  console.log(parsed._networks[0].armed)
                          

                          warum ich erst stringify machen muss um dann parse zu nutzen verstehe ich aber nicht, ich dachte, parse ist quasi das Gegenteil von stringify

                          T 1 Reply Last reply Reply Quote 0
                          • T
                            ticaki Developer @tempestas last edited by ticaki

                            @tempestas
                            Bin noch nicht fertig mit dem testen 🙂
                            Versuche jetzt folgendes. Änderungen in meinem Beispiel von oben:

                            5   blink.setArmed()
                                  .then(() => {
                                    console.log(blink.isArmed()==true);
                            
                            5   blink.setArmed(false)
                                  .then(() => {
                                    console.log(blink.isArmed()==true);
                            

                            Wenn das nicht 1. true/2. false auswirft mußt du wohl mit deiner Version arbeiten.

                            1 Reply Last reply Reply Quote 0
                            • T
                              tempestas @ticaki last edited by

                              @ticaki

                              Hi,

                              ich habe diverse Variationen durchgespielt.

                              Beide deiner Ideen liefern "false", egal, ob ich die anlage ein oder ausschalte.. Da scheint der return nicht zu stimmen.

                              Ich nutze dann die stringify to parse version, ist ja kein Thema.
                              da du deutlich bewanderter bist als ich: warum geht das? wie gesagt, mein Wissen war, stringify und parse sind quasi yin und yang?

                              1 Reply Last reply Reply Quote 0
                              • T
                                ticaki Developer last edited by

                                @tempestas
                                verstehe tue ich das auch nicht. Kann nur vermuten, ich dachte das der Javascript-Adapter mit der Klasse nichts anfangen kann. Also Nodejs führt den Code zwar aus, aber der Adapter schreibt "keine Ahnung" ins Log, weil er nicht weiß, ob das nun ein Json/Array/String ist. Sobald du stringify benutzt weiß der Adapter was es ist, und schreibt es auch so ins Log.

                                Hast du node-blink-security in die Javascript-Adapter-Instanz eingetragen?

                                T 1 Reply Last reply Reply Quote 1
                                • T
                                  tempestas @ticaki last edited by

                                  @ticaki

                                  hatte ich nicht, habe ich nachgetragen. Ändert gar nichts.
                                  Sei es drum, die umständliche Version geht ja... wäre zwar schön zu wissen, warum es so seltsam nur geht, aber wie auch immer 🙂 danke dir für diene Mühen

                                  1 Reply Last reply Reply Quote 0
                                  • P
                                    Pischleuder last edited by

                                    Moin,

                                    wie ist denn hier der letzte Stand ?

                                    Man müsste doch aus dem json auch irgendwie den Link auf die Videoclips,
                                    bzw. sogar den Livestream extrahieren können, damit man das in einen Datenpunkt schreibt, oder ?

                                    Gruß

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    817
                                    Online

                                    31.8k
                                    Users

                                    80.0k
                                    Topics

                                    1.3m
                                    Posts

                                    4
                                    16
                                    1362
                                    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