Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Brauche Hilfe um ein json abzurufen und auszuwerten

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Brauche Hilfe um ein json abzurufen und auszuwerten

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators @fastfoot last edited by

      @fastfoot sagte in Brauche Hilfe um ein json abzurufen und auszuwerten:

      würde ich die Aktualisierungsrate nicht so niedrig setzen

      damit meinte ich die Aktualisierung des jsons auf dem RasPi
      sobald dort 1 Sekunde keine Daten vom Flieger empfangen werden zählt ein Zähler hoch und nach 60 Sekunden ist er aus der Liste raus, vorher ggf. schcon die Positionsdaten.

      ich habe den Trigger abgeschaltet und rufe das json manuell auf
      Aber ich muss es ja auch im real-Life Betrieb testen - siehe letzter post 😉

      1 Reply Last reply Reply Quote 0
      • F
        fastfoot @Homoran last edited by fastfoot

        @Homoran Du musst das Ergebnis prüfen: Falls erg dann action. Wenn keine Daten da sind ist das Ergebnis undefined. Den Filter nicht zu eng setzen, während der Entwicklung!
        flight3.PNG

        Homoran 1 Reply Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators @fastfoot last edited by Homoran

          @fastfoot sagte in Brauche Hilfe um ein json abzurufen und auszuwerten:

          Falls erg dann action

          Jepp, danke

          Bin ja schon am finetuning der Rohdaten 😉
          ich ändere immer wieder den Range um nichts leeres zu bekommen. Aber auch das muss ich abfangen.

          Aus dem Parser Error werde ich nicht schlau. Hier mal alle Daten, vielleicht etwas unübersichtlich:
          HUMMEL4_parser.png

          Der Schraubenhuber flog eben direkt über unser Haus 😉
          Screen der Karte, der Live-Daten und des js-logs

          Hier das zeitgleiche json

          { "now" : 1603552640.8,
            "messages" : 1850340,
            "aircraft" : [
              {"hex":"3df744","flight":"HUMMEL4 ","alt_baro":800,"alt_geom":900,"gs":133.7,"track":332.9,"baro_rate":-128,"squawk":"4426","emergency":"none","category":"A7","lat":50.900574,"lon":6.983445,"nic":9,"rc":75,"seen_pos":0.1,"version":2,"nic_baro":1,"nac_p":10,"nac_v":2,"sil":3,"sil_type":"perhour","gva":2,"sda":2,"mlat":[],"tisb":[],"messages":453,"seen":0.1,"rssi":-16.2},
              {"hex":"3c66ea","flight":"DLH3U   ","alt_baro":21875,"alt_geom":22450,"gs":402.4,"ias":271,"tas":376,"mach":0.612,"track":94.7,"track_rate":0.00,"roll":-0.2,"mag_heading":94.6,"baro_rate":-1856,"geom_rate":-1856,"squawk":"5245","emergency":"none","category":"A3","nav_qnh":1012.8,"nav_altitude_mcp":11008,"lat":50.328555,"lon":7.004230,"nic":8,"rc":186,"seen_pos":14.4,"version":2,"nic_baro":1,"nac_p":9,"nac_v":1,"sil":3,"sil_type":"perhour","gva":2,"sda":2,"mlat":[],"tisb":[],"messages":351,"seen":12.8,"rssi":-22.1},
              {"hex":"461e16","flight":"FIN3EF  ","alt_baro":40000,"alt_geom":40350,"gs":409.6,"ias":233,"tas":432,"mach":0.772,"track":226.7,"track_rate":0.00,"roll":0.0,"mag_heading":229.6,"baro_rate":64,"geom_rate":32,"squawk":"1000","category":"A3","nav_qnh":1013.6,"nav_altitude_mcp":40000,"nav_altitude_fms":40000,"nav_modes":["autopilot","vnav","tcas"],"lat":50.716599,"lon":7.030730,"nic":8,"rc":186,"seen_pos":2.0,"version":2,"nic_baro":1,"nac_p":10,"nac_v":2,"sil":3,"sil_type":"perhour","gva":2,"sda":2,"mlat":[],"tisb":[],"messages":2888,"seen":1.5,"rssi":-19.9},
              {"hex":"4400d0","alt_baro":21825,"alt_geom":22300,"gs":401.2,"ias":284,"mach":0.632,"track":116.5,"mag_heading":104.2,"baro_rate":1984,"geom_rate":1984,"squawk":"5333","version":2,"nac_v":2,"sil_type":"perhour","mlat":[],"tisb":[],"messages":74,"seen":19.3,"rssi":-22.4},
              {"hex":"ac45d5","alt_baro":14950,"alt_geom":15250,"gs":362.1,"ias":313,"tas":392,"mach":0.620,"track":238.0,"roll":-0.4,"mag_heading":235.7,"baro_rate":-2624,"geom_rate":-3072,"squawk":"7702","category":"A5","nav_qnh":1012.8,"nav_altitude_mcp":11008,"nav_heading":237.7,"lat":50.936016,"lon":6.497955,"nic":8,"rc":186,"seen_pos":48.4,"version":2,"nic_baro":1,"nac_p":9,"nac_v":1,"sil":3,"sil_type":"perhour","gva":2,"sda":2,"mlat":[],"tisb":[],"messages":711,"seen":42.3,"rssi":-21.2},
              {"hex":"406a59","version":0,"sil_type":"unknown","mlat":[],"tisb":[],"messages":45,"seen":221.6,"rssi":-23.3},
              {"hex":"4072c8","category":"A3","version":2,"sil_type":"perhour","mlat":[],"tisb":[],"messages":3337,"seen":71.3,"rssi":-22.5},
              {"hex":"407797","flight":"EZY21DC ","alt_baro":38000,"alt_geom":38400,"gs":381.5,"ias":244,"tas":434,"mach":0.772,"track":289.8,"track_rate":0.03,"roll":-0.4,"mag_heading":286.2,"baro_rate":0,"geom_rate":-32,"squawk":"6604","category":"A3","nav_qnh":1013.6,"nav_altitude_mcp":38016,"nav_heading":0.0,"lat":51.126088,"lon":6.040497,"nic":8,"rc":186,"seen_pos":0.2,"version":2,"nic_baro":1,"nac_p":9,"nac_v":1,"sil":3,"sil_type":"perhour","mlat":[],"tisb":[],"messages":8064,"seen":0.2,"rssi":-20.7}
            ]
          }
          

          Warum mag der die Hummel nicht?

          F 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @Homoran last edited by

            @Homoran sagte:

            wie ich an die Geokoordinaten aus der Systemsteuerung komme

            Wenn die Koordinaten in der Javascript-Instanz eingetragen sind:

            Blockly_temp.JPG

            Inhalt der Funktion getNative(id):

            return getObject(id).native;
            
            1 Reply Last reply Reply Quote 1
            • F
              fastfoot @Homoran last edited by

              @Homoran sagte in Brauche Hilfe um ein json abzurufen und auszuwerten:

              Warum mag der die Hummel nicht?

              Normalerweise bekommst du ein Array mit Flügen zurück, die dann geparst werden können. Wenn du nur einen Flug hast, werden dessen Daten wohl schon aufgelöst, also Hummel4 ist kein Obkekt sondern bereits der Wert(sorry, bin nicht gut im Erklären, das ist eher @paul53 sein Ding)

              Homoran 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @fastfoot last edited by

                @fastfoot sagte in Brauche Hilfe um ein json abzurufen und auszuwerten:

                Wenn du nur einen Flug hast, werden dessen Daten wohl schon aufgelöst, also Hummel4 ist kein Obkekt sondern bereits der Wert

                Ja, so in der Art sieht es aus

                @fastfoot sagte in Brauche Hilfe um ein json abzurufen und auszuwerten:

                sorry, bin nicht gut im Erklären

                für mich reicht's

                F 1 Reply Last reply Reply Quote 0
                • F
                  fastfoot @Homoran last edited by

                  @Homoran sagte in Brauche Hilfe um ein json abzurufen und auszuwerten:

                  Ja, so in der Art sieht es aus

                  Probiere mal hinter die letzte geschweifte Klammer eckige Klammern zu setzen, das forciert das Erstellen eines Array. Er meldet aber trotzdem mehr als ein Element, das verstehe ich nicht 😞 Er liefert neben dem Objekt noch zweimal true

                  [{'flight':'HUMMEL4 ','lat':50.900574,'lon':6.983445,'alt_baro':800}]
                  
                  aircraft[
                      flight.$contains(/./) and
                      lat >50.78 and 
                      lat < 51.08 and 
                      alt_baro < 900
                      ].{
                      "flight":flight,
                      "lat":lat,
                      "lon":lon,
                      "alt_baro":alt_baro 
                  }[]
                  
                  

                  <xml xmlns="https://developers.google.com/blockly/xml">
                   <variables>
                     <variable id="17xfL.e+0-6.cfxoIMob">json</variable>
                     <variable id="j^BFzJQ/hdkEzTTe!.l_">expr</variable>
                     <variable id=":s3D=Sg#cp3Ghx(ZTDdl">erg</variable>
                     <variable id="C^O=/ydi(ot$dj2/M!HS">i</variable>
                   </variables>
                   <block type="variables_set" id="=Zan`!z6BJv/lt5yvcAk" x="88" y="13">
                     <field name="VAR" id="17xfL.e+0-6.cfxoIMob">json</field>
                     <value name="VALUE">
                       <block type="convert_json2object" id="E8Vj:2;B#0VMQjtiI7vF">
                         <value name="VALUE">
                           <block type="text" id="N@UB[t{awydMGpb|}Ebx">
                             <field name="TEXT">{ "now" : 1603545549.7,   "messages" : 1678929,   "aircraft" : [     {"hex":"3c4d8f","flight":"ABR1540 ","alt_baro":34075,"ias":263,"mach":0.764,"mag_heading":54.8,"baro_rate":64,"geom_rate":32,"version":0,"nac_p":0,"sil":0,"sil_type":"unknown","mlat":[],"tisb":[],"messages":29,"seen":3.5,"rssi":-23.2},     {"hex":"3e3f1f","alt_baro":11075,"version":0,"nac_p":8,"sil":2,"sil_type":"unknown","mlat":[],"tisb":[],"messages":8,"seen":2.4,"rssi":-22.9},     {"hex":"3c56f3","flight":"EWG53N  ","alt_baro":18725,"alt_geom":19150,"gs":354.9,"ias":288,"tas":376,"mach":0.612,"track":221.7,"track_rate":0.06,"roll":-0.4,"mag_heading":223.1,"baro_rate":2048,"geom_rate":2016,"squawk":"4132","emergency":"none","category":"A3","nav_qnh":1012.8,"nav_altitude_mcp":24000,"lat":51.072507,"lon":6.167068,"nic":8,"rc":186,"seen_pos":38.8,"version":2,"nic_baro":1,"nac_p":9,"nac_v":1,"sil":3,"sil_type":"perhour","gva":2,"sda":2,"mlat":[],"tisb":[],"messages":148,"seen":3.8,"rssi":-23.1},     {"hex":"484160","flight":"KLM1631 ","alt_baro":41000,"alt_geom":41125,"gs":443.6,"ias":226,"tas":436,"mach":0.768,"track":159.7,"track_rate":-0.03,"roll":-0.4,"mag_heading":163.7,"baro_rate":64,"geom_rate":0,"squawk":"1000","category":"A0","nav_qnh":1013.2,"nav_altitude_mcp":41008,"lat":50.771453,"lon":6.746521,"nic":7,"rc":371,"seen_pos":3.4,"version":0,"nac_p":7,"nac_v":0,"sil":2,"sil_type":"unknown","mlat":[],"tisb":[],"messages":2832,"seen":2.6,"rssi":-20.3},     {"hex":"3ddc04","mlat":[],"tisb":[],"messages":52,"seen":101.5,"rssi":-19.9},     {"hex":"440395","flight":"EJU93MQ ","alt_baro":38000,"alt_geom":38425,"gs":414.3,"ias":242,"tas":432,"mach":0.764,"track":241.8,"track_rate":-0.03,"roll":0.4,"mag_heading":245.6,"baro_rate":0,"geom_rate":-32,"squawk":"1136","emergency":"none","category":"A3","nav_qnh":1013.6,"nav_altitude_mcp":38016,"lat":50.905655,"lon":7.165090,"nic":8,"rc":186,"seen_pos":1.2,"version":2,"nic_baro":1,"nac_p":9,"nac_v":1,"sil":3,"sil_type":"perhour","gva":2,"sda":2,"mlat":[],"tisb":[],"messages":653,"seen":0.5,"rssi":-20.2},     {"hex":"4070e2","version":2,"sil_type":"perhour","mlat":[],"tisb":[],"messages":219,"seen":64.5,"rssi":-23.4},     {"hex":"48548d","flight":"KLM73C  ","alt_baro":23600,"alt_geom":37350,"gs":451.2,"ias":233,"tas":414,"mach":0.724,"track":149.1,"track_rate":0.00,"roll":0.2,"mag_heading":149.9,"baro_rate":0,"geom_rate":-32,"squawk":"3177","emergency":"none","category":"A3","nav_qnh":1013.6,"nav_altitude_mcp":37024,"nav_altitude_fms":37008,"nav_modes":["autopilot","althold","tcas"],"lat":50.463464,"lon":7.402261,"nic":8,"rc":186,"seen_pos":45.5,"version":2,"nic_baro":1,"nac_p":10,"nac_v":2,"sil":3,"sil_type":"perhour","gva":2,"sda":2,"mlat":[],"tisb":[],"messages":3056,"seen":3.8,"rssi":-24.7},     {"hex":"aa9300","flight":"UAL2777 ","alt_baro":29825,"alt_geom":30275,"gs":475.0,"ias":321,"tas":488,"mach":0.828,"track":317.6,"roll":0.2,"mag_heading":314.3,"baro_rate":1408,"geom_rate":1376,"squawk":"0635","emergency":"none","category":"A5","nav_qnh":1012.8,"nav_altitude_mcp":34016,"nav_heading":314.3,"lat":50.999313,"lon":6.929255,"nic":8,"rc":186,"seen_pos":43.6,"version":2,"nic_baro":1,"nac_p":9,"nac_v":1,"sil":3,"sil_type":"perhour","gva":2,"sda":2,"mlat":[],"tisb":[],"messages":2082,"seen":1.5,"rssi":-22.9},     {"hex":"40697c","version":0,"sil_type":"unknown","mlat":[],"tisb":[],"messages":123,"seen":184.6,"rssi":-21.9},     {"hex":"3c0ca5","category":"A3","version":2,"sil_type":"perhour","mlat":[],"tisb":[],"messages":514,"seen":90.3,"rssi":-23.4},     {"hex":"3d11d6","mlat":[],"tisb":[],"messages":1345,"seen":165.9,"rssi":-23.0},     {"hex":"3ded08","mlat":[],"tisb":[],"messages":2819,"seen":171.5,"rssi":-22.5}   ] }</field>
                           </block>
                         </value>
                       </block>
                     </value>
                     <next>
                       <block type="variables_set" id="k/n^+L}X+kdj)JFN?)pb">
                         <field name="VAR" id="17xfL.e+0-6.cfxoIMob">json</field>
                         <value name="VALUE">
                           <block type="convert_json2object" id="X6ehI@w+w2WmkF4Ntt,(">
                             <value name="VALUE">
                               <block type="text" id="@Ax=.ZO~Aa^H+wAw4Bb!">
                                 <field name="TEXT">{ "now" : 1603552640.8,   "messages" : 1850340,   "aircraft" : [     {"hex":"3df744","flight":"HUMMEL4 ","alt_baro":800,"alt_geom":900,"gs":133.7,"track":332.9,"baro_rate":-128,"squawk":"4426","emergency":"none","category":"A7","lat":50.900574,"lon":6.983445,"nic":9,"rc":75,"seen_pos":0.1,"version":2,"nic_baro":1,"nac_p":10,"nac_v":2,"sil":3,"sil_type":"perhour","gva":2,"sda":2,"mlat":[],"tisb":[],"messages":453,"seen":0.1,"rssi":-16.2},     {"hex":"3c66ea","flight":"DLH3U   ","alt_baro":21875,"alt_geom":22450,"gs":402.4,"ias":271,"tas":376,"mach":0.612,"track":94.7,"track_rate":0.00,"roll":-0.2,"mag_heading":94.6,"baro_rate":-1856,"geom_rate":-1856,"squawk":"5245","emergency":"none","category":"A3","nav_qnh":1012.8,"nav_altitude_mcp":11008,"lat":50.328555,"lon":7.004230,"nic":8,"rc":186,"seen_pos":14.4,"version":2,"nic_baro":1,"nac_p":9,"nac_v":1,"sil":3,"sil_type":"perhour","gva":2,"sda":2,"mlat":[],"tisb":[],"messages":351,"seen":12.8,"rssi":-22.1},     {"hex":"461e16","flight":"FIN3EF  ","alt_baro":40000,"alt_geom":40350,"gs":409.6,"ias":233,"tas":432,"mach":0.772,"track":226.7,"track_rate":0.00,"roll":0.0,"mag_heading":229.6,"baro_rate":64,"geom_rate":32,"squawk":"1000","category":"A3","nav_qnh":1013.6,"nav_altitude_mcp":40000,"nav_altitude_fms":40000,"nav_modes":["autopilot","vnav","tcas"],"lat":50.716599,"lon":7.030730,"nic":8,"rc":186,"seen_pos":2.0,"version":2,"nic_baro":1,"nac_p":10,"nac_v":2,"sil":3,"sil_type":"perhour","gva":2,"sda":2,"mlat":[],"tisb":[],"messages":2888,"seen":1.5,"rssi":-19.9},     {"hex":"4400d0","alt_baro":21825,"alt_geom":22300,"gs":401.2,"ias":284,"mach":0.632,"track":116.5,"mag_heading":104.2,"baro_rate":1984,"geom_rate":1984,"squawk":"5333","version":2,"nac_v":2,"sil_type":"perhour","mlat":[],"tisb":[],"messages":74,"seen":19.3,"rssi":-22.4},     {"hex":"ac45d5","alt_baro":14950,"alt_geom":15250,"gs":362.1,"ias":313,"tas":392,"mach":0.620,"track":238.0,"roll":-0.4,"mag_heading":235.7,"baro_rate":-2624,"geom_rate":-3072,"squawk":"7702","category":"A5","nav_qnh":1012.8,"nav_altitude_mcp":11008,"nav_heading":237.7,"lat":50.936016,"lon":6.497955,"nic":8,"rc":186,"seen_pos":48.4,"version":2,"nic_baro":1,"nac_p":9,"nac_v":1,"sil":3,"sil_type":"perhour","gva":2,"sda":2,"mlat":[],"tisb":[],"messages":711,"seen":42.3,"rssi":-21.2},     {"hex":"406a59","version":0,"sil_type":"unknown","mlat":[],"tisb":[],"messages":45,"seen":221.6,"rssi":-23.3},     {"hex":"4072c8","category":"A3","version":2,"sil_type":"perhour","mlat":[],"tisb":[],"messages":3337,"seen":71.3,"rssi":-22.5},     {"hex":"407797","flight":"EZY21DC ","alt_baro":38000,"alt_geom":38400,"gs":381.5,"ias":244,"tas":434,"mach":0.772,"track":289.8,"track_rate":0.03,"roll":-0.4,"mag_heading":286.2,"baro_rate":0,"geom_rate":-32,"squawk":"6604","category":"A3","nav_qnh":1013.6,"nav_altitude_mcp":38016,"nav_heading":0.0,"lat":51.126088,"lon":6.040497,"nic":8,"rc":186,"seen_pos":0.2,"version":2,"nic_baro":1,"nac_p":9,"nac_v":1,"sil":3,"sil_type":"perhour","mlat":[],"tisb":[],"messages":8064,"seen":0.2,"rssi":-20.7}   ] }</field>
                               </block>
                             </value>
                           </block>
                         </value>
                         <next>
                           <block type="variables_set" id="v)o8[|Cl)9TMCZ?w57EJ">
                             <field name="VAR" id="j^BFzJQ/hdkEzTTe!.l_">expr</field>
                             <value name="VALUE">
                               <block type="text" id="${+RanyDz#59vb@V6dYO">
                                 <field name="TEXT">aircraft[     lat &gt;50.78 and      lat &lt; 51.08 and      alt_baro &lt; 1000     ].{     "flight":flight,     "lat":lat,     "lon":lon,     "alt_baro":alt_baro  }[]</field>
                               </block>
                             </value>
                             <next>
                               <block type="variables_set" id="lhH4rQ~:glMfw._JOlPP">
                                 <field name="VAR" id=":s3D=Sg#cp3Ghx(ZTDdl">erg</field>
                                 <value name="VALUE">
                                   <block type="convert_jsonata" id="Bbs|KtZ,ky,}7I(4UNjg">
                                     <value name="EXPRESSION">
                                       <shadow type="text" id="#II]/P^EG`5X%vq7p`JW">
                                         <field name="TEXT">*</field>
                                       </shadow>
                                       <block type="variables_get" id=")J|PZuc2d!`ZYHpT`E;V">
                                         <field name="VAR" id="j^BFzJQ/hdkEzTTe!.l_">expr</field>
                                       </block>
                                     </value>
                                     <value name="TARGET">
                                       <block type="variables_get" id="mRA`B%EA,A^9Ag+Po%ju">
                                         <field name="VAR" id="17xfL.e+0-6.cfxoIMob">json</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="controls_if" id="_YdP)#=i2B#A*bbt9(FJ">
                                     <value name="IF0">
                                       <block type="variables_get" id="Ww@AV!LH.n^M@eb0a%{k">
                                         <field name="VAR" id=":s3D=Sg#cp3Ghx(ZTDdl">erg</field>
                                       </block>
                                     </value>
                                     <statement name="DO0">
                                       <block type="debug" id=".5NIWaw#TszdX-_~e3Z$">
                                         <field name="Severity">log</field>
                                         <value name="TEXT">
                                           <shadow type="text" id="cW^.=02N.@Toj9XyG|.8">
                                             <field name="TEXT">test</field>
                                           </shadow>
                                           <block type="variables_get" id="igi?fBev!HhzimQ]m5rv">
                                             <field name="VAR" id=":s3D=Sg#cp3Ghx(ZTDdl">erg</field>
                                           </block>
                                         </value>
                                         <next>
                                           <block type="controls_forEach" id="!5,(BmoX)#tFNNW0nmd!">
                                             <field name="VAR" id="C^O=/ydi(ot$dj2/M!HS">i</field>
                                             <value name="LIST">
                                               <block type="variables_get" id="}~mt$C+aq,DQex(mJrCL">
                                                 <field name="VAR" id=":s3D=Sg#cp3Ghx(ZTDdl">erg</field>
                                               </block>
                                             </value>
                                             <statement name="DO">
                                               <block type="controls_if" id="[6n[w2Fe0n!~BKYCh~w#">
                                                 <value name="IF0">
                                                   <block type="variables_get" id="uDiKTPb.Oaf;Qrr.t;PY">
                                                     <field name="VAR" id="C^O=/ydi(ot$dj2/M!HS">i</field>
                                                   </block>
                                                 </value>
                                                 <statement name="DO0">
                                                   <block type="debug" id=",yzRaj^wBGOm)FuXLE%~" inline="true" disabled="true">
                                                     <field name="Severity">log</field>
                                                     <value name="TEXT">
                                                       <shadow type="text" id="7?iQ#CzTP0U+]T[-b=]L">
                                                         <field name="TEXT">test</field>
                                                       </shadow>
                                                       <block type="variables_get" id="rE8-pu:p|-:2Dae0Qv,|">
                                                         <field name="VAR" id="C^O=/ydi(ot$dj2/M!HS">i</field>
                                                       </block>
                                                     </value>
                                                     <next>
                                                       <block type="debug" id="%/D(|w$!p%VRD?LI:bHb" inline="true">
                                                         <field name="Severity">log</field>
                                                         <value name="TEXT">
                                                           <shadow type="text" id="A%qyXK/pF4-P+4Sf@edo">
                                                             <field name="TEXT">test</field>
                                                           </shadow>
                                                           <block type="get_attr" id="O;^U$CxOpO#O8}SUt6c7">
                                                             <value name="PATH">
                                                               <shadow type="text" id="2(aoz`T2Jfz.2TuDe|Iu">
                                                                 <field name="TEXT">flight</field>
                                                               </shadow>
                                                             </value>
                                                             <value name="OBJECT">
                                                               <block type="variables_get" id="^u|[||1Uh=x;S.,^CB`m">
                                                                 <field name="VAR" id="C^O=/ydi(ot$dj2/M!HS">i</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <next>
                                                           <block type="debug" id="9}rn4L5TBOn!8d%8}E.w" inline="true">
                                                             <field name="Severity">log</field>
                                                             <value name="TEXT">
                                                               <shadow type="text">
                                                                 <field name="TEXT">test</field>
                                                               </shadow>
                                                               <block type="get_attr" id="n#F4D9:*.oV6?yfEj25E">
                                                                 <value name="PATH">
                                                                   <shadow type="text" id="LVq5v19VoKSm-UK)W@fO">
                                                                     <field name="TEXT">lat</field>
                                                                   </shadow>
                                                                 </value>
                                                                 <value name="OBJECT">
                                                                   <block type="variables_get" id="SP,FXso4|/L}DlxTu{O6">
                                                                     <field name="VAR" id="C^O=/ydi(ot$dj2/M!HS">i</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                             <next>
                                                               <block type="debug" id=".bg8w!-4#3x..B@,NW(j" inline="true">
                                                                 <field name="Severity">log</field>
                                                                 <value name="TEXT">
                                                                   <shadow type="text">
                                                                     <field name="TEXT">test</field>
                                                                   </shadow>
                                                                   <block type="get_attr" id=":GzM=9^:2?r*M||slBBF">
                                                                     <value name="PATH">
                                                                       <shadow type="text" id="LRZyLEu){,I)g[V(dhMW">
                                                                         <field name="TEXT">lon</field>
                                                                       </shadow>
                                                                     </value>
                                                                     <value name="OBJECT">
                                                                       <block type="variables_get" id="/UraS|Fc?ctIvD-DAI]/">
                                                                         <field name="VAR" id="C^O=/ydi(ot$dj2/M!HS">i</field>
                                                                       </block>
                                                                     </value>
                                                                   </block>
                                                                 </value>
                                                                 <next>
                                                                   <block type="debug" id=";UJZV:%dh/?f[U[BT.}G" inline="true">
                                                                     <field name="Severity">log</field>
                                                                     <value name="TEXT">
                                                                       <shadow type="text">
                                                                         <field name="TEXT">test</field>
                                                                       </shadow>
                                                                       <block type="get_attr" id="4B/VA^,2r?4/PYO*J`gr">
                                                                         <value name="PATH">
                                                                           <shadow type="text" id="`QF}d=G_9]6gU7/tt{gv">
                                                                             <field name="TEXT">alt_baro</field>
                                                                           </shadow>
                                                                         </value>
                                                                         <value name="OBJECT">
                                                                           <block type="variables_get" id="zh|}0+2O0]C9p^Sq~p$T">
                                                                             <field name="VAR" id="C^O=/ydi(ot$dj2/M!HS">i</field>
                                                                           </block>
                                                                         </value>
                                                                       </block>
                                                                     </value>
                                                                   </block>
                                                                 </next>
                                                               </block>
                                                             </next>
                                                           </block>
                                                         </next>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </statement>
                                               </block>
                                             </statement>
                                           </block>
                                         </next>
                                       </block>
                                     </statement>
                                   </block>
                                 </next>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                     </next>
                   </block>
                  </xml>
                  

                  Homoran 1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @fastfoot last edited by Homoran

                    @fastfoot bin da auch dran,

                    wollte über length_of abfangen, klappt aber nicht.
                    length_of_.png

                    bei nur noch einem Flugzeug springt er nicht in den sonst_falls, bei mehr als einem läuft es richtig

                    EDIT:
                    läuft!
                    habe das SONST_FALLS gegen ein SONST getauscht.

                    Beim ersten Versuch damit hatte ich noch das falsch Objekt, nämlich i angegeben

                    1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators last edited by Homoran

                      @paul53
                      @fastfoot

                      Euch beiden erst mal vielen Dank.
                      Habe heute viel gelernt. Hoffentlich war das nicht zuviel und setzt sich noch 😉

                      Habe jetzt nur noch ein Problem.
                      Ich habe jetzt die erste Abfrage nach der Kennung weggelassen und wollte auch Flieger erfassen, deren Kennung ich nicht habe.
                      Dieser Fall sollte abgefangen werden und mit "unbekannt" erstezt werden.
                      Das klappt auch bei nur einem Flieger, bei mehreren Fliegern weitestgehend auch, jedoch wird IMMER zum Schluss ein weiterer Eintrag ohne jegliche Daten erstellt.

                      zuviele_i.png

                      Hier im Beispiel ist die Länge des Arrays 3, es gibt jedoch 4 Einträge.
                      Die ersten 3 sind in Ordnung (im 3. lag keine Flugnummer vor und wurde korrekt mit "unbekannt" ersetzt)

                      Wo kommt diese letzte Zeile noch her?
                      Bevor ich sie mit unlauteren Mitteln abfange, was ohne weiteres gehen würde, würde ich es gerne verstehen.

                      Außerdem hätte ich gerne i im debug angezeigt, bekomme bei 1-3 nur ein [object][object] und in der ominösen 4. Zeile ein true undefined
                      ich dachte i wäre eine Zahl

                      Danke

                      paul53 2 Replies Last reply Reply Quote 0
                      • paul53
                        paul53 @Homoran last edited by

                        @Homoran sagte:

                        ich dachte i wäre eine Zahl

                        Nein, das ist bei einer for-Schleife (Zählschleife) so, aber nicht bei for in Schleifen. Bei Arrays sollte man besser die Zählschleifen verwenden.

                        1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @Homoran last edited by paul53

                          @Homoran
                          Ich würde die Zählschleife verwenden und innerhalb der Schleife filtern, wobei das erstes Filterkriterium das Vorhandensein von "lat", "lon" und "alt_baro" sein sollte:

                          Blockly_temp.JPG

                          Homoran 2 Replies Last reply Reply Quote 0
                          • Homoran
                            Homoran Global Moderator Administrators @paul53 last edited by

                            @paul53 sagte in Brauche Hilfe um ein json abzurufen und auszuwerten:

                            Ich würde die Zählschleife verwenden und innerhalb der Schleife filtern

                            so weit bin ich auch schon, wobei es mir nicht gelingt die Attribute korrekt zu bestimmen. Objekt 'i' geht ja jetzt nicht mehr
                            Muss mir mal deine Vorgehensweise ansehen

                            1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators @paul53 last edited by

                              @paul53 Hat was länger gedauert, waren grad keine Flieger unterwegs (muss mein System später mal hardwaretechnisch noch was aufrüsten).

                              Jetzt scheint es zu klappen!
                              Zaehlschleife.png

                              War ich gar nicht so weit von entfernt, mir fehlte nur das eigenständige Zerlegen des JSON(-Arrays) in "Unter"-JSONs, was bisher die Schleifen gemacht hatte.
                              Das das ganze JSON jeweils wieder "nur" ein Element des Arrays war, und damit als i-tes Element aufgerufen werden konnte, hatte ich nicht auf dem Schirm.

                              Da habe ich ja heite Nacht noch einiges zu rekapitulieren

                              1 Reply Last reply Reply Quote 0
                              • Homoran
                                Homoran Global Moderator Administrators last edited by Homoran

                                sooo, aktueller Stand:
                                gestern Abend bekam ich keinerlei Meldungen.
                                Vom Bett aus habe ich es dann mit dem Tablet noch geschafft einen debug einzubauen und stellte fest, dass die Geokoordinaten aus der javascript Instanz anscheinend vom Typ String waren.
                                Diese noch "schnell" in Zahl konvertiert und es lief.

                                Die Daten werden im Moment zur Kontrolle in einen Datenpunkt geschrieben und historisiert:
                                Airtracker_log.png

                                Dann hatte ich noch versucht den Erfassungsbereich weniger hardcoded zu machen und mit einer Variable schnell zu ändern, Im Moment bekam ich auch Maschinen, die aus einer anderen Richtung im Landeanflug waren (zum Testen ganz gut, auf Dauer aber nicht)
                                Hatte aber die Rechnung nicht mit Herrn Mercator gemacht, der Ausschnitt war nicht quadratisch 😉
                                piAware_Range.png

                                Also empirisch noch einen Faktor eingebaut und es sah besser aus:
                                piAware_Range_Faktor.png
                                Ich werde wahrscheinlich diesen Faktor noch erhöhen, da die mich interessierende Flugroute fast genau von Ost nach West geht.

                                Jetzt kam der quälende Teil.
                                Ich wollte den Abstand des Fliegers zu meinem Haus berechnen.
                                Habe im Netz eine brauchbare Rechnung gefunden:

                                distance = sqrt(dx * dx + dy * dy)
                                
                                mit distance: Entfernung in km 
                                dx = 111.3 * cos(lat) * (lon1 - lon2)
                                lat = (lat1 + lat2) / 2 * 0.01745
                                dy = 111.3 * (lat1 - lat2)
                                lat1, lat2, lon1, lon2: Breite, Länge in Grad
                                

                                Quelle: https://www.kompf.de/gps/distcalc.html

                                Das wollte ich aus Platzgründen in einer Funktion verstecken, woran ich mal wieder gescheitert bin.
                                Das Blockly sieht inzwischen gigantisch aus:
                                Airtracker_007.png

                                und das ist nur der obere Teil für mehrere Flieger, für einen Flieger kommt das selbe nochmal 😞

                                weitere geplante Dinge

                                • Der Abstand im Raum (zusätzlich noch ein Pythagoras zur Höhe)
                                • Arrays für jeweils einen Flug aufbauen, dort den dichtesten Abstand rausfinden
                                • diesen einen Datensatz in ein weiteres Array für alle Flüge übernehmen
                                • danach das temporäre Array wieder löschen

                                mal sehen wie weit ich komme, habe noch keine Möglichkeit gefunden eine Liste mit Namen des Fluges variabel zu erstellen

                                1 Reply Last reply Reply Quote 0
                                • Homoran
                                  Homoran Global Moderator Administrators last edited by Homoran

                                  kaum getippt, kommt eine Ryanair rein:
                                  Airtracker_Landeanflug.png

                                  die Einträge mit Abstand in km dazu:
                                  Airtracker_distance.png

                                  1 Reply Last reply Reply Quote 0
                                  • Homoran
                                    Homoran Global Moderator Administrators last edited by

                                    So, nach einiger Zeit und Problemen nach einem piaware Update würde ich das Ganze noch etwas optimieren

                                    ich bekomme während des Durchfluges durch das Beobachungsfensters mehrere Meldungen
                                    Screenshot_20220710-163129_Firefox.jpg

                                    ich bräuchte aber nur den Datensatz vom nahesten Ergebnis.

                                    ich habe schon versucht jeden Satz als JSON zu bilden und dann in einer Liste das Minimum für Entfernung am Boden zu finden.

                                    Das war nix 😞

                                    gibt es da eine sinnvolle Vorgehensweise, so dass ich optimalerweise ein json pro Flug erhalte, das ich später in einem jsonlist widget oder Eventlis Widget als Liste darstellen kann?

                                    paul53 1 Reply Last reply Reply Quote 0
                                    • paul53
                                      paul53 @Homoran last edited by

                                      @homoran sagte: jsonlist widget

                                      Welche Daten soll die Liste enthalten?

                                      Homoran 1 Reply Last reply Reply Quote 0
                                      • Homoran
                                        Homoran Global Moderator Administrators @paul53 last edited by

                                        @paul53 Danke schon mal!

                                        im Prinzip, die die ich jetzt als String in den Datenpunkt schreibe.

                                        Screenshot_20220712-172352_Firefox.jpg

                                        sorry für den Screenshot, bin nur am Tablet

                                        paul53 1 Reply Last reply Reply Quote 0
                                        • paul53
                                          paul53 @Homoran last edited by paul53

                                          @homoran
                                          Ansatz, der noch nicht das Löschen von nicht mehr vorhandenen Flugzeugen aus der Tabelle enthält:

                                          Bild_2022-07-12_181914975.png

                                          Inhalt der Funktion flugObjekt(kennung,_hoehe,abstand,entfernung,pos):

                                          return {
                                              Kennung: kennung,
                                              Hoehe: _hoehe,
                                              Bodenabstand: abstand,
                                              Entfernung: entfernung,
                                              Position: pos
                                          };
                                          
                                          Homoran 1 Reply Last reply Reply Quote 0
                                          • Homoran
                                            Homoran Global Moderator Administrators @paul53 last edited by

                                            @paul53 DANKE!

                                            Das muss ich jetzt erst mal ventilieren 🙂

                                            @paul53 sagte in Brauche Hilfe um ein json abzurufen und auszuwerten:

                                            der noch nicht das Löschen von nicht mehr vorhandenen Flugzeugen aus der Tabelle enthält:

                                            Hab gerade mit Schrecken sogar zwei Flugzeuge zeitgleich im Sektor gehabt.. Ich dachte das wird schon nicht passieren.
                                            Jetzt kreiste zusätzlich noch ein Polizeihubschrauber auf +/- 300m rum.

                                            Aber solche Spezialfälle sind erst einmal unwichtig.

                                            Werde deinen Ansatz mal testen

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            911
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            53
                                            2363
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo