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. Skripten / Logik
  4. Node-Red
  5. batterieliste werte vergleichen und mit telegram ausgeben

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    891

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

batterieliste werte vergleichen und mit telegram ausgeben

Geplant Angeheftet Gesperrt Verschoben Node-Red
20 Beiträge 3 Kommentatoren 1.2k Aufrufe 3 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.
  • Fred FreundF Fred Freund

    @mickym ok Danke!! dh. ich werde eine schedule triggern und dann die einzeln abfragen , so viele sind es ja nicht.
    ich nehme an das meinst du mit

    2 iobroker in nodes und eine Switch Node und die Sache ist gelöst
    

    ja einfacher so....genial und gleichzeitig kann man true false auch checken

    8d8fd763-bf23-426f-80dd-62f299e3cd86-image.png

    welches plugin fuer Telegram soll man verwenden?

    Das trifft sich gut , moechte auch meine security cameras die manchmal die Verbindung verlieren checken denke da gibt es einen active status irgendwo.

    Hoffe der telgram adapter laesst sich je nachdem die message uebergeben.

    Danke nochmal ...viel viel einfacher

    mickymM Online
    mickymM Online
    mickym
    Most Active
    schrieb am zuletzt editiert von mickym
    #8

    @fred-freund sagte in batterieliste werte vergleichen und mit telegram ausgeben:

    @mickym ok Danke!! dh. ich werde eine schedule triggern und dann die einzeln abfragen , so viele sind es ja nicht.
    ich nehme an das meinst du mit

    Wie gesagt - pollen finde ich in der iot Welt - das Schlechteste was man tun kann. Auch wenn Du nicht immer sofort Ergebnisse hast dann warte halt bis sich die Geräte melden.
    Es belastet die Systeme mit unnützen Abfragen. Wenn eine Batterie nach 2 Jahren einen zu niedrigen Level hat und dass vielleicht noch im Minutentakt - weil man die Batterie dann auch sofort innerhalb einer Minute auswechselt :face_with_rolling_eyes: :thinking_face: , hat man 2 Jahre diesen Datenpunkt umsonst abgefragt - denkt einfach mal bissi "wirtschaftlich" wie man mit Systemressourcen umgeht. Die Geräte melden sich wie gesagt selbst und wenn ich dauernd einen Datenpunkt abfrage, der von einem Gerät gar nicht aktiv gemeldet wird - dann ist das eh sinnlos. Sprich wenn der Datenpunkt im Zigbee- Adapter für das Batterielevel auf 80% steht und das Gerät die Verbindung zum iobroker verloren hat, dann steht da nach 10 Jahren immer noch 80% - da das Gerät diesen Wert nie aktualisiert hat. 10 Jahre unnütze Abfragen mit sinnlosen Ergebnissen. Hört auf zu pollen und wartet bis die Geräte sich melden!!!! :face_with_rolling_eyes: :face_with_rolling_eyes: :dizzy_face:

    Was ich mache - ist, dass ich mit den letzten Status einfach in einem Datenpunkt in JSON abspeichere - so dass ich die immer parat habe.

    7f404ce3-7c7a-4083-934c-79c5ea973ae6-image.png

    {
      "Präsenz Wohnzimmer": true,
      "Thermometer Gefrierfach": true,
      "Thermometer Küche": true,
      "Präsenz Schlafzimmer2": true,
      "Schlafzimmer Schrank Links": true,
      "Schlafzimmer Schrank Mitte": true,
      "Würfel Wohnzimmer": true,
      "Präsenz Küche": true,
      "Präsenz Büro": true,
      "Präsenz Diele": true,
      "Präsenz Flur": true,
      "Präsenz Schlafzimmer": true,
      "Würfel Büro": true,
      "Präsenz Bad": true,
      "Thermometer Kühlschrank": true,
      "Schlafzimmer Schrank Rechts": true,
      "Thermometer Bad": true,
      "Würfel Schlafzimmer": true,
      "Präsenz Wohnzimmer Essbereich": true
    }
    

    Das kann ich dann leicht bei Adapterstart einmal abfragen - so dass ich nicht warten muss und wird dann von den Geräten einzeln bei Bedarf aktualisisert.

    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

    Fred FreundF 1 Antwort Letzte Antwort
    0
    • mickymM Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von mickym
      #9

      Bei der Gelegenheit noch ein Wort zu den enums - im iobroker. Das wird von Node-Red Adapter des iobrokers nicht unterstützt - da sind Blockly Fans im Vorteil . Insbesondere ist es bedauerlich, da man sie nicht als subscriptions nutzen kann - also generell dynamische subscriptions.

      Man kann dann entweder über mqtt ausweichen - oder Leute dann fragt das halt besser nach.

      Ich habe hierzu seit Oktober 2021 ein enhancement request aufgemacht: https://github.com/ioBroker/ioBroker.node-red/issues/224

      Da gibts hier von der iobroker- community 0 response - keinen Daumen hoch oder sonst was. :( Als Entwickler würde ich mir auch denken, warum soll ich da Aufwand reinstecken, wenn es eh keiner will.

      Die enum Datenpunkte sind leider für NodeRed nicht zugänglich. Insofern kann man auch nichts mit der list Node machen.

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      R 1 Antwort Letzte Antwort
      0
      • mickymM mickym

        Bei der Gelegenheit noch ein Wort zu den enums - im iobroker. Das wird von Node-Red Adapter des iobrokers nicht unterstützt - da sind Blockly Fans im Vorteil . Insbesondere ist es bedauerlich, da man sie nicht als subscriptions nutzen kann - also generell dynamische subscriptions.

        Man kann dann entweder über mqtt ausweichen - oder Leute dann fragt das halt besser nach.

        Ich habe hierzu seit Oktober 2021 ein enhancement request aufgemacht: https://github.com/ioBroker/ioBroker.node-red/issues/224

        Da gibts hier von der iobroker- community 0 response - keinen Daumen hoch oder sonst was. :( Als Entwickler würde ich mir auch denken, warum soll ich da Aufwand reinstecken, wenn es eh keiner will.

        Die enum Datenpunkte sind leider für NodeRed nicht zugänglich. Insofern kann man auch nichts mit der list Node machen.

        R Offline
        R Offline
        rewenode
        schrieb am zuletzt editiert von
        #10

        @mickym sagte in batterieliste werte vergleichen und mit telegram ausgeben:

        Bei der Gelegenheit noch ein Wort zu den enums - im iobroker. Das wird von Node-Red Adapter des iobrokers nicht unterstützt - da sind Blockly Fans im Vorteil . Insbesondere ist es bedauerlich, da man sie nicht als subscriptions nutzen kann - also generell dynamische subscriptions.

        Du kannst die enum mit der ioB-List-node auslesen.
        Hier mal 2 meiner Listen, die davon Gebrauch machen:

        2022-09-17_01-14-27.png

        Hier das Prinzip

        2022-09-17_01-17-53.png

        Das enum wird dann mit einem simplen JSONata - Ausdruck gelesen. Hier mal für die Etage:

        $lookup(payload.enums, payload.enums.$sift(function($v, $k) {$k ~> /^enum.ort./}).$keys()[0])
        

        Eigentlich sollte einem Device ja nur ein Ort zugewiesen sein, aber zur Sicherheit nehme ich hier immer den ersten hinterlegten [0].

        Gruß
        Reiner

        mickymM 1 Antwort Letzte Antwort
        0
        • R rewenode

          @mickym sagte in batterieliste werte vergleichen und mit telegram ausgeben:

          Bei der Gelegenheit noch ein Wort zu den enums - im iobroker. Das wird von Node-Red Adapter des iobrokers nicht unterstützt - da sind Blockly Fans im Vorteil . Insbesondere ist es bedauerlich, da man sie nicht als subscriptions nutzen kann - also generell dynamische subscriptions.

          Du kannst die enum mit der ioB-List-node auslesen.
          Hier mal 2 meiner Listen, die davon Gebrauch machen:

          2022-09-17_01-14-27.png

          Hier das Prinzip

          2022-09-17_01-17-53.png

          Das enum wird dann mit einem simplen JSONata - Ausdruck gelesen. Hier mal für die Etage:

          $lookup(payload.enums, payload.enums.$sift(function($v, $k) {$k ~> /^enum.ort./}).$keys()[0])
          

          Eigentlich sollte einem Device ja nur ein Ort zugewiesen sein, aber zur Sicherheit nehme ich hier immer den ersten hinterlegten [0].

          Gruß
          Reiner

          mickymM Online
          mickymM Online
          mickym
          Most Active
          schrieb am zuletzt editiert von mickym
          #11

          @rewenode Na ich hab in den state objekten keine enums gefunden, sondern nur im common objekt der enums.

          Nehmen wir dieses Folder Objekt:

          899d40a6-be5a-45a9-913c-c76d3223c6e6-image.png

          In dem Objekt gibts absolut NICHTS - und somit auch nichts für die List Node zum Auslesen. Gilt auch für alle Objekte unter dem Folder.

          {
            "type": "folder",
            "common": {
              "name": "shelly1-C4328A"
            },
            "from": "system.adapter.javascript.0",
            "user": "system.user.admin",
            "ts": 1628370786300,
            "_id": "mqtt.1.shellies.shelly1-C4328A",
            "acl": {
              "object": 1636,
              "owner": "system.user.admin",
              "ownerGroup": "system.group.administrator"
            }
          }
          

          Das Einzige wo die Räume sind ist in den Enums-Objekten:

          b9251b80-0c11-406d-af46-9847a85da8ca-image.png

          Damit könnte ich zwar aus dem Objekt die members auslesen - aber das geht mit der list Node nicht.

          {
            "_id": "enum.rooms.bedroom",
            "common": {
              "name": "Schlafzimmer",
              "members": [
                "alias.0.schalter.sz_bettlampe_links",
                "alias.0.schalter.sz_bettlampe_rechts",
                "alias.0.schalter.sz_lichtschalter_schrankbeleuchtung",
                "alias.0.schalter.sz_schrankbeleuchtung",
                "alias.0.schalter.sz_steckdosendreifach",
                "alias.0.schalter.sz_tischlampe",
                "alias.0.schalter.sz_usb4fach"
              ],
              "icon": "",
              "color": "#37e46b"
            },
            "type": "enum",
            "acl": {
              "object": 1636,
              "owner": "system.user.admin",
              "ownerGroup": "system.group.administrator"
            },
            "from": "system.adapter.admin.0",
            "user": "system.user.admin",
            "ts": 1638823013488
          }
          

          Ich bekomm da nichts raus:

          622c7135-f910-498e-88f4-06779b79ad90-image.png

          Mag sein, dass du den Devices Adapter nutzt - dann mag das anders sein, da dieser ja Aliases anlegt - aber bei den native Objekten scheint das nicht zu gehen.

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          R 2 Antworten Letzte Antwort
          0
          • mickymM mickym

            @rewenode Na ich hab in den state objekten keine enums gefunden, sondern nur im common objekt der enums.

            Nehmen wir dieses Folder Objekt:

            899d40a6-be5a-45a9-913c-c76d3223c6e6-image.png

            In dem Objekt gibts absolut NICHTS - und somit auch nichts für die List Node zum Auslesen. Gilt auch für alle Objekte unter dem Folder.

            {
              "type": "folder",
              "common": {
                "name": "shelly1-C4328A"
              },
              "from": "system.adapter.javascript.0",
              "user": "system.user.admin",
              "ts": 1628370786300,
              "_id": "mqtt.1.shellies.shelly1-C4328A",
              "acl": {
                "object": 1636,
                "owner": "system.user.admin",
                "ownerGroup": "system.group.administrator"
              }
            }
            

            Das Einzige wo die Räume sind ist in den Enums-Objekten:

            b9251b80-0c11-406d-af46-9847a85da8ca-image.png

            Damit könnte ich zwar aus dem Objekt die members auslesen - aber das geht mit der list Node nicht.

            {
              "_id": "enum.rooms.bedroom",
              "common": {
                "name": "Schlafzimmer",
                "members": [
                  "alias.0.schalter.sz_bettlampe_links",
                  "alias.0.schalter.sz_bettlampe_rechts",
                  "alias.0.schalter.sz_lichtschalter_schrankbeleuchtung",
                  "alias.0.schalter.sz_schrankbeleuchtung",
                  "alias.0.schalter.sz_steckdosendreifach",
                  "alias.0.schalter.sz_tischlampe",
                  "alias.0.schalter.sz_usb4fach"
                ],
                "icon": "",
                "color": "#37e46b"
              },
              "type": "enum",
              "acl": {
                "object": 1636,
                "owner": "system.user.admin",
                "ownerGroup": "system.group.administrator"
              },
              "from": "system.adapter.admin.0",
              "user": "system.user.admin",
              "ts": 1638823013488
            }
            

            Ich bekomm da nichts raus:

            622c7135-f910-498e-88f4-06779b79ad90-image.png

            Mag sein, dass du den Devices Adapter nutzt - dann mag das anders sein, da dieser ja Aliases anlegt - aber bei den native Objekten scheint das nicht zu gehen.

            R Offline
            R Offline
            rewenode
            schrieb am zuletzt editiert von
            #12

            @mickym Hier mal ein simpler Versuchsflow :

            [
                {
                    "id": "517d85fc5aaf024e",
                    "type": "tab",
                    "label": "Flow 1",
                    "disabled": false,
                    "info": "",
                    "env": []
                },
                {
                    "id": "2e8d03e488999418",
                    "type": "ioBroker in",
                    "z": "517d85fc5aaf024e",
                    "name": "alias.0.Verschluss.Büro_WGn.opened",
                    "topic": "alias.0.Verschluss.Büro_WGn.opened",
                    "payloadType": "object",
                    "onlyack": "",
                    "func": "rbe",
                    "gap": "",
                    "fireOnStart": "false",
                    "x": 810,
                    "y": 60,
                    "wires": [
                        [
                            "e363d78423d60f62"
                        ]
                    ]
                },
                {
                    "id": "3d77413c217ddcbd",
                    "type": "ioBroker list",
                    "z": "517d85fc5aaf024e",
                    "name": "",
                    "topic": "alias.0.Verschluss.Büro_WGn.opened",
                    "objType": "state",
                    "regex": "",
                    "asArray": "true",
                    "onlyIDs": "false",
                    "withValues": "true",
                    "x": 830,
                    "y": 200,
                    "wires": [
                        [
                            "b7c6a270d81aaab9"
                        ]
                    ]
                },
                {
                    "id": "b7c6a270d81aaab9",
                    "type": "change",
                    "z": "517d85fc5aaf024e",
                    "name": "",
                    "rules": [
                        {
                            "t": "set",
                            "p": "ort",
                            "pt": "msg",
                            "to": "$lookup(payload.enums, payload.enums.$sift(function($v, $k) {$k ~> /^enum.ort./}).$keys()[0])\t\t",
                            "tot": "jsonata"
                        }
                    ],
                    "action": "",
                    "property": "",
                    "from": "",
                    "to": "",
                    "reg": false,
                    "x": 780,
                    "y": 260,
                    "wires": [
                        [
                            "b5e5d4321feb90c0"
                        ]
                    ]
                },
                {
                    "id": "e363d78423d60f62",
                    "type": "change",
                    "z": "517d85fc5aaf024e",
                    "name": "topic -> windowsTopic",
                    "rules": [
                        {
                            "t": "set",
                            "p": "windowsTopic",
                            "pt": "msg",
                            "to": "topic",
                            "tot": "msg"
                        }
                    ],
                    "action": "",
                    "property": "",
                    "from": "",
                    "to": "",
                    "reg": false,
                    "x": 790,
                    "y": 140,
                    "wires": [
                        [
                            "3d77413c217ddcbd"
                        ]
                    ]
                },
                {
                    "id": "b5e5d4321feb90c0",
                    "type": "debug",
                    "z": "517d85fc5aaf024e",
                    "name": "debug 13",
                    "active": true,
                    "tosidebar": true,
                    "console": false,
                    "tostatus": false,
                    "complete": "true",
                    "targetType": "full",
                    "statusVal": "",
                    "statusType": "auto",
                    "x": 1060,
                    "y": 260,
                    "wires": []
                }
            ]
            

            2022-09-17_01-52-18.png

            Das abonnierte Object ist ein Alias, kannst du also leicht nachbauen.
            Es ist hier dem enum.ort.eg zugeornet.

            nr (1).png

            Gruß
            Reiner

            mickymM 1 Antwort Letzte Antwort
            0
            • mickymM mickym

              @rewenode Na ich hab in den state objekten keine enums gefunden, sondern nur im common objekt der enums.

              Nehmen wir dieses Folder Objekt:

              899d40a6-be5a-45a9-913c-c76d3223c6e6-image.png

              In dem Objekt gibts absolut NICHTS - und somit auch nichts für die List Node zum Auslesen. Gilt auch für alle Objekte unter dem Folder.

              {
                "type": "folder",
                "common": {
                  "name": "shelly1-C4328A"
                },
                "from": "system.adapter.javascript.0",
                "user": "system.user.admin",
                "ts": 1628370786300,
                "_id": "mqtt.1.shellies.shelly1-C4328A",
                "acl": {
                  "object": 1636,
                  "owner": "system.user.admin",
                  "ownerGroup": "system.group.administrator"
                }
              }
              

              Das Einzige wo die Räume sind ist in den Enums-Objekten:

              b9251b80-0c11-406d-af46-9847a85da8ca-image.png

              Damit könnte ich zwar aus dem Objekt die members auslesen - aber das geht mit der list Node nicht.

              {
                "_id": "enum.rooms.bedroom",
                "common": {
                  "name": "Schlafzimmer",
                  "members": [
                    "alias.0.schalter.sz_bettlampe_links",
                    "alias.0.schalter.sz_bettlampe_rechts",
                    "alias.0.schalter.sz_lichtschalter_schrankbeleuchtung",
                    "alias.0.schalter.sz_schrankbeleuchtung",
                    "alias.0.schalter.sz_steckdosendreifach",
                    "alias.0.schalter.sz_tischlampe",
                    "alias.0.schalter.sz_usb4fach"
                  ],
                  "icon": "",
                  "color": "#37e46b"
                },
                "type": "enum",
                "acl": {
                  "object": 1636,
                  "owner": "system.user.admin",
                  "ownerGroup": "system.group.administrator"
                },
                "from": "system.adapter.admin.0",
                "user": "system.user.admin",
                "ts": 1638823013488
              }
              

              Ich bekomm da nichts raus:

              622c7135-f910-498e-88f4-06779b79ad90-image.png

              Mag sein, dass du den Devices Adapter nutzt - dann mag das anders sein, da dieser ja Aliases anlegt - aber bei den native Objekten scheint das nicht zu gehen.

              R Offline
              R Offline
              rewenode
              schrieb am zuletzt editiert von
              #13

              @mickym sagte in batterieliste werte vergleichen und mit telegram ausgeben:

              Mag sein, dass du den Devices Adapter nutzt - dann mag das anders sein, da dieser ja Aliases anlegt - aber bei den native Objekten scheint das nicht zu gehen.

              Keinen Device Adapter. Im Falle der Fensterliste sind das Aliase, die auf HM-Adapter verweisen.

              Im Falle der Batterieliste sind das native Zigbee-Devices ohne Alias. Da macht ein Alias ja auch nicht unbedingt Sinn. Die Batterie hängt ha nicht an einem virtuellen device.

              Gruß
              Reiner

              1 Antwort Letzte Antwort
              0
              • R rewenode

                @mickym Hier mal ein simpler Versuchsflow :

                [
                    {
                        "id": "517d85fc5aaf024e",
                        "type": "tab",
                        "label": "Flow 1",
                        "disabled": false,
                        "info": "",
                        "env": []
                    },
                    {
                        "id": "2e8d03e488999418",
                        "type": "ioBroker in",
                        "z": "517d85fc5aaf024e",
                        "name": "alias.0.Verschluss.Büro_WGn.opened",
                        "topic": "alias.0.Verschluss.Büro_WGn.opened",
                        "payloadType": "object",
                        "onlyack": "",
                        "func": "rbe",
                        "gap": "",
                        "fireOnStart": "false",
                        "x": 810,
                        "y": 60,
                        "wires": [
                            [
                                "e363d78423d60f62"
                            ]
                        ]
                    },
                    {
                        "id": "3d77413c217ddcbd",
                        "type": "ioBroker list",
                        "z": "517d85fc5aaf024e",
                        "name": "",
                        "topic": "alias.0.Verschluss.Büro_WGn.opened",
                        "objType": "state",
                        "regex": "",
                        "asArray": "true",
                        "onlyIDs": "false",
                        "withValues": "true",
                        "x": 830,
                        "y": 200,
                        "wires": [
                            [
                                "b7c6a270d81aaab9"
                            ]
                        ]
                    },
                    {
                        "id": "b7c6a270d81aaab9",
                        "type": "change",
                        "z": "517d85fc5aaf024e",
                        "name": "",
                        "rules": [
                            {
                                "t": "set",
                                "p": "ort",
                                "pt": "msg",
                                "to": "$lookup(payload.enums, payload.enums.$sift(function($v, $k) {$k ~> /^enum.ort./}).$keys()[0])\t\t",
                                "tot": "jsonata"
                            }
                        ],
                        "action": "",
                        "property": "",
                        "from": "",
                        "to": "",
                        "reg": false,
                        "x": 780,
                        "y": 260,
                        "wires": [
                            [
                                "b5e5d4321feb90c0"
                            ]
                        ]
                    },
                    {
                        "id": "e363d78423d60f62",
                        "type": "change",
                        "z": "517d85fc5aaf024e",
                        "name": "topic -> windowsTopic",
                        "rules": [
                            {
                                "t": "set",
                                "p": "windowsTopic",
                                "pt": "msg",
                                "to": "topic",
                                "tot": "msg"
                            }
                        ],
                        "action": "",
                        "property": "",
                        "from": "",
                        "to": "",
                        "reg": false,
                        "x": 790,
                        "y": 140,
                        "wires": [
                            [
                                "3d77413c217ddcbd"
                            ]
                        ]
                    },
                    {
                        "id": "b5e5d4321feb90c0",
                        "type": "debug",
                        "z": "517d85fc5aaf024e",
                        "name": "debug 13",
                        "active": true,
                        "tosidebar": true,
                        "console": false,
                        "tostatus": false,
                        "complete": "true",
                        "targetType": "full",
                        "statusVal": "",
                        "statusType": "auto",
                        "x": 1060,
                        "y": 260,
                        "wires": []
                    }
                ]
                

                2022-09-17_01-52-18.png

                Das abonnierte Object ist ein Alias, kannst du also leicht nachbauen.
                Es ist hier dem enum.ort.eg zugeornet.

                nr (1).png

                Gruß
                Reiner

                mickymM Online
                mickymM Online
                mickym
                Most Active
                schrieb am zuletzt editiert von mickym
                #14

                @rewenode OK - Du hast Recht -

                ad0562dd-48b8-494c-9b29-59d4af5a499f-image.png

                ... aber wie gesagt ich halte das für sehr umständlich ausser man macht sich damit eigene Listen - wie gesagt die "Pollerei" finde ich aus Prinzip nicht gut.

                Also es funktioniert - aber alle Objekte durchsuchen ist einfach in diesem Fall ungeeignet.

                In anderen Fällen, so wie Du es beschreibst, dass Du schon über die In-Node triggerst und dann über das Objekt die Funktion ermittelst ist OK.

                Aber wichtig wäre ja - wenn man mit den Enums triggern kann und das geht halt nicht. Sondern man triggert nur über die normalen Pfade auf states.

                Ist schon klar, dass Du mit der Methode dann alle Objekte durchsuchen kannst und die Enum Listen wieder rekonstruierst - was in meinen Augen aber sehr umständlich ist. Wenn Du dann alle Objekte, die mit der gefragten Funktion matchen in ein Array gespeichert hast, dann kannst Du alles wieder auslesen - aber ist halt wieder Pollerei.

                Was ich mit dem github Enhancement erreichen wollte ist, das man quasi mit

                enum.function.battery - automatisch subscription listen erstellt. - Das können die neunen mqtt-Nodes unter mqtt v5 - wo du immer mehr subscriptions addieren kannst.

                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                R 1 Antwort Letzte Antwort
                0
                • mickymM mickym

                  @rewenode OK - Du hast Recht -

                  ad0562dd-48b8-494c-9b29-59d4af5a499f-image.png

                  ... aber wie gesagt ich halte das für sehr umständlich ausser man macht sich damit eigene Listen - wie gesagt die "Pollerei" finde ich aus Prinzip nicht gut.

                  Also es funktioniert - aber alle Objekte durchsuchen ist einfach in diesem Fall ungeeignet.

                  In anderen Fällen, so wie Du es beschreibst, dass Du schon über die In-Node triggerst und dann über das Objekt die Funktion ermittelst ist OK.

                  Aber wichtig wäre ja - wenn man mit den Enums triggern kann und das geht halt nicht. Sondern man triggert nur über die normalen Pfade auf states.

                  Ist schon klar, dass Du mit der Methode dann alle Objekte durchsuchen kannst und die Enum Listen wieder rekonstruierst - was in meinen Augen aber sehr umständlich ist. Wenn Du dann alle Objekte, die mit der gefragten Funktion matchen in ein Array gespeichert hast, dann kannst Du alles wieder auslesen - aber ist halt wieder Pollerei.

                  Was ich mit dem github Enhancement erreichen wollte ist, das man quasi mit

                  enum.function.battery - automatisch subscription listen erstellt. - Das können die neunen mqtt-Nodes unter mqtt v5 - wo du immer mehr subscriptions addieren kannst.

                  R Offline
                  R Offline
                  rewenode
                  schrieb am zuletzt editiert von
                  #15

                  @mickym sagte in batterieliste werte vergleichen und mit telegram ausgeben:

                  "Pollerei" finde ich aus Prinzip nicht gut.

                  Also, ich habe genau einen State abboniert und lese auch nur das eine Objekt.
                  Ich bin mir auch nicht sicher, ob es viel schnelle wäre, state+object+enum im ioB zu lesen, zu kombinieren und an NR zu schicken. Sicher wäre es einfacher, wenn state und object wenigstens auf Wunsch als Einheit zu abbonieren wären.
                  Aber sonderlich kompliziert ist das nicht. Die Listen müssen ja ohnehin (i.d.R. per JSONata) aufbereitet werden.

                  Gruß
                  Reiner

                  mickymM 1 Antwort Letzte Antwort
                  0
                  • R rewenode

                    @mickym sagte in batterieliste werte vergleichen und mit telegram ausgeben:

                    "Pollerei" finde ich aus Prinzip nicht gut.

                    Also, ich habe genau einen State abboniert und lese auch nur das eine Objekt.
                    Ich bin mir auch nicht sicher, ob es viel schnelle wäre, state+object+enum im ioB zu lesen, zu kombinieren und an NR zu schicken. Sicher wäre es einfacher, wenn state und object wenigstens auf Wunsch als Einheit zu abbonieren wären.
                    Aber sonderlich kompliziert ist das nicht. Die Listen müssen ja ohnehin (i.d.R. per JSONata) aufbereitet werden.

                    Gruß
                    Reiner

                    mickymM Online
                    mickymM Online
                    mickym
                    Most Active
                    schrieb am zuletzt editiert von
                    #16

                    @rewenode Nee - was ich meine - und das wäre das optimale wenn man in den iobroker-In Nodes enums angeben könnte.

                    In JS geht das auch: https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#on---subscribe-on-changes-or-updates-of-some-state

                    dd5e020d-91cf-46fe-941c-8233c796edde-image.png

                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                    mickymM 1 Antwort Letzte Antwort
                    0
                    • mickymM mickym

                      @rewenode Nee - was ich meine - und das wäre das optimale wenn man in den iobroker-In Nodes enums angeben könnte.

                      In JS geht das auch: https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#on---subscribe-on-changes-or-updates-of-some-state

                      dd5e020d-91cf-46fe-941c-8233c796edde-image.png

                      mickymM Online
                      mickymM Online
                      mickym
                      Most Active
                      schrieb am zuletzt editiert von mickym
                      #17

                      Also, ich habe genau einen State abonniert und lese auch nur das eine Objekt.

                      Das ist aber das Problem - gerade wenn man nicht pollen will - dann sollen ja theoretisch nicht ein bestimmter State triggern. Das kann ich das wieder mit Wildcards machen - aber dann brauch ich das Enum entweder nicht analysieren oder ist einfach dummer Aufwand. Ich verstehe einfach nicht, warum man die ENUM Objekte nicht direkt mit der List Node auslesen kann.

                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                      R 1 Antwort Letzte Antwort
                      0
                      • mickymM mickym

                        Also, ich habe genau einen State abonniert und lese auch nur das eine Objekt.

                        Das ist aber das Problem - gerade wenn man nicht pollen will - dann sollen ja theoretisch nicht ein bestimmter State triggern. Das kann ich das wieder mit Wildcards machen - aber dann brauch ich das Enum entweder nicht analysieren oder ist einfach dummer Aufwand. Ich verstehe einfach nicht, warum man die ENUM Objekte nicht direkt mit der List Node auslesen kann.

                        R Offline
                        R Offline
                        rewenode
                        schrieb am zuletzt editiert von
                        #18

                        @mickym sagte in batterieliste werte vergleichen und mit telegram ausgeben:

                        dann sollen ja theoretisch nicht ein bestimmter State triggern. Das kann ich das wieder mit Wildcards machen - aber dann brauch ich das Enum entweder nicht analysieren oder ist einfach dummer Aufwand.

                        Hast ja recht. Aber ich bin schonmal froh, dass ich mit vertretbarem Aufwand improvisieren kann.

                        mickymM 1 Antwort Letzte Antwort
                        0
                        • R rewenode

                          @mickym sagte in batterieliste werte vergleichen und mit telegram ausgeben:

                          dann sollen ja theoretisch nicht ein bestimmter State triggern. Das kann ich das wieder mit Wildcards machen - aber dann brauch ich das Enum entweder nicht analysieren oder ist einfach dummer Aufwand.

                          Hast ja recht. Aber ich bin schonmal froh, dass ich mit vertretbarem Aufwand improvisieren kann.

                          mickymM Online
                          mickymM Online
                          mickym
                          Most Active
                          schrieb am zuletzt editiert von mickym
                          #19

                          @rewenode Und Du hast ja auch Recht ;) - ich hab es wieder vergessen, dass bei den List-Node Abfragen die Enums mit dabei sind. ;) - Hatte ich zwar schon mal in anderem Zusammenhang festgestellt - aber war mir wieder entfallen.

                          Ich hab das ja hier selbst in einem Flow angewendet: https://forum.iobroker.net/topic/50161/verfügbarkeit-von-sensoren-über-node-red-überwachen/45?_=1663374414159

                          Für die batteriebetrieben Devices ist in meinen Augen neben des Batterielevels die Überprüfung der Verfügbarkeit bzw. über das Pollen der Adapter den online Status zu überwachen unentbehrlich.

                          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                          1 Antwort Letzte Antwort
                          0
                          • mickymM mickym

                            @fred-freund sagte in batterieliste werte vergleichen und mit telegram ausgeben:

                            @mickym ok Danke!! dh. ich werde eine schedule triggern und dann die einzeln abfragen , so viele sind es ja nicht.
                            ich nehme an das meinst du mit

                            Wie gesagt - pollen finde ich in der iot Welt - das Schlechteste was man tun kann. Auch wenn Du nicht immer sofort Ergebnisse hast dann warte halt bis sich die Geräte melden.
                            Es belastet die Systeme mit unnützen Abfragen. Wenn eine Batterie nach 2 Jahren einen zu niedrigen Level hat und dass vielleicht noch im Minutentakt - weil man die Batterie dann auch sofort innerhalb einer Minute auswechselt :face_with_rolling_eyes: :thinking_face: , hat man 2 Jahre diesen Datenpunkt umsonst abgefragt - denkt einfach mal bissi "wirtschaftlich" wie man mit Systemressourcen umgeht. Die Geräte melden sich wie gesagt selbst und wenn ich dauernd einen Datenpunkt abfrage, der von einem Gerät gar nicht aktiv gemeldet wird - dann ist das eh sinnlos. Sprich wenn der Datenpunkt im Zigbee- Adapter für das Batterielevel auf 80% steht und das Gerät die Verbindung zum iobroker verloren hat, dann steht da nach 10 Jahren immer noch 80% - da das Gerät diesen Wert nie aktualisiert hat. 10 Jahre unnütze Abfragen mit sinnlosen Ergebnissen. Hört auf zu pollen und wartet bis die Geräte sich melden!!!! :face_with_rolling_eyes: :face_with_rolling_eyes: :dizzy_face:

                            Was ich mache - ist, dass ich mit den letzten Status einfach in einem Datenpunkt in JSON abspeichere - so dass ich die immer parat habe.

                            7f404ce3-7c7a-4083-934c-79c5ea973ae6-image.png

                            {
                              "Präsenz Wohnzimmer": true,
                              "Thermometer Gefrierfach": true,
                              "Thermometer Küche": true,
                              "Präsenz Schlafzimmer2": true,
                              "Schlafzimmer Schrank Links": true,
                              "Schlafzimmer Schrank Mitte": true,
                              "Würfel Wohnzimmer": true,
                              "Präsenz Küche": true,
                              "Präsenz Büro": true,
                              "Präsenz Diele": true,
                              "Präsenz Flur": true,
                              "Präsenz Schlafzimmer": true,
                              "Würfel Büro": true,
                              "Präsenz Bad": true,
                              "Thermometer Kühlschrank": true,
                              "Schlafzimmer Schrank Rechts": true,
                              "Thermometer Bad": true,
                              "Würfel Schlafzimmer": true,
                              "Präsenz Wohnzimmer Essbereich": true
                            }
                            

                            Das kann ich dann leicht bei Adapterstart einmal abfragen - so dass ich nicht warten muss und wird dann von den Geräten einzeln bei Bedarf aktualisisert.

                            Fred FreundF Offline
                            Fred FreundF Offline
                            Fred Freund
                            schrieb am zuletzt editiert von Fred Freund
                            #20

                            @mickym said in batterieliste werte vergleichen und mit telegram ausgeben:

                            Die Geräte melden sich wie gesagt selbst und wenn ich dauernd einen Datenpunkt abfrage, der von einem Gerät gar nicht aktiv gemeldet wird - dann ist das eh sinnlos. Sprich wenn der Datenpunkt im Zigbee- Adapter für das Batterielevel auf 80% steht und das Gerät die Verbindung zum iobroker verloren hat, dann steht da nach 10 Jahren immer noch 80% - da das Gerät diesen Wert nie aktualisiert hat. 10 Jahre unnütze Abfragen mit sinnlosen Ergebnissen. Hört auf zu pollen und wartet bis die Geräte sich melden!!!!

                            Hello,
                            ok, jetzt verstehe ich auch warum alle immer nur auf change gehen...klar wenn man es so sieht.

                            im Prinzip gibt es fertige Blockly zum nachbauen die genau auf change state beruhen.

                            Da ich einige Sensoren verwende auf esp32 basis ist fuer mich wie du beschreibst mqtt der gemeinsame NENNER, dh. ich koennte auch diesen als letzten Status speicher verwenden.

                            Danke fuer Eure vielen Antworten, ich muss sagen die komplizierten Dinge lohnen sich fuer meinen Zweck nicht(lernen dauert ), ich benutzte eine vis Seite wo ich die Zustaende sowieso sehe :-)
                            Eigentlich wollte ich mich nur mit Telegram beschaeftigen :clown_face:
                            8098a9fe-bfb3-486c-a4a2-e107a10e56ba-image.png

                            many Thx for your support,
                            Vielen Dank!

                            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

                            712

                            Online

                            32.6k

                            Benutzer

                            82.1k

                            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