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. Error/Bug
  4. Aggregate function macht aus boolean float Werte

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Aggregate function macht aus boolean float Werte

Geplant Angeheftet Gesperrt Verschoben Error/Bug
2 Beiträge 1 Kommentatoren 630 Aufrufe
  • Ä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.
  • H Offline
    H Offline
    harvey637
    schrieb am zuletzt editiert von
    #1

    Hi,

    in dem node_module/iobroker.sql/lib/aggregate.js werden aus booleans bei aggregate=average

    in floatwerte gewandelt.

    Hintergrund: Ich habe eine Variable "SONNE" vom type boolean, die also nur true/false sein kann.

    Diese Variable setze ich, wenn ich Sonnenschein erkannt habe (aus diversen Temperaturen und Temperaturdifferenzen).

    Gemessen wird alle 10 Minuten, kann also auch nur für 10 Minuten einmalig "true" sein, so ist das Wetter eben :-)

    In der Datenbank sehe ich dies als Reihe von 0000001000111100001001100 mit den timestamps eingetragen.

    Das Feld val ist als tinyint(1) definiert, das bool ergibt sich ja nur aus der verwendeten Tabelle ts_bool.

    Wenn ich mehr Werte als auszugebende Punkte habe, also die aggregate Funktion zuschlägt,

    passiert bei "average" dass die Werte addiert und dann durch die Anzahl der Reduktion dividert wird.

    (Zeile 239 in aggregate.js)

    Und dadurch werden aus ganz kurzen "true" Phasen Werte wie 0.14, 0.22, aus langen "true" Phasen 0.48, 0.62.

    Jedenfalls ist der Type dann nicht mehr boolean!

    Lösungsansatz:

    Werte >= 0.5 werden "true", Werte < 0.5 werden "false", es bleibt immer boolean.

    Eventuell ist es noch besser, wenn >= 1 Wert in der Schleife "true" ist, dann immer "true" zurückzugeben. Dann geht kein Peek nach "true" verloren.

    Nur wenn alle Werte (in einer zusammengefassten Anzahl) = "false" dann ein "false" zurückgeben.

    Ein ähnliches Phänomen ergibt sich auch bei numerischen Werten, die nur extrem wenige Änderungen haben, etwa Rolladen, die

    einmal am Tag hoch und abends wieder runter gehen. Durch die Aggregation entstehen da nicht richtige Werte. Aber das ist

    ein leicht anderes Thema. Vielleicht ist der ART-Type "bei Änderung" dafür vorgesehen, funktioniert nur noch nicht richtig.

    Optisch sieht das Ergebnis richtig aus, wenn ich als aggregatationtype "none" verwende. Dies ist allerdings nicht im FLOT-Editor selbst einstellbar,

    sondern kann nur im Bookmark editiert werden, da ist es das I[lfd_nummer][art] Feld. Im Editor "fehlt" noch der select für das "none".

    1 Antwort Letzte Antwort
    0
    • H Offline
      H Offline
      harvey637
      schrieb am zuletzt editiert von
      #2

      Noch ein paar Bilder dazu:

      So sähe es eigentlich richtig aus, es gibt ein paar ganz kurze Peeks "SONNE". Dies ist das Ergebnis, wenn [art]=none manuell in der URL gesetzt ist.
      964_sonne1.png

      Leider mach flot nur das draus:
      964_sonne2.png

      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

      773

      Online

      32.5k

      Benutzer

      81.7k

      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