Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
über "Fetch" Json Array/Object auswerten
#24
Moin'se Smile

Habe nach langen überlegens und suchens eine Slider Anwendung kreiert, die so für mich passt:
Code:
window.onload = function() {
        var slider = document.getElementById('viewsize');
        var zeige = document.getElementById('currentValue');
                var position;
        if(window.addEventListener){
        slider.addEventListener('change', function () {
         zeige.innerHTML = slider.value;
         window.resizeTo( parseInt(slider.value), 400 ); // evtl parseInt? dunno
                 position = slider.value;
                 console.log("zeige Sliderposition", position);
                 fetch('http://192.168.188.121/cm?cmnd=ShutterPosition%20'+ slider.value).then(function(response) {
                      response.text().then(function(text) {
                      const Status = JSON.parse(text);
                      console.log("statustext",Status);
                      //document.getElementById('Fenster_auf_IP_120').innerHTML = Status.POWER1;               
                      //document.getElementById('Fenster_auf_IP_120').innerHTML = text.StatusSNS.Shutter1.Position;
                      });
                    });

          });
                }
Im Vorfeld hatte ich mit:
Code:
        setInterval(update, 2000);
        update();
        function update(){
            let data;
            //var slider = document.getElementById("XSlider");
            fetch('http://192.168.188.121/cm?cmnd=ShutterPosition%20?').then(function(response) {
                     response.text().then(function(text) {                   
                        const Status = JSON.parse(text);
                        console.log("Anzeige der Constante",Status); // Anzeige FireFox F12 => Entwicklerwerkzeug: "" Object { POWER: "ON" } ""
                        document.getElementById('Status').innerHTML = Status.Shutter1.Position;
                        data = Status.Shutter1.Position;
                        console.log("Anzeige", data);
                        document.getElementById("XSlider").value = data;
                    });
                });
            };
 per Intervall mir den Stand vom Rolladen geholt. Hier nur besteht das Problem, dass wenn die Webseite geöffnet ist, der Intervall dauernd anliegt und später dann werden noch meherer Device abgefrage. Das würde ne menge Datenaustausch zwischen den Devices und der Webseite (dann auch mobil auf dem Handy) bedeuten.

Nun habe ich mir gedacht vollgenden Workflow ein Script zu erstellen:
1. Slider wird ausgelöst
2. Variable setzen, mit der die Bewegung überwacht wird (nen Timer) und die Webseite bzw. der Fetch zur Abfrage des aktuellen standes wird gesetzt
3. im Respons vom Tasmota-Rolladen bekomme ich :     diese Daten, die ich auswerten kann

Doch leider ist mir noch schleirhaft, wie ich eine Variable setze, die außerhalb der Funktion "Bestand" hat und mit der ich eine neue Funktion programmieren könnte.
Code:
            position_update();
            function position_update(){
                if (position !=target){
                    let data;
   
                     fetch('http://192.168.188.121/cm?cmnd=ShutterPosition%20?').then(function(response) {
                        response.text().then(function(text) {                   
                            const Status = JSON.parse(text);
                            console.log("Anzeige der Constante",Status.Shutter1.Position); // Anzeige FireFox F12 => Entwicklerwerkzeug: "" Object { POWER: "ON" } ""
                            document.getElementById('Status').innerHTML = Status.Shutter1.Position;
                            //data = Status.Shutter1.Position;
                            console.log("Anzeige", data);
                            //document.getElementById("XSlider").value = data;
                        });
                    });
                }
            }

Hier bekomme ich den Fehler " Uncaught ReferenceError: position is not defined " weil sicherlich für diese Funktion die Varible nicht existiert.
Wie aber kann ich eine Funktion erst "starten" wenn in einer anderen ein Ergebnis vorliegt. Habe jetzt noch angefangen tiefer über selfhtml.org/ mich einzulesen.
Dennoch könnt ich einwenig schnelle Hilfe benötige... meine Frau sitzt mir im Nacken Wink .

Grüße MAT
Zitieren


Nachrichten in diesem Thema
RE: über "Fetch" Json Array/Object auswerten - von mat-sche - 29.02.2024, 13:15

Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
6 Gast/Gäste