Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  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.1k

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

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

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

Scheduled Pinned Locked Moved Skripten / Logik
40 Posts 11 Posters 6.8k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    tempestas
    wrote on last edited by
    #11

    Hallo Christian,

    damit du mit deinen Versuchen weiter kommst:

    hast du denn eine Lampe, die du schalten kannst? z.B. Hue oder eine Homematic Schalter oder sonstwas?

    Wenn ja, kannst du im Admin, Reiter Objecte, diese Lampe raussuchen. Dort wirst du einen Channel "state" finden, der üblicherweise true/false anzeigt (i.e. an/aus).

    Du musst für diene Versuche nicht in VIS schalten, du kannst auch im Object direct hinten am Status klicken und true/false ändern.

    Für die Versuche analog der Doku brauchst du natürlich zwei Lampen. Dann kannst du es versuchen und nachvollziehen, was gemeint ist.

    Übrigens löblich, dass du von 0 anfängst und dir alles aneignen willst (absolut ernst gemeint); da lernt man einfach mehr, als gleich zu schreiben "ich will xyz, wie geht das".

    WENN du in VIS schalten willst:

    öffne vis (IP:8082, dann VIS auswählen (muss natürlich installiert sein)). Dann nimmst du dir ein toggle widget oder du gibst links oben bei den widgets "light" ein und bekommst passende Schalter angezeigt. Diesen ziehst du auf deine Fläche und trägst bie "object id" deine Lampe ein, hier den State channel

    Viel Erfolg weiterhin

    P.S: VIS DOKU:

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

    <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 Reply Last reply
    0
    • P Offline
      P Offline
      PapaChriLo
      wrote on last edited by
      #12

      @Dutchman:

      @PapaChriLo:

      Mit anderen Worten, ich hab null Plan/Idee wie ich die VIS dazu bringe, dieses oder ein anderes Skript auszuführen.

      Hab mir einen Wolf gesucht um irgend ein Beispiel zu finden, aber leider. :roll:

      Daher meine Bitte, kann mir hier wer auf die Sprünge helfen.

      DANKE

      Christian `

      Hi Christian,

      Hast du das mal probiert als beispiel?:

      createState('javascript.0.System.Update', false;
      
      on ({
      id: "javascript.0.System.Update",
      change: 'ne',
      val: true
      },
      function(){
         log ("--> Update gestartet!");
         setState('javascript.0.System.Update', false);
                   }
          });
      });
      
      

      Beispiel mit object script triggeren:

      http://forum.iobroker.net/viewtopic.php … pt+starten

      Alternatief script ein/ausschalten:

      http://forum.iobroker.net/viewtopic.php ... pt+starten

      http://forum.iobroker.net/viewtopic.php ... pt+starten

      (Das waren uebrigens such ergebnisse mit search "vis script starten") `

      Hallo Dutchmann!

      Ja dieses Beispeil hab ich auch gefunden.

      Ich verstehe auch den Code, denke ich zumindestens.

      Was mir allerdings fehlt ist, wie sag ich dem Button, der Schaltfläche oder irgend einem anderen Widget

      das er genau dieses Skript ausführen soll wenn ich in klicke.

      Da komme ich nicht weiter.

      Vermutlich denke ich auch nur zu kompliziert.

      Keine Ahnung.

      Christian

      LG

      Christian

      1 Reply Last reply
      0
      • P Offline
        P Offline
        pix
        wrote on last edited by
        #13

        Hallo Christian,

        tempestas hat es schon gut erklärt.
        @PapaChriLo:

        Nur mir fehlt eben einfach die Doku die die Verbindung der VIS mit dem Javascript beschreibt.

        Egal wo auch immer es erklärt bzw. dokumentiert wird.

        WO kann ich das nachlesen. `
        Es gibt keine direkte Verbindung. Beide Adapter (Vis und Javascript) sind mit Admin verbunden. In Admin werden die Objekte (Datenpunkte) verwaltet. Javascript kann Objekte anlegen, beschreiben, löschen, ändern, eigentlich alles. VIS kann sie nur beschreiben (zB true/false) und anzeigen.

        Also Vis führt keine Skripte aus, sondern beschreibt Objekte. Skript (oder auch Szenenadapter) reagiert dann auf Objektänderung.

        Skripte müssen nicht extra ausgeführt werden, sondern sind immer aktiv.

        Pix

        ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

        1 Reply Last reply
        0
        • R Offline
          R Offline
          RappiRN
          Most Active
          wrote on last edited by
          #14

          @pix:

          Skripte müssen nicht extra ausgeführt werden, sondern sind immer aktiv. `

          Wenn die Skripte aktiv sind müssen sie nicht extra ausgeführt werden, dafür sind ja die Trigger, das habe ich auch schon gelernt! 😄 Aber man kann Skripte sehrwohl aktivieren oder deaktivieren, auch über vis, ob es Sinn macht oder nicht, muss man selbst entscheiden.

          Enrico

          1 Reply Last reply
          0
          • P Offline
            P Offline
            PapaChriLo
            wrote on last edited by
            #15

            Hallo Leute!

            Ich glaube ich muss das um was es mir eigentlich geht mal anders beschreiben.

            Erst mal zu mir:

            Ich bin nicht ganz unbedarft was das Programmieren angeht.

            Ich habe fast 20 Jahre Maschinensteuerungen für Sondermaschinen entwickelt und programmiert.

            Zwar nicht in Javascript sondern in VB aber ich denke das ist egal.Ich fange mit diesen Codebeispielen also durchaus etwas an und gehe auch davon aus das ich sie verstehe.

            Zum Stand der Dinge:

            Ich habe einen PI auf dem der ioBroker läuft.An diesem ist ein Touchscreen angeschlossen und das Ganze ist bei uns im Flur in der Wand eingebaut.

            Ich hab mir z.B. für jeden Raum ein eigene View gebaut in dem ich die relevanten Sensoren und Aktoren

            des jeweiligen Raumes visualisiere.

            Des Weiteren einen View für Wetter und Klima,

            einen mit verschiedenen Kalendern (Termine, Geburtstage)

            und noch einige andere Views.

            Das funktioniert soweit auch alles und ist vorerst mal zufriedenstellend.

            Um was geht es mir:

            Mir geht es um die Verbindung der VIS mit Javascript.

            Mit anderen Worten, ich will mir verschiedenste Skripte bauen, die dann eben zu einem bestimmten Zeitpunkt oder bei einem bestimmten Ereignis oder wenn ich auf einen bestimmten Button in der VIS drücke, oder was auch immer, ausgeführt werden sollen.

            Was fehlt mir:

            Ich behirne einfach nicht, 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.

            Da fehlt mir irgendetwas und ich komm einfach nicht drauf was es ist.

            Wie schon erwähnt, vielleicht denke ich da auch viel zu kompliziert.

            Keine Ahnung.

            LGChristian

            PS.: Danke jedenfalls für eure Bemühungen. Ich weiß ich bin manchmal etwas schwer von Begriff.

            LG

            Christian

            1 Reply Last reply
            0
            • AlCalzoneA Offline
              AlCalzoneA Offline
              AlCalzone
              Developer
              wrote on last edited by
              #16

              @PapaChriLo:

              einem Button in der VIS klar machen soll, dass wenn er betätigt wird er dann eben ein ganz bestimmtes Skript ausführen soll. `
              Die Vorgehensweise in ioBroker ist hierfür etwas anders als du erwartest.

              • Das Skript ist immer aktiv und überwacht mit einem Trigger einen oder mehrere Datenpunkte (die du dafür auch erstellen musst). Der meiste Code befindet sich innerhalb von Triggern, d.h. wird nur bei Bedarf ausgeführt.

              • Mit dem Button setzt du den überwachten Datenpunkt auf true/false

              • Der Trigger innerhalb des Skripts reagiert darauf, d.h. führt den jeweiligen Codeblock aus.

              Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

              1 Reply Last reply
              0
              • R Offline
                R Offline
                RappiRN
                Most Active
                wrote on last edited by
                #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 Reply Last reply
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  wrote on last edited by
                  #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 Reply Last reply
                  0
                  • P Offline
                    P Offline
                    PapaChriLo
                    wrote on last edited by
                    #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. 😢

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

                    Christian
                    3722_iobroker.png

                    LG

                    Christian

                    1 Reply Last reply
                    0
                    • HomoranH Do not disturb
                      HomoranH Do not disturb
                      Homoran
                      Global Moderator Administrators
                      wrote on last edited by
                      #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 Reply Last reply
                      0
                      • T Offline
                        T Offline
                        tempestas
                        wrote on last edited by
                        #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 Reply Last reply
                        0
                        • R Offline
                          R Offline
                          RappiRN
                          Most Active
                          wrote on last edited by
                          #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 Reply Last reply
                          0
                          • P Offline
                            P Offline
                            PapaChriLo
                            wrote on last edited by
                            #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 Reply Last reply
                            0
                            • R Offline
                              R Offline
                              RappiRN
                              Most Active
                              wrote on last edited by
                              #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 Reply Last reply
                              0
                              • HomoranH Do not disturb
                                HomoranH Do not disturb
                                Homoran
                                Global Moderator Administrators
                                wrote on last edited by
                                #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 Reply Last reply
                                0
                                • paul53P Offline
                                  paul53P Offline
                                  paul53
                                  wrote on last edited by
                                  #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 Reply Last reply
                                  0
                                  • rantanplanR Offline
                                    rantanplanR Offline
                                    rantanplan
                                    wrote on last edited by
                                    #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 Reply Last reply
                                    0
                                    • rantanplanR Offline
                                      rantanplanR Offline
                                      rantanplan
                                      wrote on last edited by
                                      #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 Reply Last reply
                                      0
                                      • P Offline
                                        P Offline
                                        PapaChriLo
                                        wrote on last edited by
                                        #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 Reply Last reply
                                        0
                                        • T Offline
                                          T Offline
                                          tempestas
                                          wrote on last edited by
                                          #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 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          394

                                          Online

                                          32.4k

                                          Users

                                          81.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe