Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Übersetzung true/false

    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

    Übersetzung true/false

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

      Hallo zusammen,

      ich bastele mir gerade eine Telegram Benachrichting zusammen, welche soweit funktioiert es auch besten.

      Jetzt möchte ich gerne meine Statusabfrage erweitern indem ich die Zustände true und false umschreibe auf "geöffnet" bzw "geschlossen"

      Leider fehlem mir hierzu die Grundlagen um dieses erfolgreich umzusetzen.

      Hier mein jetziger Code:

      // ###########################
          // Systeminformation sammeln 
      
      	var chatname = '[xxxx]';
      	var codemsg = "test";
      
      on("telegram.0.communicate.request", function (obj) {
         if  (obj.newState.val == chatname + codemsg || obj.newState.val == chatname + "/" + codemsg) {      
      
             // Rückmeldung Garagentor groß
              var rggid = "hm-rpc.0.LEQ0757490.1.STATE"/*Rückmeldung Garagentor groß.STATE*/;
              var rgg = getState(rggid).val;
      
             sendTo('telegram', 'Garage groß ' + rgg );
      
             setState("telegram.0.communicate.request","leer");
         }
      });
      
      

      Wie kann ich es am einfachsten umsetzen das ich geschlossen / geöffnet bekomme?

      Als Erweiterung würden dann noch weiter Zustandsabfragen hinzukommen, welche in der gleichen Nachricht gesendet werden sollen.

      Danke + gruß

      1 Reply Last reply Reply Quote 0
      • P
        pix last edited by

        Hallo,

        // ###########################
        // Systeminformation sammeln 
        var chatname = '[xxxx]';
        var codemsg = "test";
        var zustand = ['geschlossen', 'geöffnet']; // Array mit Zuständen (möglicherweise umgekehrt)
        
        on("telegram.0.communicate.request", function(obj) {
            if (obj.newState.val == chatname + codemsg || obj.newState.val == chatname + "/" + codemsg) {
        
                // Rückmeldung Garagentor groß
                var rggid = "hm-rpc.0.LEQ0757490.1.STATE" /*Rückmeldung Garagentor groß.STATE*/ ;
                var rgg = (getState(rggid).val ? 1 : 0); // Kurzschreibweise, wenn getState... true, dann 1, sonst 0
                // alternativ zur Zeile darüber geht auch: var rgg = Number(getState(rggid).val); // wandelt true in 1 und false in 0
                sendTo('telegram', 'Garage groß ' + zustand[rgg]); // Array-Position aufrufen: Position 0 (also false) "geschlossen", Pos 1 (true) "offen"
        
                setState("telegram.0.communicate.request", "leer");
            }
        });
        

        Wie im Code kommentiert.

        Du baust ein Array mit den Zuständen. Dann wandelst du mit einer IF-Abfrage (hier in Kurzform) true in 1 und false in 0 um. Kann auch andersherum sein.

        Hierzu gibt es alternativ auch den Befehl http://www.w3schools.com/jsref/jsref_number.asp. Er macht aus true eine 1 und aus false eine 0.

        Die Zahlen geben anschließend die Array Position an, an deren Stelle der passende Text für die Nachricht steht.

        Gruß

        Pix

        1 Reply Last reply Reply Quote 0
        • bahnuhr
          bahnuhr Forum Testing Most Active last edited by

          Hallo,

          Hab ich schon gemacht mit Telegram.

          Ging ganz einfach mit replace.

          Z.B.

          vText = 'mustertest= ' + getState('abcdfd').val. // kommt "mustertest= false"

          vText = vText.replace(false, 'auf'). // false wird geändert in auf

          War für mich einfacher.

          Mit freundlichen Grüßen

          Dieter

          1 Reply Last reply Reply Quote 0
          • 0
            0018 last edited by

            Vielen Dank für eure Hilfe, Script funktioniert wunderbar 😄

            Jetzt weiß ich auch wie das mit den Arrays klappt.

            Werde mich wahrscheinlich für die Variante "Number" entscheiden, ist für mich am besten nachzuvollziehen.

            1 Reply Last reply Reply Quote 0
            • bahnuhr
              bahnuhr Forum Testing Most Active last edited by

              Hauptsache es funktioniert.

              Mfg

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

                Wenn man die Zustandstexte im Datenpunkt hat (common.states) kann man sie mittels einer http://forum.iobroker.net/viewtopic.php?f=21&t=4199&p=41973s#p41973 erhalten und verwenden.

                1 Reply Last reply Reply Quote 0
                • 0
                  0018 last edited by

                  Frage am Rande….

                  macht es Sinn auch noch die Chat_ID mit einzubringen? Würde es das ganze etwas sicherer machen?

                  Und wie müsste dann der Code aussehen?

                  Probiere schon

                   sendTo('telegram.0', {text: 'Message to chat', chatId: 'SOME-CHAT-ID-123');
                  

                  einzubauen, klappt aber nicht so ganz

                  1 Reply Last reply Reply Quote 0
                  • 0
                    0018 last edited by

                    durch Zufall gefunden :

                    http://forum.iobroker.net/viewtopic.php … it=chat_ID

                    sendTo('telegram.0', {
                          text:   'Testnachricht empfangen.',
                          chatId: '227174xxx',
                          });
                    

                    gruß

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    789
                    Online

                    31.9k
                    Users

                    80.3k
                    Topics

                    1.3m
                    Posts

                    4
                    8
                    1054
                    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