Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. (gelöst) Status Kontakte über Telegramm

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    720

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

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

(gelöst) Status Kontakte über Telegramm

Scheduled Pinned Locked Moved Skripten / Logik
5 Posts 3 Posters 710 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    Svemo
    wrote on last edited by
    #1

    Hallo zusammen,

    ich würde gern übereinen Button den Status der Kontakte abfragen.

    Es soll ein Popup dann kommen das geht auch schon soweit. Allerdings werden true/false bzw 0/1 ausgegeben.

    kann mir jemand helfen wie das zusammensetzt das dann offen/geschlossen steht.

    
     on({id: 'telegram.0.communicate.request', change: 'any'}, function (obj) {
        var stateval = getState('telegram.0.communicate.request').val;              // Statevalue in Variable schreiben
        var benutzer = stateval.substring(1,stateval.indexOf("]"));                 // Benutzer aus Statevalue extrahieren
        var befehl = stateval.substring(stateval.indexOf("]")+1,stateval.length);   // Befehl/Text aus Statevalue extrahieren
    
         if (befehl.search(/(?=.*(\bKontakte\b)).+/ig) != -1) {
            sendTo('telegram', {
                user: benutzer,
                text: 'Für welchen Raum möchtest du die Kontakte abfragen?',
                reply_markup: {
                    inline_keyboard: [
                        [{ text: 'alle Räume', callback_data: '%Konalle'}],
                    ]
                 }
            });
        }    
    
     else if (befehl === "%Konalle") {
                sendTo('telegram', {
                user: benutzer,
                text: "Kontakte alle Räume angefragt",
                answerCallbackQuery: {
                text:    ' Haustür ' + getState("hm-rpc.1.LEQ1059968.1.STATE").val +
                         ' \nBalkon ' + getState("hm-rpc.1.LEQ0403648.1.STATE").val +
                         '',
                showAlert: true
                }
            });
    
    }
    });
    

    Kann mir hier jemand helfen…

    Muss das irgendwie mit einbinden das er mir den richtigen Status in Text anzeigt:

    	function fensterstatus(zustand) {
        var meldung;
        switch (zustand) {
            case 1:
                meldung = 'RHS gekippt';
            break;
            case 2:
                meldung = 'RHS offen';
            break;
            case true:
                meldung = 'TFK offen';
            break;
            default:
                meldung = 'geschlossen';
            break;
        }
        return(meldung);
    
     if (status /*TFK*/ || status === 1 || status === 2 /*RHS*/) {  // wenn Zustand offen, dann wird die Anzahl der Fenster hochgezählt
                 ++anzahlFensterauf;
                 textFensterauf.push(devicename + ' (' + fensterstatus(status) + ')');  // Name und Zustand zum Array hinzufügen
            }   
    

    Viellen Dank

    Grüße Sven

    1 Reply Last reply
    0
    • D Offline
      D Offline
      danw
      wrote on last edited by
      #2

      Naja, im Endeffekt hast du ja schon alles zusammen.

      Du musst nur den Teil

                  text:    ' Haustür ' + getState("hm-rpc.1.LEQ1059968.1.STATE").val +
                           ' \nBalkon ' + getState("hm-rpc.1.LEQ0403648.1.STATE").val +
                           '',
      
      

      (die getStates())

      anpassen, von mir aus auch über die function fensterstatus.

      Alles abhängig davon, wie du es genau angezeigt haben willst.

                  text:    ' Haustür ' + fensterstatus(getState("hm-rpc.1.LEQ1059968.1.STATE").val) +
                           ' \nBalkon ' + fensterstatus(getState("hm-rpc.1.LEQ0403648.1.STATE").val) +
                           '',
      
      

      Wäre eine von vielen Möglichkeiten.

      It's not a Bug, it's a Feature

      1 Reply Last reply
      0
      • S Offline
        S Offline
        Svemo
        wrote on last edited by
        #3

        Hi danke für deine Atwort.

        sind alles schnipsel bekomme das nicht zusammengesetzt.

        kannst du mir beim zusammensetzen helfen.

        danke

        grüße

        Sven

        1 Reply Last reply
        0
        • S Offline
          S Offline
          Svemo
          wrote on last edited by
          #4

          Ein großen Dank an dslraser er hat mir geholfen und es klappt prima.

          Will es keinem vorenthalten denke dslraser ist damit einverstanden :-)

          on({id: 'telegram.0.communicate.request', change: 'any'}, function (obj) {
          var stateval = getState('telegram.0.communicate.request').val; // Statevalue in Variable schreiben
          var benutzer = stateval.substring(1,stateval.indexOf("]")); // Benutzer aus Statevalue extrahieren
          var befehl = stateval.substring(stateval.indexOf("]")+1,stateval.length); // Befehl/Text aus Statevalue extrahieren
          
          var UGFensterwert, UGstatus;
          
          /**
           * Function um umsetzen von 0,1,2 true / false nach  geschlossen / gekippt / offen / offen / geschlossen
           */
          function zu_gek_auf(UGFensterwert, UGstatus) {
            if (UGFensterwert === 0) {
              UGstatus = 'geschlossen';
            } else if (UGFensterwert === 1) {
              UGstatus = 'gekippt';
            } else if (UGFensterwert === 2) {
              UGstatus = 'offen';
            } else if (UGFensterwert === false) {
              UGstatus = 'ausgeschaltet';
            } else if (UGFensterwert === true) {
              UGstatus = 'eingeschaltet';    
            }
          
            return UGstatus;
          }
          
          var value = obj.state.val;
            var oldValue = obj.oldState.val;
            Geschirrspueler = getState("hm-rpc.0.0001D3C99C7343.3.STATE").val;
            Waschmaschine = getState("hm-rpc.0.0001D3C99C72EE.3.STATE").val;
            Werkstattfenster = getState("hm-rpc.0.0007D7099D0094.1.STATE"/*Werkstattkellerfenster.STATE*/).val;
            Saunafensterlinks = getState("hm-rpc.0.0007D7099D006C.1.STATE"/*Saunakellerfenster links.STATE*/).val;
          
          if (befehl.search(/(?=.*(\bKontakte\b)).+/ig) != -1) {
          sendTo('telegram', {
          user: benutzer,
          text: 'Für welchen Raum möchtest du die Kontakte abfragen?',
          reply_markup: {
          inline_keyboard: [
          [{ text: 'alle Räume', callback_data: '%Kontalle'}],
          ]}});}
          
              else if 
              (befehl === "%Kontalle") {
                      sendTo('telegram', {
                      user: benutzer,
                      text: "Fernbedienungen Batterien angefragt",
                      answerCallbackQuery: {
                       text: 
                       'Geschirrspüler: ' + (zu_gek_auf(getState("hm-rpc.0.0001D3C99C7343.3.STATE").val, Geschirrspueler)) + 
                       '\nWaschmaschine: ' + (zu_gek_auf(getState("hm-rpc.0.0001D3C99C72EE.3.STATE").val, Waschmaschine)) +
                       '\nWerkstattfenster: ' + (zu_gek_auf(getState("hm-rpc.0.0007D7099D0094.1.STATE").val, Werkstattfenster)) +
                       '\nSauna Fenster links : ' + (zu_gek_auf(getState("hm-rpc.0.0007D7099D006C.1.STATE").val, Saunafensterlinks)),
          
                      showAlert: true
                      }
                  });
              }
          });
          

          https://www.bilder-upload.eu/bild-5f2282-1548759732.jpg.html ~~Grüße

          Svemo~~

          D 1 Reply Last reply
          0
          • S Svemo

            Ein großen Dank an dslraser er hat mir geholfen und es klappt prima.

            Will es keinem vorenthalten denke dslraser ist damit einverstanden :-)

            on({id: 'telegram.0.communicate.request', change: 'any'}, function (obj) {
            var stateval = getState('telegram.0.communicate.request').val; // Statevalue in Variable schreiben
            var benutzer = stateval.substring(1,stateval.indexOf("]")); // Benutzer aus Statevalue extrahieren
            var befehl = stateval.substring(stateval.indexOf("]")+1,stateval.length); // Befehl/Text aus Statevalue extrahieren
            
            var UGFensterwert, UGstatus;
            
            /**
             * Function um umsetzen von 0,1,2 true / false nach  geschlossen / gekippt / offen / offen / geschlossen
             */
            function zu_gek_auf(UGFensterwert, UGstatus) {
              if (UGFensterwert === 0) {
                UGstatus = 'geschlossen';
              } else if (UGFensterwert === 1) {
                UGstatus = 'gekippt';
              } else if (UGFensterwert === 2) {
                UGstatus = 'offen';
              } else if (UGFensterwert === false) {
                UGstatus = 'ausgeschaltet';
              } else if (UGFensterwert === true) {
                UGstatus = 'eingeschaltet';    
              }
            
              return UGstatus;
            }
            
            var value = obj.state.val;
              var oldValue = obj.oldState.val;
              Geschirrspueler = getState("hm-rpc.0.0001D3C99C7343.3.STATE").val;
              Waschmaschine = getState("hm-rpc.0.0001D3C99C72EE.3.STATE").val;
              Werkstattfenster = getState("hm-rpc.0.0007D7099D0094.1.STATE"/*Werkstattkellerfenster.STATE*/).val;
              Saunafensterlinks = getState("hm-rpc.0.0007D7099D006C.1.STATE"/*Saunakellerfenster links.STATE*/).val;
            
            if (befehl.search(/(?=.*(\bKontakte\b)).+/ig) != -1) {
            sendTo('telegram', {
            user: benutzer,
            text: 'Für welchen Raum möchtest du die Kontakte abfragen?',
            reply_markup: {
            inline_keyboard: [
            [{ text: 'alle Räume', callback_data: '%Kontalle'}],
            ]}});}
            
                else if 
                (befehl === "%Kontalle") {
                        sendTo('telegram', {
                        user: benutzer,
                        text: "Fernbedienungen Batterien angefragt",
                        answerCallbackQuery: {
                         text: 
                         'Geschirrspüler: ' + (zu_gek_auf(getState("hm-rpc.0.0001D3C99C7343.3.STATE").val, Geschirrspueler)) + 
                         '\nWaschmaschine: ' + (zu_gek_auf(getState("hm-rpc.0.0001D3C99C72EE.3.STATE").val, Waschmaschine)) +
                         '\nWerkstattfenster: ' + (zu_gek_auf(getState("hm-rpc.0.0007D7099D0094.1.STATE").val, Werkstattfenster)) +
                         '\nSauna Fenster links : ' + (zu_gek_auf(getState("hm-rpc.0.0007D7099D006C.1.STATE").val, Saunafensterlinks)),
            
                        showAlert: true
                        }
                    });
                }
            });
            

            https://www.bilder-upload.eu/bild-5f2282-1548759732.jpg.html ~~Grüße

            Svemo~~

            D Offline
            D Offline
            dulles
            wrote on last edited by
            #5

            @Svemo
            Habe den Script auf meine Komponenten angepasst. Passt auch soweit.
            Ich bekomme nur bei der Auswahl für alle Kontakte folgende Fehlermeldung im LOG.

            Bildschirmfoto 2019-03-09 um 10.26.32.png

            Gibt es eine Begrenzung bei der Anzahl der Anzeige und kann man die nicht abschalten. Da ich nicht so viel Ahnung habe vom Scripten, bin ich auf eure Hilfe angewiesen.

            pdulles

            1 Reply Last reply
            0

            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

            With your input, this post could be even better 💗

            Register Login
            Reply
            • Reply as topic
            Log in to reply
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes


            Support us

            ioBroker
            Community Adapters
            Donate

            531

            Online

            32.7k

            Users

            82.6k

            Topics

            1.3m

            Posts
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Login

            • Don't have an account? Register

            • Login or register to search.
            • First post
              Last post
            0
            • Home
            • Recent
            • Tags
            • Unread 0
            • Categories
            • Unreplied
            • Popular
            • GitHub
            • Docu
            • Hilfe