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. (gelöst) Status Kontakte über Telegramm

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    524

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.6k

(gelöst) Status Kontakte über Telegramm

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
5 Beiträge 3 Kommentatoren 654 Aufrufe 1 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.
  • S Offline
    S Offline
    Svemo
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • D Offline
      D Offline
      danw
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        Svemo
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • S Offline
          S Offline
          Svemo
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #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 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

            891

            Online

            32.5k

            Benutzer

            81.8k

            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