Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Variabler Datenpunkt in VIS?

    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

    Variabler Datenpunkt in VIS?

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

      @butsch

      Ja auch da gibt es ja die Möglichkeit die ObjektID selbst zu schreiben, bzw. aus einem Text block zu erstellen. Etwa so:

      Bildschirmfoto 2022-03-06 um 16.59.25.png

      kenne jetzt nicht die Ganze ID, aber etwa so sollte machbar sein.

      Es könnte sein das der zeit Block "06" statt "6" ausgibt, dann muss man natürlich noch mal sehen das die führende "0" verschwindet.

      B 1 Reply Last reply Reply Quote 1
      • OliverIO
        OliverIO @butsch last edited by OliverIO

        @butsch
        leider gibt es keine dynamischen datenpunkte in vis.
        beim start der view werden alle definierten datenpunkte (ob in den widget attributen oder als binding) eingesammelt und abonniert.
        später lässt sich diese liste so einfach nicht erweitern.
        mit javascript würde das gehen, ist aber nicht so simpel

        du hast nur die möglichkeit alle möglichen datenpunkte vorher irgendwo zu definieren (bspw in einem html widget, welches nicht sichtbar ist). dadurch sind diese datenpunkte alle in vis bekannt (ob die existieren oder nicht ist irrelevant)
        dann kannst du per javascript die werte auslesen.

        console.debug(vis.states["javascript.0.test.val"]);
        

        Das val muss an den Datenpunkt namen angehängt werden, da man über diese Methode auch noch den timestamp (ts) oder last changed (lc) abrufen könnte

        Anmerkung: Der code läuft so nur im Browser, nicht im javascript-adapter

        1 Reply Last reply Reply Quote 0
        • B
          butsch @Cinimod last edited by

          @cinimod
          Ja genau so habe ich mir das auch gedacht und ich bekomme den zusammengesetzten Datenpunkt auch in einen weiteren Datenpunkt eingefügt. Das passt schon mal...
          Jetzt muss ich nur noch den zusammengesetzten Datenpfad im HTML Widget auslesen können.

          Danke schon mal

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

            @butsch

            Du kannst ja auch zwei eigene Datenpunkte (gestern, heute) beschreiben mit dem Wert von der zusammengesetzter ID, und diese dann in VIS darstellen, mit was immer du willst.

            B 1 Reply Last reply Reply Quote 1
            • B
              butsch @Cinimod last edited by

              @cinimod ohje, jetzt stehe ich auf dem Schlauch...
              Wie müsste denn dann mein Blockly aussehen um einen direkten Datenpunkt zu schreiben?

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

                @cinimod sagte: Das Skript dazu ist aber etwas kniffelig

                Vorschlag:

                const path = 'fronius-solarweb.0.037e3fdb.day.EnergyProductionTotal.values.';
                const idHeute = '0_userdata.0.Fronius.EnergyProduction.heute';
                const idGestern = '0_userdata.0.Fronius.EnergyProduction.gestern';
                
                var idToday = path + new Date().getDate();
                on(idToday, function(dp) {
                    setState(idHeute, dp.state.val, true);
                });
                
                schedule('59 23 * * *', function() {
                    setState(idGestern, getState(idToday).val, true);
                    unsubscribe(idToday);
                    idToday = path + new Date(Date.now() + 70000).getDate();
                    on(idToday, function(dp) {
                        setState(idHeute, dp.state.val, true);
                    });
                });
                
                1 Reply Last reply Reply Quote 0
                • Cinimod
                  Cinimod Most Active @butsch last edited by Cinimod

                  @butsch

                  Ich hätte es etwa so probiert, kann aber auch sein das ich auf dem Holzweg bin:

                  Bildschirmfoto 2022-03-06 um 17.43.17.png

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

                    @cinimod sagte: Ich hätte es etwa so probiert

                    Man muss jeden Tag einen neuen Trigger mit dem Monats-Datum erzeugen und den alten Trigger löschen. Blockly hat leider kein unsubscribe(id) (s. Zeile 12). Deshalb benötigt man eine Javascript-Funktion stopTrigger(id):

                    Bild_2022-03-06_181626.png

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

                      @paul53

                      Hab mir jetzt beides zehn mal angesehen, verstehe nicht wieso meins nicht funktioniert, bin aber auch nicht so der Held beim Skripten 😉

                      Der Monat spielt doch allem Anschein nach gar keine rolle 🤔

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

                        @cinimod sagte: Der Monat spielt doch allem Anschein nach gar keine rolle

                        Monatsdatum ist der Tag des Monats. Heute ist der 6(.März) und gestern war der 5(.März).
                        Der Wochentag als Nummer liefert heute (Sonntag) eine 7.

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

                          @paul53

                          Ach so … meins ist sicher falsch, Wochentag als Nummer kommt dann bestimmt immer nur 1-7 raus gell… 🤦‍♂️

                          Dennoch hab ich nicht verstanden wieso den alten trigger löschen, um 0:00 wird mein trigger ja auch geändert, und gleichzeitig existiert doch der alte trigger nicht mehr oder?

                          B 1 Reply Last reply Reply Quote 0
                          • B
                            butsch @Cinimod last edited by butsch

                            @cinimod Ja, ich habe es mit Monatsdatum gemacht und das funktioniert.

                            visenergyblockly.png

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

                              @butsch sagte: mit Monatsdatum gemacht

                              Monatsdatum - 1 wird nicht funktionieren, da es z.B. den 0.4. nicht gibt. Triggere für "gestern" besser um 23:59 Uhr.

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

                                @butsch

                                Du kannst das runden sicher auch direkt ausführen:

                                Bildschirmfoto 2022-03-06 um 20.01.16.png

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                906
                                Online

                                31.9k
                                Users

                                80.1k
                                Topics

                                1.3m
                                Posts

                                4
                                17
                                1107
                                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