Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [Gelöst] Batterieüberwachung per "IDs vom Selektor"

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Gelöst] Batterieüberwachung per "IDs vom Selektor"

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      TDCroPower last edited by TDCroPower

      Vielleicht hat jemand für mich eine guten Tipp wie ich die Batterie Meldungen weiter optimieren kann.

      Aktuell verwende ich "IDs vom Selektor..." um mehrere Geräte mit Batteriewerten auf einmal abzugreifen...
      Bildschirmfoto 2021-10-15 um 14.45.02.png

      Da der Prozentwert der ZigBee Geräte nicht stimmt greife ich hier zum voltage Datenpunkt.

      Dazu habe ich 2 JS-Funktionen die Anhand der ID den Namen und den Raum ermitteln sollen...
      Bildschirmfoto 2021-10-15 um 14.45.13.png
      getName

      return getObject(ObjectID).common.name;
      

      getRoom

      let room = getObject(ObjectID,'rooms').enumNames[0];
      return room.de;
      

      Problem 1:
      Die Funktion der Ermittlung des Raums funktioniert leider nicht, obwohl dem Objekt der Raumname zugewiesen wurde.
      Weiß jemand wie ich die getRoom Funktion umschreiben muss um den Raum Namen aus lesen zu können?
      Bildschirmfoto 2021-10-15 um 14.51.23.png

      Problem 2:
      Durch Problem 1 habe ich dem Namen des Datenpunkts voltage alle fehlenden Informationen dazu geschrieben.
      Leider wird daraus eine unschöner Telegram Nachrichten Baukasten.
      Lieber hätte ich die Werte Raum, Name und Batterietyp getrennt als Variable um den Telegram Text individueller zu gestalten.
      Bildschirmfoto 2021-10-15 um 14.47.49.png

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @TDCroPower last edited by paul53

        @tdcropower sagte: getRoom Funktion umschreiben muss um den Raum Namen aus lesen zu können?

        let room = getObject(ObjectID, 'rooms').enumNames[0];
        if(typeof room == 'object') room = room.de;
        return room;
        

        @tdcropower sagte in Die Batterieerkennung per "IDs vom Selektor" optimieren:

        Lieber hätte ich die Werte Raum, Name und Batterietyp getrennt

        Den Batterietyp kann man nur im Namen, unter common.desc oder unter native unterbringen.

        T 1 Reply Last reply Reply Quote 0
        • T
          TDCroPower @paul53 last edited by

          @paul53 danke fürs Feedback leider funktioniert dies ebenfalls nicht...

          Bildschirmfoto 2021-10-15 um 15.11.35.png

          Bildschirmfoto 2021-10-15 um 15.11.43.png

          Für den Batterietypen überlege ich mir einen "im Text suchen..." + "der Fall ist" Abfrage einzubauen.
          Hier könnte ich den ZigBee Typen mit in den Namen einbauen zum Beispiel SensorFenster, Bewegung oder Taster und denen dann verschiedene Batteriewerte hinzufügen.

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @TDCroPower last edited by paul53

            @tdcropower sagte: funktioniert dies ebenfalls nicht...

            Der Selektor liefert ein Array of IDs! Damit kann die Funktion nichts anfangen, denn sie erwartet einen ID-String.

            T 1 Reply Last reply Reply Quote 0
            • T
              TDCroPower @paul53 last edited by TDCroPower

              @paul53 ah ok ich habe eine alternative gefunden mit der ich noch einfacher arbeiten könnte.
              Da ich sowieso schon den voltage Name auf Raum-Name-Typ z.B. Bad-Fenster-CR2156 geändert habe, kann ich daraus ja eigentlich mit den Text Operatoren 3 Variablen beschreiben.
              Hierfür müsste ich lediglich den Trenner "-" übergeben und das Ergebnis in die jeweilige Variable schreiben.

              Hat jemand Sample Beispiel für den Text Cut Operator?
              Den ersten Fall "Bad" habe ich soweit schon einmal hinbekommen...
              Bildschirmfoto 2021-10-15 um 16.15.24.png

              edit:
              habe sogar eine noch leichtere Methode gefunden.
              Ich erstelle einfach eine Liste mit dem Wert aus getName mit dem Trennzeichen "-".
              Diese kann ich dann mit 1, 2 und 3 ansprechen...
              Bildschirmfoto 2021-10-15 um 18.39.03.png

              edit2:
              und hier das Ergebnis...
              Bildschirmfoto 2021-10-15 um 18.57.17.png
              Bildschirmfoto 2021-10-15 um 18.57.52.png

              1 Reply Last reply Reply Quote 0
              • First post
                Last post

              Support us

              ioBroker
              Community Adapters
              Donate

              751
              Online

              32.0k
              Users

              80.5k
              Topics

              1.3m
              Posts

              2
              5
              291
              Loading More Posts
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes
              Reply
              • Reply as topic
              Log in to reply
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
              The ioBroker Community 2014-2023
              logo