NEWS

Objekte in Blockly und JS erzeugen


  • Hallo zusammen

    Ich habe im Forum mitbekommen, dass es sinnvoll ist die Objekte via Script zu erzeugen. Dann kann man Sie jederzeit wieder neu generieren lassen. Das hat mich auch überzeugt 😉

    Nun habe ich aber doch zwei Fragen:

    Eigentlich arbeite ich gerne mit Blockly. Klappt auch mit dem Baustein "Zustand erzeugen XY".

    In JS habe ich die Möglichkeit weitere Werte des Objektes zu definieren, z.B:

    createState('PV_Leistung', {
       name: 'AC Power value',
       unit: 'W',
       min:  0,
       type: 'number',
       role: 'value.energy'
    }
    
    

    kann ich das in Blockly auch irgendwie?

    Zweite Frage:

    Wenn ich Objekte wie oben beschrieben erzeuge landen diese unter javascript.0.XY

    Nun habe ich aber im Modbusadapter ebenfalls Objekte definiert und diese kommen in modbus.0.holdingRegisters.XY.

    Kann ich diese Objekte auch via script erzeugen lassen?

    Besten Dank


  • @sol21:

    Kann ich diese Objekte auch via script erzeugen lassen? `
    Mit Blockly leider nicht.

    Fehlt mir auch sehr 😢

    Grüße


  • Hi Zusammen,

    ich habe mir in Blockly mit einem Kunstgriff geholfen.

    Dazu rufe ich in Blockly ein Javascript mit "createstate" auf.

    Geht sogar mit Variablen.

    Die Variablen werden zwar nur unter javascript.0 erzeugt aber man kann die Erstellung der Variablen beeinflußen.

    Vielleicht hilfs ja.

    Hier der Blockly-Code-Export

    ! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
    ! <block type="procedures_callcustomnoreturn" id="O45R/5Gw(j@)2M*_xdcB" x="37" y="12"><mutation name="Variablen anlegen"><arg name="Name"></arg>
    ! <arg name="Initialisierung"></arg>
    ! <arg name="Beschreibung"></arg>
    ! <arg name="Type"></arg></mutation>
    ! <value name="ARG0"><block type="text" id="nSr7Hq~;DUU2#lB+Yj:}"><field name="TEXT">Status.Geraete.Test</field></block></value>
    ! <value name="ARG1"><block type="text" id="xlqa55O11o`@{+#@Yj;%"><field name="TEXT">false</field></block></value>
    ! <value name="ARG2"><block type="text" id="yEhqZqxh*}Ip8?yzOW7I"><field name="TEXT">Cool</field></block></value>
    ! <value name="ARG3"><block type="text" id="sYAGk@@-Fz^fIDONX!/i"><field name="TEXT">boolean</field></block></value></block>
    ! <block type="procedures_defcustomnoreturn" id="49kvg:%69IF}@lKJq@(J" x="138" y="213"><mutation statements="false"><arg name="Name"></arg>
    ! <arg name="Initialisierung"></arg>
    ! <arg name="Beschreibung"></arg>
    ! <arg name="Type"></arg></mutation>
    ! <field name="NAME">Variablen anlegen</field>
    ! <field name="SCRIPT">Y3JlYXRlU3RhdGUoTmFtZSwgSW5pdGlhbGlzaWVydW5nLCB7DQogIHJlYWQ6IHRydWUsIA0KICB3cml0ZTogdHJ1ZSwgDQogIG5hbWU6IEJlc2NocmVpYnVuZywgDQogIHR5cGU6IFR5cGUsIA0KICBkZWY6IGZhbHNlDQp9KTs=</field>
    ! <comment pinned="false" h="80" w="160">Hier ist das Javascript drin.</comment></block></xml>


  • Hallo none4711

    Keine schlechte Idee.

    Einfach kann manchmal einfach sein 😄

    Grüße


  • Ich stehe gerade auf dem Schlauch, denn es sind meine ersten Schritte in Blockly.

    Das Script aus dem Spoiler oben habe ich angelegt.

    In meinem Blockly-Script bin ich im Moment so weit, dass ich den Wert des Objekts, das erzeugt werden soll, als Variable vorliegen habe und der Wert könnte nun in das Objekt geschrieben werden.

    Aber wie geht es denn nun weiter mit dem Script von oben?

    Wo und wann rufe ich das wie in Blockly auf? :?:

    Ich brauche da irgendwie nochmal einen Anstoß…


  • @none4711:

    ich habe mir in Blockly mit einem Kunstgriff geholfen.

    Dazu rufe ich in Blockly ein Javascript mit "createstate" auf. `
    Dann schlage ich 3 Funktionen - je nach Datenpunkttyp - vor.
    493_blockly_3createstate.jpg

    ! ````
    <xml xmlns="http://www.w3.org/1999/xhtml"><block type="procedures_defcustomnoreturn" id="ORmhM@AO~Vbt~j|cDEnt" x="137" y="262"><mutation statements="false"><arg name="ID"></arg>
    <arg name="Init"></arg>
    <arg name="Name"></arg>
    <arg name="Einheit"></arg>
    <arg name="Min"></arg>
    <arg name="Max"></arg></mutation>
    <field name="NAME">newNumberDP</field>
    <field name="SCRIPT">Y3JlYXRlU3RhdGUoSUQsIEluaXQsIHsKICAgIHR5cGU6ICdudW1iZXInLAogICAgbmFtZTogTmFtZSwKICAgIHVuaXQ6IEVpbmhlaXQsCiAgICBtaW46IE1pbiwKICAgIG1heDogTWF4Cn0pOw==</field>
    <comment pinned="false" h="80" w="160">Datenpunkt Typ Zahl erzeugen</comment></block>
    <block type="procedures_defcustomnoreturn" id="2@tb5Q,+;3xgyRLR`611" x="137" y="313"><mutation statements="false"><arg name="ID"></arg>
    <arg name="Init"></arg>
    <arg name="Name"></arg></mutation>
    <field name="NAME">newStringDP</field>
    <field name="SCRIPT">Y3JlYXRlU3RhdGUoSUQsIEluaXQsIHt0eXBlOiAnc3RyaW5nJywgbmFtZTogTmFtZX0pOw==</field>
    <comment pinned="false" h="80" w="160">Datenpunkt Typ Zeichenkette erzeugen</comment></block>
    <block type="procedures_defcustomnoreturn" id="s}Pwi720KKlpTUa:!xH5" x="137" y="362"><mutation statements="false"><arg name="ID"></arg>
    <arg name="Name"></arg></mutation>
    <field name="NAME">newBoolDP</field>
    <field name="SCRIPT">Y3JlYXRlU3RhdGUoSUQsIGZhbHNlLCB7dHlwZTogJ2Jvb2xlYW4nLCBuYW1lOiBOYW1lfSk7</field>
    <comment pinned="false" h="80" w="160">Datenpunkt Typ Logikwert erzeugen</comment></block></xml>


  • Danke, jetzt ist es gelöst!

    Und diese Funktionen und Blöcke bekommt man nur durch Import des "Quellcodes" in Blockly eingebunden, oder?

Suggested Topics

  • 9
  • 8
  • 12
  • 4
  • 61
  • 3
  • 6
  • 18

942
Online

36.8k
Users

42.6k
Topics

589.9k
Posts