NEWS
Javascript - wie lese ich diese Werte aus?
-
@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
-
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.
-
@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.
-
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); });
-
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
-
@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.
-
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? -
@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?
-
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 -
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ß