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] Variablen erzeugen und Pushbullet

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

[gelöst] Variablen erzeugen und Pushbullet

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascriptcommunication
11 Beiträge 2 Kommentatoren 678 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.
  • J Offline
    J Offline
    jhuebner1
    schrieb am zuletzt editiert von jhuebner1
    #1

    Hallo,

    als blutjunger JS und iobroker Anfänger kämpfe ich mich durch die Untiefen der Systeme.
    So einiges an Scripten verstehe ich, aber das Thema Variablen und Datenpunkte kapiere ich gar nicht.

    Dazu 3 konkrete Fragen:
    1.) Wie erzeuge ich Variablen im iobroker?

    2.) Meine Xiaomi Temperatursensoren zeigen 2 Nachkommastellen an, ich will aber nur 1 zeigen.
    Da ich nicht glaube, das ich das im VIS einstellen kann (oder doch?) wäre meine Lösung jetzt, das ich mir Variablen erzeuge, diese mit den Werten der Sensoren verbinde und diese dann nur 1 Nachkommastelle hat. Nur wie geht das?

    3.) Ich möchte mir mit PushBullet eine Nachricht schicken lassen zB über die aktuelle Temperatur. Den Pushbullet Adapter bekomme ich ans Laufen, die Nachricht wird auch gesendet. Nur wie kann ich denn im Text einen Wert/Inhalt der Variablen mitsenden?

    const idTemp = 'mihome.0.devices.weather_v1_158d0003217238.temperature';
    var level = getState(idTemp).val;
    
     sendTo("pushbullet.0", "send", {
           "message": 'von iobroker',
           "title": 'Die DG-Sauna ist ready2'&level,
           "type": 'note1234',
           "receiver": 'hier meine ID'
        });
    

    DANKE!

    paul53P 1 Antwort Letzte Antwort
    0
    • J jhuebner1

      Hallo,

      als blutjunger JS und iobroker Anfänger kämpfe ich mich durch die Untiefen der Systeme.
      So einiges an Scripten verstehe ich, aber das Thema Variablen und Datenpunkte kapiere ich gar nicht.

      Dazu 3 konkrete Fragen:
      1.) Wie erzeuge ich Variablen im iobroker?

      2.) Meine Xiaomi Temperatursensoren zeigen 2 Nachkommastellen an, ich will aber nur 1 zeigen.
      Da ich nicht glaube, das ich das im VIS einstellen kann (oder doch?) wäre meine Lösung jetzt, das ich mir Variablen erzeuge, diese mit den Werten der Sensoren verbinde und diese dann nur 1 Nachkommastelle hat. Nur wie geht das?

      3.) Ich möchte mir mit PushBullet eine Nachricht schicken lassen zB über die aktuelle Temperatur. Den Pushbullet Adapter bekomme ich ans Laufen, die Nachricht wird auch gesendet. Nur wie kann ich denn im Text einen Wert/Inhalt der Variablen mitsenden?

      const idTemp = 'mihome.0.devices.weather_v1_158d0003217238.temperature';
      var level = getState(idTemp).val;
      
       sendTo("pushbullet.0", "send", {
             "message": 'von iobroker',
             "title": 'Die DG-Sauna ist ready2'&level,
             "type": 'note1234',
             "receiver": 'hier meine ID'
          });
      

      DANKE!

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @jhuebner1 sagte:

      1.) Wie erzeuge ich Variablen im iobroker?

      Mit der folgenden Deklaration hast Du die Variable mit dem Bezeichner level erzeugt:

      var level = getState(idTemp).val;
      

      Sie wird mit dem Wert des Datenpunktes mit der ID "mihome.0.devices.weather_v1_158d0003217238.temperature" initialisiert.
      Datenpunkte erzeugt man mit createState(id, init, common):

      @jhuebner1 sagte in Datenpunkte erzeugen, mit Variablen arbeiten:

      2 Nachkommastellen an, ich will aber nur 1 zeigen.

      var level = Math.round(getState(idTemp).val * 10) / 10; // Runden auf 1 Nachkommastelle
      

      @jhuebner1 sagte in Datenpunkte erzeugen, mit Variablen arbeiten:

      wie kann ich denn im Text einen Wert/Inhalt der Variablen mitsenden?

      Durch Verkettung von Zeichenketten.

             "title": 'Die DG-Sauna ist ready2 ' + level,
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      J 2 Antworten Letzte Antwort
      0
      • paul53P paul53

        @jhuebner1 sagte:

        1.) Wie erzeuge ich Variablen im iobroker?

        Mit der folgenden Deklaration hast Du die Variable mit dem Bezeichner level erzeugt:

        var level = getState(idTemp).val;
        

        Sie wird mit dem Wert des Datenpunktes mit der ID "mihome.0.devices.weather_v1_158d0003217238.temperature" initialisiert.
        Datenpunkte erzeugt man mit createState(id, init, common):

        @jhuebner1 sagte in Datenpunkte erzeugen, mit Variablen arbeiten:

        2 Nachkommastellen an, ich will aber nur 1 zeigen.

        var level = Math.round(getState(idTemp).val * 10) / 10; // Runden auf 1 Nachkommastelle
        

        @jhuebner1 sagte in Datenpunkte erzeugen, mit Variablen arbeiten:

        wie kann ich denn im Text einen Wert/Inhalt der Variablen mitsenden?

        Durch Verkettung von Zeichenketten.

               "title": 'Die DG-Sauna ist ready2 ' + level,
        
        J Offline
        J Offline
        jhuebner1
        schrieb am zuletzt editiert von
        #3

        @paul53
        Klappt jetzt, top!
        DANKE!!!!!

        1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @jhuebner1 sagte:

          1.) Wie erzeuge ich Variablen im iobroker?

          Mit der folgenden Deklaration hast Du die Variable mit dem Bezeichner level erzeugt:

          var level = getState(idTemp).val;
          

          Sie wird mit dem Wert des Datenpunktes mit der ID "mihome.0.devices.weather_v1_158d0003217238.temperature" initialisiert.
          Datenpunkte erzeugt man mit createState(id, init, common):

          @jhuebner1 sagte in Datenpunkte erzeugen, mit Variablen arbeiten:

          2 Nachkommastellen an, ich will aber nur 1 zeigen.

          var level = Math.round(getState(idTemp).val * 10) / 10; // Runden auf 1 Nachkommastelle
          

          @jhuebner1 sagte in Datenpunkte erzeugen, mit Variablen arbeiten:

          wie kann ich denn im Text einen Wert/Inhalt der Variablen mitsenden?

          Durch Verkettung von Zeichenketten.

                 "title": 'Die DG-Sauna ist ready2 ' + level,
          
          J Offline
          J Offline
          jhuebner1
          schrieb am zuletzt editiert von
          #4

          @paul53

          Und wenn ich noch mal unverschämt nachfragen darf:
          Wie erstelle ich denn ein Script, mit dem ich mir den Text des DWD als Pushbullet schicken lassne kann?
          Und zwar ja nur dann, wenn der DWD was meldet.

          Ich dachte an sowas, aber das klappt nicht:

          //const DWD = 'dwd.0.warning.text';
          //var DWD_text = DWD;
          
           on({id: 'dwd.0.warning.description', change: "ne"}, function (obj) {
            var value = obj.state.val;
            var oldValue = obj.oldState.val;
            sendTo("pushbullet.0", "send", {
               "title": dwd.0.warning.description
               "type": 'note1234',
               "receiver": 'meine ID'
            });
          });
          
          paul53P 1 Antwort Letzte Antwort
          0
          • J jhuebner1

            @paul53

            Und wenn ich noch mal unverschämt nachfragen darf:
            Wie erstelle ich denn ein Script, mit dem ich mir den Text des DWD als Pushbullet schicken lassne kann?
            Und zwar ja nur dann, wenn der DWD was meldet.

            Ich dachte an sowas, aber das klappt nicht:

            //const DWD = 'dwd.0.warning.text';
            //var DWD_text = DWD;
            
             on({id: 'dwd.0.warning.description', change: "ne"}, function (obj) {
              var value = obj.state.val;
              var oldValue = obj.oldState.val;
              sendTo("pushbullet.0", "send", {
                 "title": dwd.0.warning.description
                 "type": 'note1234',
                 "receiver": 'meine ID'
              });
            });
            
            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #5

            @jhuebner1

                 "title": value,
            

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            J 1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @jhuebner1

                   "title": value,
              
              J Offline
              J Offline
              jhuebner1
              schrieb am zuletzt editiert von jhuebner1
              #6

              @paul53
              Noch ne doofe Frage zum Runden:
              Funktion / Formel hab ich verstanden.

              Aber wie bekomme ich das denn als eigene / Neue Variable in VIS?
              Damit im Script arbeiten ok, aber ich will es ja im Editor haben, sozusagen als eigene Variable (statt mihome.0.devices.weather_v1_158d0003217238.temperature)

              das hier klappt nicht:

              //Temperatur Büro
              const idTemp1 = 'mihome.0.devices.weather_v1_158d0003217238.temperature';
              var temp_buero = Math.round(getState(idTemp1).val * 10) / 10; // Runden auf 1 Nachkommastelle 
              

              Oder muss ich das über eigenen Datenpunkte lösen

              createState("Eigene_Datenpunkte.Temperatur.Buero", {
                  name: 'Temperatur Buero', 
                  role: 'switch',
                  type: 'boolean', 
                  read:  true, 
                  write: true, 
                  def:   true,
              });
              

              Und das dann in eine Schleife packen, die alle 5 min läuft?

              paul53P 2 Antworten Letzte Antwort
              0
              • J jhuebner1

                @paul53
                Noch ne doofe Frage zum Runden:
                Funktion / Formel hab ich verstanden.

                Aber wie bekomme ich das denn als eigene / Neue Variable in VIS?
                Damit im Script arbeiten ok, aber ich will es ja im Editor haben, sozusagen als eigene Variable (statt mihome.0.devices.weather_v1_158d0003217238.temperature)

                das hier klappt nicht:

                //Temperatur Büro
                const idTemp1 = 'mihome.0.devices.weather_v1_158d0003217238.temperature';
                var temp_buero = Math.round(getState(idTemp1).val * 10) / 10; // Runden auf 1 Nachkommastelle 
                

                Oder muss ich das über eigenen Datenpunkte lösen

                createState("Eigene_Datenpunkte.Temperatur.Buero", {
                    name: 'Temperatur Buero', 
                    role: 'switch',
                    type: 'boolean', 
                    read:  true, 
                    write: true, 
                    def:   true,
                });
                

                Und das dann in eine Schleife packen, die alle 5 min läuft?

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von paul53
                #7

                @jhuebner1 sagte:

                eigene / Neue Variable in VIS?

                //Temperatur Büro
                const idTemp1 = 'mihome.0.devices.weather_v1_158d0003217238.temperature';
                var temp_buero = Math.round(getState(idTemp1).val * 10) / 10; // Runden auf 1 Nachkommastelle 
                const idVis = 'Eigene_Datenpunkte.Temperatur.Buero';
                
                createState(idVis, temp_buero, {type: 'number', name: 'Temperatur Buero', unit: '°C', role: 'value'}); // neuen Datenpunkt erzeugen
                
                on(idTemp1, function(dp) { // triggert bei Wertänderung
                   setState(idVis, Math.round(dp.state.val * 10) / 10, true);
                });
                

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                1 Antwort Letzte Antwort
                0
                • J jhuebner1

                  @paul53
                  Noch ne doofe Frage zum Runden:
                  Funktion / Formel hab ich verstanden.

                  Aber wie bekomme ich das denn als eigene / Neue Variable in VIS?
                  Damit im Script arbeiten ok, aber ich will es ja im Editor haben, sozusagen als eigene Variable (statt mihome.0.devices.weather_v1_158d0003217238.temperature)

                  das hier klappt nicht:

                  //Temperatur Büro
                  const idTemp1 = 'mihome.0.devices.weather_v1_158d0003217238.temperature';
                  var temp_buero = Math.round(getState(idTemp1).val * 10) / 10; // Runden auf 1 Nachkommastelle 
                  

                  Oder muss ich das über eigenen Datenpunkte lösen

                  createState("Eigene_Datenpunkte.Temperatur.Buero", {
                      name: 'Temperatur Buero', 
                      role: 'switch',
                      type: 'boolean', 
                      read:  true, 
                      write: true, 
                      def:   true,
                  });
                  

                  Und das dann in eine Schleife packen, die alle 5 min läuft?

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #8

                  @jhuebner1 sagte:

                  Oder muss ich das über eigenen Datenpunkte lösen

                  Ja, aber nicht mit

                      role: 'switch',
                      type: 'boolean', 
                      write: true, 
                      def:   true,
                  

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  J 1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @jhuebner1 sagte:

                    Oder muss ich das über eigenen Datenpunkte lösen

                    Ja, aber nicht mit

                        role: 'switch',
                        type: 'boolean', 
                        write: true, 
                        def:   true,
                    
                    J Offline
                    J Offline
                    jhuebner1
                    schrieb am zuletzt editiert von
                    #9

                    @paul53
                    Das klappt, ich werd bekloppt!
                    DANKE!

                    1 Antwort Letzte Antwort
                    0
                    • J Offline
                      J Offline
                      jhuebner1
                      schrieb am zuletzt editiert von
                      #10

                      @paul53
                      Ich brauch jetzt nochmal Hilfe....
                      Und zwar will ich mir im VIS 2 verschiedene Icons anzeigen lassen, wenn das Fenster offen und zu ist.
                      Das geht ganz gut über das Basic Image8, allerdings zeigt der die beiden Grafiken nur bei den Bedingungen 0 und 1 an.

                      Vom Fenstersensor kommt aber true und false zurück....

                      Also brauche ich entweder ein anderes Widget (was true und false kann) oder ich brauch ein JS, was mir aus dem true ->1 und aus dem false -> 0 macht.

                      Habe es analog zu den Temperaturen mal so probiert, aber das klappt gar nicht...

                      //Fenster Küche2
                      const idFenster2 = 'mihome.0.devices.magnet_158d000325fa4c.state';
                      var fenster_kueche2 = idFenster2.state
                      const idVis12 = 'Eigene_Datenpunkte.Fenster.Kueche';
                      
                      createState(idVis12, fenster_kueche2, {type: 'number', name: 'Fenster Küche', role: 'value'}); // neuen Datenpunkt erzeugen
                      on(idFenster2, function(dp) { // triggert bei Wertänderung
                         if (fenster_kueche2 = true)
                            Set (fenster_kueche2 = 1)
                      else
                          Set (fenster_kueche2 = 0)
                      
                         setState(idVis12, true);
                      });
                      
                      paul53P 1 Antwort Letzte Antwort
                      0
                      • J jhuebner1

                        @paul53
                        Ich brauch jetzt nochmal Hilfe....
                        Und zwar will ich mir im VIS 2 verschiedene Icons anzeigen lassen, wenn das Fenster offen und zu ist.
                        Das geht ganz gut über das Basic Image8, allerdings zeigt der die beiden Grafiken nur bei den Bedingungen 0 und 1 an.

                        Vom Fenstersensor kommt aber true und false zurück....

                        Also brauche ich entweder ein anderes Widget (was true und false kann) oder ich brauch ein JS, was mir aus dem true ->1 und aus dem false -> 0 macht.

                        Habe es analog zu den Temperaturen mal so probiert, aber das klappt gar nicht...

                        //Fenster Küche2
                        const idFenster2 = 'mihome.0.devices.magnet_158d000325fa4c.state';
                        var fenster_kueche2 = idFenster2.state
                        const idVis12 = 'Eigene_Datenpunkte.Fenster.Kueche';
                        
                        createState(idVis12, fenster_kueche2, {type: 'number', name: 'Fenster Küche', role: 'value'}); // neuen Datenpunkt erzeugen
                        on(idFenster2, function(dp) { // triggert bei Wertänderung
                           if (fenster_kueche2 = true)
                              Set (fenster_kueche2 = 1)
                        else
                            Set (fenster_kueche2 = 0)
                        
                           setState(idVis12, true);
                        });
                        
                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von
                        #11

                        @jhuebner1

                        //Fenster Küche2
                        const idFenster2 = 'mihome.0.devices.magnet_158d000325fa4c.state';
                        const idVis12 = 'Eigene_Datenpunkte.Fenster.Kueche';
                         
                        createState(idVis12, 0, {type: 'number', name: 'Fenster Küche', role: 'value'}); // neuen Datenpunkt erzeugen
                        
                        on(idFenster2, function(dp) { // triggert bei Wertänderung
                           var fenster_kueche2 = 0;
                           if(dp.state.val) fenster_kueche2 = 1;
                           setState(idVis12, fenster_kueche2, true);
                        });
                        

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        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

                        491

                        Online

                        32.7k

                        Benutzer

                        82.3k

                        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