Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. Skripten / Logik
  4. Blockly
  5. Gelöst: Blockly Oder-Verknüpfung

NEWS

  • wichtiges UPDATE für controller 7.2.2 im stable
    HomoranH
    Homoran
    10
    1
    1.9k

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    16
    1
    3.7k

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    3.4k

Gelöst: Blockly Oder-Verknüpfung

Geplant Angeheftet Gesperrt Verschoben Blockly
blockly
23 Beiträge 6 Kommentatoren 1.9k Aufrufe 3 Beobachtet
  • Ä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.
  • MartinPM Abwesend
    MartinPM Abwesend
    MartinP
    schrieb am zuletzt editiert von MartinP
    #21

    @asgothian sagte in Blockly Oder-Verknüpfung:

    Hinterm Spoiler mein Universeller Ansatz für n zu prüfende Elemente.

    Eine Frage zur Effizienz der Implementierung: Die Liste der gesetzten Datenpunkte ändert ja dynamisch ihre Größe - was für Penalties gibt es durch die dadurch verursachte Speicherverwaltung...

    Wäre ggfs eine statische Liste, in der man die Zustände ablegt und nachher auf true abfragt effizienter?
    Wenn man sich darauf verlassen könnte, dass immer abwechselnd von jedem Datenpunkt True oder False kommt, könnte man ggfs. auch einen einfachen Zähler nutzen...

    Hereinkommende "Trues" inkrementieren, Hereinkommende "False" dekrementieren...

    2fd1ed46-3f6e-4a78-9e0c-c570367dd2a1-grafik.png

    Intel(R) Celeron(R) CPU N3000 @1.04GHz 8G RAM 480G SSD * Virtualization : unprivileged lxc container on Proxmox * 6 GByte RAM für den iobroker Container * Remote-Access über Wireguard meiner Fritzbox

    AsgothianA 1 Antwort Letzte Antwort
    0
    • MartinPM MartinP

      @asgothian sagte in Blockly Oder-Verknüpfung:

      Hinterm Spoiler mein Universeller Ansatz für n zu prüfende Elemente.

      Eine Frage zur Effizienz der Implementierung: Die Liste der gesetzten Datenpunkte ändert ja dynamisch ihre Größe - was für Penalties gibt es durch die dadurch verursachte Speicherverwaltung...

      Wäre ggfs eine statische Liste, in der man die Zustände ablegt und nachher auf true abfragt effizienter?
      Wenn man sich darauf verlassen könnte, dass immer abwechselnd von jedem Datenpunkt True oder False kommt, könnte man ggfs. auch einen einfachen Zähler nutzen...

      Hereinkommende "Trues" inkrementieren, Hereinkommende "False" dekrementieren...

      2fd1ed46-3f6e-4a78-9e0c-c570367dd2a1-grafik.png

      AsgothianA Offline
      AsgothianA Offline
      Asgothian
      Developer
      schrieb am zuletzt editiert von
      #22

      @martinp sagte in Gelöst: Blockly Oder-Verknüpfung:

      Wäre ggfs eine statische Liste, in der man die Zustände ablegt und nachher auf true abfragt effizienter?
      Wenn man sich darauf verlassen könnte, dass immer abwechselnd von jedem Datenpunkt True oder False kommt, könnte man ggfs. auch einen einfachen Zähler nutzen...
      Hereinkommende "Trues" inkrementieren, Hereinkommende "False" dekrementieren...

      Das mit dem einfachen Zähler setzt voraus das da nichts schief geht. So hatte ich das am Anfang, aber meine Erfahrung damit war eher durchwachsen - der hat sich eigentlich ständig verzählt, so das oft die Meldung nicht zum Zustand gepasst hat. Unglücklicherweise wird das Verzählen eigentlich immer nur in eine Richtung erkannt - Jede Anwendung hat da ihre "Vorzugsrichtung". Im aktuellen Beispiel ist der Fall "es ist alles offen" eher selten, so das ein Verzählen nach oben kaum erkannt wird, aber dazu führt das der Alarm nie zurück gesetzt wird.

      Das mit der statischen Liste ist auch so eine Sache - dann hat man statisch mehr Speicher belegt nur um nicht dynamisch zu arbeiten. Man braucht entweder eine Liste von Objekten mit properties oder zwei Listen die Synchron gehalten werden müssen - incl. dem durchgehen durch die Liste um zu ermitteln wieviele denn nun "wahr" und "falsch" zeigen. Wie genau der JS Garbage-Collector arbeitet weiss ich nicht - allerdings gehe ich davon aus das der Speicherplatz beim Austragen eines Elementes nicht sofort sondern mit Verzögerung freigegeben wird. Ich denke der Ansatz bildet da einen brauchbaren Kompromiss.

      Natürlich kann man da je nach Situation alles mögliche optimieren - das war aber nie mein Ziel.
      Was ich mir geschaffen hab war ein Skript welches ich einfach duplizieren kann, und welches auch dann funktioniert wenn der JS Adapter nicht beim Start alle States abonniert.

      A.

      ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
      "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

      MartinPM 1 Antwort Letzte Antwort
      0
      • AsgothianA Asgothian

        @martinp sagte in Gelöst: Blockly Oder-Verknüpfung:

        Wäre ggfs eine statische Liste, in der man die Zustände ablegt und nachher auf true abfragt effizienter?
        Wenn man sich darauf verlassen könnte, dass immer abwechselnd von jedem Datenpunkt True oder False kommt, könnte man ggfs. auch einen einfachen Zähler nutzen...
        Hereinkommende "Trues" inkrementieren, Hereinkommende "False" dekrementieren...

        Das mit dem einfachen Zähler setzt voraus das da nichts schief geht. So hatte ich das am Anfang, aber meine Erfahrung damit war eher durchwachsen - der hat sich eigentlich ständig verzählt, so das oft die Meldung nicht zum Zustand gepasst hat. Unglücklicherweise wird das Verzählen eigentlich immer nur in eine Richtung erkannt - Jede Anwendung hat da ihre "Vorzugsrichtung". Im aktuellen Beispiel ist der Fall "es ist alles offen" eher selten, so das ein Verzählen nach oben kaum erkannt wird, aber dazu führt das der Alarm nie zurück gesetzt wird.

        Das mit der statischen Liste ist auch so eine Sache - dann hat man statisch mehr Speicher belegt nur um nicht dynamisch zu arbeiten. Man braucht entweder eine Liste von Objekten mit properties oder zwei Listen die Synchron gehalten werden müssen - incl. dem durchgehen durch die Liste um zu ermitteln wieviele denn nun "wahr" und "falsch" zeigen. Wie genau der JS Garbage-Collector arbeitet weiss ich nicht - allerdings gehe ich davon aus das der Speicherplatz beim Austragen eines Elementes nicht sofort sondern mit Verzögerung freigegeben wird. Ich denke der Ansatz bildet da einen brauchbaren Kompromiss.

        Natürlich kann man da je nach Situation alles mögliche optimieren - das war aber nie mein Ziel.
        Was ich mir geschaffen hab war ein Skript welches ich einfach duplizieren kann, und welches auch dann funktioniert wenn der JS Adapter nicht beim Start alle States abonniert.

        A.

        MartinPM Abwesend
        MartinPM Abwesend
        MartinP
        schrieb am zuletzt editiert von
        #23

        Vielleicht ist das auch ein "fauler" Garbage Collector, der erstmal "abwartet" bis es eng wird, bevor er aufräumt - da könnte es sein, dass so lange auf dem Peak-Stand der Listengröße für offene Fenster verharrt wird, wie der Garbage Collector Ruhig bleibt, und der Speicherplatz auch bei anwachsender Listenlänge noch passt ...

        Intel(R) Celeron(R) CPU N3000 @1.04GHz 8G RAM 480G SSD * Virtualization : unprivileged lxc container on Proxmox * 6 GByte RAM für den iobroker Container * Remote-Access über Wireguard meiner Fritzbox

        1 Antwort Letzte Antwort
        0

        Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

        Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

        Mit deinem Input könnte dieser Beitrag noch besser werden 💗

        Registrieren Anmelden
        Antworten
        • In einem neuen Thema antworten
        Anmelden zum Antworten
        • Älteste zuerst
        • Neuste zuerst
        • Meiste Stimmen


        Support us

        ioBroker
        Community Adapters
        Donate

        602

        Online

        33.0k

        Benutzer

        83.3k

        Themen

        1.3m

        Beiträge
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
        ioBroker Community 2014-2026
        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