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. JavaScript
  5. Dynamisch erstellte Variablen.

NEWS

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

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

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

Dynamisch erstellte Variablen.

Geplant Angeheftet Gesperrt Verschoben JavaScript
43 Beiträge 7 Kommentatoren 2.8k Aufrufe 5 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.
  • P ptr

    Habe das Skript jetzt etwas angepasst.

    1. Schritt:
    Versuche mich der Sache nun - einen Schritt zurück - einfacher zu nähern.

    Ich erstelle also erstmal zwei getrennte Timer hobbyraum_schlummern und minas_zimmer_schlummern. Diesen gebe ich den gleichen Code in die "nach-TImout"-Ausführung. Nur die Timerbezeichnungen sind also anders.
    Jeder Timer funktioniert für sich.
    Jedoch wenn ich beide Lautsprecher hintereinander starte, dann laufen ja zwei Timer los. Jedoch werden dann beide Timer auf den zweiten Trigger(bzw. Lautsprecher) angewendet. (Was man am entsprechenden Springen der Laufstärke während des Fadens erkennen kann und weil der erste Lautsprecher nicht ausfadet.)
    -> Das verstehe ich nicht, da ich dachte, dass pro Trigger (objektorientiert) eine weitere Instanz des Skripts gestartet wird.

    2. Schritt:
    @OliverIO: Das Array-Prinzip würde ich gerne direkt über die Datenbank von ioB anwenden. Also habe ich DPs angelegt: 0_userdata.0.[etage].[raum].Timer1. Diese können nun den Timer aufnehmen, wenn ich den DP mit dem Timer "{...}" schreibe. ID by Selektor liefert dann denn Array.
    Hier fehlt mir jedoch noch die Verbindung zur letzendlichen Bezeichnung des setTimeout. Für mich ist das aktuell irgendwie noch eine parallele Struktur. Ich denke ich verstehe nicht genau "wo" der Timer ist. vllt etwas schwer zu verstehen... Da überlege ich noch.

    var raeume_array, timer_minuten, timer_name, trig_raum, elemente_von_trigger, trig_raum_timer1, trig_lautsprecher_pfad, trig_lautsprecher_volume, volume_standard, minas_zimmer_schlummern, hobbyraum_schlummern, trig_lautsprecher_volume_aktueller_wert;
    
    
    // Alle Boxen: Trigger auf Aktivitätsänderung
    
    on({id: [].concat(Array.prototype.slice.apply($("channel[state.id=alias.0.*.*.Box1.state]"))), change: "ne", ack: true}, async function (obj) {
      var value = obj.state.val;
      var oldValue = obj.oldState.val;
      // Elemente des Triggers rauslesen
      elemente_von_trigger = obj.id.split('.');
      // Raum ableiten
      trig_raum = elemente_von_trigger[3];
      trig_raum_timer1 = ['0_userdata.',elemente_von_trigger.slice(1, 4).join('.'),'.Timer1'].join('');
      // Lautsprechervariablen ableiten
      trig_lautsprecher_pfad = elemente_von_trigger.slice(0, elemente_von_trigger.length - 1).join('.');
      trig_lautsprecher_volume = String(trig_lautsprecher_pfad) + '.volume';
      // Differenzierung abh. von Raum:
      if ((obj.state ? obj.state.val : "") == 'play') {
    
        switch (trig_raum) {
        	case 'Yunes_Zimmer':
          volume_standard = 10;
    
        		break;
        	case 'Minas_Zimmer':
          volume_standard = 14;
          timer_minuten = 0.05;
          console.log(trig_raum_timer1);
          console.log(getState(trig_raum_timer1).val);
          // Raum-Schlummertimer stoppen
          (function () {if (minas_zimmer_schlummern) {clearTimeout(minas_zimmer_schlummern); minas_zimmer_schlummern = null;}})();
          setStateDelayed(trig_raum_timer1, null, true, parseInt(((0) || "").toString(), 10), true);
          console.log(getState(trig_raum_timer1).val);
          // Raum-Schlummertimer starten
          minas_zimmer_schlummern = setTimeout(async function () {
            // Timer abgelaufen
            setStateDelayed(trig_raum_timer1, minas_zimmer_schlummern, true, parseInt(((0) || "").toString(), 10), true);
            console.log(trig_raum_timer1);
            console.log(getState(trig_raum_timer1).val);
            // Ausfaden...
            while (getState(trig_lautsprecher_volume).val > 0) {
              trig_lautsprecher_volume_aktueller_wert = getState(trig_lautsprecher_volume).val;
              setStateDelayed(trig_lautsprecher_volume, (Math.floor(parseFloat(trig_lautsprecher_volume_aktueller_wert) * 0.9)), false, parseInt(((0) || "").toString(), 10), true);
              await wait(1000);
            }
            setStateDelayed((String(trig_lautsprecher_pfad) + '.pause'), true, false, parseInt(((0) || "").toString(), 10), true);
            // Anfaden beim nächsten play vorbereiten
            setStateDelayed(trig_lautsprecher_volume, (Math.floor(parseFloat(volume_standard) * 0.6)), false, parseInt(((0) || "").toString(), 10), true);
          }, parseInt((parseFloat(timer_minuten) * 60000)));
    
        		break;
        	case 'Wohnzimmer':
          volume_standard = 14;
    
        		break;
        	case 'Hobbyraum':
          volume_standard = 14;
          timer_minuten = 0.05;
          console.log(trig_raum_timer1);
          console.log(getState(trig_raum_timer1).val);
          // Raum-Schlummertimer stoppen
          (function () {if (hobbyraum_schlummern) {clearTimeout(hobbyraum_schlummern); hobbyraum_schlummern = null;}})();
          setStateDelayed(trig_raum_timer1, null, true, parseInt(((0) || "").toString(), 10), true);
          console.log(getState(trig_raum_timer1).val);
          // Raum-Schlummertimer starten
          hobbyraum_schlummern = setTimeout(async function () {
            // Timer abgelaufen
            setStateDelayed(trig_raum_timer1, hobbyraum_schlummern, true, parseInt(((0) || "").toString(), 10), true);
            console.log(getState(trig_raum_timer1).val);
            // Ausfaden...
            while (getState(trig_lautsprecher_volume).val > 0) {
              trig_lautsprecher_volume_aktueller_wert = getState(trig_lautsprecher_volume).val;
              setStateDelayed(trig_lautsprecher_volume, (Math.floor(parseFloat(trig_lautsprecher_volume_aktueller_wert) * 0.9)), false, parseInt(((0) || "").toString(), 10), true);
              await wait(1000);
            }
            setStateDelayed((String(trig_lautsprecher_pfad) + '.pause'), true, false, parseInt(((0) || "").toString(), 10), true);
            // Anfaden beim nächsten play vorbereiten
            setStateDelayed(trig_lautsprecher_volume, (Math.floor(parseFloat(volume_standard) * 0.6)), false, parseInt(((0) || "").toString(), 10), true);
          }, parseInt((parseFloat(timer_minuten) * 60000)));
    
        		break;
        	default:
          volume_standard = 14;
          // falls triggered Box nicht aufgezählt ist
    
        		break;
        }
        setStateDelayed(trig_lautsprecher_volume, volume_standard, false, parseInt(((0) || "").toString(), 10), true);
      } else {
        // anfaden beim nächsten play ermöglichen
        setStateDelayed(trig_lautsprecher_volume, (Math.floor(parseFloat(volume_standard) * 0.6)), false, parseInt(((0) || "").toString(), 10), true);
      }
    });
    
    OliverIOO Offline
    OliverIOO Offline
    OliverIO
    schrieb am zuletzt editiert von
    #11

    @ptr

    puh, da muss man das ganze skript restrukturieren.
    das skript soll doch für verschiedene räume gleich funktionieren,
    allerdings ist da generischer und raumspezifischer code gemischt.
    ausserdem würde ich einzelne funktionalitäten in eigene funktionen auslagern.
    so ist das schwer lesbar. also geht schon, ist aber aufwändig und damit auch wieder fehleranfällig

    was mir auf die schnelle aufgefallen ist:
    also immer wenn jemand play drückt, dann sollen die standard lautstärken gesetzt werden?
    und dann noch zusätzlich wenn schlummern gesetzt ist, die lautstärke nach und nach runtergefahren werden.
    das sind für mich 2 unabhängige funktionen, die man auch über separate trigger ansteuert.
    wobei minas_zimmer_schlummern nirgends gelesen wird oder ich habs übersehen

    Meine Adapter und Widgets
    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
    Links im Profil

    1 Antwort Letzte Antwort
    0
    • P ptr

      @armilar weißt Du warum Timer in dieser getrennten Form nicht funktioniert? Ist mir schleierhaft. Habe sogar das Skript aufgedoppelt und je eines pro Raum eingesetzt (also z.B. im Skript NUR Minas_Zimmer Auswahl möglich)-> das gleiche Ergebnis.... der Timer bleibt nicht bei seinem Raum, sondern geht immer auf den letzten Trigger... Wo hängen die Timer also zusammen??

      ArmilarA Offline
      ArmilarA Offline
      Armilar
      Most Active Forum Testing
      schrieb am zuletzt editiert von Armilar
      #12

      @ptr

      Weil ioBroker das so nicht vorgesehen hat und weil es auch keinen Sinn ergeben würde...

      Beispiel:
      Du legst einen Datenpunkt ("0_userdata.0.haus") an. Dieser Datenpunkt soll zum Beispiel ein komplettes JSON-Objekt aufnehmen, wie z.B. das nachfolgende (nur exemplarisch):

      [
         {
            "etage":{
               "EG":[
                  {
                     "zimmer":"Wohnzimmer",
                     "anwesend":true,
                     "bewegung":true,
                     "sonos_ip": "192"
                  },
                  {
                     "zimmer":"Hobbyraum",
                     "anwesend":false,
                     "bewegung":true,
                     "sonos_ip": "174"
                  }
               ]
            }
         },
         {
            "etage":{
               "OG":[
                  {
                     "zimmer":"Yunes",
                     "anwesend":false,
                     "bewegung":false,
                     "sonos_ip": "203"
                  },
                  {
                     "zimmer":"Mina",
                     "anwesend":true,
                     "bewegung":true,
                     "sonos_ip": "188"
                  }
               ]
            }
         }
      ]
      

      und exakt das schreibst du in den Datenpunkt...

      Diese JSON lassen sich in Blockly, JavaScript oder TypeScript erstellen und auch wieder einlesen oder verändern...

      Siehst du die Objektstruktur und Tiefe? Kann auch erweitert werden

      Andererseits könntest du das gleiche auch als Einzelobjekte unter 0_userdata.haus anlegen. Und auf diese entsprechend eine Logik aufbauen.

      Deshalb sage ich schon seit einer Weile... Schreibe mal alle Anforderungen zusammen. Danach ist es in der Regel ein Kinderspiel... also wenn du sie dann auch noch mitteilst, wäre es ein Traum...

      Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
      https://github.com/joBr99/nspanel-lovelace-ui/wiki

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      1 Antwort Letzte Antwort
      0
      • P ptr

        @armilar weißt Du warum Timer in dieser getrennten Form nicht funktioniert? Ist mir schleierhaft. Habe sogar das Skript aufgedoppelt und je eines pro Raum eingesetzt (also z.B. im Skript NUR Minas_Zimmer Auswahl möglich)-> das gleiche Ergebnis.... der Timer bleibt nicht bei seinem Raum, sondern geht immer auf den letzten Trigger... Wo hängen die Timer also zusammen??

        ArmilarA Offline
        ArmilarA Offline
        Armilar
        Most Active Forum Testing
        schrieb am zuletzt editiert von Armilar
        #13

        @ptr

        Noch ein Beispiel in tieferer Objekt-Struktur mit zusätzlicher Lautstärke:

        [
           {
              "etage":{
                 "EG":[
                    {
                       "zimmer":{
                          "Wohnzimmer":[
                             {
                                "anwesend":true,
                                "bewegung":true,
                                "lautstaerke":22,
                                "sonos_ip":"192"
                             }
                          ]
                       }
                    },
                    {
                       "zimmer":{
                          "Hobbyraum":[
                             {
                                "anwesend":false,
                                "bewegung":true,
                                "lautstaerke":18,
                                "sonos_ip":"174"
                             }
                          ]
                       }
                    }
                 ]
              }
           },
           {
              "etage":{
                 "OG":[
                    {
                       "zimmer":{
                          "Yunes":[
                             {
                                "anwesend":false,
                                "bewegung":false,
                                "lautstaerke":12,
                                "sonos_ip":"203"
                             }
                          ]
                       }
                    },
                    {
                       "zimmer":{
                          "Mina":[
                             {
                                "anwesend":true,
                                "bewegung":true,
                                "lautstaerke":10,
                                "sonos_ip":"188"
                             }
                          ]
                       }
                    }
                 ]
              }
           }
        ]
        

        Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
        https://github.com/joBr99/nspanel-lovelace-ui/wiki

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        1 Antwort Letzte Antwort
        0
        • OliverIOO Offline
          OliverIOO Offline
          OliverIO
          schrieb am zuletzt editiert von
          #14

          ok, er scheint das Interesse verloren zu haben.

          Meine Adapter und Widgets
          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
          Links im Profil

          ArmilarA P 2 Antworten Letzte Antwort
          0
          • OliverIOO OliverIO

            ok, er scheint das Interesse verloren zu haben.

            ArmilarA Offline
            ArmilarA Offline
            Armilar
            Most Active Forum Testing
            schrieb am zuletzt editiert von
            #15

            @oliverio

            hmm, sehe ich auch so ;-)

            Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
            https://github.com/joBr99/nspanel-lovelace-ui/wiki

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            1 Antwort Letzte Antwort
            0
            • HomoranH Offline
              HomoranH Offline
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von
              #16

              dann kann ich ja endlich diesen Thread kapern :joy:

              ich habe nichts verstanden, nur der Titel entspricht einem lang gehegten Wunsch von mir.

              ich würde gerne eine Liste einer Variablen zuweisen, deren Name dynamisch erzeugt werden soll.
              Idee gehört hier in den Thread: https://forum.iobroker.net/post/826534

              so sol die Liste so lange erweitert werden, wie die Daten zu einer Flugnummer gehören, falls mehrere Flüge im Beobachtungsfenster sind, sollen die Daten jeweils der richtigen Liste zugeordnet werden. Die Variable sollte deshalb möglichst der Flugnummer entsprechen.

              So ganz zu Ende gedacht ist die Idee noch nicht, ich bastel meist nach trial & error.

              Die Kernfrage ist erst einmal kann ich prinzipiell so Variablen erstellen (und nach Benutzung wieder löschen)?

              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              ArmilarA paul53P OliverIOO 4 Antworten Letzte Antwort
              0
              • HomoranH Homoran

                dann kann ich ja endlich diesen Thread kapern :joy:

                ich habe nichts verstanden, nur der Titel entspricht einem lang gehegten Wunsch von mir.

                ich würde gerne eine Liste einer Variablen zuweisen, deren Name dynamisch erzeugt werden soll.
                Idee gehört hier in den Thread: https://forum.iobroker.net/post/826534

                so sol die Liste so lange erweitert werden, wie die Daten zu einer Flugnummer gehören, falls mehrere Flüge im Beobachtungsfenster sind, sollen die Daten jeweils der richtigen Liste zugeordnet werden. Die Variable sollte deshalb möglichst der Flugnummer entsprechen.

                So ganz zu Ende gedacht ist die Idee noch nicht, ich bastel meist nach trial & error.

                Die Kernfrage ist erst einmal kann ich prinzipiell so Variablen erstellen (und nach Benutzung wieder löschen)?

                ArmilarA Offline
                ArmilarA Offline
                Armilar
                Most Active Forum Testing
                schrieb am zuletzt editiert von
                #17

                @homoran sagte in Dynamisch erstellte Variablen.:

                Die Kernfrage ist erst einmal kann ich prinzipiell so Variablen erstellen

                Natürlich nicht... Aber du kannst jederzeit einer Variable ein Objekt unterjubeln...

                Der Titel ist definitiv nicht sinnvoll benannt, auch wenn es ein langersehnter Wunsch von dir ist :joy:

                Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                https://github.com/joBr99/nspanel-lovelace-ui/wiki

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                HomoranH 1 Antwort Letzte Antwort
                1
                • HomoranH Homoran

                  dann kann ich ja endlich diesen Thread kapern :joy:

                  ich habe nichts verstanden, nur der Titel entspricht einem lang gehegten Wunsch von mir.

                  ich würde gerne eine Liste einer Variablen zuweisen, deren Name dynamisch erzeugt werden soll.
                  Idee gehört hier in den Thread: https://forum.iobroker.net/post/826534

                  so sol die Liste so lange erweitert werden, wie die Daten zu einer Flugnummer gehören, falls mehrere Flüge im Beobachtungsfenster sind, sollen die Daten jeweils der richtigen Liste zugeordnet werden. Die Variable sollte deshalb möglichst der Flugnummer entsprechen.

                  So ganz zu Ende gedacht ist die Idee noch nicht, ich bastel meist nach trial & error.

                  Die Kernfrage ist erst einmal kann ich prinzipiell so Variablen erstellen (und nach Benutzung wieder löschen)?

                  ArmilarA Offline
                  ArmilarA Offline
                  Armilar
                  Most Active Forum Testing
                  schrieb am zuletzt editiert von
                  #18

                  @homoran sagte in Dynamisch erstellte Variablen.:

                  Idee gehört hier in den Thread

                  Das könnte man aber doch mal zu Ende bringen.

                  Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                  https://github.com/joBr99/nspanel-lovelace-ui/wiki

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  1 Antwort Letzte Antwort
                  1
                  • ArmilarA Armilar

                    @homoran sagte in Dynamisch erstellte Variablen.:

                    Die Kernfrage ist erst einmal kann ich prinzipiell so Variablen erstellen

                    Natürlich nicht... Aber du kannst jederzeit einer Variable ein Objekt unterjubeln...

                    Der Titel ist definitiv nicht sinnvoll benannt, auch wenn es ein langersehnter Wunsch von dir ist :joy:

                    HomoranH Offline
                    HomoranH Offline
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von
                    #19

                    @armilar sagte in Dynamisch erstellte Variablen.:

                    @homoran sagte in Dynamisch erstellte Variablen.:

                    Die Kernfrage ist erst einmal kann ich prinzipiell so Variablen erstellen

                    Natürlich nicht... Aber du kannst jederzeit einer Variable ein Objekt unterjubeln...

                    Der Titel ist definitiv nicht sinnvoll benannt, auch wenn es ein langersehnter Wunsch von dir ist :joy:

                    Danke!
                    Auch wenn es nicht das ist was ich hören wollte. Immerhin erklärt es warum ich vergeblich versucht hatte "mein" Thema darin zu finden.

                    Mit einer dynamisch benannten Variable hätte ich mich nur einfacher getan. Ich weiß ja nicht einmal wie man ein Objekt unterjubelt, geschweige denn wie ich relativ einfach prüfe in welche Variable ich schreiben müsste.

                    Danke!

                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    ArmilarA 1 Antwort Letzte Antwort
                    1
                    • HomoranH Homoran

                      @armilar sagte in Dynamisch erstellte Variablen.:

                      @homoran sagte in Dynamisch erstellte Variablen.:

                      Die Kernfrage ist erst einmal kann ich prinzipiell so Variablen erstellen

                      Natürlich nicht... Aber du kannst jederzeit einer Variable ein Objekt unterjubeln...

                      Der Titel ist definitiv nicht sinnvoll benannt, auch wenn es ein langersehnter Wunsch von dir ist :joy:

                      Danke!
                      Auch wenn es nicht das ist was ich hören wollte. Immerhin erklärt es warum ich vergeblich versucht hatte "mein" Thema darin zu finden.

                      Mit einer dynamisch benannten Variable hätte ich mich nur einfacher getan. Ich weiß ja nicht einmal wie man ein Objekt unterjubelt, geschweige denn wie ich relativ einfach prüfe in welche Variable ich schreiben müsste.

                      Danke!

                      ArmilarA Offline
                      ArmilarA Offline
                      Armilar
                      Most Active Forum Testing
                      schrieb am zuletzt editiert von Armilar
                      #20

                      @homoran

                      Sehr gerne.

                      Daher war mein Anliegen in diesem Topic ja auch, die Anforderungen zu finden um eine

                      Ich würde dir gerne bei einer "Lösung" helfen, die wahrscheinlich komplett anders aussieht. Dazu brauchen wir aber die komplette Anforderung an die Lösung. Nicht das Problem...

                      Lösung zu denken, die funktioniert ;-)

                      Edit: Evtl. Code der sich selbst schreibt, aber ich denke das geht jetzt doch etwas zu weit :joy:

                      Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                      https://github.com/joBr99/nspanel-lovelace-ui/wiki

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      1 Antwort Letzte Antwort
                      0
                      • HomoranH Homoran

                        dann kann ich ja endlich diesen Thread kapern :joy:

                        ich habe nichts verstanden, nur der Titel entspricht einem lang gehegten Wunsch von mir.

                        ich würde gerne eine Liste einer Variablen zuweisen, deren Name dynamisch erzeugt werden soll.
                        Idee gehört hier in den Thread: https://forum.iobroker.net/post/826534

                        so sol die Liste so lange erweitert werden, wie die Daten zu einer Flugnummer gehören, falls mehrere Flüge im Beobachtungsfenster sind, sollen die Daten jeweils der richtigen Liste zugeordnet werden. Die Variable sollte deshalb möglichst der Flugnummer entsprechen.

                        So ganz zu Ende gedacht ist die Idee noch nicht, ich bastel meist nach trial & error.

                        Die Kernfrage ist erst einmal kann ich prinzipiell so Variablen erstellen (und nach Benutzung wieder löschen)?

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

                        @homoran sagte: Die Kernfrage ist erst einmal kann ich prinzipiell so Variablen erstellen (und nach Benutzung wieder löschen)?

                        Nein. Ausweg: Array mit Objekten

                        const obj = {Flugnummer: 'LH123', weitere_Attribute: 'abc'}
                        

                        Dann in einer Schleife die Objekte einlesen und die Flugnummer vergleichen.

                        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

                        HomoranH CodierknechtC 2 Antworten Letzte Antwort
                        1
                        • paul53P paul53

                          @homoran sagte: Die Kernfrage ist erst einmal kann ich prinzipiell so Variablen erstellen (und nach Benutzung wieder löschen)?

                          Nein. Ausweg: Array mit Objekten

                          const obj = {Flugnummer: 'LH123', weitere_Attribute: 'abc'}
                          

                          Dann in einer Schleife die Objekte einlesen und die Flugnummer vergleichen.

                          HomoranH Offline
                          HomoranH Offline
                          Homoran
                          Global Moderator Administrators
                          schrieb am zuletzt editiert von Homoran
                          #22

                          @paul53 sagte:

                          @homoran sagte: Die Kernfrage ist erst einmal kann ich prinzipiell so Variablen erstellen (und nach Benutzung wieder löschen)?

                          Nein. Ausweg: Array mit Objekten

                          const obj = {Flugnummer: 'LH123', weitere_Attribute: 'abc'}
                          

                          Dann in einer Schleife die Objekte einlesen und die Flugnummer vergleichen.

                          und genau solche komplexen Konstrukte wollte ich umgehen!

                          weil:
                          ich will es selber schaffen!
                          ich weiß dass du immer gerne hilfst! Aber du hast keine Ahnung wie es mich ärgert dass ich es nicht (mehr) selber kann.

                          Schleifen kommen noch genug.
                          Dein Versuch mit dem speichern im Datenpunkt hatte nicht zuverlässig geklappt, daher muss alles über Variablen laufen und erst zum Schluss geschrieben werden.

                          Im Moment habe ich den Beobachtunggsrahnen so klein wie möglich gestellt. Was aber andere "Probleme" mit sich bringt.

                          Das sollten wir dann aber wieder im alten Thread fortsetzen

                          ich würde diesen Teil dann rüberschieben.

                          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                          1 Antwort Letzte Antwort
                          0
                          • paul53P paul53

                            @homoran sagte: Die Kernfrage ist erst einmal kann ich prinzipiell so Variablen erstellen (und nach Benutzung wieder löschen)?

                            Nein. Ausweg: Array mit Objekten

                            const obj = {Flugnummer: 'LH123', weitere_Attribute: 'abc'}
                            

                            Dann in einer Schleife die Objekte einlesen und die Flugnummer vergleichen.

                            CodierknechtC Offline
                            CodierknechtC Offline
                            Codierknecht
                            Developer Most Active
                            schrieb am zuletzt editiert von
                            #23

                            @paul53
                            Nur mal so interessehalber, da ich ja von JS noch nicht so wirklich Plan habe:
                            Die "Objekte" von denen ihr hier sprecht ... kann ich die mit recordoder struct vergleichen?
                            Für ein lebendes "Objekt" fehlt mir hier igendwie die Instanziierung.

                            Oder bin ich da (mal wieder) komplett auf dem Holzweg?

                            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                            Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                            HmIP|ZigBee|Tasmota|Unifi
                            Zabbix Certified Specialist
                            Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                            ArmilarA paul53P 2 Antworten Letzte Antwort
                            0
                            • HomoranH Homoran

                              dann kann ich ja endlich diesen Thread kapern :joy:

                              ich habe nichts verstanden, nur der Titel entspricht einem lang gehegten Wunsch von mir.

                              ich würde gerne eine Liste einer Variablen zuweisen, deren Name dynamisch erzeugt werden soll.
                              Idee gehört hier in den Thread: https://forum.iobroker.net/post/826534

                              so sol die Liste so lange erweitert werden, wie die Daten zu einer Flugnummer gehören, falls mehrere Flüge im Beobachtungsfenster sind, sollen die Daten jeweils der richtigen Liste zugeordnet werden. Die Variable sollte deshalb möglichst der Flugnummer entsprechen.

                              So ganz zu Ende gedacht ist die Idee noch nicht, ich bastel meist nach trial & error.

                              Die Kernfrage ist erst einmal kann ich prinzipiell so Variablen erstellen (und nach Benutzung wieder löschen)?

                              OliverIOO Offline
                              OliverIOO Offline
                              OliverIO
                              schrieb am zuletzt editiert von OliverIO
                              #24

                              @homoran sagte in Dynamisch erstellte Variablen.:

                              Die Kernfrage ist erst einmal kann ich prinzipiell so Variablen erstellen (und nach Benutzung wieder löschen)?

                              ja klar

                              var flights={}; //initialisieren der Hauptvariable, die alles enthält
                              var flightnumber1="ab1234"; //schlüssel1
                              var flightnumber2="cd5678";  //schlüssel2
                              //zuweisen von daten
                              flights[flightnumber1]="Meine Informationen 1"; // dies können einfache skalare Daten sein, aber auch wieder ein array oder ein Objekt. Eine Verschachtelung kann beliebig tief erfolgen
                              flights[flightnumber2]={name: "Ich bin ein Objekt"};
                              console.log(flights);  //ausgabe der daten auf der console zum prüfen
                              //löschen der daten
                              delete flights[flightnumber1];  //löschen der daten mit dem schlüssel flugnummer1
                              console.log(flights);
                              
                              

                              die flugnummer müssen eindeutig sein, da man ansonsten die alten daten wieder überschreiben würde.

                              Meine Adapter und Widgets
                              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                              Links im Profil

                              HomoranH 1 Antwort Letzte Antwort
                              0
                              • OliverIOO OliverIO

                                @homoran sagte in Dynamisch erstellte Variablen.:

                                Die Kernfrage ist erst einmal kann ich prinzipiell so Variablen erstellen (und nach Benutzung wieder löschen)?

                                ja klar

                                var flights={}; //initialisieren der Hauptvariable, die alles enthält
                                var flightnumber1="ab1234"; //schlüssel1
                                var flightnumber2="cd5678";  //schlüssel2
                                //zuweisen von daten
                                flights[flightnumber1]="Meine Informationen 1"; // dies können einfache skalare Daten sein, aber auch wieder ein array oder ein Objekt. Eine Verschachtelung kann beliebig tief erfolgen
                                flights[flightnumber2]={name: "Ich bin ein Objekt"};
                                console.log(flights);  //ausgabe der daten auf der console zum prüfen
                                //löschen der daten
                                delete flights[flightnumber1];  //löschen der daten mit dem schlüssel flugnummer1
                                console.log(flights);
                                
                                

                                die flugnummer müssen eindeutig sein, da man ansonsten die alten daten wieder überschreiben würde.

                                HomoranH Offline
                                HomoranH Offline
                                Homoran
                                Global Moderator Administrators
                                schrieb am zuletzt editiert von Homoran
                                #25

                                @oliverio neee,

                                Danke, aber nicht so rum.
                                der Variablenname soll dynamisch sein, also statt Flugnummer1 -> varRYR123
                                und der sollen dann die Liste mit den JSON (timestamp, flugnummer, lat, long, height) zu dem Flug zugeordnet werden.

                                die Variable wird eine Lebensdauer von wenigen Minuten (Überflugzeit) haben.

                                Deine Variante mit 2-3 vordefinierten Variablen hatte ichvauch schon überlegt, alletdings keine Ahnung, wie ich diese blocken kann während sie in Nutzung ist um so lange #2 oder #3 zu nutzen (rollierend)

                                efit: hast du was geändert?

                                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                CodierknechtC OliverIOO 2 Antworten Letzte Antwort
                                0
                                • HomoranH Homoran

                                  @oliverio neee,

                                  Danke, aber nicht so rum.
                                  der Variablenname soll dynamisch sein, also statt Flugnummer1 -> varRYR123
                                  und der sollen dann die Liste mit den JSON (timestamp, flugnummer, lat, long, height) zu dem Flug zugeordnet werden.

                                  die Variable wird eine Lebensdauer von wenigen Minuten (Überflugzeit) haben.

                                  Deine Variante mit 2-3 vordefinierten Variablen hatte ichvauch schon überlegt, alletdings keine Ahnung, wie ich diese blocken kann während sie in Nutzung ist um so lange #2 oder #3 zu nutzen (rollierend)

                                  efit: hast du was geändert?

                                  CodierknechtC Offline
                                  CodierknechtC Offline
                                  Codierknecht
                                  Developer Most Active
                                  schrieb am zuletzt editiert von
                                  #26

                                  @homoran
                                  In anderen Sprachen würde ich dafür eine Collection nehmen.
                                  Aber in JS stehe ich mindestens genau so auf dem Schlauch wie Du ;-)

                                  "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                                  Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                                  HmIP|ZigBee|Tasmota|Unifi
                                  Zabbix Certified Specialist
                                  Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                                  OliverIOO 1 Antwort Letzte Antwort
                                  0
                                  • CodierknechtC Codierknecht

                                    @paul53
                                    Nur mal so interessehalber, da ich ja von JS noch nicht so wirklich Plan habe:
                                    Die "Objekte" von denen ihr hier sprecht ... kann ich die mit recordoder struct vergleichen?
                                    Für ein lebendes "Objekt" fehlt mir hier igendwie die Instanziierung.

                                    Oder bin ich da (mal wieder) komplett auf dem Holzweg?

                                    ArmilarA Offline
                                    ArmilarA Offline
                                    Armilar
                                    Most Active Forum Testing
                                    schrieb am zuletzt editiert von
                                    #27

                                    @codierknecht sagte in Dynamisch erstellte Variablen.:

                                    kann ich die mit recordoder struct vergleichen?

                                    Records und Tuples, wenn @Homoran denn mindestens eine Variable zuässt ;-)

                                    let myRecord = #{ a: 1, b: 2, c: 2};
                                    let recordKeys = Object.keys(myRecord); // Returns ['a', 'b', 'c'];
                                    
                                    let myTuple = #[1, 2, 3, 4, 5];
                                    for(const i of myTuple) {
                                        console.log(i);
                                    }
                                    

                                    Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                    https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                    1 Antwort Letzte Antwort
                                    0
                                    • HomoranH Homoran

                                      @oliverio neee,

                                      Danke, aber nicht so rum.
                                      der Variablenname soll dynamisch sein, also statt Flugnummer1 -> varRYR123
                                      und der sollen dann die Liste mit den JSON (timestamp, flugnummer, lat, long, height) zu dem Flug zugeordnet werden.

                                      die Variable wird eine Lebensdauer von wenigen Minuten (Überflugzeit) haben.

                                      Deine Variante mit 2-3 vordefinierten Variablen hatte ichvauch schon überlegt, alletdings keine Ahnung, wie ich diese blocken kann während sie in Nutzung ist um so lange #2 oder #3 zu nutzen (rollierend)

                                      efit: hast du was geändert?

                                      OliverIOO Offline
                                      OliverIOO Offline
                                      OliverIO
                                      schrieb am zuletzt editiert von
                                      #28

                                      @homoran
                                      und woher kommt die information wie die flugnummer genau lautet? die musst du ja in eine variable speichern, die dann weiterverwendet wird.
                                      die beiden flugnummern habe ich nur beispielhaft vordefiniert, damit es klarer wird.
                                      wenn du wiederverwendbaren code hast, dann hast du da nur eine variable

                                      hier ein bisschen besser strukturierter code

                                      var flights={}; //initialisieren der Hauptvariable, die alles enthält
                                      addData("ab1234","Meine Informationen 1");
                                      addData("cd5678",{name: "Ich bin ein Objekt"});
                                      console.log(flights);
                                      deleteData("ab1234");
                                      console.log(flights);
                                      
                                      function addData(flightnumber,data) {
                                          flights[flightnumber] = data;
                                      }
                                      function deleteData(flightnumber) {
                                          delete flights[flightnumber];
                                      }
                                      
                                      

                                      Meine Adapter und Widgets
                                      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                      Links im Profil

                                      HomoranH 1 Antwort Letzte Antwort
                                      1
                                      • CodierknechtC Codierknecht

                                        @paul53
                                        Nur mal so interessehalber, da ich ja von JS noch nicht so wirklich Plan habe:
                                        Die "Objekte" von denen ihr hier sprecht ... kann ich die mit recordoder struct vergleichen?
                                        Für ein lebendes "Objekt" fehlt mir hier igendwie die Instanziierung.

                                        Oder bin ich da (mal wieder) komplett auf dem Holzweg?

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

                                        @codierknecht sagte: Die "Objekte" von denen ihr hier sprecht ... kann ich die mit record oder struct vergleichen?

                                        Ja.

                                        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
                                        1
                                        • OliverIOO OliverIO

                                          @homoran
                                          und woher kommt die information wie die flugnummer genau lautet? die musst du ja in eine variable speichern, die dann weiterverwendet wird.
                                          die beiden flugnummern habe ich nur beispielhaft vordefiniert, damit es klarer wird.
                                          wenn du wiederverwendbaren code hast, dann hast du da nur eine variable

                                          hier ein bisschen besser strukturierter code

                                          var flights={}; //initialisieren der Hauptvariable, die alles enthält
                                          addData("ab1234","Meine Informationen 1");
                                          addData("cd5678",{name: "Ich bin ein Objekt"});
                                          console.log(flights);
                                          deleteData("ab1234");
                                          console.log(flights);
                                          
                                          function addData(flightnumber,data) {
                                              flights[flightnumber] = data;
                                          }
                                          function deleteData(flightnumber) {
                                              delete flights[flightnumber];
                                          }
                                          
                                          
                                          HomoranH Offline
                                          HomoranH Offline
                                          Homoran
                                          Global Moderator Administrators
                                          schrieb am zuletzt editiert von Homoran
                                          #30

                                          @oliverio sagte in Dynamisch erstellte Variablen.:

                                          und woher kommt die information wie die flugnummer genau lautet? d

                                          die sendet mir der Flieger über Funk zu :-)

                                          { "now" : 1668369287.4, "messages" : 4842861, "aircraft" : [ {"hex":"406b0a","mlat":[],"tisb":[],"messages":9,"seen":13.0,"rssi":-26.7}, {"hex":"3c49ee","flight":"CFG069 ","alt_baro":9075,"alt_geom":9375,"gs":307.0,"ias":250,"tas":286,"mach":0.444,"track":259.7,"track_rate":0.00,"roll":0.7,"mag_heading":257.2,"baro_rate":-1568,"geom_rate":-1600,"squawk":"1000","nav_qnh":1013.3,"nav_altitude_mcp":7008,"lat":51.176225,"lon":7.089844,"nic":6,"rc":926,"seen_pos":2.2,"version":0,"nac_p":6,"nac_v":0,"sil":2,"sil_type":"unknown","mlat":[],"tisb":[],"messages":155,"seen":0.1,"rssi":-24.7}, {"hex":"44006c","flight":"AUA3SV ","alt_baro":31575,"alt_geom":32575,"gs":433.0,"ias":291,"tas":466,"mach":0.792,"track":124.9,"track_rate":0.00,"roll":0.0,"mag_heading":122.5,"baro_rate":1216,"geom_rate":1184,"squawk":"1000","category":"A3","nav_qnh":1012.8,"nav_altitude_mcp":35008,"lat":51.361771,"lon":7.286979,"nic":8,"rc":186,"seen_pos":16.6,"version":2,"nic_baro":1,"nac_p":9,"nac_v":1,"sil":3,"sil_type":"perhour","gva":2,"sda":2,"mlat":[],"tisb":[],"messages":1705,"seen":12.9,"rssi":-26.0}, {"hex":"3c4d68","flight":"DLH2MT ","alt_baro":34200,"alt_geom":35250,"gs":425.0,"ias":275,"tas":462,"mach":0.792,"track":135.7,"track_rate":0.00,"roll":0.2,"mag_heading":132.9,"baro_rate":736,"geom_rate":832,"squawk":"1000","category":"A3","nav_qnh":1012.8,"nav_altitude_mcp":36992,"nav_heading":132.2,"lat":51.045319,"lon":7.311773,"nic":8,"rc":186,"seen_pos":0.4,"version":2,"nic_baro":1,"nac_p":9,"nac_v":1,"sil":3,"sil_type":"perhour","gva":2,"sda":2,"mlat":[],"tisb":[],"messages":1170,"seen":0.0,"rssi":-21.1}, {"hex":"4ca27f","version":0,"sil_type":"unknown","mlat":[],"tisb":[],"messages":48,"seen":129.3,"rssi":-26.8}, {"hex":"4aca69","flight":"SAS51B ","alt_baro":35000,"alt_geom":36025,"gs":438.2,"ias":265,"tas":452,"mach":0.780,"track":40.7,"track_rate":0.03,"roll":-0.2,"mag_heading":46.1,"baro_rate":-64,"geom_rate":-64,"squawk":"5515","emergency":"none","category":"A3","nav_qnh":1013.6,"nav_altitude_mcp":35008,"nav_altitude_fms":35008,"nav_modes":["autopilot","vnav","tcas"],"lat":51.066036,"lon":6.481018,"nic":8,"rc":186,"seen_pos":2.2,"version":2,"nic_baro":1,"nac_p":10,"nac_v":2,"sil":3,"sil_type":"perhour","gva":2,"sda":2,"mlat":[],"tisb":[],"messages":3819,"seen":0.5,"rssi":-24.9}, {"hex":"89610a","category":"A5","version":2,"sil_type":"perhour","mlat":[],"tisb":[],"messages":382,"seen":49.8,"rssi":-26.6}, {"hex":"4cad39","category":"A3","version":2,"sil_type":"perhour","mlat":[],"tisb":[],"messages":705,"seen":111.8,"rssi":-27.0}, {"hex":"4d22e7","mlat":[],"tisb":[],"messages":28,"seen":212.1,"rssi":-28.3}, {"hex":"44034b","alt_baro":38025,"ias":247,"mach":0.780,"mag_heading":333.8,"baro_rate":128,"geom_rate":160,"version":0,"nac_p":8,"sil":2,"sil_type":"unknown","mlat":[],"tisb":[],"messages":82,"seen":0.1,"rssi":-26.8}, {"hex":"407cd4","version":2,"sil_type":"perhour","mlat":[],"tisb":[],"messages":631,"seen":193.6,"rssi":-26.6}, {"hex":"3c65d9","category":"A3","version":2,"sil_type":"perhour","mlat":[],"tisb":[],"messages":826,"seen":106.4,"rssi":-26.7}, {"hex":"4a0661","version":0,"sil_type":"unknown","mlat":[],"tisb":[],"messages":220,"seen":263.1,"rssi":-27.5}, {"hex":"4072ea","version":0,"sil_type":"unknown","mlat":[],"tisb":[],"messages":74,"seen":107.2,"rssi":-26.4}, {"hex":"4b1807","flight":"SWR70T ","alt_baro":35000,"alt_geom":36000,"gs":423.3,"ias":268,"tas":456,"mach":0.788,"track":149.3,"track_rate":0.00,"roll":-0.7,"mag_heading":143.1,"baro_rate":32,"geom_rate":-64,"squawk":"1000","category":"A3","nav_qnh":1012.8,"nav_altitude_mcp":35008,"nav_heading":143.4,"lat":50.553030,"lon":7.289800,"nic":8,"rc":186,"seen_pos":0.3,"version":2,"nic_baro":1,"nac_p":11,"nac_v":1,"sil":3,"sil_type":"perhour","gva":2,"sda":2,"mlat":[],"tisb":[],"messages":4456,"seen":0.0,"rssi":-23.0}, {"hex":"3964ec","flight":"TVF7449 ","alt_baro":38000,"alt_geom":38950,"gs":459.3,"ias":247,"tas":444,"mach":0.780,"track":218.2,"track_rate":0.00,"roll":-0.4,"mag_heading":211.3,"baro_rate":0,"geom_rate":0,"squawk":"3527","category":"A3","nav_qnh":1013.6,"nav_altitude_mcp":36992,"nav_altitude_fms":38000,"nav_heading":210.9,"lat":50.559586,"lon":6.376696,"nic":8,"rc":186,"seen_pos":12.8,"version":2,"nic_baro":1,"nac_p":9,"nac_v":1,"sil":3,"sil_type":"perhour","gva":2,"sda":2,"mlat":[],"tisb":[],"messages":6761,"seen":10.5,"rssi":-26.2}, {"hex":"471fa2","category":"A3","version":2,"sil_type":"perhour","mlat":[],"tisb":[],"messages":279,"seen":51.8,"rssi":-27.2}, {"hex":"471f6c","category":"A3","version":2,"sil_type":"perhour","mlat":[],"tisb":[],"messages":1540,"seen":201.5,"rssi":-26.6}, {"hex":"47c1f7","category":"A3","version":2,"sil_type":"perhour","mlat":[],"tisb":[],"messages":5932,"seen":83.6,"rssi":-25.8}, {"hex":"3c5ee1","alt_baro":14525,"alt_geom":15575,"gs":339.1,"track":150.1,"baro_rate":-960,"squawk":"3417","category":"A3","nav_qnh":1012.8,"nav_altitude_mcp":10016,"lat":50.638081,"lon":7.644332,"nic":8,"rc":186,"seen_pos":43.4,"version":2,"nic_baro":1,"nac_p":9,"nac_v":1,"sil":3,"sil_type":"perhour","mlat":[],"tisb":[],"messages":4361,"seen":10.3,"rssi":-26.9}, {"hex":"c027d1","flight":"ACA7211 ","alt_baro":30000,"alt_geom":30850,"gs":502.5,"ias":296,"tas":462,"mach":0.780,"track":292.0,"track_rate":0.00,"roll":-0.2,"mag_heading":290.7,"baro_rate":0,"geom_rate":0,"squawk":"2501","emergency":"none","category":"A5","nav_qnh":1013.6,"nav_altitude_mcp":30016,"nav_altitude_fms":30000,"nav_heading":291.1,"lat":51.033263,"lon":6.121445,"nic":8,"rc":186,"seen_pos":33.7,"version":2,"nic_baro":1,"nac_p":11,"nac_v":2,"sil":3,"sil_type":"perhour","gva":2,"sda":2,"mlat":[],"tisb":[],"messages":8930,"seen":0.9,"rssi":-26.5}, {"hex":"06a2e2","category":"A5","version":2,"sil_type":"perhour","mlat":[],"tisb":[],"messages":1410,"seen":237.1,"rssi":-25.1}, {"hex":"471f51","category":"A3","version":2,"sil_type":"perhour","mlat":[],"tisb":[],"messages":1032,"seen":287.4,"rssi":-22.6}, {"hex":"3c55c3","category":"A3","version":2,"sil_type":"perhour","mlat":[],"tisb":[],"messages":1134,"seen":276.4,"rssi":-26.6}, {"hex":"471f96","category":"A3","version":2,"sil_type":"perhour","mlat":[],"tisb":[],"messages":3065,"seen":295.1,"rssi":-26.2}, {"hex":"400942","category":"A3","version":2,"sil_type":"perhour","mlat":[],"tisb":[],"messages":1542,"seen":174.5,"rssi":-26.0}, {"hex":"4ca569","category":"A3","version":2,"sil_type":"perhour","mlat":[],"tisb":[],"messages":1605,"seen":126.2,"rssi":-26.5}, {"hex":"a826e9","category":"A5","version":2,"sil_type":"perhour","mlat":[],"tisb":[],"messages":3619,"seen":162.4,"rssi":-24.2} ] } 
                                          

                                          daraus extrahiere und berechne ich

                                           },
                                            {
                                              "Kennung": "BPO140  ",
                                              "Hoehe": 419,
                                              "Bodenabstand": 4397,
                                              "Entfernung": 4417,
                                              "Position": "50.xyz44,7.abc498"
                                            },
                                          

                                          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                          OliverIOO 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

                                          469

                                          Online

                                          32.5k

                                          Benutzer

                                          81.6k

                                          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