Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Merleg

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    M
    • Profile
    • Following 0
    • Followers 0
    • Topics 2
    • Posts 4
    • Best 0
    • Groups 1

    Merleg

    @Merleg

    Starter

    0
    Reputation
    5
    Profile views
    4
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Merleg Follow
    Starter

    Latest posts made by Merleg

    • Chart-Node: Darstellung uneinheitlich

      Hallo zusammen,

      seit dem Wechsel von einem Raspi3B+ mit einer Node-Red-Version aus dem Jahr 2017 auf einen Raspi 4B mit Node-Red Version 4.0.3 (Node.js v20.17.0) habe ich das Phänomen (zumindest mit Safari auf einem iPad mit aktuellem iPadOS sowie auf einem Android-Tablet), dass bei einem Aufruf einer Seite mit Chart-Nodes diese verzerrt bzw. mit komischer Skalierung bzw. ungünstiger Schriftart dargestellt werden. Bei anderen Browsern (MS Edge, Chrome) auf einem Windows-PC ist mir das bisher nicht aufgefallen.

      Komischerweise passiert das meist nur bei einem 1. Aufruf (nach einer längeren Zeit) des jeweiligen Tabs. Wechsel ich zu einem anderen Tab und wieder zurück, ist die Darstellung wieder in Ordnung. Beim alten Node-Red gab es das Problem nicht.

      Hier zur Verdeutlichung zwei Screenshots:

      Fehlerhafte Darstellung:
      Bild1.PNG

      Richtige Darstellung (nach Hin- und Herwechseln):
      Bild2.PNG

      Kann man das irgendwie beeinflussen? Vielleicht gibt es eine Browser-Weiche im Node-Red Source Code?

      Noch ein Hinweis:
      Alle 4 Charts haben bei der Y-Achse min und max-Werte eingetragen. Es erfolgt also in diesem Fall keine automatische Skalierung. Außerdem haben alle 4 Charts eine feste Größe eingestellt (4x4).

      Danke und Gruß
      Merleg

      posted in Node-Red
      M
      Merleg
    • RE: Rollierender Durchschnittswert 4 Wochen

      Es gibt noch einige Fälle, wo man function Nodes braucht - aber ansonsten ist es einfach nur umständlich bzw. widerspricht der Idee von NodeRed der grafischen Programmierung.

      Da gebe ich Dir vollkommen recht!

      Bei einem Flow sollte man möglichst gleich sehen, was er tut ohne sich erst mal durch Code zu kämpfen.

      Aber auch bei Deinem change-Node habe ich Schwierigkeiten, den Ablauf auf Anhieb zu verstehen. Im Gegensatz zu Deiner Javascript-Lösung, die ist toll. Und dank Google (ich kannte die speziellen Array-Möglichkeiten noch nicht) auch leicht zu verstehen.

      https://try.jsonata.org/0SUk0ycrx

      Ich habe den Grund gefunden, warum bei mir ein Fehler im JSONATA-Code angezeigt wird: Es liegt an meiner Node-Red Version 0.19.5, die seit 2018 stabil und ohne für mich erkennbarer Fehler auf einem Raspi 3 B+ läuft. Wenn Du im JSONata Exerciser die Version auf 1.6.5 oder kleiner stellst, bekommst Du genau den Fehler, der auch bei mir angezeigt wird. (Unknown operator: "#").

      Aber natürlich kannst Du das auch mit einer function Node machen - dann kannst auch den Node Kontext nehmen.

      Dein Code gefällt mir sehr gut und ist genau das, was ich gesucht habe. Herzlichen Dank dafür! Jeden neuen Wert fügst Du an 1. Stelle im Array hinzu und wenn es mehr als 28 Elemente werden, löscht Du jeweils das Letzte wieder weg. Somit hat man immer die letzten 28 Werte. Dann addierst Du alle Elemente und teilst sie durch die Anzahl der Elemente. Der Durchschnitt wird dann als msg.payload ausgegeben. Und das Ganze im Kontext gespeichert überlebt dann auch den Reboot. Perfekt!

      posted in Node-Red
      M
      Merleg
    • RE: Rollierender Durchschnittswert 4 Wochen

      @mickym
      Danke für die schnelle Antwort! Die Idee ist gut. Ein 28 Tages-Array mit jeweils dem Tagesdurchschnitt ist die Lösung. Ich würde das in einem Function Node mit Javascript versuchen. Und wegen dem Neustart das Array immer im Context abspeichern.

      Deinen Flow-Vorschlag (danke dafür) muss ich erst noch verstehen, wie er arbeitet. (Bisher habe ich in solchen Fällen immer mit Function Nodes und Javascript gearbeitet.) Der Aggregator-Node ist klar (Tagesdurchschnitt). Der liefert einmal am Tag den Durchschnittswert als msg.payload.

      Aber was passiert dann bei den Rules im Change-Node? Die Rules werden ja von oben nach unten abgearbeitet. Und das verstehe ich irgendwie nicht. Außerdem zeigt er in einer Expression einen Fehler "Unknown operator: #":

      b6b48292-800b-4e66-a351-771959527aa6-image.png

      posted in Node-Red
      M
      Merleg
    • Rollierender Durchschnittswert 4 Wochen

      Hallo zusammen,

      ich finde für folgendes Problem nicht die Lösung:

      Ich habe ein Diagramm (chart-Node) mit den Werten der letzten 4 Wochen. Nun möchte ich von den dargestellten Werten den Durchschnittswert haben. Sprich, der aktuelle Durchschnittswert soll immer nur aus den Werten der letzten 4 Wochen bestehen bzw. gebildet werden. Ältere Werte sollen rausaltern bzw. nicht mehr berücksichtigt werden.

      Die Werte kommen übrigens unregelmäßig, z.B. kann es pro Tag mal 3 oder auch 20 Werte geben.

      Mir ist schon klar, dass ich auf die Werte der vergangenen 4 Wochen, die mir das Diagramm momentan anzeigt, für die Durchschnittswertermittlung nicht mehr zugreifen kann. Aber für die Zukunft würde ich gern immer den Durchschnittswert der aktuell angezeigten Werte haben (quasi ein rollierender Durchschnittswert).

      Ich habe zwar folgenden Nodes gefunden, die in Frage kommen könnten, weiß aber nicht, wie ich die konfigurieren soll, um das zuvor Beschriebene zu erreichen:

      • aggregator node
      • node-red-contrib-moving-average

      Kann mir jemand weiterhelfen?

      Danke und Gruß
      Merleg

      posted in Node-Red
      M
      Merleg
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo