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]Lichtstatus-Abfrage über Telegram nicht 100%

    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

    [Gelöst]Lichtstatus-Abfrage über Telegram nicht 100%

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

      Hallo liebe ioBroker-Community,

      nach einer langen Pause mit ioBroker habe ich wieder angefangen, meine alten Skripte und Blocklys zurückzuspielen. Das meiste funktioniert bereits wieder. Ich taste mich langsam voran, jedoch hänge ich derzeit an einem Blockly, das früher problemlos lief, aber jetzt nicht mehr zu 100 % funktioniert.

      Wenn ich den Lichtstatus abrufe, klappt es zwar, aber anstelle der Namen der Shellys wird nur "[object Object]" ausgegeben.
      f7bb2873-117f-4de6-b46e-a38bb765cd41-WhatsApp Bild 2025-03-24 um 02.41.22_849c3a6b.jpg
      Und zwar habe ich folgende:
      303229ad-7c14-4cc6-9c47-5a9fff022df0-image.png

      JS vom Blockly:

      var Wert, LichtStatus, Element2;
      
      // Beschreibe diese Funktion …
      async function LichtStatus2(Wert) {
          return getObject(Wert).common.name;
      }
      
      
      on({ id: [].concat(['0_userdata.0.Lichtzustand_senden']), change: 'any' }, async (obj) => {
        let value = obj.state.val;
        let oldValue = obj.oldState.val;
        var LichtStatus_list = Array.prototype.slice.apply($('state[id=*](functions=licht)'));
        for (var LichtStatus_index in LichtStatus_list) {
          LichtStatus = LichtStatus_list[LichtStatus_index];
          Element2 = '\n';
          if (getState(LichtStatus).val == true) {
            Element2 += String(['Licht Status von:','\n',await LichtStatus2(LichtStatus),'= 💡','\n'].join(''));
            sendTo('telegram.0', 'send', {
              text: Element2,
              user: 'aTheos',
            });
          }
        }
      });
      

      Wie müsste ich es ändern, damit es wieder funktioniert und zuerst die Namen ausgegeben werden und dann das Icon daneben erscheint, wenn das Licht an ist?

      Danke schonmal und einen schönen Abend.

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

        @atheos sagte: anstelle der Namen der Shellys wird nur "[object Object]" ausgegeben.

        Kann es sein, dass die Namen jetzt mehrsprachig sind? Dann muss die JS-Funktion angepasst werden.

            let Name = getObject(Wert).common.name;
            if(typeof Name == 'object') return Name.de;
            return Name;
        
        A 1 Reply Last reply Reply Quote 0
        • A
          atheos @paul53 last edited by

          @paul53 said in Lichtstatus-Abfrage über Telegram nicht 100%:

          Kann es sein, dass die Namen jetzt mehrsprachig sind? Dann muss die JS-Funktion angepasst werden.

          Ich kann die JS-Funktion nicht anpassen. Bekomme immer die Meldung "Ein bearbeiten ist im Schreibgeschützten Editor nicht möglich"
          a5aedc7c-5245-405c-b295-d5260bc3cd99-image.png

          Wüsste jetzt nicht wo ich das genau ändern muss bzw etwas hinzufügen 😕

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

            @atheos sagte: Ich kann die JS-Funktion nicht anpassen.

            Blockly_temp.JPG

            Durch Klick auf die 3 Punkte rechts gelangt man in den Funktions-Editor.

            Anmerkung: Man sollte für Funktionen und Variablen unterschiedliche Bezeichner verwenden.

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

              @paul53 said in Lichtstatus-Abfrage über Telegram nicht 100%:

              Durch Klick auf die 3 Punkte rechts gelangt man in den Funktions-Editor.

              Ah das meinst du da habe ich es jetzt hinzugefügt:
              c1b4e9c6-be49-4a02-9a51-fd583260c1c0-image.png

              Wenn ich das jetzt ausführe habe ich folgende Ausgabe:

              Lichtstatus von : Schalter anstatt Lichtstatus von [Objekt objekt]. Der Name wird immer noch nicht angezeigt.

              e76cc5cd-68dc-4f52-a8f8-2a70b870d9bb-WhatsApp Bild 2025-03-24 um 22.55.41_62b19baa.jpg

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

                @atheos sagte: Schalter anstatt Lichtstatus von [Objekt objekt]. Der Name wird immer noch nicht angezeigt.

                "Schalter" ist der deutsche Datenpunkt-Name. Welchen Namen möchtest du anzeigen?
                Bitte ID-Struktur mit Namen zeigen!

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

                  @paul53 said in Lichtstatus-Abfrage über Telegram nicht 100%:

                  "Schalter" ist der deutsche Datenpunkt-Name. Welchen Namen möchtest du anzeigen?
                  Bitte ID-Struktur mit Namen zeigen!

                  Möchte den Namen ausgeben welchen ich festgelegt hab z.B. EG Wohnzimmer Mitte usw..
                  be212ef1-8554-409a-9d9a-f684d9571f6e-image.png

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

                    @atheos sagte: Möchte den Namen ausgeben welchen ich festgelegt hab z.B. EG Wohnzimmer Mitte usw..

                    Der Datenpunkt "name" hat nichts mit dem Datenpunkt zu tun, der das Licht schaltet. Klappe mal den Ordner "Relay0" auf.

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

                      @paul53 said in Lichtstatus-Abfrage über Telegram nicht 100%:

                      Der Datenpunkt "name" hat nichts mit dem Datenpunkt zu tun, der das Licht schaltet. Klappe mal den Ordner "Relay0" auf.

                      Ah ok verstanden hier der Ordner für Relay
                      d8410af6-95b2-4a07-9caf-e2d03f5e4d06-image.png

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

                        @atheos
                        Wie vermutet: Der DP-Name ist "Schalter". Du möchtest den Grantparentname (Gerätename) haben. Dann muss die JS-Funktion so aussehen:

                        let id = Wert.substring(0, Wert.lastIndexOf('.')); // Kanal-ID
                        id = id.substring(0, id.lastIndexOf('.')); // Geräte-ID
                        if(existsObject(id)) return getObject(id).common.name;
                        
                        A 1 Reply Last reply Reply Quote 1
                        • A
                          atheos @paul53 last edited by

                          @paul53 said in Lichtstatus-Abfrage über Telegram nicht 100%:

                          @atheos
                          Wie vermutet: Der DP-Name ist "Schalter". Du möchtest den Grantparentname (Gerätename) haben. Dann muss die JS-Funktion so aussehen:
                          Copy to Clipboardlet id = Wert.substring(0, Wert.lastIndexOf('.'));
                          id = id.substring(0, id.lastIndexOf('.'));
                          if(existsObject(id)) return getObject(id).common.name;

                          Ich weiß nicht was ich einfach schreiben soll. Vieeeeeeeeeeelen Dank. Würde auch so gerne die Sprache lernen. Werde mal versuchen zu verstehen was du da geschrieben hast bzw was mein Script macht.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          824
                          Online

                          31.8k
                          Users

                          80.0k
                          Topics

                          1.3m
                          Posts

                          2
                          11
                          304
                          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