NEWS

'Parent' von Object State herausbekommen



  • Hallo,
    grundsätzlich nutze ich aktuell das Konstrukt 'Event: if objects, und dort dann habe ich dann die entsprechenden boolean-States z.B. auf die ich reagieren möchte:
    ecc979c9-868e-4579-9907-e67115905404-grafik.png ![alt text](image url)

    Nun möchte ich gerne auf die entsprechenden Auslöser-Objekte zugreifen und dort Werte setzen.
    Z.B. habe ich bei meinen FensterSensoren jeweils ein Objekt angelegt in das ich den timestamp des Zeitpunkts hinterlegen möchte wann das Fenster geöffnet wurde.
    So möchte ich das machen:
    73dc8269-92a4-4246-9011-9fd315ab1a82-grafik.png

    Gibt es nun eine geschickte Möglichkeit auf den 'Sender' der das Event ausgelöst hat zuzugreifen, damit ich nicht für jeden Senser ein eignes 'If Fenster1.Sensor.State == 1 then ...' machen muss?

    Wäre für alle Tipps dankbar!

    Viele Grüße
    Christof



  • Gleichzeitig wollte ich eigentlich ein solches 'for each' Konstrukt nutzen; die Frage nach dem Zugriff auf den Parent würde dort genau so gelten.
    Danke!
    a0108c92-804f-45c2-a278-2292ed46554b-grafik.png



  • @Chrisx51 said in 'Parent' von Object State herausbekommen:

    Gibt es nun eine geschickte Möglichkeit auf den 'Sender' der das Event ausgelöst hat zuzugreifen, damit ich nicht für jeden Senser ein eignes 'If Fenster1.Sensor.State == 1 then ...' machen muss?

    Es gibt für unter Trigger ein Item dafür. Bei mir ist es das dritte in der Liste und heisst laut Doku "trigger info". Darin gibt es ein Pulldown in dem man verschiedenste Werte des Objekts das das Event ausgelöst hat verwenden kann.

    gruß,
    Hetti



  • @Chrisx51 sagte:

    Frage nach dem Zugriff auf den Parent

    Blockly_temp.JPG
    Inhalt der JS-Funktion objekt(id):

    return getObject(id);
    


  • @paul53
    Mit der Suche nach dem "." mache ich es auch so.
    Alkerdings, wieso die Funktion?
    In der Variablen idParent steht doch alles drin, oder?



  • @padrino sagte :

    wieso die Funktion?
    In der Variablen idParent steht doch alles drin

    idParent enthält nur die ID. Um auf die Eigenschaften des Parent-Objekts zugreifen zu können, benötigt man getObject(id).



  • @paul53
    Was meinst Du mit "Eigenschaften"?
    Wenn ich die ID habe, dann kann ich damit doch den Wert auslesen (sofern es einen gibt), oder auch ".xxxx" anhängen und da was rein schreiben z.B.?



  • @padrino sagte:

    Wenn ich die ID habe, dann kann ich damit doch den Wert auslesen (sofern es einen gibt)

    Einen Wert gibt es meist nicht, denn das Parent-Objekt ist i.d.R. ein Channel oder ein Device.



  • @paul53
    Ja, dehalb schrieb ich ja "falls es einen gibt".
    Ich verstehe nur nicht, was macht das "return".
    Ich brauch doch nur die ID als string und damit kann ich dann doch weiter arbeiten.
    Ich verstehe nicht, würde aber gern, was Du mit "Eigenschaften" meinst...



  • @padrino sagte:

    was Du mit "Eigenschaften" meinst...

    In Blockly wird das als "Attribut" bezeichnet und mein Beispiel oben zeigt, wie man den Namen des Parent-Objektes erhält. Viele Nutzer vergeben sinnvolle Namen nur dem Kanal bzw. dem Gerät und ändern die Namen der Datenpunkte nicht, müssen also im Skript den Namen des Parent-Objektes ermitteln.

    @padrino sagte in 'Parent' von Object State herausbekommen:

    was macht das "return".

    Das "return" gibt das Objekt an den Funktionsaufruf zurück.


Log in to reply
 

Suggested Topics

  • 3
  • 2
  • 4
  • 9
  • 9
  • 7
  • 24
  • 5

1.7k
Online

32.2k
Users

38.9k
Topics

526.7k
Posts