Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript "Hallo Welt", "Lichtschalter" ….. und dann ???

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 last edited by

      @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.

      1 Reply Last reply Reply Quote 0
      • rantanplan
        rantanplan last edited by

        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

        1 Reply Last reply Reply Quote 0
        • rantanplan
          rantanplan last edited by

          @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

          1 Reply Last reply Reply Quote 0
          • P
            PapaChriLo last edited by

            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.

            1 Reply Last reply Reply Quote 0
            • T
              tempestas last edited by

              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.

              1 Reply Last reply Reply Quote 0
              • ldittmar
                ldittmar Developer last edited by

                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 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators last edited by

                  @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

                  1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators last edited by

                    @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

                    1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 last edited by

                      @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. `

                      1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators last edited by

                        Danke Paul, werde ich sofort machen!

                        Gruß

                        Rainer

                        1 Reply Last reply Reply Quote 0
                        • P
                          PapaChriLo last edited by

                          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.

                          1 Reply Last reply Reply Quote 0
                          • ldittmar
                            ldittmar Developer last edited by

                            @PapaChriLo:

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

                            das wundert mich nicht. Hab es schon öfters gemacht. Ich nutze halt den Umweg über ein Objekt und dann den Trigger, wie hier beschrieben:

                            @ldittmar:

                            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... `

                            Das funktioniert für mich ganz gut.

                            Grüße,

                            ldittmar

                            1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 last edited by

                              @PapaChriLo:

                              Sollte sowas nicht irgendwo in einer DOKU stehen? `
                              Das ist ein Zitat aus http://www.iobroker.net/docu/?page_id=6818&lang=de#Ordner-_und_Dateiliste.

                              1 Reply Last reply Reply Quote 0
                              • Homoran
                                Homoran Global Moderator Administrators last edited by

                                @PapaChriLo:

                                Klar schon nur das ist jetzt gekommen nachdem ich hier diesen Tread begonnen habe und das hinterfragt habe `
                                :?: :?: :?:

                                Das steht seit Jahren in der Doku.

                                du hättest nur auf das blaue <u>Doku</u> klicken müssen, dann wärst du dort gelandet.

                                @PapaChriLo:

                                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 `
                                geht ja auch!, nur der Ansatz ist nicht so, wie du glaubst~~@PapaChriLo:~~

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

                                Gruß

                                Rainer

                                1 Reply Last reply Reply Quote 0
                                • P
                                  PapaChriLo last edited by

                                  Sorry hab ich übersehen. :geek:

                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  1.1k
                                  Online

                                  31.7k
                                  Users

                                  79.7k
                                  Topics

                                  1.3m
                                  Posts

                                  11
                                  40
                                  5304
                                  Loading More Posts
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                  The ioBroker Community 2014-2023
                                  logo