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. [gelöst] Kann state nicht setzen

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

[gelöst] Kann state nicht setzen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
2 Beiträge 1 Kommentatoren 750 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.
  • F Offline
    F Offline
    fischmir
    schrieb am zuletzt editiert von
    #1

    // gelöst durch update aller Adapter und reboot.

    Hallo zusammen,

    ich Mühe mich seit Stunden ab, einen State zu setzen.

    Ich habe eine Oberfläche (einen POC), auf welcher ich mehrere Radiosender auf einem Musiccast Gerät abspiele: Der aktuell laufender Sender soll in einem Widget erkannt werden. Dazu habe ich für jeden Radiosender einen State angelegt und mit dem entsprechenden Widget verbunden (true/ false). Wenn ein Radiosender gewechselt wird (der aktuell laufender Sender steht im State musiccast.0.WX-010_026D5843.netusb.artist), dann werden alle boolean-Variablen auf false gesetzt (alle Widgets sind orange) und im weiteren Verlauf des Scriptes wird dann nur der eine Radiosender-state auf true gestellt, wodurch genau ein Widget auf grün sprint und den aktuellen Radiosender markiert.

    Die VIS sieht aktuell so aus:

    804_1.png

    Das Problem, für den Radiosender WDR2 und NDR2 funktioniert die o.g. Logik. Der aktuelle Wert des switches stehen unten drunter.

    Aber für den Radiosender EinsLive klappt das nicht. Man erkennt auch unter dem Widget, dass der state überaupt keinen Wert hat. Auch nach einem Wechsel des Radiosenders nimmt der state keinen Wert an, d.h. der state kann nicht gesetzt werden (so die erste Vermutung). Das folgende Script verwende ich dazu:

    on({id: "musiccast.0.WX-010_026D5843.netusb.artist"/*artist*/}, function (obj) {
    
          // Neuen Namen des Radiosender bestimmen
          var newStation = obj.newState.val;
          console.log("New Station: " + newStation);
    
          // erstmal alle boolean variablen auf false setzen
          setStateDelayed("javascript.0.YamahaKueche_EinsLIVE"/*YamahaKueche_EinsLIVE*/, false ,false, 0, false);
          setStateDelayed("javascript.0.YamahaKueche_WDR2"/*YamahaKueche_WDR2*/, false ,false, 0, false);
          setStateDelayed("javascript.0.YamahaKueche_NDR2"/*YamahaKueche_NDR2*/, false ,false, 0, false);
    
          // Nun den  neuen Radiosender auf true setzen
          switch(newStation)
          {
            case "1LIVE":
                setStateDelayed("javascript.0.YamahaKueche_EinsLIVE"/*YamahaKueche_EinsLIVE*/, true , false, 10, false);
                console.log("1Live ausgeführt");
                break;
    
            case "WDR 2 Münsterland":
                setStateDelayed("javascript.0.YamahaKueche_WDR2"/*YamahaKueche_WDR2*/, true , false, 10, false);
                console.log("WDR2 ausgeführt");
                break;
    
            case "NDR 2 (HH)":
                setStateDelayed("javascript.0.YamahaKueche_NDR2"/*YamahaKueche_NDR2*/, true , false, 10, false);  
                console.log("NDR2 ausgeführt");
                break;    
          }
    
    });
    
    

    Der Log sieht wie folgt aus:

    22:16:24.259	[info]	javascript.0 script.js.common.cVIS.Translate_YamahaKuecheRadioStation: New Station: 1LIVE
    22:16:24.260	[info]	javascript.0 script.js.common.cVIS.Translate_YamahaKuecheRadioStation: 1Live ausgeführt
    

    Hier noch die Definition von zwei states (vielleicht ist da etwas aufällig).

    {
      "common": {
        "name": "YamahaKueche_EinsLIVE",
        "type": "boolean",
        "role": "switch",
        "def": false,
        "read": true,
        "write": true
      },
      "native": {},
      "type": "state",
      "from": "system.adapter.javascript.0",
      "ts": 1541096910081,
      "_id": "javascript.0.YamahaKueche_EinsLIVE",
      "acl": {
        "object": 1636,
        "owner": "system.user.admin",
        "ownerGroup": "system.group.administrator",
        "state": 1636
      }
    }
    

    und

    {
      "common": {
        "def": false,
        "type": "boolean",
        "read": true,
        "write": true,
        "name": "YamahaKueche_WDR2",
        "role": "switch"
      },
      "native": {},
      "type": "state",
      "from": "system.adapter.javascript.0",
      "ts": 1541021681946,
      "_id": "javascript.0.YamahaKueche_WDR2",
      "acl": {
        "object": 1636,
        "state": 1636,
        "owner": "system.user.admin",
        "ownerGroup": "system.group.administrator"
      }
    }
    
    

    In der Objektübersicht sehe ich jedoch, dass der state einen Wert hat!!

    804_2.png

    Die Farbe der states wechselt zwischen rot und grün.

    Das Widget habe ich bereits gelöscht und neu angelget, hat aber nix gebracht:

    804_3.png

    Daher habe ich keine IDee mehr, was ich jetzt noch tun könnte und bin auf eure Ratschläge gespannt. Im Kern sieht es so aus, dass das Widget mit der state nicht zurecht kommt.

    Danke und Gruß,

    Christian

    1 Antwort Letzte Antwort
    0
    • F Offline
      F Offline
      fischmir
      schrieb am zuletzt editiert von
      #2

      Nachdem ich einfach mal alle Adapter aktualisiert habe und zwei mal neu gestartet habe, fuktioniert es nun.

      Gruß,

      Christian

      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

      461

      Online

      32.6k

      Benutzer

      82.3k

      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