Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Temperaturen-Skript für Telegram via text2command-Adapter

    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] Temperaturen-Skript für Telegram via text2command-Adapter

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

      Hallo zusammen,

      ich bin gerade dabei (Versuche bisher gescheitert) als Java-Skript-Neuling das vorhandene Skript von dslraser (glaub ist von ihm) aus dem Thread https://forum.iobroker.net/viewtopic.php?t=7477 umzubauen.

      Ziel ist es, dass das Skript nicht das Objekt "telegram.0.communicate.request" überwacht, sondern dass ich das Skript und dessen Ausgabe über text2command steuern kann und via einem Button, den ich für das Keyboad in ein separates Skript einfügen werde, starten kann.

      Ich nutze schon eine Tastatur und 2-3 Befehle. Das hab ich gerade gelernt und werde das Wissen dann auch für den neuen Custom-Skill nutzen wollen….

      Habe schon versucht, einfach die ersten 4 Zeilen im code zu löschen, aber das führt zu Fehlern im Javaskript 😞

      Also, ich möchte in Telegram

      • "Temperatur" anklicken können (Button ersstellen kann ich via Skript, schon welche vorhanden)

      • dann soll es im folgenden Skript weitergehen mit "text: 'Für welchen Raum möchtest du die Temperatur abfragen?'"

      Wie bekomme ich das hin? Ist doch bestimmt eigentlich easy und ich kapiere es nur noch nicht? 😉 Finde es spannend, mehrere Objekte ausgeben zu lassen und nicht immer nur eins...sowas hab ich bei mir noch nie ausprobiert (array sagt man?) aber möchte es gern zum Laufen bekommen.

      Im Code habe ich Raumnamen und Temp-Sensoren schon ausgetauscht. HM raus, Xiaomi und HUE-Sensoren rein...

      ! ````
      //https://forum.iobroker.net/viewtopic.php?t=7477
      ! 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(/(?=.*(\bTEMPERATUR\b|\bWARM\b|\bKALT\b)).+/ig) != -1) {
      sendTo('telegram', {
      user: benutzer,
      text: 'Für welchen Raum möchtest du die Temperatur abfragen?',
      reply_markup: {
      inline_keyboard: [
      [{ text: 'alle Räume', callback_data: '%Tempalle'}],
      [{ text: 'Flur', callback_data: '%TempFlur'}],
      [{ text: 'Wohnzimmer', callback_data: '%TempWohnzimmer'}],
      [{ text: 'Küche', callback_data: '%TempKueche'}],
      [{ text: 'Kinderzimmer', callback_data: '%TempKinderzimmer'}],
      [{ text: 'Schlafzimmer', callback_data: '%TempSchlafzimmer'}],
      ]
      }
      });
      }

      // Auswahl alle Räume oder einzeln.
      else if (befehl === "%Tempalle") {
      sendTo('telegram', {
      user: benutzer,
      text: "Temperatur alle Räume angefragt",
      answerCallbackQuery: {
      text: 'Flur ' + getState("javascript.0.hueSensors.Huetemperaturesensor1.temperature").val + '°C\nWohnzimmer ' + getState("zwave.0.NODE12.SENSOR_MULTILEVEL.Temperature_1").val + '°C\nKüche ' + getState("zwave.0.NODE16.SENSOR_MULTILEVEL.Temperature_1").val + '°C\nKinderzimmer ' + getState("mihome.0.devices.sensor_ht_158d000221a753.temperature").val + '°C\nSchlafzimmer ' + getState("mihome.0.devices.sensor_ht_158d000149c2cc.temperature").val + '°C',
      showAlert: true
      }
      });
      }
      else if (befehl === "%TempFlur") {
      sendTo('telegram', {
      user: benutzer,
      text: "Flurtemperatur angefragt",
      answerCallbackQuery: {
      text: 'Die Temperatur im im Flur beträgt ' + getState("javascript.0.hueSensors.Huetemperaturesensor1.temperature").val + '°C',
      showAlert: true
      }
      });
      }
      else if (befehl === "%TempSchlafzimmer") {
      sendTo('telegram', {
      user: benutzer,
      text: "Schlafzimmertemperatur angefragt",
      answerCallbackQuery: {
      text: 'Die Temperatur im Schlafzimmer beträgt ' + getState("mihome.0.devices.sensor_ht_158d000149c2cc.temperature").val + '°C',
      showAlert: true
      }
      });
      }
      else if (befehl === "%TempKinderzimmer") {
      sendTo('telegram', {
      user: benutzer,
      text: "Kinderzimmertemperatur angefragt",
      answerCallbackQuery: {
      text: 'Die Temperatur im Gästezimmer beträgt ' + getState("mihome.0.devices.sensor_ht_158d000221a753.temperature").val + '°C',
      showAlert: true
      }
      });
      }
      else if (befehl === "%TempWohnzimmer") {
      sendTo('telegram', {
      user: benutzer,
      text: "Wohnzimmertemperatur angefragt",
      answerCallbackQuery: {
      text: 'Die Temperatur im Wohnzimmer beträgt ' + getState("zwave.0.NODE12.SENSOR_MULTILEVEL.Temperature_1").val + '°C',
      showAlert: true
      }
      });
      }
      else if (befehl === "%TempKueche") {
      sendTo('telegram', {
      user: benutzer,
      text: "Küchentemperatur angefragt",
      answerCallbackQuery: {
      text: 'Die Temperatur im Badezimmer beträgt ' + getState("zwave.0.NODE16.SENSOR_MULTILEVEL.Temperature_1").val + '°C',
      showAlert: true
      }
      });
      }
      });

      
      Danke euch und Grüße, Thorsten
      
      PS: Wenn man für die Lösung mehr Input benötigt…liefere ich den natürlich ;)
      1 Reply Last reply Reply Quote 0
      • K
        Kueppert last edited by

        Hab jetzt die Lösung gefunden. Ich mache es einfach über Blockly. Anbei meine Skripte für "Alle Räume", Obergeschoss und Untergeschoss:

        Alle Räume (Blockly Export):

        ! ````
        <xml xmlns="http://www.w3.org/1999/xhtml"><block type="telegram" id="RHk7j2gF+QT.akn6LjVF" x="-338" y="-88"><field name="INSTANCE">.0</field>

        <value name="MESSAGE"><shadow type="text" id="m)tP(}!!Q,Vm%1Bla~Rc"><field name="TEXT">text</field></shadow> 
          <block type="text_join" id="lR%GD2,d-6P);Lt2W=s6"><mutation items="23"></mutation>
            <value name="ADD0"><block type="text" id="HT[kRT0r{HwPed)h;Q-q"><field name="TEXT">Flur:</field></block></value> 
            <value name="ADD1"><block type="get_value" id="M77o6^mb.8n~8#@}9O?H"><field name="ATTR">val</field>
                <field name="OID">javascript.0.hueSensors.Huetemperaturesensor1.temperature</field></block></value> 
            <value name="ADD2"><block type="text" id="kYuN-~D?QDkdI5N9DJtj"><field name="TEXT"> °C</field></block></value> 
            <value name="ADD3"><block type="time_get" id=")^4j6dL^OL1s)x%ZalC."><mutation format="true" language="false"></mutation>
                <field name="OPTION">custom</field>
                <field name="FORMAT">\n</field></block></value> 
            <value name="ADD4"><block type="text" id="uOKcI*6G1gI~!}[f9PhQ"><field name="TEXT">Wohnzimmer:</field></block></value> 
            <value name="ADD5"><block type="get_value" id="Jh3:qTium+i*zT]]Ir^3"><field name="ATTR">val</field>
                <field name="OID">zwave.0.NODE12.SENSOR_MULTILEVEL.Temperature_1</field></block></value> 
            <value name="ADD6"><block type="text" id="gfnWxp%phEmoPidop!/e"><field name="TEXT"> °C</field></block></value> 
            <value name="ADD7"><block type="time_get" id="=7NA-/?2:qL|ijp+)cgs"><mutation format="true" language="false"></mutation>
                <field name="OPTION">custom</field>
                <field name="FORMAT">\n</field></block></value> 
            <value name="ADD8"><block type="text" id="x:zrOwRzX4`FesyVAut0"><field name="TEXT">Küche:</field></block></value> 
            <value name="ADD9"><block type="get_value" id="m+ycKA8=/YHW.DhyuG]]"><field name="ATTR">val</field>
                <field name="OID">zwave.0.NODE16.SENSOR_MULTILEVEL.Temperature_1</field></block></value> 
            <value name="ADD10"><block type="text" id="yF)Ce;v]Wy4;y`rNs+R%"><field name="TEXT"> °C</field></block></value> 
            <value name="ADD11"><block type="time_get" id="|Z2P~fwHslvcN~n-xt{p"><mutation format="true" language="false"></mutation>
                <field name="OPTION">custom</field>
                <field name="FORMAT">\n</field></block></value> 
            <value name="ADD12"><block type="text" id="`618+Tc-l32Je:%=Thj|"><field name="TEXT">Büro:</field></block></value> 
            <value name="ADD13"><block type="get_value" id="HEFfhNSpxr6iD!i?Z]b["><field name="ATTR">val</field>
                <field name="OID">zwave.0.NODE11.SENSOR_MULTILEVEL.Temperature_1</field></block></value> 
            <value name="ADD14"><block type="text" id=",]JF_cJ(2mc*^,%E=q])"><field name="TEXT"> °C</field></block></value> 
            <value name="ADD15"><block type="time_get" id="/nh*hp4CYlIf^-Frj6w("><mutation format="true" language="false"></mutation>
                <field name="OPTION">custom</field>
                <field name="FORMAT">\n</field></block></value> 
            <value name="ADD16"><block type="text" id="@#f!QBl`EgmUO}s)da^O"><field name="TEXT">Schlafzimmer:</field></block></value> 
            <value name="ADD17"><block type="get_value" id="#uV0bV_~(,^H%+9|tz.T"><field name="ATTR">val</field>
                <field name="OID">mihome.0.devices.sensor_ht_158d000149c2cc.temperature</field></block></value> 
            <value name="ADD18"><block type="text" id="GZahuXpm|7/l4LKdxKxD"><field name="TEXT"> °C</field></block></value> 
            <value name="ADD19"><block type="time_get" id="diQ.^B#uC#6T/WWXhS|("><mutation format="true" language="false"></mutation>
                <field name="OPTION">custom</field>
                <field name="FORMAT">\n</field></block></value> 
            <value name="ADD20"><block type="text" id="Bg5rmb!@N?1i:lXsU=Dg"><field name="TEXT">Kinderzimmer:</field></block></value> 
            <value name="ADD21"><block type="get_value" id="b*3cLc|Tf*8MU+Rd1Jq1"><field name="ATTR">val</field>
                <field name="OID">mihome.0.devices.sensor_ht_158d000221a753.temperature</field></block></value> 
            <value name="ADD22"><block type="text" id="92xu}}EyMwIg@Fz(=81V"><field name="TEXT"> °C</field></block></value></block></value></block></xml> 
        
        
        Räume OG:
        
        >! ````
         <xml xmlns="http://www.w3.org/1999/xhtml"><block type="telegram" id="RHk7j2gF+QT.akn6LjVF" x="-338" y="-88"><field name="INSTANCE">.0</field>
        
            <value name="MESSAGE"><shadow type="text" id="m)tP(}!!Q,Vm%1Bla~Rc"><field name="TEXT">text</field></shadow> 
              <block type="text_join" id="lR%GD2,d-6P);Lt2W=s6"><mutation items="16"></mutation>
                <value name="ADD0"><block type="text" id="HT[kRT0r{HwPed)h;Q-q"><field name="TEXT">Flur:</field></block></value> 
                <value name="ADD1"><block type="get_value" id="M77o6^mb.8n~8#@}9O?H"><field name="ATTR">val</field>
                    <field name="OID">javascript.0.hueSensors.Huetemperaturesensor1.temperature</field></block></value> 
                <value name="ADD2"><block type="text" id="kYuN-~D?QDkdI5N9DJtj"><field name="TEXT"> °C</field></block></value> 
                <value name="ADD3"><block type="time_get" id=")^4j6dL^OL1s)x%ZalC."><mutation format="true" language="false"></mutation>
                    <field name="OPTION">custom</field>
                    <field name="FORMAT">\n</field></block></value> 
                <value name="ADD4"><block type="text" id="uOKcI*6G1gI~!}[f9PhQ"><field name="TEXT">Wohnzimmer:</field></block></value> 
                <value name="ADD5"><block type="get_value" id="Jh3:qTium+i*zT]]Ir^3"><field name="ATTR">val</field>
                    <field name="OID">zwave.0.NODE12.SENSOR_MULTILEVEL.Temperature_1</field></block></value> 
                <value name="ADD6"><block type="text" id="gfnWxp%phEmoPidop!/e"><field name="TEXT"> °C</field></block></value> 
                <value name="ADD7"><block type="time_get" id="=7NA-/?2:qL|ijp+)cgs"><mutation format="true" language="false"></mutation>
                    <field name="OPTION">custom</field>
                    <field name="FORMAT">\n</field></block></value> 
                <value name="ADD8"><block type="text" id="x:zrOwRzX4`FesyVAut0"><field name="TEXT">Küche:</field></block></value> 
                <value name="ADD9"><block type="get_value" id="m+ycKA8=/YHW.DhyuG]]"><field name="ATTR">val</field>
                    <field name="OID">zwave.0.NODE16.SENSOR_MULTILEVEL.Temperature_1</field></block></value> 
                <value name="ADD10"><block type="text" id="yF)Ce;v]Wy4;y`rNs+R%"><field name="TEXT"> °C</field></block></value> 
                <value name="ADD11"><block type="time_get" id="|Z2P~fwHslvcN~n-xt{p"><mutation format="true" language="false"></mutation>
                    <field name="OPTION">custom</field>
                    <field name="FORMAT">\n</field></block></value> 
                <value name="ADD12"><block type="text" id="`618+Tc-l32Je:%=Thj|"><field name="TEXT">Büro:</field></block></value> 
                <value name="ADD13"><block type="get_value" id="HEFfhNSpxr6iD!i?Z]b["><field name="ATTR">val</field>
                    <field name="OID">zwave.0.NODE11.SENSOR_MULTILEVEL.Temperature_1</field></block></value> 
                <value name="ADD14"><block type="text" id=",]JF_cJ(2mc*^,%E=q])"><field name="TEXT"> °C</field></block></value> 
                <value name="ADD15"><block type="time_get" id="/nh*hp4CYlIf^-Frj6w("><mutation format="true" language="false"></mutation>
                    <field name="OPTION">custom</field>
                    <field name="FORMAT">\n</field></block></value></block></value></block></xml> 
        

        Räume Untergeschoss:

        ! ````
        <xml xmlns="http://www.w3.org/1999/xhtml"><block type="telegram" id="RHk7j2gF+QT.akn6LjVF" x="-338" y="-88"><field name="INSTANCE">.0</field>

        <value name="MESSAGE"><shadow type="text" id="m)tP(}!!Q,Vm%1Bla~Rc"><field name="TEXT">text</field></shadow> 
          <block type="text_join" id="lR%GD2,d-6P);Lt2W=s6"><mutation items="7"></mutation>
            <value name="ADD0"><block type="text" id="HT[kRT0r{HwPed)h;Q-q"><field name="TEXT">Schlafzimmer:</field></block></value> 
            <value name="ADD1"><block type="get_value" id="M77o6^mb.8n~8#@}9O?H"><field name="ATTR">val</field>
                <field name="OID">mihome.0.devices.sensor_ht_158d000149c2cc.temperature</field></block></value> 
            <value name="ADD2"><block type="text" id="kYuN-~D?QDkdI5N9DJtj"><field name="TEXT"> °C</field></block></value> 
            <value name="ADD3"><block type="time_get" id=")^4j6dL^OL1s)x%ZalC."><mutation format="true" language="false"></mutation>
                <field name="OPTION">custom</field>
                <field name="FORMAT">\n</field></block></value> 
            <value name="ADD4"><block type="text" id="uOKcI*6G1gI~!}[f9PhQ"><field name="TEXT">Kinderzimmer:</field></block></value> 
            <value name="ADD5"><block type="get_value" id="Jh3:qTium+i*zT]]Ir^3"><field name="ATTR">val</field>
                <field name="OID">mihome.0.devices.sensor_ht_158d000221a753.temperature</field></block></value> 
            <value name="ADD6"><block type="text" id="gfnWxp%phEmoPidop!/e"><field name="TEXT"> °C</field></block></value></block></value></block></xml> 
        
        
         ![2700_temp_ug.png](/assets/uploads/files/2700_temp_ug.png) 
        
        Das ganze steuere ich mit Text2Command und Buttons.
        
        Java-Skript für Telegram-Buttons:
        
        >! ````
        sendTo('telegram.0', {
            text:   'Bitte wähle ein Button',
            reply_markup: {
                keyboard: [
                    ['Übersicht'],
                    ['alle Räume'],
                    ['RäumeOG', 'RäumeUG'],
                ],
                resize_keyboard:   true,
                one_time_keyboard: true
            }
        });
        

        Das Java-Skript für die Buttons (damit diese bei Telegram angezeigt werden) starte ich mit folgendem Text2Command-"Übersetzer":
        2700_text2command_temperaturen_keyboard.png

        Ich hoffe, ich kann jemandem hiermit weiterhelfen.

        VG Thorsten

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

        Support us

        ioBroker
        Community Adapters
        Donate

        717
        Online

        31.7k
        Users

        79.9k
        Topics

        1.3m
        Posts

        1
        2
        1398
        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