Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Nach Variablen Wert bestimmte Grafik anzeigen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Nach Variablen Wert bestimmte Grafik anzeigen

    This topic has been deleted. Only users with topic management privileges can see it.
    • N
      nobse last edited by

      Danke für deine Hilfe.

      ich stelle mir das eventuell so vor

      Variable definieren (wetteraussichten)

      CCU Variable auslesen

      mit if Abfragen der Variable wetteraussichten einen String zuweisen (/vis.0/main/img/wetter1.png)

      so steht in der Variable die aktuelle Grafik

      jetzt nur noch mit einem Widget die Grafik die in der Variable steht anzeigen

      und hier komme ich nicht weiter.

      1 Reply Last reply Reply Quote 0
      • Bluefox
        Bluefox last edited by

        @nobse:

        Danke für deine Hilfe.

        ich stelle mir das eventuell so vor

        Variable definieren (wetteraussichten)

        CCU Variable auslesen

        mit if Abfragen der Variable wetteraussichten einen String zuweisen (/vis.0/main/img/wetter1.png)

        so steht in der Variable die aktuelle Grafik

        jetzt nur noch mit einem Widget die Grafik die in der Variable steht anzeigen

        und hier komme ich nicht weiter. `
        Schon probiert ? "basic - string img src"

        1 Reply Last reply Reply Quote 0
        • N
          nobse last edited by

          Oh bin ich blind

          genau das habe ich gesucht.

          Dann werde ich mir morgen mal das script zusammen bauen.

          vielen Dank für eure Anregungen und Hilfe.

          1 Reply Last reply Reply Quote 0
          • N
            nobse last edited by

            So für alle die es intressiert hier das ganz einfach Script.

            • Javascript Variable wird erstellt

            • eine Systemvariable der CCU2 wird ausgelesen

            • je nach Wert wird der Javascript Variable eine andere Grafik zugeordnet

            angezeigt wird die Javascript Variable mit dem Widget Basic String img src

            createState('Wetteraussichten', '');
            
            on("hm-rega.0.2775", function(obj) {
                var ccu_wetteraussichten = obj.newState.val
                switch (ccu_wetteraussichten){
                    case 1:
                        setState('Wetteraussichten', '/vis.0/main/img/wetter/VISUQC10221.png');
                        break;
                    case 2:
                        setState('Wetteraussichten', '/vis.0/main/img/wetter/VISUQC10223.png');
                        break;
                    case 3:
                        setState('Wetteraussichten', '/vis.0/main/img/wetter/VISUQC10230.png');
                        break;
                    case 4:
                        setState('Wetteraussichten', '/vis.0/main/img/wetter/VISUQC10225.png');
                        break;
                    case 5:
                        setState('Wetteraussichten', '/vis.0/main/img/wetter/VISUQC10222.png');
                        break;
                    case 6:
                        setState('Wetteraussichten', '/vis.0/main/img/wetter/VISUQC10226.png');
                        break;
                    case 7:
                        setState('Wetteraussichten', '/vis.0/main/img/wetter/VISUQC10227.png');
                        break;
                    case 8:
                        setState('Wetteraussichten', '/vis.0/main/img/wetter/VISUQC10228.png');
                        break;
                    case 9:
                        setState('Wetteraussichten', '/vis.0/main/img/wetter/VISUQC10229.png');
                        break;
                    default:  log("Wetteraussichten kein Wert","info");
                }
            });
            
            1 Reply Last reply Reply Quote 0
            • ruhr70
              ruhr70 last edited by

              Hui,

              danke für die Rückmeldung. Das sieht wesentlich eleganter aus, als mein Vorschlag.

              Viele Grüße,

              Michael

              1 Reply Last reply Reply Quote 0
              • Bluefox
                Bluefox last edited by

                @nobse:

                So für alle die es intressiert hier das ganz einfach Script.

                • Javascript Variable wird erstellt

                • eine Systemvariable der CCU2 wird ausgelesen

                • je nach Wert wird der Javascript Variable eine andere Grafik zugeordnet

                angezeigt wird die Javascript Variable mit dem Widget Basic String img src `
                🙂 Optimierungsvorschlag:

                var images = ["", "VISUQC10221", "VISUQC10223", "VISUQC10230", "VISUQC10225", "VISUQC10222", "VISUQC10226", "VISUQC10227", "VISUQC10228", "VISUQC10229"];
                
                createState('Wetteraussichten', '');
                
                on("hm-rega.0.2775", function(obj) {
                    var ccu_wetteraussichten = parseInt(obj.newState.val, 10);
                
                	if (images[ccu_wetteraussichten]) {
                		setState('Wetteraussichten', '/vis.0/main/img/wetter/' + images[ccu_wetteraussichten] + '.png');
                	} else {
                		log("Wetteraussichten kein Wert: " + ccu_wetteraussichten);
                	}
                });
                
                1 Reply Last reply Reply Quote 0
                • ruhr70
                  ruhr70 last edited by

                  Danke für die Beispiele und die Optimierungen!

                  Das ist sehr hilfreich um was zu lernen.

                  1 Reply Last reply Reply Quote 0
                  • W
                    webseb79 last edited by

                    Guten Abend,

                    versuche mich heute zum ersten mal in Javascript und ich bin ein absoluter Anfänger.

                    Ich wollte mir das Script von Bluefox anpassen aber ich habe kein Erfolg das ich ein Ergebnis geliefert bekomme.

                    createState('Wetteraussichten', '');
                    
                    var images = ["Heiter", "Dunst", "Nebel", "Regenschauer", "Nieselregen", "Regen", "Bedeckt", "Wolkig"];
                    
                    on("hm-rega.0.7103", function(obj) {
                        var Wetterbedingungen = parseInt(obj.newState.val, 8);
                    
                       if (images[Wetterbedingungen]) {
                          setState('Wetteraussichten', '/HM Wetter/' + images[Wetterbedingungen] + '.png');
                       } else {
                          log("Wetteraussichten kein Wert: " + Wetterbedingungen);
                       }
                    });
                    

                    Vielleicht kann ja jemand dazu was sagen was ich falsch mache.

                    Und vielleicht hat jemand ein Tipp für ein gutes Buch über Javacript…Weihnachten steht ja vor der Tür.

                    Danke im voraus

                    Sebastian

                    1 Reply Last reply Reply Quote 0
                    • Bluefox
                      Bluefox last edited by

                      @webseb79:

                      Guten Abend,

                      versuche mich heute zum ersten mal in Javascript und ich bin ein absoluter Anfänger.

                      Ich wollte mir das Script von Bluefox anpassen aber ich habe kein Erfolg das ich ein Ergebnis geliefert bekomme.

                      createState('Wetteraussichten', '');
                      
                      var images = ["Heiter", "Dunst", "Nebel", "Regenschauer", "Nieselregen", "Regen", "Bedeckt", "Wolkig"];
                      
                      on("hm-rega.0.7103", function(obj) {
                          var Wetterbedingungen = parseInt(obj.newState.val, 8);
                      
                         if (images[Wetterbedingungen]) {
                            setState('Wetteraussichten', '/HM Wetter/' + images[Wetterbedingungen] + '.png');
                         } else {
                            log("Wetteraussichten kein Wert: " + Wetterbedingungen);
                         }
                      });
                      

                      Vielleicht kann ja jemand dazu was sagen was ich falsch mache.

                      Und vielleicht hat jemand ein Tipp für ein gutes Buch über Javacript…Weihnachten steht ja vor der Tür.

                      Danke im voraus

                      Sebastian `
                      Wo liegen deine Bilder? So wie du es geschrieben hast, meinst du dass die unter "http://ip/HM Wetter/Heiter.png" sind.

                      Das ist aber nicht möglich.

                      Du musst die Bilder hoch laden, z.B. unter "/vis.0/main/img/HMWetter/" und dann

                            setState('Wetteraussichten', '/vis.0/main/img/HMWetter/' + images[Wetterbedingungen] + '.png');
                      
                      
                      1 Reply Last reply Reply Quote 0
                      • P
                        pix last edited by

                        Hallo Sebastian,
                        @webseb79:

                        Guten Abend,

                        versuche mich heute zum ersten mal in Javascript und ich bin ein absoluter Anfänger.

                        Ich wollte mir das Script von Bluefox anpassen aber ich habe kein Erfolg das ich ein Ergebnis geliefert bekomme.

                        createState('Wetteraussichten', '');
                        
                        var images = ["Heiter", "Dunst", "Nebel", "Regenschauer", "Nieselregen", "Regen", "Bedeckt", "Wolkig"];
                        
                        on("hm-rega.0.7103", function(obj) {
                            var Wetterbedingungen = parseInt(obj.newState.val, 8);
                        
                           if (images[Wetterbedingungen]) {
                              setState('Wetteraussichten', '/HM Wetter/' + images[Wetterbedingungen] + '.png');
                           } else {
                              log("Wetteraussichten kein Wert: " + Wetterbedingungen);
                           }
                        });
                        

                        Vielleicht kann ja jemand dazu was sagen was ich falsch mache.

                        Und vielleicht hat jemand ein Tipp für ein gutes Buch über Javacript…Weihnachten steht ja vor der Tür.

                        Danke im voraus

                        Sebastian `

                        auf die Schnelle drübergeschaut:

                        parseInt macht aus einem String eine Zahl. Du solltest parseInt mit dem Radix 10 nutzen. Du nutzt aber 8, machst also eine Octalzahl.

                        Besser:

                        var Wetterbedingungen = parseInt(obj.newState.val, 10);
                        

                        Das hat nix mit der Zahl der Elemente im Array zu tun.

                        Suche mal parseInt über google. Du erhälst eine Liste mit Seiten, die ganz gut Javascript erklären (auch auf https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&ved=0CEgQFjAEahUKEwjj8rW7lebIAhUBrSwKHby6BWA&url=http%3A%2F%2Fwiki.selfhtml.org%2Fwiki%2FJavaScript%2FFunktionen%2FParseInt&usg=AFQjCNGK7NRSvkTTrBMl67IwxWZ9kdH5zw). Manche davon haben sogar einen http://www.tutorialspoint.com/java/number_parseint.htm (fertige Skripte mit Ausgabe. Man kann dann etwas am Skript ändern und sieht die veränderte Ausgabe).

                        Spar das Geld für das Buch und kauf dir davon eine HomeMatic-Komponente. Oder besser spende es an ioBroker für Webspace, Testhardware, etc. 😄

                        Gruß,

                        Pix

                        1 Reply Last reply Reply Quote 0
                        • W
                          webseb79 last edited by

                          Guten Morgen,

                          wenn natürlich parseint aus einem String eine Zahl macht haben wir das Problem vielleicht schon.

                          In der CCU läuft ein Script welches von Wunderground die Wetterbedingungen in eine Zeichenkette schreibt z.B. Heiter oder Bedeckt oder Leichter Niesel usw.

                          Diese Variable heißt in Iobroker "m-rega.0.7103" Wetterbedingungen.

                          Meine Bilder passend zu den Wetterbedingungen haben den gleichen Namen und liegen per Filezilla auf dem Raspi unter /HM Wetter/Heiter.png.

                          Muß ich meine Bilder alle zwingend unter "/vis.0/main/img/" ablegen ?

                          Da wäre dann vielleicht der nächste Fehler!

                          Und ist ein Leerzeichen bei z.B "Leichter Niesel" ein Fehler ?

                          Weil Wunderground liefert die Zeichenketten mit Leerzeichen zwischen den Wörtern !

                          Nach meinem Verständnis ist das Script von nobse etwas besser zu verstehen aber dort werden Zahlen von der CCU übergeben und durch case 1 verglichen und ein Bild dementsprechend zugewiesen.

                          Hab ich das richtig verstanden?

                          Bei mir kommen Zeichenketten welche verglichen werden müssen um dann das passende Bild zuteilen zu können.

                          Javescript wird mir bestimmt viel Kopfzerbrechen bereiten 😉

                          Ich danke euch fürs mitlesen und Problem lösen

                          Sebastian

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          923
                          Online

                          31.7k
                          Users

                          79.7k
                          Topics

                          1.3m
                          Posts

                          6
                          19
                          6309
                          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