Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [gelöst] Temperaturen-Skript für Telegram via text2command-Adapter

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

[gelöst] Temperaturen-Skript für Telegram via text2command-Adapter

[gelöst] Temperaturen-Skript für Telegram via text2command-Adapter

Scheduled Pinned Locked Moved Skripten / Logik
2 Posts 1 Posters 1.4k Views
  • 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.
  • K Online
    K Online
    Kueppert
    wrote on last edited by
    #1

    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 ;)

    UDM Pro, Intel NUC - ioBroker in Proxmox-VM, PiHole+Grafana&Influx+TasmoAdmin in LXCs, Raspberry Pi3 (als CCU), Zigbee-Stick Sonoff, Synology DS918+

    1 Reply Last reply
    0
    • K Online
      K Online
      Kueppert
      wrote on last edited by
      #2

      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

      UDM Pro, Intel NUC - ioBroker in Proxmox-VM, PiHole+Grafana&Influx+TasmoAdmin in LXCs, Raspberry Pi3 (als CCU), Zigbee-Stick Sonoff, Synology DS918+

      1 Reply Last reply
      0
      Reply
      • Reply as topic
      Log in to reply
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes


      Support us

      ioBroker
      Community Adapters
      Donate

      594

      Online

      32.4k

      Users

      81.3k

      Topics

      1.3m

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

      • Don't have an account? Register

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