Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. verschiedene Datenpunkte in eine Tabelle schreiben

    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

    verschiedene Datenpunkte in eine Tabelle schreiben

    This topic has been deleted. Only users with topic management privileges can see it.
    • Basti97
      Basti97 Most Active @paul53 last edited by

      @paul53 Danke langsam verstehe ich das ganze Script. Hatte bis jetzt nur mi Blockly alles gemacht aber ich sehe mit Java kann man viel mehr machen. 🙂

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

        @Basti97 sagte:

        aber ich sehe mit Java kann man viel mehr machen.

        Blockly enthält nur eine Teilmenge von Javascript.

        Basti97 1 Reply Last reply Reply Quote 0
        • Basti97
          Basti97 Most Active @paul53 last edited by

          @paul53 Ja das merke ich jetzt auch mit Blockly hätte man so etwas nicht hinbekommen. Wie oft wird eigentlich der Datenpunkt aktualisiert? Kann man das auch noch einstellen.

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

            @Basti97 sagte:

            Wie oft wird eigentlich der Datenpunkt aktualisiert?

            Bei jeder Änderung eines Temperaturwertes der im Array idsTemp angelegten Datenpunkte, also in Echtzeit.

            Basti97 2 Replies Last reply Reply Quote 0
            • Basti97
              Basti97 Most Active @paul53 last edited by

              @paul53 Ok Der Datenpunkt wird an sich aktualisiert aber die Werte irgendwie bleiben stehen. Die werden erst bei einem Neustart des Adapters aktualisiert.

              1 Reply Last reply Reply Quote 0
              • Basti97
                Basti97 Most Active @paul53 last edited by

                @paul53
                Hier ist mein Script ich verstehe nicht warum der Status nicht aktualisiert wird. 😠
                Ich hoffe ich habe es richtig eingefügt.


                const idTable = 'javascript.0.virtuelle_Datenpunkte.Temperaturauswertung'; // ID JSON-Tabelle

                //Temperatur
                const idsTemp = [
                'zigbee.0.00158d03035bf62e.temperature',
                'zigbee.0.00158d03045bf62e.temperature',
                'zigbee.0.00158d03065bf62e.temperature',
                'zigbee.0.00158d03046bf62e.temperature',

                ]; // Luftfeuchtigkeit

                const idsLuftf = [
                'zigbee.0.00158d03035bf62e.humidity',
                'zigbee.0.00158d03045bf62e.humidity',
                'zigbee.0.00158d03065bf62e.humidity',
                'zigbee.0.00158d03046bf62e.humidity',

                ];// Temperatur Status (true oder false)

                const idsStatus = [
                'zigbee.0.00158d03035bf62e.available',
                'zigbee.0.00158d03045bf62e.available',
                'zigbee.0.00158d03065bf62e.available',
                'zigbee.0.00158d03046bf62e.available',

                ]; // Datenpunkt-IDs von Adaptern

                const rooms = [
                'Wohnen','Schlafen','Küche',
                'Bad','Kinderzimmer'
                ];

                var table = [];

                for(let i = 0; i < rooms.length; i++) {

                // Tabellen Spalten und Überschrift

                table[i] = {};
                
                table[i].Raum = rooms[i];
                
                table[i].Temperatur = getState(idsTemp[i]).val + ' °C';
                table[i].Luftfeuchtigkeit = getState(idsLuftf[i]).val;
                    table[i].Status = getState(idsStatus[i]).val;
                

                }

                setState(idTable, JSON.stringify(table), true);

                on(idsTemp, function(dp) {

                let idx = idsTemp.indexOf(dp.id);
                
                table[idx].Temp = dp.state.val;
                
                setState(idTable, JSON.stringify(table), true);
                
                });
                

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

                  @Basti97
                  Du hast pro Messgröße 4 Datenpunkte, aber 5 Räume.
                  Für die Aktualisierung aller Messgrößen braucht es 3 Trigger.

                  on(idsTemp, function(dp) {
                     let idx = idsTemp.indexOf(dp.id);
                     table[idx].Temperatur = dp.state.val + ' °C';
                     setState(idTable, JSON.stringify(table), true);
                  });
                  on(idsLuftf, function(dp) {
                     let idx = idsLuftf.indexOf(dp.id);
                     table[idx].Luftfeuchtigkeit = dp.state.val + ' %';
                     setState(idTable, JSON.stringify(table), true);
                  });
                  on(idsStatus, function(dp) {
                     let idx = idsStatus.indexOf(dp.id);
                     table[idx].Status = dp.state.val;
                     setState(idTable, JSON.stringify(table), true);
                  });
                  

                  Bitte den gesamten Javascript-Code immer in Code tags </> posten.

                  Basti97 1 Reply Last reply Reply Quote 0
                  • Basti97
                    Basti97 Most Active @paul53 last edited by Basti97

                    Danke für deine Hilfe.

                    1 Reply Last reply Reply Quote 0
                    • Basti97
                      Basti97 Most Active last edited by

                      Ich habe in meiner Tabelle als Status einzelne False und True (siehe Bild).
                      Wie kann ich nun Definieren das bei True die Text Farbe Grün ist und bei False rot.
                      Der Status kommt von den einzelnen Datenpunkte.
                      Zweite Frage kann man Anstatt true bzw False auch jeweils ein Symbol in Javascript einfügen.

                      Unbenannt.JPG

                      Basti97 1 Reply Last reply Reply Quote 0
                      • Basti97
                        Basti97 Most Active @Basti97 last edited by

                        Hat jemand eine Lösung um die true und false "Datenpunkte" in grün und rot umzuwandeln. Was muss man im JavaScript dafür ändern.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        818
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

                        blockly javascript monitoring
                        2
                        14
                        1894
                        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