Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Nach Variablen Wert bestimmte Grafik anzeigen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    898

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Nach Variablen Wert bestimmte Grafik anzeigen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
19 Beiträge 6 Kommentatoren 6.9k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • BluefoxB Offline
    BluefoxB Offline
    Bluefox
    schrieb am zuletzt editiert von
    #10

    @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 Antwort Letzte Antwort
    0
    • N Offline
      N Offline
      nobse
      schrieb am zuletzt editiert von
      #11

      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.

      Gruß Norbert

      CCU2 • Raspberry für Wetterstation • CMS http://www.exv2.de • HP ProLiant MicroServer Gen8 12GB RAM, 2x3TB, Windows Essentials Server 2016 mit ioBroker

      1 Antwort Letzte Antwort
      0
      • N Offline
        N Offline
        nobse
        schrieb am zuletzt editiert von
        #12

        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");
            }
        });
        

        Gruß Norbert

        CCU2 • Raspberry für Wetterstation • CMS http://www.exv2.de • HP ProLiant MicroServer Gen8 12GB RAM, 2x3TB, Windows Essentials Server 2016 mit ioBroker

        1 Antwort Letzte Antwort
        0
        • ruhr70R Offline
          ruhr70R Offline
          ruhr70
          schrieb am zuletzt editiert von
          #13

          Hui,

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

          Viele Grüße,

          Michael

          Adapter: Fritzbox, Unify Circuit
          Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

          1 Antwort Letzte Antwort
          0
          • BluefoxB Offline
            BluefoxB Offline
            Bluefox
            schrieb am zuletzt editiert von
            #14

            @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 Antwort Letzte Antwort
            0
            • ruhr70R Offline
              ruhr70R Offline
              ruhr70
              schrieb am zuletzt editiert von
              #15

              Danke für die Beispiele und die Optimierungen!

              Das ist sehr hilfreich um was zu lernen.

              Adapter: Fritzbox, Unify Circuit
              Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

              1 Antwort Letzte Antwort
              0
              • W Offline
                W Offline
                webseb79
                schrieb am zuletzt editiert von
                #16

                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 Antwort Letzte Antwort
                0
                • BluefoxB Offline
                  BluefoxB Offline
                  Bluefox
                  schrieb am zuletzt editiert von
                  #17

                  @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 Antwort Letzte Antwort
                  0
                  • P Offline
                    P Offline
                    pix
                    schrieb am zuletzt editiert von
                    #18

                    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. :D

                    Gruß,

                    Pix

                    ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                    1 Antwort Letzte Antwort
                    0
                    • W Offline
                      W Offline
                      webseb79
                      schrieb am zuletzt editiert von
                      #19

                      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 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      713

                      Online

                      32.6k

                      Benutzer

                      82.2k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe