Navigation

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

    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

    S
    • Profile
    • Following 0
    • Followers 0
    • Topics 9
    • Posts 23
    • Best 0
    • Groups 1

    superflip

    @superflip

    Starter

    0
    Reputation
    3
    Profile views
    23
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    superflip Follow
    Starter

    Latest posts made by superflip

    • RE: Geigerzähler GQ Electronics GMC 320+ V5

      @sborg
      @JamesFrosch007

      falls das Thema noch wen interessiert:

      • ich hab das mit Node-Red relativ einfach gelöst.
      • zusätzliches npm package node-red-node-serialport installiert
      • Node-Red-Flow
      [
          {
              "id": "7f40fabab7ea23c0",
              "type": "serial in",
              "z": "c241f527b52bd10a",
              "name": "GMC-320",
              "serial": "15ad7491d36bd43d",
              "x": 220,
              "y": 100,
              "wires": [
                  [
                      "222a8e8215c110c6"
                  ]
              ]
          },
          {
              "id": "222a8e8215c110c6",
              "type": "function",
              "z": "c241f527b52bd10a",
              "name": "function 4",
              "func": "//@superflip - 2025-03-25\n\nif (msg.payload && Buffer.isBuffer(msg.payload) && msg.payload.length > 0) {\n //read Buffer and write to local variable\n let buffer = msg.payload;\n let cpm = buffer.readUInt8(0);\n\n // check, if counter already exists\n if (!context.counterCPM) {\n    context.counterCPM = 0; // Initialisiere den Zähler\n    //first buffer is sometimes set to 128\n    if (cpm == 128) {\n        cpm=0;\n    }\n }\n\n // calculate time since last reset\n let currentTime = new Date().getTime();\n if (!context.lastResetTime) {\n    context.lastResetTime = currentTime;\n }\n\n //add new value to counter\n context.counterCPM += cpm;\n\n // if 60s are over\n if (currentTime - context.lastResetTime >= 60000) {\n    // write msg.payload.total for further processing\n    msg.payload = { total: context.counterCPM};\n    // reset counter\n    context.counterCPM = 0;\n    context.lastResetTime = currentTime;\n }\n\n} \n\nreturn msg;\n",
              "outputs": 1,
              "timeout": 0,
              "noerr": 0,
              "initialize": "",
              "finalize": "",
              "libs": [],
              "x": 400,
              "y": 100,
              "wires": [
                  [
                      "72e83dc1246866b4"
                  ]
              ]
          },
          {
              "id": "72e83dc1246866b4",
              "type": "switch",
              "z": "c241f527b52bd10a",
              "name": "",
              "property": "payload.total",
              "propertyType": "msg",
              "rules": [
                  {
                      "t": "nnull"
                  }
              ],
              "checkall": "true",
              "repair": false,
              "outputs": 1,
              "x": 550,
              "y": 100,
              "wires": [
                  [
                      "755b9544f295d10a"
                  ]
              ]
          },
          {
              "id": "427bfe4a2025d94e",
              "type": "ioBroker out",
              "z": "c241f527b52bd10a",
              "name": "CPM schreiben",
              "topic": "0_userdata.0.test.radioactivity",
              "ack": "true",
              "autoCreate": "false",
              "stateName": "",
              "role": "",
              "payloadType": "",
              "readonly": "",
              "stateUnit": "",
              "stateMin": "",
              "stateMax": "",
              "x": 940,
              "y": 100,
              "wires": []
          },
          {
              "id": "755b9544f295d10a",
              "type": "change",
              "z": "c241f527b52bd10a",
              "name": "",
              "rules": [
                  {
                      "t": "set",
                      "p": "payload",
                      "pt": "msg",
                      "to": "payload.total",
                      "tot": "msg"
                  }
              ],
              "action": "",
              "property": "",
              "from": "",
              "to": "",
              "reg": false,
              "x": 730,
              "y": 100,
              "wires": [
                  [
                      "427bfe4a2025d94e"
                  ]
              ]
          },
          {
              "id": "15ad7491d36bd43d",
              "type": "serial-port",
              "name": "",
              "serialport": "/dev/ttyUSB0",
              "serialbaud": "115200",
              "databits": "8",
              "parity": "none",
              "stopbits": "1",
              "waitfor": "",
              "dtr": "none",
              "rts": "none",
              "cts": "none",
              "dsr": "none",
              "newline": "0x80",
              "bin": "bin",
              "out": "char",
              "addchar": "",
              "responsetimeout": "10000"
          }
      ]
      
      posted in Blockly
      S
      superflip
    • RE: [gelöst] Variablen in Widgets für Popups in vis-2

      @micklafisch funktioniert prima! - danke nochmals für den Tip.

      Beim Dialog Widget kann man auch ein Objekt setzen - dahinter steckt eine Number Variable.
      Je nach Thermostat setze ich einen anderen Wert.
      Wenn der Wert gesetzt wird, startet ein Node-Red Skript, welches wiederum Variablen mit den entsprechenden Werten (bei mir sind es jetzt mal die Objekt-Links der echarts) setzt., d.h. da steht dann z.B. in der Variable:
      6eb03d5e-588b-41c1-a493-c2c84ea41b29-grafik.png
      im Dialog selbst hab ich dann beim echart Widget ein Binding auf diese Variable.

      Funkt. super - hat 2 positive Effekte:

      1. Ich brauch bei einer Style-Änderung nur in einer View herumbasteln.
      2. Ladezeit der gesamten VIS wird beschleunigt.
      posted in Visualisierung
      S
      superflip
    • RE: iobroker Out Durchführung abwarten

      hab das jetzt anders gebaut, dass ich den Snapshot der Cam nicht via Command triggere, sondern mir direkt via HTTP Call hole und direkt in ein File schreibe:
      67c6ce7d-95af-433b-aada-2924424dcfb7-grafik.png

      dadurch wird der Flow auch erst fortgesetzt, wenn das File wirklich geschrieben ist.

      Danke für die vielen Ideen!

      posted in Node-Red
      S
      superflip
    • RE: [gelöst] Variablen in Widgets für Popups in vis-2

      @micklafisch leider hat das offensichtlich mit der Benachrichtigung der Antowrt nicht so ganz geklappt, darum hab ich es erst jetzt gesehen.
      Dein Vorschlag ist auf alle Fälle eine super Idee - ich glaube, die Bindings brauchst du deswegen, falls du was steuern willst - habs mir noch nicht fertig durchüberlegt, aber das könnte der Grund sein.

      Ich verwende übrigens echarts, was für mich völlig ausreichend ist (hab das mit der Authentication damals in Grafana nicht hinbekommen, und eigentlich reichen mir die echarts aus). Da weiß ich noch nicht ganz wie ich das löse.

      Weißt du zufällig, ob ich auch Node-Red-Flows dafür verwenden kann? - hab bis dato alles mit Node-Red gemacht, da ich mit Flussdiagrammen das irgendwie einfacher finde.

      Danke,
      Philipp

      posted in Visualisierung
      S
      superflip
    • [gelöst] Variablen in Widgets für Popups in vis-2

      Hallo allerseits,

      ich habe eine generelle Frage - hoffentlich keine blöde 😉
      Ich habe für meine Thermostate im Haus für jeden Raum ein Popup mit einigen Einstellungen - dieses Popup sieht nun bei allen Thermostaten exakt gleich aus, bis auf die enthaltenen Werte in den Widgets. Jetze habe ich aktuell für jeden Raum ein eigenes Popup gebaut, welches dann die entsprechenden Objekt-ID in den Widgets enthält.
      Jetzt meine Frage:
      Gibt es eine Möglichkeit, dieses Popup nur 1x zu bauen, den Objekt-IDs Variablen zuweisen und beim jeweilige Popup-Aufruf die entsprechende Variable zu setzen.
      (Also beim Klick auf Wohnzimmer wird dem Popup die Variable Wohnzimmer mitgegeben, im Popup selbst werden dann dementsprechend alle Settings und Graphen für das Wohnzimmer angezeigt)

      Ich hoffe, ich habe mich verständlich ausgedrückt.

      Danke,
      Philipp

      posted in Visualisierung
      S
      superflip
    • RE: iobroker Out Durchführung abwarten

      @asgothian also ob es geholt wurde, könnte ich mit dem Zeitstempel des Files checken, aber davor brauche ich einen trigger, der das überhaupt startet ...
      Ich werde jetzt mal mit dem iobroker In Node spielen ...

      posted in Node-Red
      S
      superflip
    • iobroker Out Durchführung abwarten

      Ich habe eine Frage bez. einer iobroker Out Node.
      Ich triggere einen Flow, wen jemand an der Tür klingelt.
      Dabei sende ich an die Synology (synology.0.SurveillanceStation.getSnapshotCamera) ein Command mit der Camera ID, danach möchte ich es verschicken (per Telegram).
      Jetzt kann ich ja den Flow nach dem Out Node nicht weiterführen, sondern muss irgendwo eine Abzweigung einbauen. Aktuell warte ich 50ms, bevor ich dann die Telegram Message baue. - Manchmal ist aber offensichtlich der Snapshot noch nicht fertig und ich bekomme ein altes Bild.
      86089ee9-6bae-43c5-8e02-53ff976442f0-grafik.png

      Ich möchte also den Flow mit Telegram erst weiterführen/starten, wenn der Snapshot Task abgeschlossen ist.

      1. Ich hätte nun versucht, mit einem Status Node das Problem zu lösen - allerdings kommt als Text im Status nur:
      status: object
         fill: "green"
         shape: "dot"
         text: "synology.0.SurveillanceStation.getSnapshotCamera: 6"
         source: object
            id: "bf0e5b42b21c783d"
            type: "ioBroker out"
            name: undefined
      
      1. ack wird von der synology auch nicht gesetzt (sonst hätte ich mit einem iobroker in Node getriggert, wenn das ack kommt - wäre zumindest mein Plan gewesen)

      So, nun die Frage: Habt ihr eine Idee, wie ich das am saubersten umsetzen könnte?

      Danke,
      Philipp

      posted in Node-Red
      S
      superflip
    • RE: Umgerechneten Sensorwert glätten

      @mickym 👍 danke!

      posted in Node-Red
      S
      superflip
    • RE: Umgerechneten Sensorwert glätten

      @mickym bin grundsätzlich voll bei dir! - hab bei meinen vielen Flows (ca. 40) bisher erst ein einziges Mal selbst die Function Node benutzt.

      • meine Antwort hat sich auch hauptsächlich auf "Ich verstehe nicht, warum ...." bezogen. Ich werde nach solchen Sätzen halt in Zukunft 3x überlegen, ob ich überhaupt auf eine Frage antworten soll ...
      posted in Node-Red
      S
      superflip
    • RE: Umgerechneten Sensorwert glätten

      @mickym ganz einfach, wenn man den Node nicht kennt (weil erst ein paar wenige Wochen mit Node-Red unterwegs, so wie ich), dann kann man ihn auch nicht benutzen. 😉 - Danke für den Tip!

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