NEWS
[GELÖST] Objekt (type: channel/device) erzeugen?
-
@newpicsel sagte in Datenpunkt (type: channel/device) erzeugen?:
Wäre das ok? Kann ich obj wieder mit variablen füllen?
const obj = {
muss vor
setObject(id, obj);
erfolgen.
Sämtliche Variablen / Konstanten müssen vorher deklariert werden und Werte erhalten.const id = '0_userdata.0.meinGeraet.meinKanal'; const type = 'channel'; const Name = 'mein Kanalname'; const obj = { type: type, common: { name: Name }, native: {} } if(existsObject(id) === false) setObject(id, obj);
-
@newpicsel sagte: Würde dann im block so aussehen...
Du möchtest es als Javascript-Funktion in Blockly? Dann bitte ohne write und read, denn die gibt es nur in Datenpunkten.
Funktion createObject(id, type, name):if(!existsObject(id)) { const obj = { type: type, common: {name: name}, native: {} }; setObject(id, obj); }
Für Datenpunkte verwende createState().
-
Klar logisch!
Mein Fehler, bis auf die Konstante obj, werden alle Variablen am Anfang des Blocks definiert, obj muss natürlich auch direkt im Anschluss definiert werden und dann die Funktion ausgeführt werden
-
Ok das mit den write/read Angaben wusste ich nicht, hab ich nur in den objektdaten bestehender Objekte von Adaptern gesehen, macht aber auch wenig Sinn wenn ich drüber nachdenke…
Ich bin dir unendlich dankbar, werde ich gleich testen!
-
Funktioniert fast astrein, lediglich der Name wird nicht übernommen, hier steht immer der Pfad des Objekts…
-
@newpicsel sagte: der Name wird nicht übernommen, hier steht immer der Pfad des Objekts…
name ist eine im Javascript-Adapter vordefinierte Variable und enthält den Namen des Skripts. Wie sieht das Skript aus, das den falschen Namen übergibt? Als globale Variable / Konstante sollte name nicht verwendet werden (ausnahmsweise besser Name).
-
-
@newpicsel
wie sieht denn jetzt die fertige Funktion bzw. das Blockly mit der Funktion aus. (interessiert mich auch)
Bitte mal als Export hier zur Verfügung stellen. -
@paul53 sagte in [GELÖST] Objekt (type: channel/device) erzeugen?:
@newpicsel sagte: Würde dann im block so aussehen...
Du möchtest es als Javascript-Funktion in Blockly? Dann bitte ohne write und read, denn die gibt es nur in Datenpunkten.
Funktion createObject(id, type, name):if(!existsObject(id) { const obj = { type: type, common: {name: name}, native: {} }; setObject(id, obj); }
Für Datenpunkte verwende createState().
Danke, bei mir funktioniert es jetzt auch. Hier fehlte nur eine schließende Klammer hinter id. (deshalb hatte ich eine Fehlermeldung)
if(!existsObject(id)) {
-
-
Ich habe hier eine übersicht mit Beispiel und dem export:
Ich hoffe das hilft eventuell jemanden weiter
-
-
@dslraser
Hallo. gibt es für die Icon´s eine Datenbank oder sind sie selbst eerstellt? Und hast du dazu noch etwas in der Funktion angepasst?MfG Raik
-
@burg_io sagte in [GELÖST] Objekt (type: channel/device) erzeugen?:
@dslraser
Hallo. gibt es für die Icon´s eine Datenbank oder sind sie selbst eerstellt? Und hast du dazu noch etwas in der Funktion angepasst?MfG Raik
Base64 erstelle ich hier
https://www.base64-image.de/Beispiel (auf </> show code klicken)
-
@dslraser
Das funktioniert zwar, korrekt aber so: -
@paul53 sagte in [GELÖST] Objekt (type: channel/device) erzeugen?:
Das funktioniert zwar, korrekt aber so:
Danke. Ich habe es berichtigt und ausgetauscht.
-
Super und danke