Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. jarvis v2.2.0 - just another remarkable vis

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    jarvis v2.2.0 - just another remarkable vis

    This topic has been deleted. Only users with topic management privileges can see it.
    • W
      WW1983 @Zefau last edited by WW1983

      @zefau
      Habe eben etwas mit den Notifications gespielt.

      Wenn ich den Befehl eintrage, sollte doch eigentlich ein Popup aufpopen:

      {
      "icon": "mdi-book-alert",
      "title":"Eine Benachrichtigung",
      "message":"Mit Text! <br /><br />Und <strong>HTML</strong>!",
      "display": "popup",
      "autoHideDuration": 5000
      }

      Ich bekomme zwar eine Notification, aber nur in Form einer Zahl an der Glocke

      EDIT: kann die Nodification eigentlich dynamischen Text wie z.B. einen Timer anzeigen?

      M 1 Reply Last reply Reply Quote 0
      • M
        MCU @WW1983 last edited by MCU

        @ww1983

        { "icon": "mdi-book-alert", "title":"Achtung", "message":"Temperatur Aussenfühler 0°C", "display": "popup", "autoHideDuration": 5000, "state":"unread" }
        

        Du hast den state vergessen. ist er nicht angegeben ist er als gelesen gekennzeichnet.
        Timer ist ja die autoHideDuration, sonst als eigene HTML-Seite.

        Beispiel:
        6c7ea267-b65b-4cf7-b9fc-0ce01a0c6627-image.png

        fbd95a8c-c9d0-4781-83c8-719f5b47d861-image.png

        Man kann auch HTML-Seiten als POPUP schicken:
        2e68fa7f-063d-4e3a-807e-b39320973105-image.png

        307c2e50-5ef3-4be4-be36-c72396e68186-image.png

        Ausprobieren kannst du es mit dem Script:

        var jarvisNotify = {};
        //Beispiele
        jarvisNotify.title = "Wichtige Meldung";
        // "<b>Dies ist BOLD</b>"
        jarvisNotify.message= getState('0_userdata.0.jarvis.pollenflug.Html').val;
        jarvisNotify.state = "unread";          //Damit bleibt die Benachrichtigung auch nach POPUP ungelesen und wird oben angezeigt mit der Zahl
        jarvisNotify.criticality = "none";      // error,warning,info,success
        jarvisNotify.display ="popup";          //drawer,snackbar,popup, none für focusTab
        jarvisNotify.autoHideDuration = 15000;  //5000ms -> 5 Sekunden
        jarvisNotify.snackbarOrigin = {};       //"snackbarOrigin": { "horizontal": "...", "vertical": "" }, 
                                                // optional, applies when display is snackbar, { horizontal: 'center' | 'left' | 'right', vertical: 'bottom' | 'top' }
        jarvisNotify.icon = "battery-alert-variant-outline"; //mdi Iconify
        jarvisNotify.iconColor = "red";
        jarvisNotify.backgroundColor = "white";
        jarvisNotify.fontColor = "black";
        jarvisNotify.focusTab = ""; //focus a certain tab
        setState('jarvis.0.addNotification',JSON.stringify(jarvisNotify));
        
        W 2 Replies Last reply Reply Quote 3
        • W
          WW1983 @MCU last edited by

          @mcu Vielen Dank für deine ausführliche Antwort. Werde ich auf jeden Fall mal testen.

          Danke!

          1 Reply Last reply Reply Quote 0
          • W
            WW1983 @MCU last edited by

            @mcu

            Vielleicht kannst du mir da helfen. Scheinst ja sehr fit in dem Bereich zu sein 🙂

            Die Idee war die. Ich habe ein Wandtablett mit JARVIS laufen. Wenn ich nun über Alexa einen Timer setze, wäre es cool, wenn dieser Timer bei JARVIS visualisiert wird. Allerdings weiß ich gar nicht ob es überhaupt machbar ist. Ich weiß auch nicht ob die Notification den Timer "laufen lassen" würde oder nur den Timer im eingefrorenen Zustand zeigen würde.

            Hättest du eine Idee wie man das Ganze angehen könnte und ob es überhaupt realisierbar ist?

            M 1 Reply Last reply Reply Quote 0
            • M
              MCU @WW1983 last edited by MCU

              @ww1983
              Wie lange läuft denn der Timer?
              Falls du dir während der Timer Läuft auch noch andere Meldungen auf das Tablet schickst, dann werden die nicht angezeigt oder die Timer-Anzeige wird gelöscht (habs noch nicht getestet).?
              Hast du denn schon ein Script, welches die Daten vom Alexa2-Adpater holt und entsprechend an jarvis weitergeben kann?

              Problem mit der Anzeige vom "Timer laufen lassen" ist, dass HTML mit v2.2.2 nicht direkt angezeigt wird mit Popup. (snackbar: dann wird nur der HTML-Code angezeigt, drawer: wird dann direkt als Zahl zur Glocke geschrieben)

              Wenn du damit leben kannst bei Timer-Aufruf durch Alexa, dann am Wandtablet nochmal die Notification, die geschickt wurde selbst anzuklicken, dann könnte man es theoretisch realisieren mit v2.2.2.

              https://www.w3schools.com/howto/howto_js_countdown.asp

              W 1 Reply Last reply Reply Quote 0
              • W
                WW1983 @MCU last edited by

                @mcu

                Das war erstmal nur eine Idee. Da ich nicht wusste ob es überhaupt realisierbar ist, wollte ich es erstmal klären.

                Aber mit deinem letzten Satz hast du es im Grunde beantwortet. Das Anklicken macht keinen Sinn. Wäre ein cooles Feauture (für mich persönlich). Aber wenn's nur so umständlich geht, macht es keinen Sinn.

                Trotzdem Dank dass du dir Gedanken gemacht hast.

                M 1 Reply Last reply Reply Quote 0
                • M
                  MCU @WW1983 last edited by

                  @ww1983 Eine andere Möglichkeit wäre noch , mit der Notification auf eine Seite zu springen, wo der Timer angezeigt wird. Der Timer kann ja als State in ioBroker definiert werden und in jarvis angezeigt werden. (Countdown-Restsekunden oder so).
                  Und ist der Timer abgelaufen, springt man wieder zur HOME Seite zurück?

                  W 1 Reply Last reply Reply Quote 0
                  • W
                    WW1983 @MCU last edited by

                    @mcu

                    Die Idee finde ich gut. Aber mit Notification würde man nicht automatisch auf die Seite springen, man müsste in der Notification den Link anklicken?

                    Das mit dem aktiven bestätigen fällt leider raus. Ich habe ein iPad in der nähe der Küche an der Wand montiert. Meine Frau setzt beim Kochen gerne einen Timer. Meine Idee war einfach nur, dass dieser automatisch auf dem iPad aufspringt und angezeigt wird. Wenn der Link über die Notification bestätigt werden muss, dann wird die Funktion nicht genutzt.

                    In der Version 3 gibt es, soweit ich mitbekommen habe einen Filter in der Statelist. Evtl kann der Timer dann angezeigt werden, wenn einer gesetzt wurde. Ansonsten wird der State ausgeblendet

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      MCU @WW1983 last edited by

                      @ww1983
                      Umschalten vom Tab mit addNotification mit dem Inhalt:

                      { "title": "!", "display": "none","focusTab": "timer-7" }
                      

                      1481a1f1-0ad5-48ac-81fa-59f9212590b0-image.png
                      timer-7 ist als Beispiel zu sehen, je nachdem wie die Seite bei Dir heisst.
                      Den Namen mit Nummer sieht man in der Browserleiste, wenn man sie anklickt.
                      Die Links, die du mir geschickt hast, müssen teilweise von zefau selbst eingebaut werden, damit man sie verwenden kann, ausser du machst dir eigene HTML-Seiten.
                      Der normale Slider ist integriert.
                      94960d64-b793-49a7-9899-b4d2f863529a-image.png

                      1 Reply Last reply Reply Quote 1
                      • M
                        MCU last edited by MCU

                        @ww1983 Als Beispiel Timer mit Umschaltung:

                        alexa, starte timer eier kochen mit 4 Minuten (STARTEN)
                        alexa, timer stopp (STOPPEN)

                        jarvis_v222-timerMitUmschaltung.gif

                        Verzögerung von ca 3-4 Sekunden durch Amazon und Alexa2-Adapter.

                        ! Nur ein Timer zur Zeit!

                        // Alexa-Timer berücksichtigen
                        //
                        // alexa2.0.Echo-Devices.G2AXXXXXXXX.Timer.nextTimerDate
                        //
                        createState('0_userdata.0.jarvis.timerRestzeit','',false, {read: true, write: true, name: "Timer Restzeit", type: "string", role: "state", def: "" });
                        createState('0_userdata.0.jarvis.timerStart','',false, {read: true, write: true, name: "Timer gestartet?", type: "boolean", role: "state", def: "" });
                        createState('0_userdata.0.jarvis.timerText','',false, {read: true, write: true, name: "Timer Text", type: "string", role: "state", def: "" });
                        let TAB_timer = "timer-11";
                        let TAB_home  = "dateien-8";
                        // alexa, starte timer Eier kochen mit 4 Minuten
                        // alexa, timer stopp
                        
                        on({id: 'alexa2.0.Echo-Devices.G2AXXXXXXX.Timer.nextTimerDate', change: "any"}, function (obj) {
                            let value = obj.state.val;
                            //console.log(obj.state.val);
                            setState('0_userdata.0.jarvis.timerText',getState('alexa2.0.History.answerText').val);
                            timerX(value);
                            setState('jarvis.0.addNotification','{ "title": "!", "display": "none","focusTab": "' + TAB_timer +'" }');
                            
                        });
                        
                        
                        
                        function timerX(val) {
                            if (val > 0){
                                // Countdown starten
                                let aktZeit = getDateObject(new Date()).getTime();
                                //console.log(aktZeit);
                                let diffZeitSec = Math.ceil((val - aktZeit)/1000);
                                //console.log(diffZeitSec); // 3 Sekunden Verzögerung durch Alexa2 oder Amazon
                                setState('0_userdata.0.jarvis.timerStart',true);
                                CNTDOWN(diffZeitSec,'0_userdata.0.jarvis.timerStart',false,'0_userdata.0.jarvis.timerRestzeit',true);
                            }else{
                                // Countdown stoppen
                                CNTDOWN(1,'0_userdata.0.jarvis.timerStart',false,'0_userdata.0.jarvis.timerRestzeit',true);
                            }
                        }
                        
                        
                        function CNTDOWN(delay,Schaltwert,Zuweisung,Restwert,Schalten) {
                          (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                          START = delay; 
                          if(Schalten == null){Schalten =true};
                          Intervall = setInterval(function () {
                            //log(typeof delay);  
                            delay = (typeof delay == 'number' ? delay : 0) + -1;
                            // String erstellen aus Sekunden
                            // Std
                            if (delay>0){
                                if (delay>3600){
                                    setState(Restwert, formatDate(delay*1000,'hh:mm:ss'));
                                }else{
                                    setState(Restwert, formatDate(delay*1000,'mm:ss'));
                                }
                            }else{setState(Restwert, '00:00');}
                            if (delay <= 0) {
                              (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
                              //log(START + ' Sekunden - Countdown beendet');
                              if (Schalten){
                                setStateDelayed(Schaltwert, Zuweisung, false, 0, false);
                                setState('jarvis.0.addNotification','{ "title": "!", "display": "none","focusTab": "'+ TAB_home + '" }');
                              }
                            }
                          }, 1000);
                        }
                        
                        

                        let TAB_timer = "timer-11";
                        let TAB_home  = "dateien-8";
                        

                        Werte müssen entsprechend angepasst werden.

                        W 1 Reply Last reply Reply Quote 1
                        • W
                          WW1983 @MCU last edited by

                          @mcu Cool. Danke dir. Genauso meinte ich das. Danke für den Lösungsvorschlag

                          1 Reply Last reply Reply Quote 0
                          • M
                            matzesutopia last edited by

                            Habe irgendwie Probleme mit der JSON Tabelle. Würde mir gerne über den tr-064 Adapter meine Geräte anzeigen lassen, bzw. welche davon gerade online sind. Doch leider wird auf entsprechender Seite gar nichts angezeigt.

                            M 1 Reply Last reply Reply Quote 0
                            • M
                              MCU @matzesutopia last edited by

                              @matzesutopia Zeig mal die Einstellungen.

                              M 1 Reply Last reply Reply Quote 0
                              • M
                                matzesutopia @MCU last edited by

                                @mcu welche Einstellungen meinst du?

                                M 1 Reply Last reply Reply Quote 0
                                • M
                                  MCU @matzesutopia last edited by MCU

                                  @matzesutopia In jarvis. Welches JSON wird denn benutzt?

                                  M 1 Reply Last reply Reply Quote 0
                                  • M
                                    matzesutopia @MCU last edited by

                                    @mcu im tr adapter die jsonDeviceList. tr-064.0.devices.jsonDeviceList. Von den Einstellungen mache ich eben einen Screenshot

                                    M 1 Reply Last reply Reply Quote 0
                                    • M
                                      matzesutopia @matzesutopia last edited by matzesutopia

                                      leere Seite.PNG Einstellungen.PNGDatenpunkt.PNG

                                      M 1 Reply Last reply Reply Quote 0
                                      • M
                                        MCU @matzesutopia last edited by

                                        @matzesutopia Das Problem ist die jsondevicelist aus dem tr064. Dort ist active als boolean definiert. Dies kann jarvis in v2.2.2 nicht verarbeiten und stürzt ab. Du musst erst eine eigene jsonListe erstellen aus den Daten. Dort dürfen dann nur Strings drin sein. Dann kann man das JSON mit jarvis darstellen. Als Vorgeschmack für Deine Tabelle:

                                        [{"label":"mac","align":"left"},{"label":"ip","align":"left"},{"label":"name","align":"left"}]
                                        

                                        4b47c6a6-1c54-459a-a46c-b005894403c3-image.png
                                        Trägst du dort active ein, stürzt jarvis ab.

                                        M 1 Reply Last reply Reply Quote 0
                                        • M
                                          matzesutopia @MCU last edited by

                                          @mcu schade, aber ok. wenigstens kann ich mit deiner Anweisung wenigstens schon mal etwas sehen. Den Rest werde ich dann irgendwie umbauen. Danke für die schnelle Hilfe

                                          M 1 Reply Last reply Reply Quote 0
                                          • M
                                            MCU @matzesutopia last edited by MCU

                                            @matzesutopia

                                            
                                            createState('0_userdata.0.jarvis.tr-064.jsonDeviceActive','',false, {read: true, write: true, name: "JSON Aktive tr-064 für Jarvis", type: "string", role: "state", def: "" });
                                            
                                            on({id: 'tr-064.0.devices.jsonDeviceList', change: "any"}, function (obj) {
                                               let value = obj.state.val;
                                               let jsonList = JSON.parse(value);
                                               let newJson = [];
                                               for (let i=0;i< jsonList.length;i++){
                                                   if (jsonList[i].active){
                                                       let newData = {};
                                                       newData.mac = jsonList[i].mac;
                                                       newData.ip = jsonList[i].ip;
                                                       newData.name = jsonList[i].name;
                                                       //console.log(newData);
                                                       newJson.push(newData);
                                                   }
                                               }
                                               setState('0_userdata.0.jarvis.tr-064.jsonDeviceActive',JSON.stringify(newJson));
                                            });
                                            
                                            

                                            Ich musste bei mir gerade feststellen, daß die JSONListe nicht korrekt ist. Mag aber auch vielleicht an meiner Fritzbox 6591 Cable v7.27 liegen, wer weiß?. Geräte werden mit dem richtigen active-Zustand in der Verzeichnisliste angezeigt, aber nicht in der JSONListe, obwohl sie nach Zustandsänderung aktualisiert wurde.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            484
                                            Online

                                            31.7k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            jarvis material material ui materialdesign vis visualisierung visualization
                                            316
                                            6126
                                            3573424
                                            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