Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript "Hallo Welt", "Lichtschalter" ….. und dann ???

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

JavaScript "Hallo Welt", "Lichtschalter" ….. und dann ???

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
40 Beiträge 11 Kommentatoren 6.8k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • R Offline
    R Offline
    RappiRN
    Most Active
    schrieb am zuletzt editiert von
    #17

    Ich würde sagen, mit den Skripten kannst du automatisch auf irgendwelche Änderungen reagieren.

    Die Button im vis kannst du doch meist direkt mit den Aktoren verbinden und dann sofort und ohne Skript schalten. In der Konfiguration zu den Button kannst du dann einstellen was reagieren, oder welches Objekt schalten soll, bzw. angezeigt werden soll.

    Enrico

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #18

      @PapaChriLo:

      wie ich z.B. einem Button in der VIS klar machen soll, dass wenn er betätigt wird er dann eben ein ganz bestimmtes Skript ausführen soll. `
      Es werden keine Skripte ausgeführt (die laufen immer), sondern es werden Funktionen aufgerufen.
      @PapaChriLo:

      die dann eben zu einem bestimmten Zeitpunkt… `
      Das macht man mit https://github.com/ioBroker/ioBroker.javascript#schedule.
      @PapaChriLo:

      …oder bei einem bestimmten Ereignis... `
      Dazu gibt es https://github.com/ioBroker/ioBroker.javascript#on–-subscribe-on-changes-or-updates-of-some-state, mit dem man meistens auf Wertänderung triggert.
      @PapaChriLo:

      …oder wenn ich auf einen bestimmten Button in der VIS drücke `
      Dazu aktualisiert man mit dem VIS-Button einen Datenpunkt, der im Skript als Trigger ausgewertet wird.

      Prinzip:

      const idAuslöser = '...';
      const idButton = '...';
      
      function meineFunktion() {
          ...
      }
      
      // zeitabhängiges Ereignis
      schedule('0 * * * *', meineFunktion);  // jede volle Stunde
      
      // Ereignis ist Wertänderung eines Datenpunktes
      on(idAuslöser, meineFunktion);
      
      // Ereignis ist (VIS-)Button-Datenpunkt
      on({id: idButton}, meineFunktion);  // Triggern bei Aktualisierung des Zeitstempels
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • P Offline
        P Offline
        PapaChriLo
        schrieb am zuletzt editiert von
        #19

        So, OK das die Skripte immer laufen hab ich jetzt kapiert.

        Das man dann quasi nur die Funktion in dem Skript aufruft hab ich auch kapiert.

        Das ich meinen Button mit einem Datenpunkt verknüpfen muss ist mir auch schon seit längerem klar.

        Nur genau da setzt es jetzt bei mir aus.

        Ich hab z.B. ein Skript gebaut, welches das Browserfenster neu laden soll.

        Hier der Code:


        createState('javascript.0.VIS.Skriptstart', false, {name: 'NewLoad'});

        on('javascript.0.VIS.Skriptstart', function (obj) {

        if (!obj.state.ack && obj.state.val) {

        //Browser neu laden

        window.location.reload();

        }

        });


        Ich denke das Skript sollte funktionieren, lass mich aber auch gerne eines Besseren belehren.

        So jetzt hab ich einen View der heißt System bei mir, auf diesem View hab ich einen naviation-Button.

        Bei diesem Button habe ich in der Objekt ID das dementsprechende Skript eingetragen.

        und jetzt weiß ich nicht mehr weiter, denn es funktioniert leider nicht. :cry:

        Und ich hab echt null Plan warum nicht. :oops:

        Christian
        3722_iobroker.png

        LG

        Christian

        1 Antwort Letzte Antwort
        0
        • HomoranH Nicht stören
          HomoranH Nicht stören
          Homoran
          Global Moderator Administrators
          schrieb am zuletzt editiert von
          #20

          Bei Skripten sind andere zuständig ;-)

          Aber was willst du mit dem Navigation widget?

          Warum nimmst du nicht einfach ein on/off toggle?

          Das HQ-Widget kannst du auch als Taster konfigurieren.

          Und Skript enabled ist auch nicht der DP, den du benötigst.

          Du müsstest den DP auf den dein Skript triggert einbinden.

          Gruß

          Rainer

          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

          1 Antwort Letzte Antwort
          0
          • T Offline
            T Offline
            tempestas
            schrieb am zuletzt editiert von
            #21

            Du hast zum einen das Skript in die Einstellungen für die Sichtbarkeit (des Widgets) reingeschrieben. Das kann nicht funktionieren.

            Dieser Bereich ist dafür vorgesehen, z.B. Texte (oder was auch immer) ein- oder auszublenden, wnen bestimmte Bedingungen (nicht) erfüllt sind. Also eine optische Sache.

            <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

            1 Antwort Letzte Antwort
            0
            • R Offline
              R Offline
              RappiRN
              Most Active
              schrieb am zuletzt editiert von
              #22

              Ein Navigationsbutton ist dafür falsch. Und du hast deinen Datenpunkt im Feld Sichtbarkeit eingetragen, da kommen nur Bedingungen rein, wenn das Widget nicht immer zu sehen sein soll.

              Du kannst z.B. basic HTML state nehmen.

              Enrico

              1 Antwort Letzte Antwort
              0
              • P Offline
                P Offline
                PapaChriLo
                schrieb am zuletzt editiert von
                #23

                Diese Buttons die du da anführst find ich leider alle nicht. :?:

                Was den DP angeht.

                Ich hab ja nur diesen Datenpunkt, wie soll ich dann einen anderen auswählen.
                3722_iobroker.png

                LG

                Christian

                1 Antwort Letzte Antwort
                0
                • R Offline
                  R Offline
                  RappiRN
                  Most Active
                  schrieb am zuletzt editiert von
                  #24

                  Die Button musst du im Editor von vis raussuchen.

                  2216_editor.jpg

                  Den z.B., die anderen Beispiele sind weiter unten in der Leiste, oder oben den Filter benutzen. Sollte die Leiste noch leer sein bei dir, ich weiß jetzt nicht genau, was bei "Standart" alles mitinstalliert wird, musst du noch ein paar vis-Adapter (widget-Adapter) installieren.

                  Enrico

                  1 Antwort Letzte Antwort
                  0
                  • HomoranH Nicht stören
                    HomoranH Nicht stören
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von
                    #25

                    Jetzt mal tieeef Luft holen und zurück auf LOS ;-)

                    @PapaChriLo:

                    Diese Buttons die du da anführst find ich leider alle nicht. :?: `
                    in der Grundinstalltion von vis sind nur die basic widgets enthalten, andere müssen als Adapter nachinstalliert werden.

                    Die Doku schon gelesen?

                    http://www.iobroker.net/docu/?page_id=2754&lang=de

                    @PapaChriLo:

                    Was den DP angeht.

                    Ich hab ja nur diesen Datenpunkt, wie soll ich dann einen anderen auswählen. `
                    Du solltest ja (und ich dachte du hättest) einen eigenen Datenpunkt anlegen.

                    Gruß

                    Rainer

                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    1 Antwort Letzte Antwort
                    0
                    • paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #26

                      @Homoran:

                      Du solltest ja (und ich dachte du hättest) einen eigenen Datenpunkt anlegen. `
                      Hat er nicht, da er das Skript "NewLoad" unter der Gruppe "global" erstellt hat. Damit wird es nie gestartet, da Skripte unter "global" nur in andere Skripte eingefügt werden und zusammen mit diesen gestartet werden.

                      @Christian: Erstelle das Skript in der Gruppe "common" und lösche es unter "global". Nach Start des Skriptes sollte dann auch der neue Datenpunkt erscheinen.

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      1 Antwort Letzte Antwort
                      0
                      • rantanplanR Online
                        rantanplanR Online
                        rantanplan
                        schrieb am zuletzt editiert von
                        #27

                        Hallo PapaChriLo

                        Scripte ein-/ausschalten macht nicht wirklich Sinn.

                        ioBroker ist ereignisorientiert.

                        Ereignisse werden in/mit Datenpunkten abgebildet.

                        Datenpunkte können Eigenschaften eines Aktors sein (…STATE = true/false oder ....Temperatur = 20)

                        oder Variablen (myBol = true /false usw.)

                        Die Widgets in VIS kann man mit Datenpunkten verknüpfen (Allgemein\Objekt ID).

                        Z.B. Das Widget "basic bulb on/off"

                        Die kann man mit dem .STATE einen "Lampen"-Aktors verknüpfen.

                        Jetzt kann man über dieses Widget die Lampe ein-/ausschalten.

                        Man kann dieses Widget aber auch mit einer boolschen Variable verknüpfen.

                        Objekt ID = myBol.state

                        Jetzt kann man über dieses Widget den Zustand der Variablen ändern (true<->false)

                        Nun kommt JavaScript ins Spiel.

                        Mit JavaScript werden Datenpunkte getriggert.

                        Also auf Zustandsänderungen reagiert.

                        Wenn sich der Zustand von myBol von false auf true ändert mache dieses und jenes.

                        Wenn die Lampe an geht (.State von false auf true) mach ...........

                        Die gemeinsame Schnittstelle sind also die Datenpunkte.

                        Darüber findet die "Kommunikation" statt.

                        Grüße

                        Rantanplan

                        CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                        1 Antwort Letzte Antwort
                        0
                        • rantanplanR Online
                          rantanplanR Online
                          rantanplan
                          schrieb am zuletzt editiert von
                          #28

                          @paul53:

                          Hat er nicht, da er das Skript "NewLoad" unter der Gruppe "global" erstellt hat. Damit wird es nie gestartet, da Skripte unter "global" nur in andere Skripte eingefügt werden und zusammen mit diesen gestartet werden. `
                          In irgendeiner JS Version sollte man eine Warnung einbauen.("Bist Du wirklich sicher….....")

                          Viele Anfänger, mich eingeschlossen, stolpern über dieses "global".

                          Grüße

                          Rantanplan

                          CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                          1 Antwort Letzte Antwort
                          0
                          • P Offline
                            P Offline
                            PapaChriLo
                            schrieb am zuletzt editiert von
                            #29

                            OK Leute Danke.

                            Da hab ich ja jetzt mal einiges zum studieren für die nächsten ein zwei Tage.

                            Also das mit dem Global, dachte mir wenn ich's da reintu kann nicht viel schief gehen weil es dann halt Global aufrufbar ist.

                            So meine Gedanken. Da sieht man mal wie man falsch liegen kann.

                            Mal ehrlich, wo kann man das nachlesen von woher bekomme ich dieses Wissen.

                            Ich meine das kann man sich ja nicht alles so mir nichts dir nichts aus den Fingern saugen.

                            Ich weis nicht wie viele posts ich in den letzten Wochen gelesen habe, unzählige.

                            Was mir auffällt das es sicherlich viele gibt die genau an diesen Dingen scheitern und dann warscheinlich das Handtuch werfen.

                            Soll jetzt keine Kritik sein, sonderen ein Vorschlag zur Verbesserung.

                            Wenn gewisse Wissensstände vorrausgesetzt werden, in welcher Form auch immer, dann finde ich sollte darauf Aufmerksam gemacht werden, so das jeder einzelne für sich entscheiden kann ob er sich dieses Wissen vorab anderwertig aneignet oder nicht.

                            Ansonsten werden viele hier viele Stunden damit verbringen an diesem Projekt zu scheitern und das ist glaube ich nicht der Sinn der Sache.

                            LG

                            Christian

                            1 Antwort Letzte Antwort
                            0
                            • T Offline
                              T Offline
                              tempestas
                              schrieb am zuletzt editiert von
                              #30

                              Fairerweise muss man sagen, dass du dich eben mit einer sehr klaren Zielsetzung und eher komplexten Themen als Ziel an ioBroker gemacht hast.

                              Für alle, die weniger wollen ist VIS z.B. sehr einfach, da man eben drag, drop and click (für die Verknüpfungen) nutzen kann. Für einfache wenn-dann-Verknpüfungen gibt es den Scenen Adapter.

                              Wer mehr will, muss mehr lesen und lernen.

                              Ich stand im März bei 0, ohne jede IT Ahnung, null Programmierung. Jetzt kann ich den Krams zumindest zu ca 90% lesen (denke ich), lerne aber jeden Tag weiter von den Könnern hier.

                              <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

                              1 Antwort Letzte Antwort
                              0
                              • ldittmarL Offline
                                ldittmarL Offline
                                ldittmar
                                Developer
                                schrieb am zuletzt editiert von
                                #31

                                Hi,

                                hab es gerade gelesen und wollte mal eine Idee geben. Gewünscht ist, dass man per VIS ein JavaScript ausführt, richtig? Das geht ganz einfach. Zuerst muss ein Objekt erstellt werden "boolean" true/false - nennen wir es triggerTestObjekt.

                                Jetzt im JavaScript muss man diesen triggerTestObjekt observieren… also ein Trigger drauf setzen. Wenn sich das ändert, wird irgendwas gemacht...

                                Im Vis wird jetzt einfach ein Schalter mit dem Objekt verbunden und schon schaltet man über Vis ein JavaScript...

                                Grüße,

                                ldittmar

                                1 Antwort Letzte Antwort
                                0
                                • HomoranH Nicht stören
                                  HomoranH Nicht stören
                                  Homoran
                                  Global Moderator Administrators
                                  schrieb am zuletzt editiert von
                                  #32

                                  @PapaChriLo:

                                  wo kann man das nachlesen von woher bekomme ich dieses Wissen. `
                                  zum Beispiel das hier?
                                  ~~@[url=http://www.iobroker.net/docu/?page_id=6818⟨=de#Ordner-_und_Dateiliste:~~

                                  ~~Doku"]~~Skripte, die im Ordner global gespeichert wurden, sind globale Skripte. Diese werden intern vor jedes andere Skript kopiert, also vorher abgearbeitet. Somit lassen sich globale Funktionen auf mehrere Skripte anwenden. Variablen in globalen Skripten können in anderen Skripten benutzt werden. `

                                  Gruß

                                  Rainer

                                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                  1 Antwort Letzte Antwort
                                  0
                                  • HomoranH Nicht stören
                                    HomoranH Nicht stören
                                    Homoran
                                    Global Moderator Administrators
                                    schrieb am zuletzt editiert von
                                    #33

                                    @ldittmar:

                                    Gewünscht ist, dass man per VIS ein JavaScript ausführt, richtig? `
                                    Da bin ich mir gar nicht so sicher, bekomme das aber so richtig noch nicht zusammen.

                                    Es soll IMHO "nur" aufgrund einer Änderung in vis ein Skript ausglöst werden. Eigentlich eine typische Triggerung.

                                    Gruß

                                    Rainer

                                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                    1 Antwort Letzte Antwort
                                    0
                                    • paul53P Offline
                                      paul53P Offline
                                      paul53
                                      schrieb am zuletzt editiert von
                                      #34

                                      @Homoran:

                                      Variablen in globalen Skripten können in anderen Skripten benutzt werden. `
                                      Das widerspricht der Aussage in der JS-Adapter Doku von Bluefox bzw. kann falsch verstanden werden
                                      @Doku JS-Adapter:

                                      Global script will be just prepend to the normal script and compiled, so you cannot share data between scripts via global scrips. Use states for it. Ersetze es besser durch: > Globale Skripte dienen als Sammlung häufig verwendeter eigener Funktionen. `

                                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                      1 Antwort Letzte Antwort
                                      0
                                      • HomoranH Nicht stören
                                        HomoranH Nicht stören
                                        Homoran
                                        Global Moderator Administrators
                                        schrieb am zuletzt editiert von
                                        #35

                                        Danke Paul, werde ich sofort machen!

                                        Gruß

                                        Rainer

                                        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                        1 Antwort Letzte Antwort
                                        0
                                        • P Offline
                                          P Offline
                                          PapaChriLo
                                          schrieb am zuletzt editiert von
                                          #36

                                          Leute ich glaube ich hab jetzt erst mal verstanden wie das funktioniert, bzw. funktionieren soll.

                                          Werde mir das morgen dann mal genauer anschauen.

                                          zum Beispiel das hier?
                                          ~~@[url=http://www.iobroker.net/docu/?page_id=6818⟨=de#Ordner-_und_Dateiliste:~~

                                          ~~Doku"]~~Skripte, die im Ordner global gespeichert wurden, sind globale Skripte. Diese werden intern vor jedes andere Skript kopiert, also vorher abgearbeitet. Somit lassen sich globale Funktionen auf mehrere Skripte anwenden. Variablen in globalen Skripten können in anderen Skripten benutzt werden.

                                          Gruß

                                          Rainer `

                                          #Rainer

                                          Klar schon nur das ist jetzt gekommen nachdem ich hier diesen Tread begonnen habe und das hinterfragt habe.Sollte sowas nicht irgendwo in einer DOKU stehen?

                                          Was mich auch etwas verwundert, das einige hier offensichtlich sehr verwundert sind das ich ein Skript aus der VIS aufrufen will.

                                          Wenn nicht das, für was brauch ich denn dann das ganze Bremborium mit Javascript CSS usw..

                                          Genau das reizt mich eigentlich am ioBroker, das ich da nicht nur irgendwelche vorgegebenen Steuerelemente auf ein View zusammenklicke und das wars dann, sondern das man da dann eben noch mehr damit machen kann. Denn ganz ehrlich für eine reine Visualisierung der Homatic-Komponenten gibt’s wesentlich bessere Programme als den ioBroker. Die sind zwar nicht kostenfrei funktionieren aber einwandfrei und sehen auch noch sehr gut aus, wenn man denn das dementsprechende Geld dafür ausgibt.

                                          Wie auch immer schauma mal wie es weiter geht in den nächsten Tagen.

                                          LG

                                          Christian

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          756

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe