NEWS


  • 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ß


  • 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

  • Forum Testing Most Active

    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


  • 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.

  • Forum Testing Most Active

    Hauptsache es funktioniert.

    Mfg


  • 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.


  • 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


  • durch Zufall gefunden :

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

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

    gruß

Suggested Topics

  • 4
  • 3
  • 4
  • 11
  • 8
  • 6
  • 22
  • 11

1.4k
Online

38.3k
Users

43.8k
Topics

611.8k
Posts