Skip to content
  • Home
  • 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
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Cloud Dienste
  4. Neuer Adapter: iobroker.alexa2

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Neuer Adapter: iobroker.alexa2

Scheduled Pinned Locked Moved Cloud Dienste
581 Posts 76 Posters 171.1k Views 3 Watching
  • 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.
  • L Offline
    L Offline
    Lucky
    wrote on last edited by
    #442

    @apollon77:

    GitHub issue bitte … vielleicht geht sowas in der Art ... verspreche aber nichts.

    Und ich weiß auch nicht ob man das unbedingt will. So oft wie alexa bei uns beim Fernsehen oder auch mal nebenher an geht ... hm ...

    Gesendet vom Handy ... `

    ok mach ich !

    wofür man es nutzt ist ja jedem selbst überlassen, man könnte damit auch z.b. das optische Feedback des Echo auf eine Hue Leute auslagern usw..

    1 Reply Last reply
    0
    • L Offline
      L Offline
      ltsalvatore
      wrote on last edited by
      #443

      @ltsalvatore:

      @ooooli:

      Hier das Script nochmal als Export. Sollte nun iimportierbar sein… `

      super, danke fürs hochladen.

      ich überlege gerade, ob ich anstatt mit dem geofencing das ganze mit dem tr-064 adapter umsetze.

      dort gibt es zu jedem device die beiden werte lastactive und lastinactive.

      so spare ich mir die installation eines weiteren adapters.

      müsste jetzt nur noch überlegen, wie die abfrage auszusehen hat. :roll: :?

      edit:

      ok,.. vielleicht habe ich mich doch zu früh gefreut?

      dachte die beiden werte würden anzeigen, wann das geräte das letzte mal erreichbar (lastactive) und das letzte mal bevor das gerät nicht mehr erreichbar war (lastinactive) anzeigen wüürde…. `

      so.. es scheint doch zu funktionieren bzw. aktualisieren sich die werte der objekte in dem tr-064 adapters wie gewünscht.

      meine idee nun, wenn das gerät 6 stunden inaktiv war, dann erst alexa befehlen, dass sie guten abend sagen soll.

      um das jetzt umzusetzen, würde es mich freuen, etwas hilfe von den blockly experten zu bekommen, auch wenn es eine einzige und evtl. recht simple abfrage ist.

      umsetzen wollte ich das ganze so:

      Wenn wert von "lastInactive-ts" - "lastActive-ts" >= 21600, dann "guten abend"

      danke schon mal

      1 Reply Last reply
      0
      • C Offline
        C Offline
        csamaggi
        wrote on last edited by
        #444

        @Lucky:

        Sehr schöne Arbeit, vielen dank dafür !

        ich würde mir wünschen, (falls möglich) einen Datenpunkt der mit true oder false den jeweiligen Aktivzustand eines Device anzeigt.

        Also wenn ich "Alexa" sage und der Statusring am Gerät leuchtet, das der Datenpunkt auf true wechselt und wider zurück

        Ein nutzen wäre z.b. das kurzfristige Stumm schalten z.b. des Fernsehers oder Verstärkers zum besseren Verständnis des gesprochenen ` Hallo lucky, gute Idee wenn du sonos Geräte besitzt geht dies automatisch sobald du alexa ansprichst dann wird der Ton gesenkt. Nur beim TV geht dies leider nicht beim hören von Musik schon. Warum auch immer.

        Wie gesagt gebe dir recht wäre eine feine Sache.

        Mfg Maggi

        Gesendet von meinem SM-G955F mit Tapatalk

        1 Reply Last reply
        0
        • L Offline
          L Offline
          ltsalvatore
          wrote on last edited by
          #445

          @ltsalvatore:

          @ltsalvatore:

          @ooooli:

          Hier das Script nochmal als Export. Sollte nun iimportierbar sein… `

          super, danke fürs hochladen.

          ich überlege gerade, ob ich anstatt mit dem geofencing das ganze mit dem tr-064 adapter umsetze.

          dort gibt es zu jedem device die beiden werte lastactive und lastinactive.

          so spare ich mir die installation eines weiteren adapters.

          müsste jetzt nur noch überlegen, wie die abfrage auszusehen hat. :roll: :?

          edit:

          ok,.. vielleicht habe ich mich doch zu früh gefreut?

          dachte die beiden werte würden anzeigen, wann das geräte das letzte mal erreichbar (lastactive) und das letzte mal bevor das gerät nicht mehr erreichbar war (lastinactive) anzeigen wüürde…. `

          so.. es scheint doch zu funktionieren bzw. aktualisieren sich die werte der objekte in dem tr-064 adapters wie gewünscht.

          meine idee nun, wenn das gerät 6 stunden inaktiv war, dann erst alexa befehlen, dass sie guten abend sagen soll.

          um das jetzt umzusetzen, würde es mich freuen, etwas hilfe von den blockly experten zu bekommen, auch wenn es eine einzige und evtl. recht simple abfrage ist.

          umsetzen wollte ich das ganze so:

          Wenn wert von "lastInactive-ts" - "lastActive-ts" >= 21600, dann "guten abend"

          danke schon mal `

          ich hoffe es funktioniert :-D
          6497_screenshot_2018.08.03_10_28_42_001.jpg

          1 Reply Last reply
          0
          • G Offline
            G Offline
            Granten
            wrote on last edited by
            #446

            Hallo,

            wie ist es möglich über Alexa und die Routinen Werte eines Objekts abzurufen?

            1 Reply Last reply
            0
            • haselchenH Offline
              haselchenH Offline
              haselchen
              Most Active
              wrote on last edited by
              #447

              @apollon77

              Ich habe über den Adapter Bluetooth Datenpunkte meiner gespeichterten Geräte mit Alexa.

              Nun verbinde ich eines, trotzdem bleibt der Datenpunkt connected auf false.

              Er ändert sich auch nicht automatisch wenn ich den "Button" drücke oder als Wert selber true eingebe.

              Habe ich da was übersehen?

              Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

              1 Reply Last reply
              0
              • apollon77A Offline
                apollon77A Offline
                apollon77
                wrote on last edited by
                #448

                @Granten:

                Hallo,

                wie ist es möglich über Alexa und die Routinen Werte eines Objekts abzurufen? `
                Routinen Gar nicht meines Wissens nach.

                Gesendet vom Handy …

                Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                1 Reply Last reply
                0
                • apollon77A Offline
                  apollon77A Offline
                  apollon77
                  wrote on last edited by
                  #449

                  @haselchen:

                  @apollon77

                  Ich habe über den Adapter Bluetooth Datenpunkte meiner gespeichterten Geräte mit Alexa.

                  Nun verbinde ich eines, trotzdem bleibt der Datenpunkt connected auf false.

                  Er ändert sich auch nicht automatisch wenn ich den "Button" drücke oder als Wert selber true eingebe.

                  Habe ich da was übersehen? `
                  Bluetooth Status wird aktuell noch nur beim Adapter Start aktualisiert. Im GitHub abstimmen bitte. Issue gib’s schon.

                  Gesendet vom Handy …

                  Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                  • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                  • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                  1 Reply Last reply
                  0
                  • haselchenH Offline
                    haselchenH Offline
                    haselchen
                    Most Active
                    wrote on last edited by
                    #450

                    Alles klar, danke für die schnelle Antwort .

                    Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

                    1 Reply Last reply
                    0
                    • sissiwupS Offline
                      sissiwupS Offline
                      sissiwup
                      wrote on last edited by
                      #451

                      Hallo,

                      habe leider das Update auf Alexa 2 gemacht.

                      Wie komme ich denn auf den Alexa 1 Adapter zurück?

                      Vlt. stehe ich auch auf dem Schlauch: Habe jetzt Alexa zugemüllt mit technischen Geräten, die nie zu steuern sind Z.B. HM RCV 50 BidCoS RF 21.LEVEL

                      und div. andere.

                      Ich hatte bisher im Alexa nur eine Hand voll Geräte aufgenommen und auch alle mit neuen Namen.

                      Diese sind teilweise übernommen worden (nicht alle korrekt geschrieben aber immerhin).

                      Wie füge ich denn einzelne Geräte zu Alexa 2 hinzu, wie ändere ich den Namen (oder geht das nur über die Objekt-Sicht?)

                      Der Alexa 1 Adapter war erheblich einfacher zu bedienen.

                      Noch eine Frage: Warum sind so ca. 30% der Geräte offline. Muster für mich nicht erkennbar ein paar Schalter, eine Rollo, ein paar Szenen…

                      Hat sich etwas beim cloud-Adapter geändert? Wie ist das Zusammenspiel?

                      MfG

                      Sissi

                      –-----------------------------------------

                      1 CCU3 1 CCU2-Gateway 1 LanGateway 1 Pi-Gateway 1 I7 für ioBroker/MySQL


                      1 Reply Last reply
                      0
                      • apollon77A Offline
                        apollon77A Offline
                        apollon77
                        wrote on last edited by
                        #452

                        Bei den smart devices unterscheiden sich Version 1 und 2 nicht. Die Liste ist die gleiche die auch in der alexa app angezeigt wird. Wenn du da schon „Müll“ drin hast dann wird der auch da angezeigt. Also schau mal in die App. Und wenn musst du da aufräumen.

                        Gesendet vom Handy …

                        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                        1 Reply Last reply
                        0
                        • dslraserD Offline
                          dslraserD Offline
                          dslraser
                          Forum Testing Most Active
                          wrote on last edited by
                          #453

                          Hat mal Jemand ein kurzes Blockly Beispiel wie ich den History trigger sinnvoll nutze ?

                          Ich möchte eine Abfrage an einem Echo starten und dann von genau dem gleichen Echo eine Antwort bekommen.

                          PS: also Konkret frage ich einen Echo z.B. im Wohnzimmer ob alle Fenster geschlossen sind und bekomme dann aus einem bestehenden Datenpunkt (Fensterscript) die offenen Fenster angesagt. Nur wie steuere ich jetzt Speak, das die Rückmeldung auch vom gleichen Echo kommt, ohne das ich einen angeben muß ? Ich denke ich müsste den History trigger auf wahr triggern, aber wann bzw. an welcher Stelle ? Der angefragte Echo hat ja nicht zwangsläufig als letzter gesabbelt…

                          PS: ich habe es nun hinbekommen. Falls es Jemand nachbauen möchte, hier einmal eine Temperaturabfrage und die Abfrage nach offenen Fenstern/ Türen (mit dem Fensterscript aus dem Forum)

                          Bei mir reichen die 500 ms und Alexa antwortet brav an dem Echo wo sie gefragt wurde.

                          3822_temperaturabfrage.jpg

                          https://youtu.be/Zv1blw2ASF4

                          3822_abfrage_offene_fenster.jpg

                          https://youtu.be/8g6xmpQW8ew

                          1 Reply Last reply
                          0
                          • Matten MattenM Offline
                            Matten MattenM Offline
                            Matten Matten
                            wrote on last edited by
                            #454

                            @csamaggi:

                            Danke sigi das war wieder mal so nah und doch so fern die Funktion hatte ich nicht in betracht gezogen.

                            Danke für den Antsoss.

                            Was natürlich noch etwas geiler wäre wenn der IO prüft in einem Script und sie dann eben nur das jeweilige ausspricht mal sehen ob man dass hin bekommt.

                            MFG Maggi `

                            Hab ich wie folgt programmiert

                            3476_sprachausgabe.jpg

                            Gruß

                            Matten Matten

                            ioBroker auf Beelink mit WIN10 home|CCU3 (Raspberrymatic)|Neato BotVac D3|HYPERION Ambilight auf RPI3 und RPI ZeroW|HA-Bridge|Milight LED|Nodered&Redmatic|VU Duo2 & Solo se V2

                            1 Reply Last reply
                            0
                            • sigi234S Online
                              sigi234S Online
                              sigi234
                              Forum Testing Most Active
                              wrote on last edited by
                              #455

                              COOL :)

                              Kannst du mir das exportieren?

                              Wobei mir das Objekt noch nicht klar ist….

                              Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                              Immer Daten sichern!

                              1 Reply Last reply
                              0
                              • dslraserD Offline
                                dslraserD Offline
                                dslraser
                                Forum Testing Most Active
                                wrote on last edited by
                                #456

                                na ja, da das Fensterscript hier aus dem Forum (ich glaube von Pix) über die Gewerke bei mir eh läuft, sind ja bei jeder Veränderung die geöffneten Fenster schon als Ausgabe vorhanden. Aufbereit als Texxt für Sayit und Telegram.

                                Nur diese Punkte greife ich bei mir ab.

                                1 Reply Last reply
                                0
                                • Matten MattenM Offline
                                  Matten MattenM Offline
                                  Matten Matten
                                  wrote on last edited by
                                  #457

                                  @sigi234:

                                  COOL :)

                                  Kannst du mir das exportieren?

                                  Wobei mir das Objekt noch nicht klar ist…. `

                                  hab es noch etwas optimiert
                                  3476_blockly.txt

                                  ioBroker auf Beelink mit WIN10 home|CCU3 (Raspberrymatic)|Neato BotVac D3|HYPERION Ambilight auf RPI3 und RPI ZeroW|HA-Bridge|Milight LED|Nodered&Redmatic|VU Duo2 & Solo se V2

                                  1 Reply Last reply
                                  0
                                  • B Offline
                                    B Offline
                                    Blackeye
                                    wrote on last edited by
                                    #458

                                    Hallo zusammen,

                                    ich habe den Adapter installiert, bekomme aber bei allen Geräte nur den Status (enable) und den Punkt delete.

                                    Ich habe alle möglichen Geräte und bei allen gleiche Ergebnis. Ich wollte eigentlich nur die Geräte steuern die über den SmartHub des Echo2 direkt eingebunden sind um meine anderen Hubs in den Keller legen zu können.

                                    Und mit der Sprachausgabe werde ich direkt testen wenn ich zu Hause bin, wäre super!!!!!

                                    Danke

                                    1 Reply Last reply
                                    0
                                    • apollon77A Offline
                                      apollon77A Offline
                                      apollon77
                                      wrote on last edited by
                                      #459

                                      @Blackeye:

                                      Hallo zusammen,

                                      ich habe den Adapter installiert, bekomme aber bei allen Geräte nur den Status (enable) und den Punkt delete.

                                      Ich habe alle möglichen Geräte und bei allen gleiche Ergebnis. Ich wollte eigentlich nur die Geräte steuern die über den SmartHub des Echo2 direkt eingebunden sind um meine anderen Hubs in den Keller legen zu können.

                                      Und mit der Sprachausgabe werde ich direkt testen wenn ich zu Hause bin, wäre super!!!!!

                                      Danke `

                                      Steuern kommt noch im nächsten Update oder so. Im Github bitte für das Issue abstimmen.

                                      Was ist denn dieser "SmartHub"?

                                      Edit:

                                      Aaahhhhh: Da im Plus-Modell ein Smart-Home-Hub implementiert ist, muss dieser nicht zusätzlich angeschafft und eingerichtet werden. Es unterstützt den Zigbee-Standard, so dass alle Komponenten nach diesem Standard damit genutzt werden können.

                                      Da ich sowas nicht habe wird es interessant … SInd denn die Geräte die du per Smarthub angeschlossen hast bei den "Smart-Home-Devices" zu finden?

                                      Wenn ja hätte ich bitte gern mal das Debug Log vom Adapter

                                      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                      1 Reply Last reply
                                      0
                                      • lobomauL Offline
                                        lobomauL Offline
                                        lobomau
                                        wrote on last edited by
                                        #460

                                        @dslraser:

                                        na ja, da das Fensterscript hier aus dem Forum (ich glaube von Pix) über die Gewerke bei mir eh läuft, sind ja bei jeder Veränderung die geöffneten Fenster schon als Ausgabe vorhanden. Aufbereit als Texxt für Sayit und Telegram.

                                        Nur diese Punkte greife ich bei mir ab. `
                                        Ja, nutze ich auch. Ich kann leider deine Bilder oben nicht vergrößern. Kannst du dein Blockly als Export reinstellen?

                                        Host: NUC8i3 mit Proxmox:

                                        • ioBroker CT Debian 13, npm 10.9.4, nodejs 22.21.0
                                        • Slave: Pi4
                                        1 Reply Last reply
                                        0
                                        • dslraserD Offline
                                          dslraserD Offline
                                          dslraser
                                          Forum Testing Most Active
                                          wrote on last edited by
                                          #461

                                          @lobomau:

                                          @dslraser:

                                          na ja, da das Fensterscript hier aus dem Forum (ich glaube von Pix) über die Gewerke bei mir eh läuft, sind ja bei jeder Veränderung die geöffneten Fenster schon als Ausgabe vorhanden. Aufbereit als Texxt für Sayit und Telegram.

                                          Nur diese Punkte greife ich bei mir ab. Ja, nutze ich auch. Ich kann leider deine Bilder oben nicht vergrößern. Kannst du dein Blockly als Export reinstellen?

                                          Ich nutze zwei Gewerke, einmal Fensterdrehgriffe und einmal Fensterkontakte. (ich habe deshalb zwei Fensterscripte laufen, da kannst Du dann eins aus dem Blockly raus nehmen. Ich habe die einfachen Kontakte im Erdgeschoß und die Drehgriffe im Keller)

                                          Ich habe dieses Blockly, bzw. das Script in den Cloud Adapter eingefügt, das kann dann heißen wie es will, danach dann in der Alexa App Geräte suchen lassen und über eine Routine das eingefügte Gerät(script) ansprechen.

                                          Hier der Blockly Export für die Ansage über Alexa Speak

                                          ! ````
                                          <xml xmlns="http://www.w3.org/1999/xhtml"><block type="control" id="@J7@ob/rsR9OCYN+!hI7" x="-162" y="-188"><mutation delay_input="false"></mutation>
                                          <field name="OID">alexa2.0.History.#trigger</field>
                                          <field name="WITH_DELAY">FALSE</field>
                                          <value name="VALUE"><block type="logic_boolean" id="oI]KS-#7{Lh(W#]MB7C"><field name="BOOL">TRUE</field></block></value> <next><block type="timeouts_settimeout" id="xA_MJ^@=AB=-WtDTe(3}"><field name="NAME">timeout</field> <field name="DELAY">500</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block type="comment" id="s30b2{fSQ:a0uC3+QWU"><field name="COMMENT">Wohnzimmer</field>
                                          <next><block type="controls_if" id="l(E24=q]l]b,GJDj4dSj"><value name="IF0"><block type="logic_compare" id="MKwJn0C!O]xc!~.9|B*"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="p-SHbJ5Dmwr6djxg2ohH"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="?}A;8(IyMF%F@(t]Kc~+"><field name="TEXT">Wohnzimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id=")M^jLcZ!hCpj,X={-nV"><mutation delay_input="false"></mutation>
                                          <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                          <field name="WITH_DELAY">FALSE</field>
                                          <value name="VALUE"><block type="text_join" id="4?k[0reCRn.mjkxHg41~"><mutation items="3"></mutation>
                                          <value name="ADD0"><block type="text" id="75Z)WnYF@;38~bIM;pA"><field name="TEXT">Im Moment sind</field></block></value> <value name="ADD1"><block type="get_value" id="Vh/8rxU]yD!3mT}0y[eC"><field name="ATTR">val</field> <field name="OID">javascript.0.zählen_Fensterkontakte.textFensterkontakteaufAnsage</field></block></value> <value name="ADD2"><block type="get_value" id="E{tPb{Ec!is/-%_U9^ba"><field name="ATTR">val</field> <field name="OID">javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage</field></block></value></block></value></block></statement> <next><block type="comment" id="As,dG(xO[B@wIYcyAG?h"><field name="COMMENT">Küche</field> <next><block type="controls_if" id="wrH-}P(84mn7Y/rg8A[."><value name="IF0"><block type="logic_compare" id="kg.QKB751NaS#Ihk1Vlg"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="qnTz1Oe31sq:NXjmbxIJ"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="3=W.?c8BZN+QrGX4xL}h"><field name="TEXT">Küche</field></block></value></block></value> <statement name="DO0"><block type="control" id="}?dK++*V.7JQcjG{3uhB"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="text_join" id="eE.L((.HuB3vE_4=e#-q"><mutation items="3"></mutation> <value name="ADD0"><block type="text" id="PRh;5QARrxn}K}cvS^"><field name="TEXT">Im Moment sind</field></block></value>
                                          <value name="ADD1"><block type="get_value" id="[R~H:5)[.)a!9mnnr;U}"><field name="ATTR">val</field>
                                          <field name="OID">javascript.0.zählen_Fensterkontakte.textFensterkontakteaufAnsage</field></block></value>
                                          <value name="ADD2"><block type="get_value" id="]DyrNm:29uG:o{IGwdq8"><field name="ATTR">val</field>
                                          <field name="OID">javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage</field></block></value></block></value></block></statement>
                                          <next><block type="comment" id="_amxz6B=9F}_2uEGsK}"><field name="COMMENT">Badezimmer</field> <next><block type="controls_if" id=".n7JtGwDJDGfaeyl!8*B"><value name="IF0"><block type="logic_compare" id="I-@9%{Ng!%}9rE#IESc;"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="c?dSeG!fu]W8UO@?D4I3"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="MivGV@*kt)3rY9COKpKA"><field name="TEXT">Badezimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="zTwXc~r8Ldt0u-5TNcVn"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="text_join" id="oVpPd?8wyu_,Zl8uR
                                          x"><mutation items="3"></mutation>
                                          <value name="ADD0"><block type="text" id="5DQf2PxM}5U]YfhsCe!H"><field name="TEXT">Im Moment sind</field></block></value>
                                          <value name="ADD1"><block type="get_value" id="xX/ccwLyk|@ksY}Zt=M^"><field name="ATTR">val</field>
                                          <field name="OID">javascript.0.zählen_Fensterkontakte.textFensterkontakteaufAnsage</field></block></value>
                                          <value name="ADD2"><block type="get_value" id="l,u{D%[Ft^szW:RgT%"><field name="ATTR">val</field>
                                          <field name="OID">javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage</field></block></value></block></value></block></statement>
                                          <next><block type="comment" id="CJNG59[?CJ|U-=Bf]c)z"><field name="COMMENT">Gästezimmer</field>
                                          <next><block type="controls_if" id="OC]k1_}iDlExQPVc=(ib"><value name="IF0"><block type="logic_compare" id="OBIXw6hJ@]2XrHBIz5h"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="=x~5W)ns/VV;c|RFqQcE"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="IxW:hplIvDQm1ax=@X+M"><field name="TEXT">Gästezimmer</field></block></value></block></value> <statement name="DO0"><block type="control" id="g+2]wvsrhR8vxv7c,kJ_"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="text_join" id="-8@wDdu%@L++1NL0%kv"><mutation items="3"></mutation>
                                          <value name="ADD0"><block type="text" id="u5JAG8YXkEe-WquJT-Cv"><field name="TEXT">Im Moment sind</field></block></value>
                                          <value name="ADD1"><block type="get_value" id="Xh@YzGzw}dndnT!PR4,a"><field name="ATTR">val</field>
                                          <field name="OID">javascript.0.zählen_Fensterkontakte.textFensterkontakteaufAnsage</field></block></value>
                                          <value name="ADD2"><block type="get_value" id="!;FYe%8oL9Phuo01s(o/"><field name="ATTR">val</field>
                                          <field name="OID">javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage</field></block></value></block></value></block></statement>
                                          <next><block type="comment" id="C6,wSh?BEZ,G:B9Tl@#w"><field name="COMMENT">Flur</field>
                                          <next><block type="controls_if" id="l/g@UNw6pzeQ6_698R:-"><value name="IF0"><block type="logic_compare" id="=Z)D6qrCzY2oU/fVV93A"><field name="OP">EQ</field>
                                          <value name="A"><block type="get_value" id="StsaG2CB;5f5wIvH,kE"><field name="ATTR">val</field>
                                          <field name="OID">alexa2.0.History.name</field></block></value>
                                          <value name="B"><block type="text" id="7N;yy7cC=tE}MYOFfF6"><field name="TEXT">Flur</field></block></value></block></value> <statement name="DO0"><block type="control" id="5#-V887QhCCSAzI+twok"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="text_join" id="Sr6ZKH|w+@i!r-:RGE5|"><mutation items="3"></mutation> <value name="ADD0"><block type="text" id="@WD{DbpE(L1Is#/Am]"><field name="TEXT">Im Moment sind</field></block></value> <value name="ADD1"><block type="get_value" id="PQ/N3,cUuzqo^LRP;a@)"><field name="ATTR">val</field> <field name="OID">javascript.0.zählen_Fensterkontakte.textFensterkontakteaufAnsage</field></block></value> <value name="ADD2"><block type="get_value" id="7Pq_Us,t=Z4jvPOSPzqp"><field name="ATTR">val</field> <field name="OID">javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage</field></block></value></block></value></block></statement> <next><block type="comment" id="qKD3bDxHV;NBtuFFs|e."><field name="COMMENT">Schlafzimmer</field> <next><block type="controls_if" id="iMz(H}c1#NO@KVNnhnlQ"><value name="IF0"><block type="logic_compare" id="zvyyAWvaYdxt8YZt,0O"><field name="OP">EQ</field>
                                          <value name="A"><block type="get_value" id="mEF)naqwJ#xLCe1NeKO:"><field name="ATTR">val</field>
                                          <field name="OID">alexa2.0.History.name</field></block></value>
                                          <value name="B"><block type="text" id="F7::fb4cokeJJD:fk~pV"><field name="TEXT">Schlafzimmer</field></block></value></block></value>
                                          <statement name="DO0"><block type="control" id="{2s/h/xpkm]F+1ik-f4m"><mutation delay_input="false"></mutation>
                                          <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                          <field name="WITH_DELAY">FALSE</field>
                                          <value name="VALUE"><block type="text_join" id="_UREy=Dns%1
                                          3p{#}QG%"><mutation items="3"></mutation>
                                          <value name="ADD0"><block type="text" id="DS8D]@iPZ0H#VUlSn#?Q"><field name="TEXT">Im Moment sind</field></block></value>
                                          <value name="ADD1"><block type="get_value" id=":h6wum1yXIpr!:hKJ3G7"><field name="ATTR">val</field>
                                          <field name="OID">javascript.0.zählen_Fensterkontakte.textFensterkontakteaufAnsage</field></block></value>
                                          <value name="ADD2"><block type="get_value" id="g|Kl.rrqN3ZN;v8{1)0?"><field name="ATTR">val</field>
                                          <field name="OID">javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage</field></block></value></block></value></block></statement>
                                          <next><block type="comment" id="wIYZ1bLOSjFi=NxT9WcM"><field name="COMMENT">Keller-Flur</field>
                                          <next><block type="controls_if" id="%EEK(pKJ%lGo)32cR7qF"><value name="IF0"><block type="logic_compare" id="7Mb(anM]kR9056)gxqnW"><field name="OP">EQ</field>
                                          <value name="A"><block type="get_value" id="xF~b7{fV||4n}zB-}.u"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="VH^2CJsPGOd!6hGoqdK4"><field name="TEXT">Keller-Flur</field></block></value></block></value> <statement name="DO0"><block type="control" id="F_[xezXeyr~*(A=q.YFJ"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="text_join" id="IY=qE)N;}#H)@3FMX?."><mutation items="3"></mutation>
                                          <value name="ADD0"><block type="text" id="RJC)ht0vVqRW(FvnbW"><field name="TEXT">Im Moment sind</field></block></value> <value name="ADD1"><block type="get_value" id="h1n!;q1L]DJlW{5:R2]"><field name="ATTR">val</field>
                                          <field name="OID">javascript.0.zählen_Fensterkontakte.textFensterkontakteaufAnsage</field></block></value>
                                          <value name="ADD2"><block type="get_value" id="-80qQ]o?r@+~CQr7Oq]r"><field name="ATTR">val</field>
                                          <field name="OID">javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage</field></block></value></block></value></block></statement>
                                          <next><block type="comment" id="E#D1a/,rcHdm3?Nx^:q"><field name="COMMENT">Werkstatt</field> <next><block type="controls_if" id="=s~d:-WIg1#TE^zf9[4"><value name="IF0"><block type="logic_compare" id="
                                          :X%VM^+2MoYl-:u!WK"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="6fnRWyK0;P(.x;H{)22T"><field name="ATTR">val</field> <field name="OID">alexa2.0.History.name</field></block></value> <value name="B"><block type="text" id="S:#keRENw1gGjHWLUD!-"><field name="TEXT">Werkstatt</field></block></value></block></value> <statement name="DO0"><block type="control" id="ql@4(PNtjS_AM0bEqD+"><mutation delay_input="false"></mutation>
                                          <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                          <field name="WITH_DELAY">FALSE</field>
                                          <value name="VALUE"><block type="text_join" id="Han]KF1f.0IrY!Qc3Enb"><mutation items="3"></mutation>
                                          <value name="ADD0"><block type="text" id="PXcu~o={]-N^S0)SE=}"><field name="TEXT">Im Moment sind</field></block></value> <value name="ADD1"><block type="get_value" id="8vb98[j)NrH4+s7#|A@"><field name="ATTR">val</field>
                                          <field name="OID">javascript.0.zählen_Fensterkontakte.textFensterkontakteaufAnsage</field></block></value>
                                          <value name="ADD2"><block type="get_value" id="-Zpr897`o1FR+Bo=|cFu"><field name="ATTR">val</field>
                                          <field name="OID">javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage</field></block></value></block></value></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></xml>

                                          
                                          Und hier noch die Scripte dazu: Fensterdrehgriffe
                                          
                                          >! ````
                                          /* System Zahl Fensterdrehgriffe
                                          >! zählt die Fensterdrehgriffe in allen Räumen und meldet die offenen Fensterdrehgriffe namentlich
                                          Daten kommen vom Gewerk 'Fensterdrehgriffe'
                                          >! erstellt: 17.06.2015 nach diesem Vorbild: http://forum.iobroker.net/viewtopic.php?f=21&t=869&sid=f9ba5657489ff431a1990884f90779c1#p6564
                                          05.08.2015 STATE aus der Ausgabe entfernt nach Idee von stephan61 http://forum.iobroker.org/viewtopic.php?f=21&t=473&start=20#p9267
                                          02.12.2015 Fehler beseitigt bei Anzahl Fensterdrehgriffe, wenn offen (Unterscheidung RHS und TFK)
                                                     Überprüfung des Zustandes (function Fensterdrehgriffestatus) und Übergabe an Text
                                          25.01.2016 Fensterdrehgriffe Nummer in Log korrigiert (+1)
                                          02.03.2016 Ansage für TTS aufbereitet
                                          02.07.2016 Regulärer Ausdruck (gierig) bei Aufbereitung für Ansage
                                          */
                                          >! function Fensterdrehgriffestatus(zustand) {
                                              var meldung;
                                              switch (zustand) {
                                                  case 1:
                                                      meldung = 'gekippt';
                                                  break;
                                                  case 2:
                                                      meldung = 'offen';
                                                  break;
                                                  case true:
                                                      meldung = 'TFK offen';
                                                  break;
                                                  default:
                                                      meldung = 'geschlossen';
                                                  break;
                                              }
                                              return(meldung);
                                          }
                                          >! createState('zählen_Fensterdrehgriffe.anzahlFensterdrehgriffe', {     // wenn benötigt: Anzahl der vorhandenen Fensterdrehgriffe
                                              type: 'number',
                                              min: 0,
                                              def: 0,
                                              role: 'value'
                                          });
                                          createState('zählen_Fensterdrehgriffe.anzahlFensterdrehgriffeauf', {  // Anzahl der Fensterdrehgriffe, die auf sind als Variable unter Javascript.0 anlegen
                                              type: 'number',
                                              min: 0,
                                              def: 0,
                                              role: 'value'
                                          });
                                          createState('zählen_Fensterdrehgriffe.textFensterdrehgriffeauf', {      // Anzahl der offenen Fensterdrehgriffe und deren Namen als Variable unter Javascript.0 anlegen
                                              type: 'string',
                                              def: ' ',
                                              role: 'value'
                                          });    
                                          >! var cacheSelectorState  = $('channel[state.id=*.STATE](functions="Fensterdrehgriffe")');
                                          >! function countFensterdrehgriffe(obj) {
                                               // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk Fensterdrehgriffe auf 0
                                              var anzahlFensterdrehgriffe = 0;
                                              var anzahlFensterdrehgriffeauf = 0;
                                              var textFensterdrehgriffeauf = [];
                                          >!     log('Auslösender Aktor: ' + obj.id + ': ' + obj.newState.val);              // Info im Log, welcher Zustand sich geändert hat
                                          
                                              cacheSelectorState.each(function (id, i) {                                  // Schleife für jedes gefundenen Element *.STATE im Gewerk Fensterdrehgriffe
                                                  var status = getState(id).val;                                          // Zustand *.STATE abfragen (jedes Element)
                                                  var obj    = getObject(id);
                                                  var name = getObject(id).common.name;
                                                  var devicename = name.substring(0, name.indexOf(".STATE"));             //.state aus Text entfernen
                                                  if (status /*TFK*/ || status === 1 || status === 2 /*RHS*/) {  // wenn Zustand offen, dann wird die Anzahl der Fensterdrehgriffe hochgezählt
                                                       ++anzahlFensterdrehgriffeauf;
                                                       textFensterdrehgriffeauf.push(devicename + ' (' + Fensterdrehgriffestatus(status) + ')');  // Name und Zustand zum Array hinzufügen
                                                  }                
                                                  log('Fensterdrehgriffe #' + (i+1) + ': ' + devicename + ' ' + Fensterdrehgriffestatus(status)/* + ' (' + status + ' / ' + typeof status + ')'*/);
                                                  ++anzahlFensterdrehgriffe;                                                        // Zählt die Anzahl der vorhandenen Fensterdrehgriffe unabhängig vom Status
                                              }); 
                                          
                                              // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon an) ausgegeben
                                                  log("Text: " + textFensterdrehgriffeauf);
                                                  log("Anzahl Fensterdrehgriffe: " + anzahlFensterdrehgriffe + " - davon Fensterdrehgriffe auf: " +  anzahlFensterdrehgriffeauf);
                                          >!     // die ermittelten Werte werden als javascript.0\. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS)
                                              setState("zählen_Fensterdrehgriffe.textFensterdrehgriffeauf", textFensterdrehgriffeauf.join(',\n'));    // Schreibt die aktuelle Namen der offenen Fensterdrehgriffe
                                              setState("zählen_Fensterdrehgriffe.anzahlFensterdrehgriffeauf", textFensterdrehgriffeauf.length);         // Schreibt die aktuelle Anzahl der offenen Fensterdrehgriffe
                                              setState("zählen_Fensterdrehgriffe.anzahlFensterdrehgriffe", anzahlFensterdrehgriffe);                    // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Fensterdrehgriffe
                                          }
                                          >! cacheSelectorState.on(function(obj) {    // bei Zustandänderung *. STATE im Gewerk Fensterdrehgriffe
                                              countFensterdrehgriffe(obj);
                                          });
                                          >! // Variable für Ansage aufbereiten
                                          createState('zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage', {
                                              type: 'string',
                                              def: ' ',
                                              role: 'value'
                                          });  
                                          // Anzahl der Fensterdrehgriffe, die auf sind, für Ansage aufbereitet
                                          var idQuelle = 'javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeauf',
                                              idAnsage = 'javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage';
                                          >! on(idQuelle, function (obj) {
                                              var text = obj.state.val;
                                              //text = text.replace(/RHS/g, 'Fenster');
                                              text = text.replace(/TFK/g, 'Reedkontakt');
                                              text = (text.length > 1) ? 'Geöffnete Fenster im Keller: ' + text : 'Alle Fenster im Keller geschlossen';
                                              setState(idAnsage, text);
                                          });
                                          >! //on({id: "javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage"/*zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage*/, change: "ne"}, function (obj) {
                                          //  var value = obj.state.val;
                                          //  var oldValue = obj.oldState.val;
                                          //  sendTo("telegram", "send", {
                                          //      text: getState("javascript.0.zählen_Fensterdrehgriffe.textFensterdrehgriffeaufAnsage").val,
                                          //      disable_notification:   true
                                          //  });
                                          //});
                                          

                                          Fensterkontakte

                                          ! ````
                                          createState('zählen_Fensterkontakte.anzahlFensterkontakte', { // wenn benötigt: Anzahl der vorhandenen Fensterkontakte
                                          type: 'number',
                                          min: 0,
                                          def: 0,
                                          role: 'value'
                                          });
                                          createState('zählen_Fensterkontakte.anzahlFensterkontakteauf', { // Anzahl der Fensterkontakte, die auf sind als Variable unter Javascript.0 anlegen
                                          type: 'number',
                                          min: 0,
                                          def: 0,
                                          role: 'value'
                                          });
                                          createState('zählen_Fensterkontakte.textFensterkontakteauf', { // Anzahl der offenen Fensterkontakte und deren Namen als Variable unter Javascript.0 anlegen
                                          type: 'string',
                                          def: '',
                                          role: 'value'
                                          });
                                          ! var cacheSelectorState = $('channelstate.id=*.STATE');
                                          ! function countFensterkontakte(obj) {
                                          // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk Fensterkontakte auf 0
                                          var anzahlFensterkontakte = 0;
                                          var anzahlFensterkontakteauf = 0;
                                          var textFensterkontakteauf = [];
                                          ! log('Auslösender Aktor: ' + obj.id + ': ' + obj.newState.val); // Info im Log, welcher Zustand sich geändert hat
                                          ! cacheSelectorState.each(function (id, i) { // Schleife für jedes gefundenen Element .STATE im Gewerk Fensterkontakte
                                          var status = getState(id).val; // Zustand .STATE abfragen (jedes Element)
                                          var obj = getObject(id);
                                          var name = getObject(id).common.name;
                                          var devicename = name.substring(0, name.indexOf(".STATE")); //.state aus Text entfernen
                                          if ( status === 1 || status === 2) { // wenn Zustand offen, dann wird die Anzahl der Fensterkontakte hochgezählt
                                          ++anzahlFensterkontakteauf;
                                          textFensterkontakteauf.push(devicename ); // Name und Zustand zum Array hinzufügen
                                          }
                                          log('Fensterkontakte #' + (i+1) + ': ' + devicename + ' ' /
                                          + ' (' + status + ' / ' + typeof status + ')'
                                          /);
                                          ++anzahlFensterkontakte; // Zählt die Anzahl der vorhandenen Fensterkontakte unabhängig vom Status
                                          });
                                          ! // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon an) ausgegeben
                                          log("Text: " + textFensterkontakteauf);
                                          log("Anzahl Fensterkontakte: " + anzahlFensterkontakte + " - davon Fensterkontakte auf: " + textFensterkontakteauf.length);
                                          ! // die ermittelten Werte werden als javascript.0. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS)
                                          setState("zählen_Fensterkontakte.textFensterkontakteauf", textFensterkontakteauf.join(', ')); // Schreibt die aktuelle Namen der offenen Fensterkontakte
                                          setState("zählen_Fensterkontakte.anzahlFensterkontakteauf", textFensterkontakteauf.length); // Schreibt die aktuelle Anzahl der offenen Fensterkontakte
                                          setState("zählen_Fensterkontakte.anzahlFensterkontakte", anzahlFensterkontakte); // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Fensterkontakte
                                          }
                                          ! cacheSelectorState.on(function(obj) { // bei Zustandänderung *. STATE im Gewerk Fensterkontakte
                                          countFensterkontakte(obj);
                                          });
                                          ! // Variable für Ansage aufbereiten
                                          createState('zählen_Fensterkontakte.textFensterkontakteaufAnsage', {
                                          type: 'string',
                                          def: '',
                                          role: 'value'
                                          });
                                          // Anzahl der Fensterkontakte, die auf sind, für Ansage aufbereitet
                                          var idQuelle = 'javascript.0.zählen_Fensterkontakte.textFensterkontakteauf',
                                          idAnsage = 'javascript.0.zählen_Fensterkontakte.textFensterkontakteaufAnsage';
                                          ! on(idQuelle, function (obj) {
                                          var text = obj.state.val;
                                          text = (text.length > 1) ? 'Geöffnete Fenster im Erdgeschoss: ' + text : 'Alle Fenster im Erdgeschoss geschlossen';
                                          setState(idAnsage, text);
                                          });
                                          ! // on({id: "javascript.0.zählen_Fensterkontakte.textFensterkontakteaufAnsage"/zählen_Fensterkontakte.textFensterkontakteaufAnsage/, change: "ne"}, function (obj) {
                                          // var value = obj.state.val;
                                          // var oldValue = obj.oldState.val;
                                          // sendTo("telegram", "send", {
                                          // text: getState("javascript.0.zählen_Fensterkontakte.textFensterkontakteaufAnsage").val,
                                          // disable_notification: true
                                          // });
                                          //});

                                          
                                          Telegram ist hier nur auskommentiert…
                                          
                                          PS: ich baue mir gerade die Ausgabe im Fensterscript (und auch Licht/Steckdosen usw.--- also auch für andere Gewerke) so um, das die Ausgabe für den Alexa2 Adapter für speak etwas schöner sind, habe ich bisher nur für Telegram genutzt)
                                          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
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          776

                                          Online

                                          32.6k

                                          Users

                                          82.3k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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