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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Grafana
  5. Stapel-Balkengrafik mit Grafana

NEWS

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

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

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

Stapel-Balkengrafik mit Grafana

Geplant Angeheftet Gesperrt Verschoben Grafana
76 Beiträge 7 Kommentatoren 7.9k Aufrufe 6 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • W wolfi913

    @laser sagte in Stapel-Balkengrafik mit Grafana:

    @mickemup Insgesamt 4 Werte.

    Und dann je eine Query nach etwa diesem Schema:

    import "timezone"
    import "date"
    option location = timezone.location(name: "Europe/Berlin")
    
    from(bucket: "smarthome-history")
      |> range(start: date.add(d: -7d, to: today()), stop: date.truncate(t: today(), unit: 1d))
      |> filter(fn: (r) => r["_measurement"] == "modbus.0.inputRegisters.13022_Battery_level_")
      |> filter(fn: (r) => r["_field"] == "value")
      |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
    
    L Offline
    L Offline
    Laser
    schrieb am zuletzt editiert von
    #40

    @wolfi913 Habe jetzt currentDay und jede Stunde und Änderungen 2. Stelle nach dem Komma eingestellt.

    mickemupM 1 Antwort Letzte Antwort
    0
    • W wolfi913

      @laser sagte in Stapel-Balkengrafik mit Grafana:

      @mickemup Insgesamt 4 Werte.

      Und dann je eine Query nach etwa diesem Schema:

      import "timezone"
      import "date"
      option location = timezone.location(name: "Europe/Berlin")
      
      from(bucket: "smarthome-history")
        |> range(start: date.add(d: -7d, to: today()), stop: date.truncate(t: today(), unit: 1d))
        |> filter(fn: (r) => r["_measurement"] == "modbus.0.inputRegisters.13022_Battery_level_")
        |> filter(fn: (r) => r["_field"] == "value")
        |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
      
      mickemupM Offline
      mickemupM Offline
      mickemup
      schrieb am zuletzt editiert von
      #41

      @wolfi913
      mir der Range können wir ja noch schauen, was genau gewollt ist.
      Eventuell auch via "Query Options"
      Aber das ist dann Feintuning

      W 1 Antwort Letzte Antwort
      0
      • L Laser

        @wolfi913 Habe jetzt currentDay und jede Stunde und Änderungen 2. Stelle nach dem Komma eingestellt.

        mickemupM Offline
        mickemupM Offline
        mickemup
        schrieb am zuletzt editiert von
        #42

        @laser
        Wenn dich nur der Endwert intressiert, musst du nicht jede Stunde loggen.
        Änderungen loggen sollte IMHO ausreichen.

        L 1 Antwort Letzte Antwort
        0
        • mickemupM mickemup

          @laser
          Wenn dich nur der Endwert intressiert, musst du nicht jede Stunde loggen.
          Änderungen loggen sollte IMHO ausreichen.

          L Offline
          L Offline
          Laser
          schrieb am zuletzt editiert von Laser
          #43

          @mickemup Ja, eigentlich. Jede Stunde, da sieht man etwas bei der Kurvendarstellung. Manchmal ändert sich nichts. Wenn das Alles funktioniert, nehme ich das raus. Wenn ich es nicht vergesse, wie die 600 Sekunden...

          mickemupM 1 Antwort Letzte Antwort
          0
          • L Laser

            @mickemup Ja, eigentlich. Jede Stunde, da sieht man etwas bei der Kurvendarstellung. Manchmal ändert sich nichts. Wenn das Alles funktioniert, nehme ich das raus. Wenn ich es nicht vergesse, wie die 600 Sekunden...

            mickemupM Offline
            mickemupM Offline
            mickemup
            schrieb am zuletzt editiert von
            #44

            @laser Ok, trifft ja nicht so viel an.
            Und mit jeder Stunde, kreierst die auch nicht extrem viel unnötigen "Datenmüll"

            1 Antwort Letzte Antwort
            0
            • mickemupM mickemup

              @wolfi913
              mir der Range können wir ja noch schauen, was genau gewollt ist.
              Eventuell auch via "Query Options"
              Aber das ist dann Feintuning

              W Online
              W Online
              wolfi913
              schrieb am zuletzt editiert von
              #45

              @mickemup sagte in Stapel-Balkengrafik mit Grafana:

              mir der Range können wir ja noch schauen, was genau gewollt ist.

              Klar, dazu müssen ja zuerst mal Daten geloggt sein.
              Mein Beispiel würde ja auch den aktuellen Tag abschneiden und nicht anzeigen sondern nur vollständige Tage.

              L 1 Antwort Letzte Antwort
              0
              • W wolfi913

                @mickemup sagte in Stapel-Balkengrafik mit Grafana:

                mir der Range können wir ja noch schauen, was genau gewollt ist.

                Klar, dazu müssen ja zuerst mal Daten geloggt sein.
                Mein Beispiel würde ja auch den aktuellen Tag abschneiden und nicht anzeigen sondern nur vollständige Tage.

                L Offline
                L Offline
                Laser
                schrieb am zuletzt editiert von Laser
                #46

                @wolfi913 ich miste erst mal aus. Habe auch noch die einzelnen Monate drin. Das stammt Alles aus der Zeit vor Grafana. Da hatte ich einzelne Balken in VIS.

                L 1 Antwort Letzte Antwort
                0
                • L Laser

                  @wolfi913 ich miste erst mal aus. Habe auch noch die einzelnen Monate drin. Das stammt Alles aus der Zeit vor Grafana. Da hatte ich einzelne Balken in VIS.

                  L Offline
                  L Offline
                  Laser
                  schrieb am zuletzt editiert von Laser
                  #47

                  @wolfi913
                  1Wert ist ja in jedem currentDay drin. 1 Tag sollte angezeigt werden. Habe Das mal so gemacht (ist aber noch ein Fehler drin):

                  import "timezone"
                  import "date"
                  option location = timezone.location(name: "Europe/Berlin")
                  
                  from(bucket: "iobroker")
                   // |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                    |> range(start: date.add(d: -7d, to: today()), stop: date.truncate(t: today(), unit: 1d))
                    |> filter(fn: (r)
                    => r["_measurement"] == "sourceanalytix.0.alias__0__VE-Total__H19.currentYear.delivered.01_currentDay"
                    or r["_measurement"] == "sourceanalytix.0.alias__0__Shelly1EM-Power__Total-EM1.currentYear.delivered.01_currentDay")
                    |> filter(fn: (r) => r["_field"] == "value")
                    |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
                    |> yield(name: "last")
                  
                  W 1 Antwort Letzte Antwort
                  0
                  • L Laser

                    @wolfi913
                    1Wert ist ja in jedem currentDay drin. 1 Tag sollte angezeigt werden. Habe Das mal so gemacht (ist aber noch ein Fehler drin):

                    import "timezone"
                    import "date"
                    option location = timezone.location(name: "Europe/Berlin")
                    
                    from(bucket: "iobroker")
                     // |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                      |> range(start: date.add(d: -7d, to: today()), stop: date.truncate(t: today(), unit: 1d))
                      |> filter(fn: (r)
                      => r["_measurement"] == "sourceanalytix.0.alias__0__VE-Total__H19.currentYear.delivered.01_currentDay"
                      or r["_measurement"] == "sourceanalytix.0.alias__0__Shelly1EM-Power__Total-EM1.currentYear.delivered.01_currentDay")
                      |> filter(fn: (r) => r["_field"] == "value")
                      |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
                      |> yield(name: "last")
                    
                    W Online
                    W Online
                    wolfi913
                    schrieb am zuletzt editiert von
                    #48

                    @laser
                    Stell mal die Range auf

                      |> range(start: -7d, stop: v.timeRangeStop)
                    

                    Den aktuellen Tag zeigt er Dir ja mit der anderen Auswertung nicht an. Da werden nur ganze Tage genommen.
                    Außerdem würde ich je eine Query je Datenpunkt machen.

                    L 1 Antwort Letzte Antwort
                    0
                    • W wolfi913

                      @laser
                      Stell mal die Range auf

                        |> range(start: -7d, stop: v.timeRangeStop)
                      

                      Den aktuellen Tag zeigt er Dir ja mit der anderen Auswertung nicht an. Da werden nur ganze Tage genommen.
                      Außerdem würde ich je eine Query je Datenpunkt machen.

                      L Offline
                      L Offline
                      Laser
                      schrieb am zuletzt editiert von Laser
                      #49

                      @wolfi913 sagte in Stapel-Balkengrafik mit Grafana:

                      e

                      Da paßt noch was mit den Zeiten nicht. Kann nicht gestapelt werden. Ich versuche noch mal mit einzelnen Query.
                      (Darstellung mit dem Zeitversatz besteht aber noch)
                      d342e9f6-593c-4796-941e-4f75ad3a7217-image.png

                      Das Ganze muß ich erst mal verarbeiten. Ich werde morgen noch mal frisch ran gehen.
                      Ist diese Beschreibung richtig? https://docs.influxdata.com/flux/v0/stdlib/universe/range/ u.a.m.

                      W icebearI 2 Antworten Letzte Antwort
                      0
                      • L Laser

                        @wolfi913 sagte in Stapel-Balkengrafik mit Grafana:

                        e

                        Da paßt noch was mit den Zeiten nicht. Kann nicht gestapelt werden. Ich versuche noch mal mit einzelnen Query.
                        (Darstellung mit dem Zeitversatz besteht aber noch)
                        d342e9f6-593c-4796-941e-4f75ad3a7217-image.png

                        Das Ganze muß ich erst mal verarbeiten. Ich werde morgen noch mal frisch ran gehen.
                        Ist diese Beschreibung richtig? https://docs.influxdata.com/flux/v0/stdlib/universe/range/ u.a.m.

                        W Online
                        W Online
                        wolfi913
                        schrieb am zuletzt editiert von wolfi913
                        #50

                        @laser
                        Das mit

                          |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
                        

                        funktioniert nicht für den aktuellen Tag, nur für die ganzen Tage.
                        Da müsste vermutlich noch zusätzlich mit timeShift oder was Ähnlichem gearbeitet werden.

                        L 1 Antwort Letzte Antwort
                        1
                        • W wolfi913

                          @laser
                          Das mit

                            |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
                          

                          funktioniert nicht für den aktuellen Tag, nur für die ganzen Tage.
                          Da müsste vermutlich noch zusätzlich mit timeShift oder was Ähnlichem gearbeitet werden.

                          L Offline
                          L Offline
                          Laser
                          schrieb am zuletzt editiert von
                          #51

                          @wolfi913 mal sehen, wie das morgen aussieht. Da habe ich schon 2 Tage...

                          W 1 Antwort Letzte Antwort
                          0
                          • L Laser

                            @wolfi913 mal sehen, wie das morgen aussieht. Da habe ich schon 2 Tage...

                            W Online
                            W Online
                            wolfi913
                            schrieb am zuletzt editiert von wolfi913
                            #52

                            @laser
                            Probier mal mit

                              |> truncateTimeColumn(unit: 1d)
                            

                            hinter dem aggregateWindow...

                            Dann sollte der anzuzeigende Wert jeweils auf Mitternacht gesetzt werden.
                            Screenshot 2025-02-04 182825.png
                            Und dann sollten die Werte wieder gesynct sein.

                            L 1 Antwort Letzte Antwort
                            0
                            • W wolfi913

                              @laser
                              Probier mal mit

                                |> truncateTimeColumn(unit: 1d)
                              

                              hinter dem aggregateWindow...

                              Dann sollte der anzuzeigende Wert jeweils auf Mitternacht gesetzt werden.
                              Screenshot 2025-02-04 182825.png
                              Und dann sollten die Werte wieder gesynct sein.

                              L Offline
                              L Offline
                              Laser
                              schrieb am zuletzt editiert von Laser
                              #53

                              @wolfi913 sagte in Stapel-Balkengrafik mit Grafana:

                              9bea4f26-e74f-4a8a-82ac-644d69d486e7-image.png

                              |> truncateTimeColumn(unit: 1d)

                              import "timezone"
                              import "date"
                              option location = timezone.location(name: "Europe/Berlin")
                              
                              from(bucket: "iobroker")
                              |> range(start: -7d, stop: v.timeRangeStop)
                               |> filter(fn: (r)
                                => r["_measurement"] == "sourceanalytix.0.alias__0__Shelly1EM-Power__Total-EM1.currentYear.delivered.01_currentDay")
                               |> filter(fn: (r) => r["_field"] == "value")
                               |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
                               |> truncateTimeColumn(unit: 1d)
                               |> yield(name: "last")
                              
                              import "timezone"
                              import "date"
                              option location = timezone.location(name: "Europe/Berlin")
                              
                              from(bucket: "iobroker")
                               |> range(start: -7d, stop: v.timeRangeStop)
                               |> filter(fn: (r)
                                => r["_measurement"] == "sourceanalytix.0.alias__0__VE-Total__H19.currentYear.delivered.01_currentDay")
                               |> filter(fn: (r) => r["_field"] == "value")
                               |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
                               |> truncateTimeColumn(unit: 1d)
                               |> yield(name: "last")
                              
                              W 1 Antwort Letzte Antwort
                              0
                              • L Laser

                                @wolfi913 sagte in Stapel-Balkengrafik mit Grafana:

                                9bea4f26-e74f-4a8a-82ac-644d69d486e7-image.png

                                |> truncateTimeColumn(unit: 1d)

                                import "timezone"
                                import "date"
                                option location = timezone.location(name: "Europe/Berlin")
                                
                                from(bucket: "iobroker")
                                |> range(start: -7d, stop: v.timeRangeStop)
                                 |> filter(fn: (r)
                                  => r["_measurement"] == "sourceanalytix.0.alias__0__Shelly1EM-Power__Total-EM1.currentYear.delivered.01_currentDay")
                                 |> filter(fn: (r) => r["_field"] == "value")
                                 |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
                                 |> truncateTimeColumn(unit: 1d)
                                 |> yield(name: "last")
                                
                                import "timezone"
                                import "date"
                                option location = timezone.location(name: "Europe/Berlin")
                                
                                from(bucket: "iobroker")
                                 |> range(start: -7d, stop: v.timeRangeStop)
                                 |> filter(fn: (r)
                                  => r["_measurement"] == "sourceanalytix.0.alias__0__VE-Total__H19.currentYear.delivered.01_currentDay")
                                 |> filter(fn: (r) => r["_field"] == "value")
                                 |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
                                 |> truncateTimeColumn(unit: 1d)
                                 |> yield(name: "last")
                                
                                W Online
                                W Online
                                wolfi913
                                schrieb am zuletzt editiert von
                                #54

                                @laser
                                Schaut besser aus :blush:

                                L 1 Antwort Letzte Antwort
                                0
                                • W wolfi913

                                  @laser
                                  Schaut besser aus :blush:

                                  L Offline
                                  L Offline
                                  Laser
                                  schrieb am zuletzt editiert von Laser
                                  #55

                                  @wolfi913 Ja. Und das "verodern" in der Filterliste ist nicht gut? Welche Nachteile könnte das bringen?

                                  import "timezone"
                                  import "date"
                                  option location = timezone.location(name: "Europe/Berlin")
                                  
                                  from(bucket: "iobroker")
                                  |> range(start: -7d, stop: v.timeRangeStop)
                                   |> filter(fn: (r)
                                    => r["_measurement"] == "sourceanalytix.0.alias__0__Shelly1EM-Power__Total-EM1.currentYear.delivered.01_currentDay"
                                   or  r["_measurement"] == "sourceanalytix.0.alias__0__VE-Total__H19.currentYear.delivered.01_currentDay")
                                   |> filter(fn: (r) => r["_field"] == "value")
                                   |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
                                   |> truncateTimeColumn(unit: 1d)
                                   |> yield(name: "last")
                                  

                                  Bin schon gespannt, wie das morgen mit 2 Tagen aussieht! Heute möchte ich erst mal nicht mehr nerven. Danke an alle Beteilgten!

                                  W 1 Antwort Letzte Antwort
                                  0
                                  • L Laser

                                    @wolfi913 Ja. Und das "verodern" in der Filterliste ist nicht gut? Welche Nachteile könnte das bringen?

                                    import "timezone"
                                    import "date"
                                    option location = timezone.location(name: "Europe/Berlin")
                                    
                                    from(bucket: "iobroker")
                                    |> range(start: -7d, stop: v.timeRangeStop)
                                     |> filter(fn: (r)
                                      => r["_measurement"] == "sourceanalytix.0.alias__0__Shelly1EM-Power__Total-EM1.currentYear.delivered.01_currentDay"
                                     or  r["_measurement"] == "sourceanalytix.0.alias__0__VE-Total__H19.currentYear.delivered.01_currentDay")
                                     |> filter(fn: (r) => r["_field"] == "value")
                                     |> aggregateWindow(every: 1d, fn: last, createEmpty: true, timeSrc: "_start")
                                     |> truncateTimeColumn(unit: 1d)
                                     |> yield(name: "last")
                                    

                                    Bin schon gespannt, wie das morgen mit 2 Tagen aussieht! Heute möchte ich erst mal nicht mehr nerven. Danke an alle Beteilgten!

                                    W Online
                                    W Online
                                    wolfi913
                                    schrieb am zuletzt editiert von
                                    #56

                                    @laser
                                    Müsste vermutlich auch mit ODER funktionieren.
                                    Ich finde einzelne Query's irgendwie besser daher mach ich's wenn möglich lieber immer einzeln.
                                    Kann dann (zumindest bin ich der Meinung) in den Overrides besser arbeiten.
                                    Außerdem funktionieren dann auch so Sachen wie Rechenoperationen
                                    Screenshot 2025-02-04 184132.png
                                    einfacher.

                                    L 1 Antwort Letzte Antwort
                                    0
                                    • W wolfi913

                                      @laser
                                      Müsste vermutlich auch mit ODER funktionieren.
                                      Ich finde einzelne Query's irgendwie besser daher mach ich's wenn möglich lieber immer einzeln.
                                      Kann dann (zumindest bin ich der Meinung) in den Overrides besser arbeiten.
                                      Außerdem funktionieren dann auch so Sachen wie Rechenoperationen
                                      Screenshot 2025-02-04 184132.png
                                      einfacher.

                                      L Offline
                                      L Offline
                                      Laser
                                      schrieb am zuletzt editiert von Laser
                                      #57

                                      @wolfi913 Ja, funktioniert auch mit "or". Wenn man etwas spezielles mit den Daten vorhat, ist einzeln besser. Das werde ich im Auge behalten.
                                      War sehr informativ/ aufregend. Und viel Datenmüll beseitigt. Werde jetzt das TV-Programm zum Runterkommen genießen!:slightly_smiling_face:

                                      mickemupM 1 Antwort Letzte Antwort
                                      0
                                      • L Laser

                                        @wolfi913 Ja, funktioniert auch mit "or". Wenn man etwas spezielles mit den Daten vorhat, ist einzeln besser. Das werde ich im Auge behalten.
                                        War sehr informativ/ aufregend. Und viel Datenmüll beseitigt. Werde jetzt das TV-Programm zum Runterkommen genießen!:slightly_smiling_face:

                                        mickemupM Offline
                                        mickemupM Offline
                                        mickemup
                                        schrieb am zuletzt editiert von
                                        #58

                                        @laser
                                        Gerne
                                        Hatte am Anfang auch mit Grafana/Influx usw. zu kämpfen und musste mich da reinfuxen.
                                        Habe kurz ein Dashboard Testweise angepasst mit der Annahme, dass du das so angedacht hast:

                                        7bce7133-95ba-4a6f-9d4c-a1b776b957cb-image.png

                                        1dabd38b-fd2f-4ffa-87e3-fd53a79b9ae4-image.png

                                        d1ecfd00-41ac-4bed-9f45-28d2f1da31d2-image.png

                                        import "date"
                                        import "timezone"
                                        option location = timezone.location(name: "Europe/Madrid")
                                        
                                        from(bucket: "iobroker_inflog")
                                          |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                                          |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Energy.Day_Einspeisung")
                                          |> filter(fn: (r) => r["_field"] == "value")
                                            |> aggregateWindow(every: 1d, fn: last, timeSrc: "_start")
                                        

                                        Wichtig: Da die Range nun mit den Query Options "definiert" wird, muss da das v.TimeRang... rein
                                        Ansonsten bist du ja mit den Queries schon gut beraten worden :-)

                                        1 Antwort Letzte Antwort
                                        1
                                        • L Laser

                                          @wolfi913 sagte in Stapel-Balkengrafik mit Grafana:

                                          e

                                          Da paßt noch was mit den Zeiten nicht. Kann nicht gestapelt werden. Ich versuche noch mal mit einzelnen Query.
                                          (Darstellung mit dem Zeitversatz besteht aber noch)
                                          d342e9f6-593c-4796-941e-4f75ad3a7217-image.png

                                          Das Ganze muß ich erst mal verarbeiten. Ich werde morgen noch mal frisch ran gehen.
                                          Ist diese Beschreibung richtig? https://docs.influxdata.com/flux/v0/stdlib/universe/range/ u.a.m.

                                          icebearI Online
                                          icebearI Online
                                          icebear
                                          schrieb am zuletzt editiert von
                                          #59

                                          @laser said in Stapel-Balkengrafik mit Grafana:

                                          Das Ganze muß ich erst mal verarbeiten. Ich werde morgen noch mal frisch ran gehen.

                                          Ich würde dir auch empfehlen in Zukunft Alias-ID's zu verwenden.
                                          Wenn du mit den ellenlangen DP-Bezeichnung weiterarbeitest kannst du bei komplexeren Abfragen schnell den Überblick verlieren.

                                          Du kannst ja beim anlegen für die influxDB unten eine Alias-ID vergeben, das ist dann später bei komplexen Abfragen wesentlich übersichtlicher.

                                          Z.B. anstatt

                                          sourceanalytix.0.alias__0__Shelly1EM-Power__Total-EM1.currentYear.delivered.01_currentDay

                                          nimmst du als Alias

                                          Shelly1_Pow_Total_curDay

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          801

                                          Online

                                          32.5k

                                          Benutzer

                                          81.6k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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