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. Microcontroller
  5. Hilfe bei Gaszähler > Reed > InfluxDB > Grafana

NEWS

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

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

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

Hilfe bei Gaszähler > Reed > InfluxDB > Grafana

Geplant Angeheftet Gesperrt Verschoben Microcontroller
40 Beiträge 6 Kommentatoren 3.7k Aufrufe 5 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.
  • S Offline
    S Offline
    seppele
    schrieb am zuletzt editiert von
    #8

    Danke Marc,
    dann war ich wohl komplett auf den Holzweg :(

    Ich hab deine Grundlegende Vorgangsweise denke ich verstanden aber absolut keinen Plan was ich genau tun muss.

    Was meinst du mit Datenpunkt genau, kannst du mir das kurz erläutern damit ich danach googlen kann? (Vermutllich einen Referenzpunkt zb. "Gasstand" in der InfluxDB?)

    Dann muss ich ein Script erstellen das den Zustandswechsel erkennt, anschliessend den letzten Zählerstand aus der Datenbank liest und diesen Wert+0,01 wieder in eine neue Zeile schreibt.
    Oder meinst du es wird genau die Zeile in der Db aktualsiert mit dem Wert+0,01 (Dann hätte ich ja keine Statistik mehr nur den Zählerstand?)

    Sorry für die dummen Fragen aber ich bin mittlerweise etwas verwirrt :)
    War doch deutlich komplizierter bis jetzt als gedacht.

    Marc BergM 1 Antwort Letzte Antwort
    0
    • Marc BergM Marc Berg

      @seppele

      Ich weiß nicht, ob das ein so guter Ansatz ist, die ON/OFF Impulse in die DB zu schreiben!? Auswertungen werden dadurch aus meiner Sicht unnötig schwer.

      Ich würde mir einen Datenpunkt erstellen, dort den aktuellen Zählerstand reinschreiben und diesen per Skript/Blockly/Node-Red bei jedem "ON" Impuls um 0,01 erhöhen. Wenn du den Brennwert und die Zustandszahl kennst, kannst du parallel auch noch einen weiteren Datenpunkt mit den kWh schreiben. Diese Datenpunkte werden dann in die Influx geschrieben. Dazu gibt es dann wieder Anleitungen wie Sand am Meer, wie das zu visualisieren ist.

      Ein weiterer Vorteil ist, dann du dann regelmäßig den Zählerstand mit deinem Datenpunkt abgleichen kannst und auf einem Blick siehst, wie gut die Aufzeichnung funktioniert oder du ggf. noch nachjustieren musst.

      MartinPM Online
      MartinPM Online
      MartinP
      schrieb am zuletzt editiert von
      #9

      @marc-berg Ich habe so viel Ärger mit "Prellern", dass ich den Nullpunkt-Offset in einem eigenen View bearbeitet habe ..

      Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
      Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
      Linux pve 6.8.12-16-pve
      6 GByte RAM für den Container
      Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
      Remote-Access über Wireguard der Fritzbox

      1 Antwort Letzte Antwort
      0
      • Marc BergM Offline
        Marc BergM Offline
        Marc Berg
        Most Active
        schrieb am zuletzt editiert von
        #10

        @martinp sagte in Hilfe bei Gaszähler > Reed > InfluxDB > Grafana:

        Ich habe so viel Ärger mit "Prellern", dass ich den Nullpunkt-Offset in einem eigenen View bearbeitet habe ..

        Diesen Reed Kontakt:

        https://www.ebay.de/itm/114809994326

        habe ich an einen Aqara Türsensor gelötet. Preller: Null

        NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+RabbitMQ+Grafana

        Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

        Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

        MartinPM 1 Antwort Letzte Antwort
        0
        • S seppele

          Danke Marc,
          dann war ich wohl komplett auf den Holzweg :(

          Ich hab deine Grundlegende Vorgangsweise denke ich verstanden aber absolut keinen Plan was ich genau tun muss.

          Was meinst du mit Datenpunkt genau, kannst du mir das kurz erläutern damit ich danach googlen kann? (Vermutllich einen Referenzpunkt zb. "Gasstand" in der InfluxDB?)

          Dann muss ich ein Script erstellen das den Zustandswechsel erkennt, anschliessend den letzten Zählerstand aus der Datenbank liest und diesen Wert+0,01 wieder in eine neue Zeile schreibt.
          Oder meinst du es wird genau die Zeile in der Db aktualsiert mit dem Wert+0,01 (Dann hätte ich ja keine Statistik mehr nur den Zählerstand?)

          Sorry für die dummen Fragen aber ich bin mittlerweise etwas verwirrt :)
          War doch deutlich komplizierter bis jetzt als gedacht.

          Marc BergM Offline
          Marc BergM Offline
          Marc Berg
          Most Active
          schrieb am zuletzt editiert von
          #11

          @seppele sagte in Hilfe bei Gaszähler > Reed > InfluxDB > Grafana:

          dann war ich wohl komplett auf den Holzweg

          So komplett sicher nicht, dein Ansatz funktioniert bestimmt auch irgendwie.

          Was meinst du mit Datenpunkt genau, kannst du mir das kurz erläutern damit ich danach googlen kann? (Vermutllich einen Referenzpunkt zb. "Gasstand" in der InfluxDB?)

          So ein Datenpunkt wie dein "mqtt.0.esphome.binary_sensor.gaszaehler.state". Nur halt von dir manuell angelegt unter "0_userdata.0. ..."

          Dann muss ich ein Script erstellen das den Zustandswechsel erkennt, anschliessend den letzten Zählerstand aus der Datenbank liest und diesen Wert+0,01 wieder in eine neue Zeile schreibt.

          Ne, die Datenbank ist da noch außen vor. Ich würde einfach den alten Wert aus dem Datenpunkt lesen, per Skript 0,01 addieren und danach den neuen Wert in den gleichen Datenpunkt zurück schreiben. Über den InfluxDB-Adapter schreibst du dann die Änderungen in die Datenbank.

          NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+RabbitMQ+Grafana

          Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

          Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

          1 Antwort Letzte Antwort
          0
          • Marc BergM Marc Berg

            @martinp sagte in Hilfe bei Gaszähler > Reed > InfluxDB > Grafana:

            Ich habe so viel Ärger mit "Prellern", dass ich den Nullpunkt-Offset in einem eigenen View bearbeitet habe ..

            Diesen Reed Kontakt:

            https://www.ebay.de/itm/114809994326

            habe ich an einen Aqara Türsensor gelötet. Preller: Null

            MartinPM Online
            MartinPM Online
            MartinP
            schrieb am zuletzt editiert von MartinP
            #12

            @marc-berg Bei meinem Gaszähler ist das kreisende Metallteil im Zähler kein Magnet, der induktive Näherungsschalter hat die Angewohnheit viele Fehl-Übergänge zu detektieren. Ich habe den Mindest-Abstand der Pulse schon auf 10 Sekunden gesetzt.
            Auswertung nicht mehr mit Tasmota-Zählern, sondern per Blockly

            a991f584-e04d-4c8c-a7f0-6e05ba627e0f-grafik.png

            Pro Tag ca. 1...3 Fehl Impulse (überzählig)

            Wenn ioBroker oder der LXC-Container neu gestartet werden muss, gehen natürlich auch Pulse verloren, und es muss ein neuer Start-Kubikmeter-Stand für den Puls-Zähler ermittelt werden..

            Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
            Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
            Linux pve 6.8.12-16-pve
            6 GByte RAM für den Container
            Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
            Remote-Access über Wireguard der Fritzbox

            M 1 Antwort Letzte Antwort
            0
            • MartinPM MartinP

              @marc-berg Bei meinem Gaszähler ist das kreisende Metallteil im Zähler kein Magnet, der induktive Näherungsschalter hat die Angewohnheit viele Fehl-Übergänge zu detektieren. Ich habe den Mindest-Abstand der Pulse schon auf 10 Sekunden gesetzt.
              Auswertung nicht mehr mit Tasmota-Zählern, sondern per Blockly

              a991f584-e04d-4c8c-a7f0-6e05ba627e0f-grafik.png

              Pro Tag ca. 1...3 Fehl Impulse (überzählig)

              Wenn ioBroker oder der LXC-Container neu gestartet werden muss, gehen natürlich auch Pulse verloren, und es muss ein neuer Start-Kubikmeter-Stand für den Puls-Zähler ermittelt werden..

              M Offline
              M Offline
              Markus 7
              schrieb am zuletzt editiert von Markus 7
              #13

              @seppele : Vielleicht als kleine Hilfestellung, da ich genau vor der gleichen Herausforderung stand:

              Ich habe mir manuelle Datenpunkte mit den entsprechenden Variablen wie Gaspreis, Zustandszahl etc. gesetzt:

              5665acfc-5de0-427a-87bf-22f31cb6ba35-image.png

              Dann über Alias den Impuls vom Reedkontakt abgegriffen:

              b38bb214-db2e-4fef-85f9-bbcfcce63513-image.png

              Dann über Blockly die entsprechenden Berechnungen gemacht:

              ae0fc088-e651-4417-b30d-6280cc1068f5-image.png

              Und abschließend die Werte über InfluxDB in Grafana geschaufelt:

              f5cd9c5b-b3a9-4281-b37c-6c87853ee21f-image.png

              S 1 Antwort Letzte Antwort
              0
              • M Markus 7

                @seppele : Vielleicht als kleine Hilfestellung, da ich genau vor der gleichen Herausforderung stand:

                Ich habe mir manuelle Datenpunkte mit den entsprechenden Variablen wie Gaspreis, Zustandszahl etc. gesetzt:

                5665acfc-5de0-427a-87bf-22f31cb6ba35-image.png

                Dann über Alias den Impuls vom Reedkontakt abgegriffen:

                b38bb214-db2e-4fef-85f9-bbcfcce63513-image.png

                Dann über Blockly die entsprechenden Berechnungen gemacht:

                ae0fc088-e651-4417-b30d-6280cc1068f5-image.png

                Und abschließend die Werte über InfluxDB in Grafana geschaufelt:

                f5cd9c5b-b3a9-4281-b37c-6c87853ee21f-image.png

                S Offline
                S Offline
                seppele
                schrieb am zuletzt editiert von
                #14

                Vielen Dank euch alle dass ihr mich so unterstützt!!

                @markus-7 meinst du er wäre möglich das du mit das blockly script und das dashboard von grafana zur verfügung stellst damit ich das als referenz verwenden kann und für meine bedürfnisse umbauen kann?
                Wenn man was nachvollziehen kann kapiert man deutlich schneller 😀
                Wenn nicht ist das natürlich auch vollkommen ok und ich danke dir für die Auflistung!

                M 1 Antwort Letzte Antwort
                0
                • S seppele

                  Vielen Dank euch alle dass ihr mich so unterstützt!!

                  @markus-7 meinst du er wäre möglich das du mit das blockly script und das dashboard von grafana zur verfügung stellst damit ich das als referenz verwenden kann und für meine bedürfnisse umbauen kann?
                  Wenn man was nachvollziehen kann kapiert man deutlich schneller 😀
                  Wenn nicht ist das natürlich auch vollkommen ok und ich danke dir für die Auflistung!

                  M Offline
                  M Offline
                  Markus 7
                  schrieb am zuletzt editiert von Markus 7
                  #15

                  @seppele

                  Natürlich, das ist kein Problem:

                  Nochmal zuerst meine Vorgehensweise:

                  1. Abgreifen der Impulse analogen Zählwerk des Gaszählers mittels Reedkontakt. Meine, es ist die vorletzte Stelle des Zählwerkes, dass aber dann testen und ausprobieren)
                  2. Den Impuls über den Schalter-Eingang eines Shellys abgreifen (bei mir über MQTT)
                  3. Über ein Blockly die Statusänderung des Shellys abgreifen (= Zählwerk-Umdrehung) und in den Verbräuchen m3, kWh und EUR aufsummieren.

                  c9642e0d-17b4-4821-a3c0-2c8e2c0d1d61-image.png

                  <block xmlns="https://developers.google.com/blockly/xml" type="on_ext" id="p|rxBglyht9*Em{vW+i]" x="-1187" y="-836">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                    <field name="CONDITION">any</field>
                    <field name="ACK_CONDITION"></field>
                    <value name="OID0">
                      <shadow type="field_oid" id="h,~q9gADA6$E~GUO4tt{">
                        <field name="oid">mqtt.0.Strom_Gastherme_Solarthermie_ShellyPlus2pm.status.input:0</field>
                      </shadow>
                    </value>
                    <statement name="STATEMENT">
                      <block type="update" id="eL28Vxm14qEa{ti-/1*J">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                        <field name="OID">0_userdata.0.2_Gas_G.2_2_G_Zähler.G_Verbrauch_m3</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="math_rndfixed" id=".x{Z?kn}cz.DZ.FV5TnI">
                            <field name="n">3</field>
                            <value name="x">
                              <shadow type="math_number" id=",n}IjByak[yb!LCB{6[L">
                                <field name="NUM">3.1234</field>
                              </shadow>
                              <block type="math_arithmetic" id="l8i9[#Y2PA1GO|AGS1ES">
                                <field name="OP">ADD</field>
                                <value name="A">
                                  <shadow type="math_number" id=";upHQ4m:GS.ANRrWdMWp">
                                    <field name="NUM">1</field>
                                  </shadow>
                                  <block type="get_value" id="M`5@(`Q8-1ind)9lA,k!">
                                    <field name="ATTR">val</field>
                                    <field name="OID">0_userdata.0.2_Gas_G.2_2_G_Zähler.G_Verbrauch_m3</field>
                                  </block>
                                </value>
                                <value name="B">
                                  <shadow type="math_number" id="w7p*K);K|cRA|[qAU*Q6">
                                    <field name="NUM">0.005</field>
                                  </shadow>
                                </value>
                              </block>
                            </value>
                          </block>
                        </value>
                        <next>
                          <block type="update" id="]YMIUu|j;5/nEvEU[{SJ">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                            <field name="OID">0_userdata.0.2_Gas_G.2_2_G_Zähler.G_Verbrauch_kWh</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="math_rndfixed" id="E?L}n4lYNIe+vxxlYkeM">
                                <field name="n">4</field>
                                <value name="x">
                                  <shadow type="math_number" id="WWoHV9r4g%YogY)5Tv*}">
                                    <field name="NUM">3.1234</field>
                                  </shadow>
                                  <block type="math_arithmetic" id=";v)}2Z!w*OHIV-|4$l2e">
                                    <field name="OP">MULTIPLY</field>
                                    <value name="A">
                                      <shadow type="math_number" id="U]]HkK|*N([O`Q.ehM[.">
                                        <field name="NUM">1</field>
                                      </shadow>
                                      <block type="get_value" id="Mfw*%e39RM9igl`!gW.6">
                                        <field name="ATTR">val</field>
                                        <field name="OID">0_userdata.0.2_Gas_G.2_2_G_Zähler.G_Verbrauch_m3</field>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <shadow type="math_number" id="puF9xJy00eL6OXwrETM@">
                                        <field name="NUM">1</field>
                                      </shadow>
                                      <block type="math_arithmetic" id="CfVuwA)O=J;dSaAlVRF7">
                                        <field name="OP">MULTIPLY</field>
                                        <value name="A">
                                          <shadow type="math_number" id="AnLSZK)]Gy6XvY@bq}C1">
                                            <field name="NUM">1</field>
                                          </shadow>
                                          <block type="get_value" id="USnrUs7H#1D~C#Icf7BT">
                                            <field name="ATTR">val</field>
                                            <field name="OID">0_userdata.0.2_Gas_G.2_1_G_Preis.G_Brennwert_20230520</field>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <shadow type="math_number" id="G|=SGw}./wa4k#IV~HzG">
                                            <field name="NUM">1</field>
                                          </shadow>
                                          <block type="get_value" id="pv?fs.`5QG!a]9CC=.vq">
                                            <field name="ATTR">val</field>
                                            <field name="OID">0_userdata.0.2_Gas_G.2_1_G_Preis.G_Zustandszahl_20230520</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <next>
                              <block type="update" id="c`;mgL@KAnKIW/apislC">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                <field name="OID">0_userdata.0.2_Gas_G.2_2_G_Zähler.G_Verbrauch_EUR</field>
                                <field name="WITH_DELAY">FALSE</field>
                                <value name="VALUE">
                                  <block type="math_rndfixed" id="_!:Y%feK=I4b!33u*I-)">
                                    <field name="n">2</field>
                                    <value name="x">
                                      <shadow type="math_number" id="V-17vzNaWhjv1N|N/vy6">
                                        <field name="NUM">3.1234</field>
                                      </shadow>
                                      <block type="math_arithmetic" id="%7IPv/dyfb=L7vnwM2|_">
                                        <field name="OP">MULTIPLY</field>
                                        <value name="A">
                                          <shadow type="math_number" id="Rh.v#}#8ddb@lWAh#0]/">
                                            <field name="NUM">1</field>
                                          </shadow>
                                          <block type="get_value" id="BV$Q1A5YT^B+a0xBC#{s">
                                            <field name="ATTR">val</field>
                                            <field name="OID">0_userdata.0.2_Gas_G.2_2_G_Zähler.G_Verbrauch_kWh</field>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <shadow type="math_number" id="A=Gi,82yPW1gvT@:)S(G">
                                            <field name="NUM">0</field>
                                          </shadow>
                                          <block type="get_value" id="{O{J{Q@Ry!ure]ud*BJ$">
                                            <field name="ATTR">val</field>
                                            <field name="OID">0_userdata.0.2_Gas_G.2_1_G_Preis.G_Preis_kWh_20230520</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </statement>
                  </block>
                  

                  Wie ich gerade bemerke, greife ich im Blockly direkt den Shelly ("Statusänderung") ab und nicht wie vorher geschrieben den extra dafür eingerichteten Alias, der aus der Shelly-MQTT-Ausgabe "{"id":0,"state":false}" den vereinfachten Datenpunkt "false" bzw. "true" setzt. Viele Wege führen nach Rom ;-)

                  1. Die in 3. aktualisierten Verbräuche an InfluxDB übergeben.

                  704963be-9e53-4ccd-86ab-e3adcf22aa17-image.png

                  In InfluxDB sieht die Abfrage dann so aus:

                  from(bucket: "iobroker_0")
                    |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                    |> filter(fn: (r) => r["_measurement"] == "G_Verbrauch_m3")
                    |> filter(fn: (r) => r["_field"] == "value")
                    |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
                    |> yield(name: "mean")
                  
                  1. In Grafana dann die InfluxDB Abfrage in verschiedene Ansichten, Diagramme etc. einbinden. Bei mir ist das ganze noch ziemlich "work in progress", ich bin immer noch am rumspielen.
                  {
                    "annotations": {
                      "list": [
                        {
                          "builtIn": 1,
                          "datasource": {
                            "type": "grafana",
                            "uid": "-- Grafana --"
                          },
                          "enable": true,
                          "hide": true,
                          "iconColor": "rgba(0, 211, 255, 1)",
                          "name": "Annotations & Alerts",
                          "type": "dashboard"
                        }
                      ]
                    },
                    "editable": true,
                    "fiscalYearStartMonth": 0,
                    "graphTooltip": 0,
                    "id": 9,
                    "links": [],
                    "liveNow": false,
                    "panels": [
                      {
                        "datasource": {
                          "type": "influxdb",
                          "uid": "fe8a6018-4149-4ba0-b895-92b7c98d857e"
                        },
                        "fieldConfig": {
                          "defaults": {
                            "color": {
                              "mode": "thresholds"
                            },
                            "decimals": 3,
                            "mappings": [],
                            "thresholds": {
                              "mode": "absolute",
                              "steps": [
                                {
                                  "color": "green",
                                  "value": null
                                },
                                {
                                  "color": "red",
                                  "value": 80
                                }
                              ]
                            },
                            "unit": "m3"
                          },
                          "overrides": []
                        },
                        "gridPos": {
                          "h": 4,
                          "w": 2,
                          "x": 0,
                          "y": 0
                        },
                        "id": 4,
                        "options": {
                          "colorMode": "value",
                          "graphMode": "none",
                          "justifyMode": "auto",
                          "orientation": "auto",
                          "reduceOptions": {
                            "calcs": [
                              "lastNotNull"
                            ],
                            "fields": "",
                            "values": false
                          },
                          "textMode": "auto"
                        },
                        "pluginVersion": "10.0.3",
                        "targets": [
                          {
                            "datasource": {
                              "type": "influxdb",
                              "uid": "fe8a6018-4149-4ba0-b895-92b7c98d857e"
                            },
                            "query": "from(bucket: \"iobroker_0\")\r\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n  |> filter(fn: (r) => r[\"_measurement\"] == \"G_Verbrauch_m3\")\r\n  |> filter(fn: (r) => r[\"_field\"] == \"value\")\r\n  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\r\n  |> yield(name: \"mean\")",
                            "refId": "A"
                          }
                        ],
                        "title": "Zählerstand",
                        "type": "stat"
                      },
                      {
                        "datasource": {
                          "type": "influxdb",
                          "uid": "fe8a6018-4149-4ba0-b895-92b7c98d857e"
                        },
                        "fieldConfig": {
                          "defaults": {
                            "color": {
                              "mode": "thresholds"
                            },
                            "mappings": [],
                            "thresholds": {
                              "mode": "absolute",
                              "steps": [
                                {
                                  "color": "green",
                                  "value": null
                                }
                              ]
                            },
                            "unit": "kwatth"
                          },
                          "overrides": []
                        },
                        "gridPos": {
                          "h": 4,
                          "w": 2,
                          "x": 2,
                          "y": 0
                        },
                        "id": 3,
                        "options": {
                          "colorMode": "value",
                          "graphMode": "none",
                          "justifyMode": "auto",
                          "orientation": "auto",
                          "reduceOptions": {
                            "calcs": [
                              "lastNotNull"
                            ],
                            "fields": "",
                            "values": false
                          },
                          "textMode": "auto"
                        },
                        "pluginVersion": "10.0.3",
                        "targets": [
                          {
                            "datasource": {
                              "type": "influxdb",
                              "uid": "fe8a6018-4149-4ba0-b895-92b7c98d857e"
                            },
                            "query": "from(bucket: \"iobroker_0\")\r\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n  |> filter(fn: (r) => r[\"_measurement\"] == \"G_Verbrauch_kWh\")\r\n  |> filter(fn: (r) => r[\"_field\"] == \"value\")\r\n  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\r\n  |> yield(name: \"mean\")",
                            "refId": "A"
                          }
                        ],
                        "title": "Verbrauch",
                        "type": "stat"
                      },
                      {
                        "datasource": {
                          "type": "influxdb",
                          "uid": "fe8a6018-4149-4ba0-b895-92b7c98d857e"
                        },
                        "fieldConfig": {
                          "defaults": {
                            "color": {
                              "mode": "thresholds"
                            },
                            "decimals": 2,
                            "mappings": [],
                            "thresholds": {
                              "mode": "absolute",
                              "steps": [
                                {
                                  "color": "green",
                                  "value": null
                                },
                                {
                                  "color": "red",
                                  "value": 80
                                }
                              ]
                            },
                            "unit": "EUR"
                          },
                          "overrides": []
                        },
                        "gridPos": {
                          "h": 4,
                          "w": 2,
                          "x": 4,
                          "y": 0
                        },
                        "id": 7,
                        "options": {
                          "colorMode": "value",
                          "graphMode": "none",
                          "justifyMode": "auto",
                          "orientation": "auto",
                          "reduceOptions": {
                            "calcs": [
                              "last"
                            ],
                            "fields": "",
                            "values": false
                          },
                          "textMode": "auto"
                        },
                        "pluginVersion": "10.0.3",
                        "targets": [
                          {
                            "datasource": {
                              "type": "influxdb",
                              "uid": "fe8a6018-4149-4ba0-b895-92b7c98d857e"
                            },
                            "query": "from(bucket: \"iobroker_0\")\r\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n  |> filter(fn: (r) => r[\"_measurement\"] == \"G_Verbrauch_EUR\")\r\n  |> filter(fn: (r) => r[\"_field\"] == \"value\")\r\n  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\r\n  |> yield(name: \"mean\")",
                            "refId": "A"
                          }
                        ],
                        "title": "Kosten",
                        "type": "stat"
                      },
                      {
                        "datasource": {
                          "type": "influxdb",
                          "uid": "fe8a6018-4149-4ba0-b895-92b7c98d857e"
                        },
                        "fieldConfig": {
                          "defaults": {
                            "color": {
                              "mode": "thresholds"
                            },
                            "custom": {
                              "align": "auto",
                              "cellOptions": {
                                "type": "color-text"
                              },
                              "inspect": false,
                              "minWidth": 50,
                              "width": 100
                            },
                            "mappings": [],
                            "thresholds": {
                              "mode": "absolute",
                              "steps": [
                                {
                                  "color": "green",
                                  "value": null
                                }
                              ]
                            },
                            "unit": "currencyEUR"
                          },
                          "overrides": [
                            {
                              "matcher": {
                                "id": "byName",
                                "options": "Time"
                              },
                              "properties": [
                                {
                                  "id": "unit",
                                  "value": "time: DD.MM.YY"
                                }
                              ]
                            }
                          ]
                        },
                        "gridPos": {
                          "h": 12,
                          "w": 3,
                          "x": 12,
                          "y": 0
                        },
                        "hideTimeOverride": true,
                        "id": 6,
                        "interval": "1d",
                        "options": {
                          "cellHeight": "sm",
                          "footer": {
                            "countRows": false,
                            "fields": [
                              "value"
                            ],
                            "reducer": [
                              "sum"
                            ],
                            "show": true
                          },
                          "showHeader": false
                        },
                        "pluginVersion": "10.0.3",
                        "targets": [
                          {
                            "datasource": {
                              "type": "influxdb",
                              "uid": "fe8a6018-4149-4ba0-b895-92b7c98d857e"
                            },
                            "query": "import \"timezone\" option location = timezone.location(name:\"Europe/Berlin\")\r\nfrom(bucket: \"iobroker_0\")\r\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n  |> filter(fn: (r) => r[\"_measurement\"] == \"G_Verbrauch_EUR\")\r\n  |> filter(fn: (r) => r[\"_field\"] == \"value\")\r\n  |> difference(nonNegative: true, columns: [\"_value\"], keepFirst: false)\r\n  |> aggregateWindow(every: 1d, fn: sum, createEmpty: false, timeSrc: \"_start\")\r\n  |> yield(name: \"difference\")",
                            "refId": "A"
                          }
                        ],
                        "timeFrom": "now-12M",
                        "title": "Gaskosten",
                        "type": "table"
                      },
                      {
                        "datasource": {
                          "type": "influxdb",
                          "uid": "fe8a6018-4149-4ba0-b895-92b7c98d857e"
                        },
                        "fieldConfig": {
                          "defaults": {
                            "color": {
                              "mode": "palette-classic"
                            },
                            "custom": {
                              "axisCenteredZero": false,
                              "axisColorMode": "text",
                              "axisLabel": "",
                              "axisPlacement": "auto",
                              "barAlignment": 0,
                              "drawStyle": "line",
                              "fillOpacity": 0,
                              "gradientMode": "none",
                              "hideFrom": {
                                "legend": false,
                                "tooltip": false,
                                "viz": false
                              },
                              "lineInterpolation": "linear",
                              "lineWidth": 1,
                              "pointSize": 5,
                              "scaleDistribution": {
                                "type": "linear"
                              },
                              "showPoints": "auto",
                              "spanNulls": false,
                              "stacking": {
                                "group": "A",
                                "mode": "none"
                              },
                              "thresholdsStyle": {
                                "mode": "off"
                              }
                            },
                            "mappings": [],
                            "thresholds": {
                              "mode": "absolute",
                              "steps": [
                                {
                                  "color": "green",
                                  "value": null
                                },
                                {
                                  "color": "red",
                                  "value": 80
                                }
                              ]
                            }
                          },
                          "overrides": []
                        },
                        "gridPos": {
                          "h": 8,
                          "w": 12,
                          "x": 0,
                          "y": 4
                        },
                        "id": 1,
                        "options": {
                          "legend": {
                            "calcs": [],
                            "displayMode": "list",
                            "placement": "bottom",
                            "showLegend": true
                          },
                          "tooltip": {
                            "mode": "single",
                            "sort": "none"
                          }
                        },
                        "targets": [
                          {
                            "datasource": {
                              "type": "influxdb",
                              "uid": "fe8a6018-4149-4ba0-b895-92b7c98d857e"
                            },
                            "query": "from(bucket: \"iobroker_0\")\r\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n  |> filter(fn: (r) => r[\"_measurement\"] == \"G_Verbrauch_kWh\")\r\n  |> filter(fn: (r) => r[\"_field\"] == \"value\")\r\n  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\r\n  |> yield(name: \"mean\")",
                            "refId": "A"
                          }
                        ],
                        "title": "Gasverbrauch [kWh]",
                        "type": "timeseries"
                      },
                      {
                        "datasource": {
                          "type": "influxdb",
                          "uid": "fe8a6018-4149-4ba0-b895-92b7c98d857e"
                        },
                        "fieldConfig": {
                          "defaults": {
                            "color": {
                              "mode": "palette-classic"
                            },
                            "custom": {
                              "axisCenteredZero": false,
                              "axisColorMode": "text",
                              "axisLabel": "",
                              "axisPlacement": "auto",
                              "fillOpacity": 80,
                              "gradientMode": "opacity",
                              "hideFrom": {
                                "legend": false,
                                "tooltip": false,
                                "viz": false
                              },
                              "lineWidth": 1,
                              "scaleDistribution": {
                                "type": "linear"
                              },
                              "thresholdsStyle": {
                                "mode": "off"
                              }
                            },
                            "mappings": [],
                            "max": 20,
                            "thresholds": {
                              "mode": "absolute",
                              "steps": [
                                {
                                  "color": "green",
                                  "value": null
                                }
                              ]
                            },
                            "unit": "kwatth"
                          },
                          "overrides": [
                            {
                              "matcher": {
                                "id": "byName",
                                "options": "Time"
                              },
                              "properties": [
                                {
                                  "id": "unit",
                                  "value": "time: DD:MMM"
                                }
                              ]
                            }
                          ]
                        },
                        "gridPos": {
                          "h": 14,
                          "w": 24,
                          "x": 0,
                          "y": 12
                        },
                        "id": 2,
                        "options": {
                          "barRadius": 0,
                          "barWidth": 0.86,
                          "fullHighlight": false,
                          "groupWidth": 0.7,
                          "legend": {
                            "calcs": [],
                            "displayMode": "list",
                            "placement": "bottom",
                            "showLegend": false
                          },
                          "orientation": "auto",
                          "showValue": "auto",
                          "stacking": "none",
                          "tooltip": {
                            "mode": "single",
                            "sort": "none"
                          },
                          "xField": "Time",
                          "xTickLabelRotation": 90,
                          "xTickLabelSpacing": 0
                        },
                        "pluginVersion": "10.0.3",
                        "targets": [
                          {
                            "datasource": {
                              "type": "influxdb",
                              "uid": "fe8a6018-4149-4ba0-b895-92b7c98d857e"
                            },
                            "query": "  import \"timezone\" option location = timezone.location(name:\"Europe/Berlin\")\r\n  from(bucket: \"iobroker_0\")\r\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\r\n  |> filter(fn: (r) => r[\"_measurement\"] == \"G_Verbrauch_kWh\")\r\n  |> filter(fn: (r) => r[\"_field\"] == \"value\")\r\n  |> difference(nonNegative: true, columns: [\"_value\"], keepFirst: false)\r\n  |> aggregateWindow(every: 1d, fn: sum, createEmpty: true, timeSrc: \"_start\")\r\n  |> yield(name: \"difference\")",
                            "refId": "A"
                          }
                        ],
                        "title": "Gasverbrauch [kWh/Tag]",
                        "type": "barchart"
                      }
                    ],
                    "refresh": "",
                    "schemaVersion": 38,
                    "style": "dark",
                    "tags": [],
                    "templating": {
                      "list": []
                    },
                    "time": {
                      "from": "now-6M",
                      "to": "now"
                    },
                    "timepicker": {},
                    "timezone": "",
                    "title": "Gasverbrauch",
                    "uid": "e5ebcb70-ccf6-4a87-a6a9-af1401f51eac",
                    "version": 18,
                    "weekStart": ""
                  }
                  

                  Hoffe das hilft dir ein bisschen weiter :-)

                  1 Antwort Letzte Antwort
                  0
                  • S Offline
                    S Offline
                    seppele
                    schrieb am zuletzt editiert von seppele
                    #16

                    Vielen vielen Dank @Markus-7
                    das hat mir sehr weitergeholfen, war zwar den ganzen Tag nicht zuhause, konnte aber in kurzer Zeit schon einiges davon umsetzen.

                    Hab als erstes die Datenpunkte angelegt, war eigentlich ganz einfach.
                    gasverbrauch-datenpunkte.jpg

                    Anschliessend hab ich dann ein Blockly Script anhanden deinem Bild nachgebaut mit meinen Datenpunkten.
                    gasverbrauch-blockly-script-1.jpg

                    Dann hab ich noch das speichern dens Datenpunkts die DB eingestellt.

                    Und jetzt muss ich noch das Dashboard in Grafana zusammenbasteln.
                    Da hab ich aber noch ein paar schwarze Flecken, diese Flux Query Language ist ja ggrauenhaft, hab das jetzt mal voin influxql umgestellt, jetzt geht zwar mein restliches Zeug nichtmehr aber egal mann muss ja auch mal mit der Zeit gehen.

                    Jedenfalls brauche ich noch ein paar Infos:
                    Wie finde ich das passende Bucket meins Datenpunkts, hier mal ein Beispiel Datenpunkt:

                    {
                      "common": {
                        "name": "Zaehlerstand_m3",
                        "desc": "Manuell erzeugt",
                        "role": "state",
                        "type": "number",
                        "read": true,
                        "write": true,
                        "def": 0,
                        "custom": {
                          "influxdb.0": {
                            "enabled": true,
                            "storageType": "",
                            "aliasId": "Zaehlerstand_m3",
                            "debounceTime": 0,
                            "blockTime": 0,
                            "changesOnly": true,
                            "changesRelogInterval": 0,
                            "changesMinDelta": 0,
                            "ignoreBelowNumber": "",
                            "disableSkippedValueLogging": false,
                            "enableDebugLogs": false,
                            "debounce": 1000
                          }
                        }
                      },
                      "type": "state",
                      "native": {},
                      "_id": "0_userdata.0.Gas.Zaehlerstand_m3",
                      "acl": {
                        "object": 1636,
                        "state": 1636,
                        "owner": "system.user.admin",
                        "ownerGroup": "system.group.administrator"
                      },
                      "from": "system.adapter.admin.0",
                      "user": "system.user.admin",
                      "ts": 1708875595753
                    }
                    

                    Wäre hier das Bucket das ich in der Query verwenden müsste influxdb.0

                    Wenn ich jetzt deine Abfrage auf mein Feld anwenden wollte müsste ich das dann so ändern: (cih habe den ganzen ID Pfad da genommen, oder reicht da diese aliasid auch aus?)

                    from(bucket: "influxdb.0")
                      |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                      |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Gas.Zaehlerstand_m3")
                      |> filter(fn: (r) => r["_field"] == "value")
                      |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
                      |> yield(name: "mean")
                    

                    Jedenfalls bin ich schon weit gekommen und hab viel gelernt, diese Datenpunkte und die einfache Handhabung mit Blockly eröffnen ja extreme Möglichkeiten :)

                    M 1 Antwort Letzte Antwort
                    1
                    • S seppele

                      Vielen vielen Dank @Markus-7
                      das hat mir sehr weitergeholfen, war zwar den ganzen Tag nicht zuhause, konnte aber in kurzer Zeit schon einiges davon umsetzen.

                      Hab als erstes die Datenpunkte angelegt, war eigentlich ganz einfach.
                      gasverbrauch-datenpunkte.jpg

                      Anschliessend hab ich dann ein Blockly Script anhanden deinem Bild nachgebaut mit meinen Datenpunkten.
                      gasverbrauch-blockly-script-1.jpg

                      Dann hab ich noch das speichern dens Datenpunkts die DB eingestellt.

                      Und jetzt muss ich noch das Dashboard in Grafana zusammenbasteln.
                      Da hab ich aber noch ein paar schwarze Flecken, diese Flux Query Language ist ja ggrauenhaft, hab das jetzt mal voin influxql umgestellt, jetzt geht zwar mein restliches Zeug nichtmehr aber egal mann muss ja auch mal mit der Zeit gehen.

                      Jedenfalls brauche ich noch ein paar Infos:
                      Wie finde ich das passende Bucket meins Datenpunkts, hier mal ein Beispiel Datenpunkt:

                      {
                        "common": {
                          "name": "Zaehlerstand_m3",
                          "desc": "Manuell erzeugt",
                          "role": "state",
                          "type": "number",
                          "read": true,
                          "write": true,
                          "def": 0,
                          "custom": {
                            "influxdb.0": {
                              "enabled": true,
                              "storageType": "",
                              "aliasId": "Zaehlerstand_m3",
                              "debounceTime": 0,
                              "blockTime": 0,
                              "changesOnly": true,
                              "changesRelogInterval": 0,
                              "changesMinDelta": 0,
                              "ignoreBelowNumber": "",
                              "disableSkippedValueLogging": false,
                              "enableDebugLogs": false,
                              "debounce": 1000
                            }
                          }
                        },
                        "type": "state",
                        "native": {},
                        "_id": "0_userdata.0.Gas.Zaehlerstand_m3",
                        "acl": {
                          "object": 1636,
                          "state": 1636,
                          "owner": "system.user.admin",
                          "ownerGroup": "system.group.administrator"
                        },
                        "from": "system.adapter.admin.0",
                        "user": "system.user.admin",
                        "ts": 1708875595753
                      }
                      

                      Wäre hier das Bucket das ich in der Query verwenden müsste influxdb.0

                      Wenn ich jetzt deine Abfrage auf mein Feld anwenden wollte müsste ich das dann so ändern: (cih habe den ganzen ID Pfad da genommen, oder reicht da diese aliasid auch aus?)

                      from(bucket: "influxdb.0")
                        |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                        |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Gas.Zaehlerstand_m3")
                        |> filter(fn: (r) => r["_field"] == "value")
                        |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
                        |> yield(name: "mean")
                      

                      Jedenfalls bin ich schon weit gekommen und hab viel gelernt, diese Datenpunkte und die einfache Handhabung mit Blockly eröffnen ja extreme Möglichkeiten :)

                      M Offline
                      M Offline
                      Markus 7
                      schrieb am zuletzt editiert von
                      #17

                      @seppele said in Hilfe bei Gaszähler > Reed > InfluxDB > Grafana:

                      Wie finde ich das passende Bucket meins Datenpunkts, hier mal ein Beispiel Datenpunkt:

                      Ich weiß nicht, ob ich dich richtig verstehe, denn unter "Bucket" habe ich nur ein einziges, in das mir alle Daten von ioBroker reingeschaufelt werden. Man kann aber auch bei größeren bzw. sehr vielen Datenpunkten auch mehrere Buckets definieren. Und das Bucket definierst du ja in ioBroker selbst in der influxdb.0 Instanz (hier "DB Name" genannt):

                      b71a9295-0687-4c5c-a409-31ea94f65abb-image.png

                      In InfluxDB selber gehe ich diesen Weg, um die richtige Abfrage zu finden:

                      f14bf79f-4f53-44da-abdf-984e7d2f68be-image.png

                      Das ergibt dann diese Abfrage, die ich mit copy&paste in Grafana einfüge:

                      a492ce93-620f-476b-bf86-c3d35c8488b1-image.png

                      282386ef-a681-40a4-8eef-a6bd2f645980-image.png

                      S MartinPM 2 Antworten Letzte Antwort
                      0
                      • M Markus 7

                        @seppele said in Hilfe bei Gaszähler > Reed > InfluxDB > Grafana:

                        Wie finde ich das passende Bucket meins Datenpunkts, hier mal ein Beispiel Datenpunkt:

                        Ich weiß nicht, ob ich dich richtig verstehe, denn unter "Bucket" habe ich nur ein einziges, in das mir alle Daten von ioBroker reingeschaufelt werden. Man kann aber auch bei größeren bzw. sehr vielen Datenpunkten auch mehrere Buckets definieren. Und das Bucket definierst du ja in ioBroker selbst in der influxdb.0 Instanz (hier "DB Name" genannt):

                        b71a9295-0687-4c5c-a409-31ea94f65abb-image.png

                        In InfluxDB selber gehe ich diesen Weg, um die richtige Abfrage zu finden:

                        f14bf79f-4f53-44da-abdf-984e7d2f68be-image.png

                        Das ergibt dann diese Abfrage, die ich mit copy&paste in Grafana einfüge:

                        a492ce93-620f-476b-bf86-c3d35c8488b1-image.png

                        282386ef-a681-40a4-8eef-a6bd2f645980-image.png

                        S Offline
                        S Offline
                        seppele
                        schrieb am zuletzt editiert von
                        #18

                        @markus-7 das war genau mrine Frage!! 😀
                        Den Dataexplorer hab ich noch nicht gefunden, vielleicht muss ich mein grafana updaten, ich hab ja nur die Query Language umgestellt.

                        Probier ich morgen gleich aus. 👍

                        M 1 Antwort Letzte Antwort
                        0
                        • M Markus 7

                          @seppele said in Hilfe bei Gaszähler > Reed > InfluxDB > Grafana:

                          Wie finde ich das passende Bucket meins Datenpunkts, hier mal ein Beispiel Datenpunkt:

                          Ich weiß nicht, ob ich dich richtig verstehe, denn unter "Bucket" habe ich nur ein einziges, in das mir alle Daten von ioBroker reingeschaufelt werden. Man kann aber auch bei größeren bzw. sehr vielen Datenpunkten auch mehrere Buckets definieren. Und das Bucket definierst du ja in ioBroker selbst in der influxdb.0 Instanz (hier "DB Name" genannt):

                          b71a9295-0687-4c5c-a409-31ea94f65abb-image.png

                          In InfluxDB selber gehe ich diesen Weg, um die richtige Abfrage zu finden:

                          f14bf79f-4f53-44da-abdf-984e7d2f68be-image.png

                          Das ergibt dann diese Abfrage, die ich mit copy&paste in Grafana einfüge:

                          a492ce93-620f-476b-bf86-c3d35c8488b1-image.png

                          282386ef-a681-40a4-8eef-a6bd2f645980-image.png

                          MartinPM Online
                          MartinPM Online
                          MartinP
                          schrieb am zuletzt editiert von MartinP
                          #19

                          @markus-7 said in Hilfe bei Gaszähler > Reed > InfluxDB > Grafana:

                          Ich weiß nicht, ob ich dich richtig verstehe, denn unter "Bucket" habe ich nur ein einziges, in das mir alle Daten von ioBroker reingeschaufelt werden.

                          Es gibt schon Gründe für mehrere Buckets. Bisher habe ich nur eines, aber ggfs. werde ich mir ein Zweites mit deutlich längerer Retain Time anlegen, in das dann z.b. Tageswerte für Energieverbrauch kommen... Das aktuelle Bucket räumt alles ab, was älter, als 12 Monate ist...

                          Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                          Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
                          Linux pve 6.8.12-16-pve
                          6 GByte RAM für den Container
                          Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                          Remote-Access über Wireguard der Fritzbox

                          1 Antwort Letzte Antwort
                          1
                          • S seppele

                            @markus-7 das war genau mrine Frage!! 😀
                            Den Dataexplorer hab ich noch nicht gefunden, vielleicht muss ich mein grafana updaten, ich hab ja nur die Query Language umgestellt.

                            Probier ich morgen gleich aus. 👍

                            M Offline
                            M Offline
                            Markus 7
                            schrieb am zuletzt editiert von
                            #20

                            @seppele said in Hilfe bei Gaszähler > Reed > InfluxDB > Grafana:

                            Den Dataexplorer hab ich noch nicht gefunden, vielleicht muss ich mein grafana updaten,

                            Nur, dass wir nicht aneinander vorbeischreiben: Den Dataexplorer gibt es in InfluxDB, nicht in Grafana ;-)

                            S 1 Antwort Letzte Antwort
                            0
                            • M Markus 7

                              @seppele said in Hilfe bei Gaszähler > Reed > InfluxDB > Grafana:

                              Den Dataexplorer hab ich noch nicht gefunden, vielleicht muss ich mein grafana updaten,

                              Nur, dass wir nicht aneinander vorbeischreiben: Den Dataexplorer gibt es in InfluxDB, nicht in Grafana ;-)

                              S Offline
                              S Offline
                              seppele
                              schrieb am zuletzt editiert von seppele
                              #21

                              @markus-7 ich hab influx über die console installiert, ich glaub ich hab garkein webinterface dazu, wenn ich ip:8086 aufrufe bekommf ich nur „page not found“

                              das interface hätte alled deuhlich vereinfacht, hast du eine idee dazu? 🫣

                              Ich habe InfluxDB 1.6.7 installiert, muss ich das updaten?

                              1 Antwort Letzte Antwort
                              0
                              • M Offline
                                M Offline
                                Markus 7
                                schrieb am zuletzt editiert von
                                #22

                                @seppele

                                Leider kenne ich mich da nicht wirklich aus, da ich auch das meiste nur "stur nach Anleitung" installieren konnte.
                                Vielleicht hilft dir dieser Tread weiter: https://forum.iobroker.net/topic/39887/geklärt-problem-bei-influx-installation/33

                                Ansonsten müssten da mal hier die Profis ran, mir hat man auch schon viel (und erfolgreich) hier geholfen :-)

                                S 1 Antwort Letzte Antwort
                                0
                                • M Markus 7

                                  @seppele

                                  Leider kenne ich mich da nicht wirklich aus, da ich auch das meiste nur "stur nach Anleitung" installieren konnte.
                                  Vielleicht hilft dir dieser Tread weiter: https://forum.iobroker.net/topic/39887/geklärt-problem-bei-influx-installation/33

                                  Ansonsten müssten da mal hier die Profis ran, mir hat man auch schon viel (und erfolgreich) hier geholfen :-)

                                  S Offline
                                  S Offline
                                  seppele
                                  schrieb am zuletzt editiert von seppele
                                  #23

                                  Bevor ich das InfluxDB Problem weiter behandle muss ich noch die Falschzählungen des Reedkontakts lösen.

                                  Ich hab das Script wie gesagt aus dem Netz und hätte dazu ein paar Fragen, ich hoffe jemand kann mir dabei helfen.

                                  Wozu brauch ich folgenden Part, hab kein Homeassistant laufen, konnte das durch google nicht lösen.
                                  Kann ich das rauslöschen?

                                  # Enable Home Assistant API
                                  api:
                                    encryption:
                                      key: "2342+243532+234532="
                                  

                                  Jetzt zum eigentlichen Problem:
                                  Aktuell zähle ich leider doppelt da ich mit einem Blockly Script bei Änderung des Status eine Zählung mache, da aber die Rückstellung von on auf off auch eine Änderung ist zähle ich jede Umdrehung doppelt.
                                  Hier der Teil aus der esphome yaml der den Status erfasst:

                                  # Reed Kontakt an GPIO5
                                  binary_sensor:
                                    - platform: gpio
                                      name: "Gaszaehler"
                                      id: Gaszaehler
                                      pin:
                                        number: 5
                                        inverted: true
                                        mode: INPUT_PULLUP
                                      filters:
                                        # debounce, delay um Doppelzählungen zu vermeiden
                                        - delayed_off: 1s
                                      on_press:
                                        then:
                                          - mqtt.publish:
                                              topic: esphome/Gaszaehler/Stand
                                              payload: id(Gaszaehler).state
                                  

                                  Ich hab noch nicht rausgefunden wie ich das am einfachsten löse.
                                  Kann man in Blockly nicht sagen "wenn Wert == on > Zählen", dann würde er die Rückstellung auf off nicht beachten
                                  gasverbrauch-blockly-script-1.jpg

                                  Vielen Dank für eeure Tipps!

                                  EDIT:
                                  Was haltet ihr davon
                                  79efd044-4938-4c72-b417-819b99480d7e-grafik.png

                                  MartinPM M ubeckerU 3 Antworten Letzte Antwort
                                  0
                                  • S seppele

                                    Bevor ich das InfluxDB Problem weiter behandle muss ich noch die Falschzählungen des Reedkontakts lösen.

                                    Ich hab das Script wie gesagt aus dem Netz und hätte dazu ein paar Fragen, ich hoffe jemand kann mir dabei helfen.

                                    Wozu brauch ich folgenden Part, hab kein Homeassistant laufen, konnte das durch google nicht lösen.
                                    Kann ich das rauslöschen?

                                    # Enable Home Assistant API
                                    api:
                                      encryption:
                                        key: "2342+243532+234532="
                                    

                                    Jetzt zum eigentlichen Problem:
                                    Aktuell zähle ich leider doppelt da ich mit einem Blockly Script bei Änderung des Status eine Zählung mache, da aber die Rückstellung von on auf off auch eine Änderung ist zähle ich jede Umdrehung doppelt.
                                    Hier der Teil aus der esphome yaml der den Status erfasst:

                                    # Reed Kontakt an GPIO5
                                    binary_sensor:
                                      - platform: gpio
                                        name: "Gaszaehler"
                                        id: Gaszaehler
                                        pin:
                                          number: 5
                                          inverted: true
                                          mode: INPUT_PULLUP
                                        filters:
                                          # debounce, delay um Doppelzählungen zu vermeiden
                                          - delayed_off: 1s
                                        on_press:
                                          then:
                                            - mqtt.publish:
                                                topic: esphome/Gaszaehler/Stand
                                                payload: id(Gaszaehler).state
                                    

                                    Ich hab noch nicht rausgefunden wie ich das am einfachsten löse.
                                    Kann man in Blockly nicht sagen "wenn Wert == on > Zählen", dann würde er die Rückstellung auf off nicht beachten
                                    gasverbrauch-blockly-script-1.jpg

                                    Vielen Dank für eeure Tipps!

                                    EDIT:
                                    Was haltet ihr davon
                                    79efd044-4938-4c72-b417-819b99480d7e-grafik.png

                                    MartinPM Online
                                    MartinPM Online
                                    MartinP
                                    schrieb am zuletzt editiert von
                                    #24

                                    @seppele Die zweite Lösung funktioniert. Übliche Lösung ist aber auch oben im Trigger statt ....

                                    "wurde geändert"

                                    "ist größer als voriger"

                                    ... zu wählen,,,

                                    Intel(R) Celeron(R) CPU N3000 @ 1.04GHz 8G RAM 480G SSD
                                    Virtualization : unprivileged lxc container (debian 12 on Proxmox 8.4.14)
                                    Linux pve 6.8.12-16-pve
                                    6 GByte RAM für den Container
                                    Fritzbox 6591 FW 8.03 (Vodafone Leih-Box)
                                    Remote-Access über Wireguard der Fritzbox

                                    S 1 Antwort Letzte Antwort
                                    0
                                    • S seppele

                                      Bevor ich das InfluxDB Problem weiter behandle muss ich noch die Falschzählungen des Reedkontakts lösen.

                                      Ich hab das Script wie gesagt aus dem Netz und hätte dazu ein paar Fragen, ich hoffe jemand kann mir dabei helfen.

                                      Wozu brauch ich folgenden Part, hab kein Homeassistant laufen, konnte das durch google nicht lösen.
                                      Kann ich das rauslöschen?

                                      # Enable Home Assistant API
                                      api:
                                        encryption:
                                          key: "2342+243532+234532="
                                      

                                      Jetzt zum eigentlichen Problem:
                                      Aktuell zähle ich leider doppelt da ich mit einem Blockly Script bei Änderung des Status eine Zählung mache, da aber die Rückstellung von on auf off auch eine Änderung ist zähle ich jede Umdrehung doppelt.
                                      Hier der Teil aus der esphome yaml der den Status erfasst:

                                      # Reed Kontakt an GPIO5
                                      binary_sensor:
                                        - platform: gpio
                                          name: "Gaszaehler"
                                          id: Gaszaehler
                                          pin:
                                            number: 5
                                            inverted: true
                                            mode: INPUT_PULLUP
                                          filters:
                                            # debounce, delay um Doppelzählungen zu vermeiden
                                            - delayed_off: 1s
                                          on_press:
                                            then:
                                              - mqtt.publish:
                                                  topic: esphome/Gaszaehler/Stand
                                                  payload: id(Gaszaehler).state
                                      

                                      Ich hab noch nicht rausgefunden wie ich das am einfachsten löse.
                                      Kann man in Blockly nicht sagen "wenn Wert == on > Zählen", dann würde er die Rückstellung auf off nicht beachten
                                      gasverbrauch-blockly-script-1.jpg

                                      Vielen Dank für eeure Tipps!

                                      EDIT:
                                      Was haltet ihr davon
                                      79efd044-4938-4c72-b417-819b99480d7e-grafik.png

                                      M Offline
                                      M Offline
                                      Markus 7
                                      schrieb am zuletzt editiert von
                                      #25

                                      @seppele said in Hilfe bei Gaszähler > Reed > InfluxDB > Grafana:

                                      Aktuell zähle ich leider doppelt da ich mit einem Blockly Script bei Änderung des Status eine Zählung mache

                                      Ich habe das so gelöst, dass ich pro Impuls die Hälfte der eigentlichen Verbrauchszahl hinzuaddiere.

                                      Ich greife also am Zähler (mit der Auflösung von 0,001 m3) die 2. Nachkommastelle ab (entspricht 10 L).
                                      Dabei gibt es bei pro ganzer Umdrehung des Zählrades zwei Impulse. Diese addiere ich dann in Blockly mit jeweils dem Wert "0,005", sodass die zwei Impulse dann zusammen "0,01 m3" ergeben und zum bestehenden Verbrauch addiert werden.

                                      fb6df906-d75f-4bfd-8dda-a31dfb59fe88-image.png

                                      1 Antwort Letzte Antwort
                                      0
                                      • MartinPM MartinP

                                        @seppele Die zweite Lösung funktioniert. Übliche Lösung ist aber auch oben im Trigger statt ....

                                        "wurde geändert"

                                        "ist größer als voriger"

                                        ... zu wählen,,,

                                        S Offline
                                        S Offline
                                        seppele
                                        schrieb am zuletzt editiert von
                                        #26

                                        Danke euch zwei!

                                        @martinp Verstehe ich nicht :) ich stelle ja immer zwischen ON und OFF hin und her und habe ja keinen Wert der sich erhöht oder kapiere ich die Funktion nicht?

                                        @Markus-7 Ja verstehe jetzt dein vorgehen, ich glaube ich bleib aber vorerst mal bei meinem Wertvergleich gefällt mir irgendwie besser :)

                                        MartinPM 1 Antwort Letzte Antwort
                                        0
                                        • S seppele

                                          Hallo Leute, ich bin neu hier und wollte euch um Hilfe bitte.

                                          Ich möchte meinen Gaszähler einen "BK-G4 M" von Tigas auslesen und die Daten in einer InfluxDB auf einem Raspi speichern, anschliessend würde ich die Daten gerne visualisieren damit ich den Gasverbrauch anzeigen kann.

                                          Ich hoffe ich bin hier im richtigen Unterforum, wusste nicht wo ich das am besten hinpacke da es eigentlich mehrere Themenschwerpunkte beinhaltet.

                                          Was ich bereits gemacht habe.

                                          • RPI 4 aufgesetzt
                                          • iobroker installiert
                                          • influxdb installiert
                                          • grafana installiert
                                          • esphome installiert
                                          • Reed Kontakt an D1 Mini angeschlossen
                                          • D1 Mini mit esp home geflasht (yaml script aus Internet)
                                          • D1 Mini zeigt beim überfahren eines Magneten den Statuswechsel an
                                          • Daten bei Statuswechsel werden in der influxDB gespeichert (timestamp, Status on/off)

                                          Was mir noch fehlt und ich jetzt Probelme habe:

                                          • Mein Script entsprechend anpassen dass die Entprellung mit dem Gaszähler zusammen passt damit richtig gezählt wird
                                          • Die gespeicherten Daten im Grafana dann auswerten damit ich den Verbrauch zb. Pro Tag, Pro Woche, Pro Monat und Pro Jahr anzeigen kann

                                          Hiet ein Bild von den Settings zum speichern der Daten in InfluxDB:
                                          27b20a1a-1525-4bc4-b2aa-5545c59ba22d-grafik.png

                                          Hier das yaml Script vom D1 (aus dem Internet, nicht meins)

                                          esphome:
                                            name: d1-gas
                                            friendly_name: D1Gaszähler
                                          
                                          esp8266:
                                            board: esp01_1m
                                          
                                          # Enable logging
                                          logger:
                                          
                                          # Enable Home Assistant API
                                          api:
                                            encryption:
                                              key: "XXX"
                                          
                                          ota:
                                            password: "XXX"
                                          
                                          wifi:
                                            ssid: !secret wifi_ssid
                                            password: !secret wifi_password
                                          
                                            # Enable fallback hotspot (captive portal) in case wifi connection fails
                                            ap:
                                              ssid: "D1-Gas Fallback Hotspot"
                                              password: "XXX"
                                          
                                          
                                          
                                          # MQTT 
                                          mqtt:
                                            broker: 192.168.1.200
                                            username: XXX
                                            password: XXX
                                            client_id: d1gaszaehler
                                            topic_prefix: esphome
                                          
                                          
                                          # Reed Kontakt an GPIO5
                                          binary_sensor:
                                            - platform: gpio
                                              name: "Gaszaehler"
                                              id: Gaszaehler
                                              pin:
                                                number: 5
                                                inverted: true
                                                mode: INPUT_PULLUP
                                              filters:
                                                # debounce, delay um Doppelzählungen zu vermeiden
                                                - delayed_off: 1s
                                              on_press:
                                                then:
                                                  - mqtt.publish:
                                                      topic: esphome/Gaszaehler/Stand
                                                      payload: id(Gaszaehler).state
                                          

                                          Im Script sieht man in Zeile 50 ein "delayed_off: 1s" ich schliesse daraus das dadurch der Statuswechsel auf 1 Sekunden beschränkt ist, ist das gut so?

                                          Hat jemand ein Flow für mich das ich verwenden könnte um die Daten die ich speichere zu Visualisieren?

                                          Ich danke schon mal für eure Hilfe und Inputs, vermutlich kommt da noch einiges das ich nicht bedacht habe :)

                                          danke
                                          sep

                                          S Offline
                                          S Offline
                                          Springreiter
                                          schrieb am zuletzt editiert von
                                          #27

                                          @seppele Wenn ich Dir einen Tipp geben kann- lass es mit Reed- Näherungssensor oder IR- Sensor. Habe damit echt lange rumexperimentiert- frisst echt nur Zeit und Nerven. Es wir immer wieder mal zu Fehlzählungen kommen, und dann muss du wieder von Hand eingreifen und das korrigieren. Ich hab mich schließlich für die ESP-Cam entschieden mit Watermeter. Das funktioniert echt zuverlässig seit einem Jahr.
                                          Ich habe mal ein Video darüber gemacht - https://www.youtube.com/watch?v=Rtp13A-BMxA&t=77s - schau es dir einfach mal an wenn du Lust hast.

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          399

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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