Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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

  • Der neue Monatsrückblick für Mai und Juni 2026 ist online!
    BluefoxB
    Bluefox
    8
    1
    887

  • wichtiges UPDATE für controller 7.2.2 im stable
    HomoranH
    Homoran
    10
    1
    3.5k

  • Neues YouTube-Video: Visualisierung im Devices-Adapter
    BluefoxB
    Bluefox
    16
    1
    5.8k

[gelöst] Kann state nicht setzen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
2 Beiträge 1 Kommentatoren 809 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

      Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

      Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

      Mit deinem Input könnte dieser Beitrag noch besser werden 💗

      Registrieren Anmelden
      Antworten
      • In einem neuen Thema antworten
      Anmelden zum Antworten
      • Älteste zuerst
      • Neuste zuerst
      • Meiste Stimmen


      Support us

      ioBroker
      Community Adapters
      Donate

      263

      Online

      33.0k

      Benutzer

      83.5k

      Themen

      1.3m

      Beiträge
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
      ioBroker Community 2014-2026
      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