NEWS
Neuling total überfordert :-(
-
Hallo zusammen,
ich bin seit Stunden dabei einen einfachen Wert aus einer json mit Blockly auszulesen.
Gerät ist lokal im Netz:
{
"device":"ACTHOR",
"power_act":2181,
"power_solar_act":2181,
"power_grid_act":0,
"power_ac9":null,
"power_solar_ac9":null,
}Nach Anleitung im Netz kam immer "NULL" im Blockly raus.
Daher habe ich mal diese Anleitung durchgearbeitet:
https://www.machs-smart.de/json-blockly-einlesen-parsen-verarbeiten/leider kommt im DEBUG-Fenster nur "undefined" als Ergebnis.
Wurde an Blockly was geändert, oder bin ich einfach zu doof.Könnt ihr mir helfen?
Beste Grüße
Florian -
@kajo
Das Attribut "name" ist bei dieser URL (liefert Übungs-JSON) nicht dabei. Versuche es mal mit "1.title".Was hat die gezeigte URL mit dem geposteten JSON zu tun?
Mit dem gezeigten JSON in einem Datenpunkt muss das Blockly so aussehen: -
@kajo sagte in Neuling total überfordert
:
Daher habe ich mal diese Anleitung durchgearbeitet:
warum?
was sagt denn der zu deinem Problem?du kannst nur auslesen was im JSON steht
@kajo sagte in Neuling total überfordert
:
leider kommt im DEBUG-Fenster nur "undefined" als Ergebnis.
weil
1.name
nicht im JSON vorkommt.@kajo sagte in Neuling total überfordert
:
Wurde an Blockly was geändert
und jetzt ist das arme Blockly schuld
-
@homoran darf ich mich da anhängen. Hab so ein ähnliches Problem mit meinem Shelly addon Magnetschalter. Ergebnis ist auch immer undifinde obwohl im meinem fall "state" im Jjson vorkommt. mein Blockly sieht so auf:
Bitte kann mir sagen was ich da falsch mache. Die Temperatur hab ich so problemlos auslesen können, nur der Schaltzustand des Magnetschalters lässt sich nicht in die Variable schreiben.
Bitte helft mir glg Christian -
@christian-5 sagte: was ich da falsch mache.
Der Variablenbezeichner muss
result
sein (genau so geschrieben) - nichtinput
. -
@paul53 besten dank erstmals, ich dachte das wäre egal wie die Variable heißt.
glg Christian -
@christian-5 sagte in Neuling total überfordert
:
das wäre egal wie die Variable heißt.
dann müsste sie aber irgendwo zugewiesen werden.
im Moment könnte die Variableinput
ja alles mögliche enthalten.
Da ihr aber nichts zugewiesen wurde ist sie undefined.Deshalb auch nicht einfach den Standard debug-Block nehmen, sondern das fragliche wie hier die Variable
input
über den Baustein ausgeben lassen.
Dann hättest du gesehen, dass da nichts drin steht -
@homoran funktioniert ja schon ein "bisschen"
javascript.0 (172868) at script.js.Garage.Schalter:8:5 aber was hat diese Warnung zu bedeuten.
wie wird den "result" zugewiesen?
glg -
@christian-5 sagte in Neuling total überfordert
:
wie wird den "result" zugewiesen?
das ist das Ergebnis deines requests
was steht denn drin?
und warum konvertierst du nach Objekt? -
okay Danke! Ich musste bei der Temperaturabfrage auch json nach Objekt konvertieren, jetzt dacht ich mir, das wird immer so gemacht...
-
aber die warn Meldung hat nichts zu bedeuten oder doch?
-
@christian-5
Die wird wohl heißen das "true" nicht true ist, klicke mal auf das:und zeige was in Zeile 5 steht.
-
@christian-5 sagte in Neuling total überfordert
:
aber die warn Meldung hat nichts zu bedeuten oder doch?
doch!
da ist ein Fehler im Code!
Die Stelle ist angegeben, dazu auf js-Ansicht umstellen -
- schedule("*/3 * * * * *", async () => {
- try {
- require("request")('http://10.0.0.42/rpc/input.GetStatus?id=100', async 7. (error, response, result) => {
- SchalterZustand = getAttr(result, 'state');
-
@ticaki sagt: was in Zeile 5 steht.
Zeile 8.
@Christian-5
Im Tab "Protokolle" erhält man weitere Informationen zur Warnung. Vermutlich ist der Datenpunkttyp falsch (nicht Logikwert). -
@paul53
hab extra nachgeguckt und schreib dann doch 5... -
hab extra nachgeguckt und schreib dann doch 5... versteh nur Bahnhof sorry.
Aber der Datenpunkt war auf Zeichenkette gestellt da er mir anfangs auf Logikwert immer [null] ausgegeben hat. Jetzt wieder auf Logikwert und es funktioniert ohne Warnung!!! Besten Dank!!!! jetzt noch irgendwie in VIS darstellen, aber wie...
GLG Christian -
@christian-5
Ich habe dir die falsche Zeilennummer genannt. Die erste Zahl am Ende des "Fehlers" ist die Zeilennummer in der der Fehler aufgetreten ist. Bei VIS kann ich dir nicht helfen. -
@ticaki Ganz lieben Dank!
-
sorry ich wollte weder Blockly noch jemand anders beschuldigen.
Mir kam es nur komisch vor, das weder das eine noch das andere Skript lief.Aber ich scheine wohl einiges durcheinander gebracht zu haben. Das Beispiel mit der machs-smart.de sollte nur zeigen was ich versucht habe um den Fehler zu finden.
Mir wird jetzt der Wert im Debug wie gewünscht angezeigt.Wie bekomme ich diesen Wert in einen bereits angelegten Datenpunkt im ioBroker (Objekte/0_userdata.......)
Wenn die Frage geklärt ist, lass ich euch erstmal in Ruhe
Viele Grüße
Florian