Ankündigung

Einklappen
Keine Ankündigung bisher.

Triggern eines Events aus SmarthomeNG

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Triggern eines Events aus SmarthomeNG

    Hallo,

    ich möchte gerne ein Javascript triggern wenn ein Werte aus SmarthomeNG geändert wird. Ich benötige dies um eine bestimmte Seite aufzurufen oder ein Popup oder Notification aufzuschalten.

    Hat jemand eine Idee oder Code-Snippet?

    Gruß

    Sebastian
    Zuletzt geändert von Sprocky; 15.02.2017, 08:36.

    #2
    In der kommenden 2.9 kann basic.print dazu missbraucht werden:
    Code:
    {{ basic.print('', 'bath.value', 'text', 'alert("Hallo"); "";') }}
    Das ; ""; am Schluss ist wichtig, damit das Widget selbst nichts anzeigt.


    In 2.8 dürfte dies zwar mit basic.formula ebenfalls funktionieren, da lässt sich aber die Ausgabe durch das Widget nicht unterdrücken. Dieses müsstest du dann per css ausblenden.
    Code:
    {{ basic.formula('formula', 'bath.value', '', 'alert("Hallo")') }}

    Für eine einfache Meldung kannst du übrigens auch status.message oder status.notify nutzen.


    Jetzt wo ich das so schreibe, habe ich für 2.9 noch eine Verbesserungsidee:
    Ein neuer Typ "script" (anstelle "text"), welcher von sich aus schon gar keine Ausgabe macht. So kann man sich das "" am Ende sparen.

    Kommentar


      #3
      Danke fürden Tipp! Kann man den Wert des Items auch mit auswerten? Z.B. diesen Wert im Funktionskopf mit zu über geben?

      Gruß

      Sebastian

      Kommentar


        #4
        Ja, du kannst im Script einfach den Platzhalter VAR1 für den Wert des ersten Items verwenden (bei mehreren angegebenen Items auch VAR2, VAR3 usw.).

        Code:
        {{ basic.print('', 'bath.value', 'text', 'alert(VAR1); "";') }}
        oder
        {{ basic.formula('formula', 'bath.value', '', 'alert(VAR1)') }}
        Ein kleiner Unterschied zwischen 2.8 und 2.9 ist dabei zu beachten: Bei basic.print in 2.9 ist VAR1 eine echte Variable im JavaScript, bei basic.formula in 2.8 ein Platzhalter, der ersetzt wird. Falls der Wert ein String ist, muss deshalb VAR1 bei 2.8 in Anführungszeichen stehen, bei 2.9 jedoch nicht. Aber nur, wenn es ein String ist, ein Boolean oder eine Zahl sollte auch in 2.8 ohne Anführungszeichen geschrieben werden.

        Kommentar

        Lädt...
        X