Zefau / ioBroker.jarvis

jarvis - just another remarkable vis
https://forum.iobroker.net/topic/49776
Other
149 stars 38 forks source link

v3: Secondary state not visible #1065

Closed RkcCorian closed 2 years ago

RkcCorian commented 2 years ago

*Please note that you may restore an old layout via jarvis adapter configuration directly within ioBroker

Prerequisites / Voraussetzungen

alpha-80

Describe the bug / Beschreibe den Fehler A clear and concise description of what the bug / problem is. Eine genaue Beschreibung des Fehlers inkl. Herleitung, um diesen Nachstellen zu können.

When I configure a "secondaryStatesKeys" "LEVEL" right after configuration it is visible but get's lost after browser refresh. The problem for you might be that this is not allways the case. Several configured "secondaryStatesKeys" are normally visible but a few not.

Screenshots If applicable, add screenshots to help explain your problem. Sofern möglich, bitte Screenshots einfügen, um den Fehler bildlich zu erläutern.

Config for a working "secondaryStatesKeys" "LEVEL"

  "86a03f9c-8a64-4da3-8b21-1c7ba3d23b88": {
    "id": "86a03f9c-8a64-4da3-8b21-1c7ba3d23b88",
    "config": {
      "dense": false
    },
    "icon": "home-thermometer",
    "title": "Klima",
    "module": "StateList",
    "items": [
      {
        "type": "device",
        "deviceId": "wohnzimmerthermostat_cbfe1",
        "secondaryStatesKeys": [
          "OPERATION_MODE",
          "HUMIDITY_REL"
        ],
        "primaryStateKey": "TEMPERATURE_ACTUAL",
        "bodyElement": null,
        "bodyStateKey": null,
        "showState": true,
        "actionElement": null,
        "id": "6e29f01e-b4c0-4fdb-9f84-96913f2def3d"
      },
      {
        "type": "device",
        "deviceId": "wohnzimmerluftbefeuchter_bfa1b",
        "primaryStateKey": "HUMIDIFICATION",
        "secondaryStatesKeys": [],
        "bodyElement": null,
        "bodyStateKey": null,
        "showState": true,
        "actionElement": null,
        "id": "642e5faa-aa18-42c4-8ed8-0d9f1ff09f33"
      },
      {
        "type": "divider",
        "id": "f9cab539-22d4-4594-8b34-1eb16ccd8e9a"
      },
      {
        "type": "device",
        "deviceId": "balkonrollladenlinks_281b0",
        "primaryStateKey": "STATUS",
        "actionType": "state",
        "actionElement": null,
        "bodyStateKey": "",
        "bodyElement": null,
        "showState": true,
        "id": "8b05fd5b-f00c-463d-9bec-56ff48d31386",
        "secondaryStatesKeys": [
          "LEVEL"
        ]
      },
      {
        "type": "device",
        "deviceId": "balkonrollladenrechts_d6d1c",
        "primaryStateKey": "STATUS",
        "bodyElement": null,
        "bodyStateKey": "",
        "showState": true,
        "actionElement": null,
        "id": "e9534c1a-8351-4d8e-b06d-9ee8285b2ed9",
        "secondaryStatesKeys": [
          "LEVEL"
        ]
      },
      {
        "type": "device",
        "deviceId": "schrankwandrollladen_1c75d",
        "primaryStateKey": "STATUS",
        "bodyElement": "LastChangeBody",
        "bodyStateKey": "",
        "showState": true,
        "actionElement": null,
        "id": "ae860e5d-c63a-4b48-98e5-7ebfe8bd5b48",
        "secondaryStatesKeys": [
          "LEVEL"
        ]
      }
    ],
    "hideTitle": false,
    "link": "f0c1c414-de3c-42b1-a5ba-5ac9dd91a5b9"
  },

Screenshot image

Config for a non working "secondaryStatesKeys" "LEVEL"

  "75142168-f81b-465a-9021-22fe9c3c3029": {
    "id": "75142168-f81b-465a-9021-22fe9c3c3029",
    "config": {},
    "icon": "home-thermometer",
    "title": "Klima",
    "module": "StateList",
    "items": [
      {
        "type": "device",
        "deviceId": "küchenrollladen_96d80",
        "primaryStateKey": "STATUS",
        "bodyElement": null,
        "bodyStateKey": null,
        "showState": true,
        "actionElement": null,
        "id": "179b4f12-66c7-4ce3-9512-407552776615",
        "secondaryStatesKeys": [
          "LEVEL"
        ]
      }
    ],
    "hideTitle": false,
    "link": "f0c1c414-de3c-42b1-a5ba-5ac9dd91a5b9"
  },

Screenshot right after config image

Screenshot after Browser refresh image


Please note that bug reports may be closed if the information above are not given!

Bitte beachte, dass Bug-Reports ggf. einfach geschlossen werden, wenn die oben genannten Kriterien nicht angemessen gegeben sind!

mcuiobroker commented 2 years ago

Die Einheit wäre nicht das Problem. @Zefau müsste es umstellen auf value.

RkcCorian commented 2 years ago

Befürchte ich muss in die Skript-Kiste greifen bis das Problem behoben wurde. ALIAS geht nicht, direkter DP aber auch nicht

mcuiobroker commented 2 years ago

Trag mal bei Einheit {"default":" %"} ein.

RkcCorian commented 2 years ago

Ok, das rettet mir die Einheit. Nun ist nur noch der Wert im Level-Body falsch

mcuiobroker commented 2 years ago

Ich wäre dafür, dass man im Gerät eine Option bei den Parametern hat, ob dieser auf den val oder value bezogen werden soll. Oder als Option für die ActionElemente?

Zefau commented 2 years ago

Bezieht sich immer auf value

RkcCorian commented 2 years ago

So, hab jetzt ein paar Dummy-DP nebst Skript eingebaut. Jetzt geht es, schön ist es aber nicht. Ich hoffe @Zefau findet des Pudels Kern 🙈

RkcCorian commented 2 years ago

Ist echt ein signifikanter Perfomance-Unterschied. Die direkten DPs werden deutlich schneller geladen als die ALIAS

mcuiobroker commented 2 years ago

Bezieht sich immer auf value

Aber im LevelBody anscheinend nicht?

Zefau commented 2 years ago

Aber im LevelBody anscheinend nicht?

Nein. Wird mit der nächsten alpha gefixed.

Ist echt ein signifikanter Perfomance-Unterschied. Die direkten DPs werden deutlich schneller geladen als die ALIAS

Werden im ioBroker backend die ALIAS bei dir direkt aktualisiert, wenn der originale DP aktualisiert?

Bei mir funktionieren die ALIAS Datenpunkte in jarvis ohne Probleme. Hab jetzt mehrere mehrfach (in verschiedenen Widgets und Seiten) hinzugefügt. Die aktualisieren prima.

Lasst uns die Diskussion bzgl. der ALIAS bitte in #1035 weiterführen.

Zefau commented 2 years ago

LevelBody ist mit v3.0.0-alpha.93 korrigiert.

Zefau commented 2 years ago

@RkcCorian

RkcCorian commented 2 years ago

@Zefau: Nun passt es mit dem Slider. Anzeige stimmt leider nicht mehr image

Zefau commented 2 years ago

https://github.com/Zefau/ioBroker.jarvis/issues/1113 für BlindLevelAction

Zefau commented 2 years ago

Das eine ist ja Body und das andere die Action. Ist bei beiden derselbe Datenpunkt eingestellt?

RkcCorian commented 2 years ago

Besser, aber noch nicht korrekt image

Zefau commented 2 years ago

Bitte die Frage beantworten: Das eine ist ja Body und das andere die Action. Ist bei beiden derselbe Datenpunkt eingestellt?

RkcCorian commented 2 years ago

Verstehe die Frage nicht. Es wurde nur "Show State" = true eingestellt. Was kann ich da falsch machen?

Zefau commented 2 years ago

Sorry, ist das Geräte-Popup. Dachte es ist das Layout.

Zefau commented 2 years ago

Kannst du trotzdem das Gerät mal screenshoten? Also nutzt du Datenpunkt Eigenschaften bzw. Anzeige-Variante in diesem Fall?

Kann sein, dass es durch https://github.com/Zefau/ioBroker.jarvis/issues/1113 durcheinander gekommen ist. Ist val (Rohwert) 0 und value (verarbeiteter Wert) ggf. 100?

RkcCorian commented 2 years ago

Rohwert ist 0. Hab auch mal zum Test einen neuen DP unter userdata angelegt mit dem Wert 0. Gleiches Verhalten. D.h. Slider zeigt 0, Wert wird aber als 100% angezeigt.

"f6e99c97-9457-4fe1-a33f-47f468f70229": {
    "name": "ROlladen",
    "icon": "",
    "label": "",
    "function": "blind",
    "states": {
      "LEVEL": {
        "stateKey": "LEVEL",
        "properties": {
          "value": "val => Math.round(((val * 100) * -1) + 100)"
        },
        "state": "alias.0.Schlafzimmer.Schlafzimmerrollladen.LEVEL",
        "actionElement": "BlindLevelAction",
        "action": "alias.0.Schlafzimmer.Schlafzimmerrollladen.LEVEL",
        "showState": true,
        "unit": "%",
        "BlindLevelActionConfig": {}
      },
      "Test": {
        "stateKey": "Test",
        "state": "0_userdata.0.Wohnung.Wohnungsrollladen.status",
        "action": "alias.0.Wohnung.Wohnungsrollladen.BLIND_COMMAND",
        "actionElement": "BlindLevelAction",
        "display": {
          "true": "Oben",
          "false": "Alle unten"
        },
        "bodyElement": "LevelBody",
        "showState": true
      }
    },
    "options": {},
    "attributes": {},
    "id": "f6e99c97-9457-4fe1-a33f-47f468f70229"
  }
RkcCorian commented 2 years ago

alpha-104. Jetzt bekomme ich das Ausrufezeichen auch ohne ALIAS an zwei meiner Rollläden. Irgendwas ist doch da mit den DPs, welche neben einem BlindLevelAction angezeigt werden. Vielleicht liegt es nicht an den ALIAS selber. Ich verstehe aber nicht an was dann...

image image

Konfig des DP image

RkcCorian commented 2 years ago

Funfact... jetzt geht es mit dem ALIAS aber nicht mehr mit dem "normalen" DP 😬 D.h. der Fehler tritt sporadisch auf, abhängig von der JARVIS-Konfig. Eine Änderung an dieser kann den Fehler hervorrufen oder wieder verschwinden lassen.

RkcCorian commented 2 years ago

Bzw. es ist nun eine "Mischform". Anbei das Verhalten mit ALIAS anstelle userdata image

Zefau commented 2 years ago

Rohwert ist 0. Hab auch mal zum Test einen neuen DP unter userdata angelegt mit dem Wert 0. Gleiches Verhalten. D.h. Slider zeigt 0, Wert wird aber als 100% angezeigt.

Rechne doch mal nach: :-)

"value": "val => Math.round(((val 100) -1) + 100)"

RkcCorian commented 2 years ago

Naja, ich hätte erwartet, dass ich einen Wert mit einer Formel belegen kann und dann Slider UND Wert entsprechend berechnet werden. Was bringt es, wenn die beiden unterschiedlich sind? Mit der Formel passt jetzt der Wert, aber was ist mit dem Slider ;-)

RkcCorian commented 2 years ago

Ahh, ich glaub ich verstehe... beim Slider kann ich wählen ob val oder value 🙈

RkcCorian commented 2 years ago

Damit wäre das OK. Aber was ist mit dem wiederkehrenden Ausrufezeichen 😥

Zefau commented 2 years ago

Da bin ich dran. Funktioniert es denn nach einem vollständigen Reload der Seite oder bleibt das Warndreieck dann noch?

Welchen Wert hat der Datenpunkt in deinem Beispiel oben (Wohnzimmerrollladen)? Kannst du da auch nochmal die Layout Konfiguration posten?

RkcCorian commented 2 years ago

Mit F5 (Reload) blieb es, war also reproduzierbar. Allerdings hatte ich inzw. auf mein Produktivsystem gewechselt. Nach dem Zurückwechseln auf das Testsystem mit meiner 2ten JARVIS-Instanz geht es wieder. 😬

Hab jetzt einen anderen Rollladen aus meiner eigentlichen Instanz genommen wo der Fehler jetzt gerade auftritt... image

Datenpunkt-Wert: true (bestätigt)

Datenpunkt

{
  "_id": "0_userdata.0.Wohnung.Wohnbereichsrollladen.status",
  "type": "state",
  "common": {
    "name": "status",
    "role": "state",
    "type": "boolean",
    "read": true,
    "write": true,
    "desc": "Manuell erzeugt",
    "def": false
  },
  "native": {},
  "from": "system.adapter.admin.0",
  "user": "system.user.admin",
  "ts": 1614978370778,
  "acl": {
    "object": 1636,
    "state": 1636,
    "owner": "system.user.admin",
    "ownerGroup": "system.group.administrator"
  }
}

Gerät

"wohnbereichsrollladen_4400d": {
    "name": "Wohnbereichsrollladen",
    "icon": "",
    "label": "",
    "function": "blind",
    "states": {
      "STATUS": {
        "showState": false,
        "state": "0_userdata.0.Wohnung.Wohnbereichsrollladen.STATUS",
        "properties": {
          "max": 0,
          "min": 100
        },
        "display": {
          "true": "Oben",
          "false": "Alle unten"
        },
        "label": "Status",
        "icon": {
          "true": "window-shutter-open",
          "false": "window-shutter"
        },
        "iconStyle": {
          "false": {
            "color": "#aaaaaa"
          }
        },
        "action": "alias.0.Wohnung.Wohnbereichsrollladen.BLIND_COMMAND",
        "actionElement": "BlindLevelAction",
        "bodyElement": "LastChangeBody",
        "stateKey": "STATUS",
        "BlindLevelActionConfig": {
          "activityState": "STATUS",
          "stopAction": "STATUS"
        },
        "stateStyle": {
          "true": {
            "color": "#aaaaaa"
          },
          "false": {
            "color": "#009900",
            "fontWeight": "bold"
          }
        }
      }
    },
    "options": {},
    "attributes": {
      "imported": true,
      "manufacturer": {
        "name": "Alias Devices",
        "namespace": "alias"
      },
      "_created": 1620952065609,
      "_updated": 1621136501723
    },
    "id": "wohnbereichsrollladen_4400d"
  }

Widget

"5e54ba02-d262-415e-b42a-ec05a9f257d4": {
    "id": "5e54ba02-d262-415e-b42a-ec05a9f257d4",
    "config": {},
    "icon": "home",
    "title": "Zentralsteuerung",
    "module": "StateList",
    "items": [
      {
        "type": "device",
        "deviceId": "wohnung_269a9",
        "bodyStateKey": "",
        "bodyElement": "LastChangeBody",
        "primaryStateKey": "STATUS",
        "showState": false,
        "actionElement": "ButtonAction",
        "id": "a0a61764-84be-413e-b4f7-ae458ee419ed"
      },
      {
        "type": "device",
        "deviceId": "wohnungsbeleuchtung_b123d",
        "actionType": "action",
        "actionElement": "ButtonAction",
        "primaryStateKey": "STATUS",
        "bodyStateKey": "",
        "ButtonActionConfig": {
          "Status": {
            "labelTurnOff": "Ausschalten",
            "labelTurnOn": "Ausschalten",
            "showState": true
          }
        },
        "bodyElement": "LastChangeBody",
        "showState": false,
        "id": "a9c3baf2-d5a4-4ce2-ba95-d9d53865b30e"
      },
      {
        "type": "device",
        "deviceId": "wohnungslautsprecher_24b78",
        "bodyElement": "LastChangeBody",
        "bodyStateKey": "",
        "showState": false,
        "actionElement": "ButtonAction",
        "primaryStateKey": "STATUS",
        "ButtonActionConfig": {
          "STATUS": {
            "showState": true
          }
        },
        "id": "1201cfbe-d65f-423e-a9e5-a1d6e949f3fc"
      },
      {
        "type": "divider",
        "bodyStateKey": null,
        "bodyElement": "LastChangeBody",
        "primaryStateKey": "STATUS",
        "showState": false,
        "actionElement": "SwitchAction",
        "id": "f28118dc-bf37-4065-a529-aab4f8cc1223"
      },
      {
        "type": "device",
        "deviceId": "wohnungsrollladen_dbb2e",
        "bodyElement": null,
        "bodyStateKey": "",
        "actionElement": "BlindLevelAction",
        "showState": true,
        "primaryStateKey": "STATUS",
        "id": "cc6bc635-93d0-41e2-b196-998fc7970941",
        "label": "",
        "secondaryStatesKeys": []
      },
      {
        "type": "device",
        "deviceId": "wohnbereichsrollladen_4400d",
        "bodyElement": null,
        "bodyStateKey": "",
        "showState": true,
        "actionElement": "BlindLevelAction",
        "primaryStateKey": "STATUS",
        "id": "d78e3c08-4744-4f73-990b-63d89429820a"
      }
    ],
    "hideTitle": false,
    "hideSeparator": false
  },

Layout

          {
            "x": 4,
            "y": 0,
            "w": 4,
            "h": 6,
            "i": "e647ad79-2eac-4fb1-959e-012d0d22398a",
            "items": [
              "5e54ba02-d262-415e-b42a-ec05a9f257d4"
            ],
            "scaleToFitContents": false,
            "alignmentVertical": "top",
            "alignmentHorizontal": "center",
            "moved": false
          },
Zefau commented 2 years ago

schau nochmal mit v3.0.0-alpha.105

RkcCorian commented 2 years ago

alpha-105

Beide folgenden Rollladen mit ALIAS.

Navigation von einer anderen Seite (Wohnung) nach Seite (Räume) image

In die Konfig gegangen und "Abbrechen" gedrückt image

F5 image

RkcCorian commented 2 years ago

Ohne alias geht es (zumindest jetzt) wieder. Dennoch ist das Verhalten mit ALIAS sporadisch (Post hiervor)

RkcCorian commented 2 years ago

alpha-105: Wenn der Wert "0" ist fehlt der "blaue Punkt" Wert = 0 image

Wert != 0 image

mcuiobroker commented 2 years ago

v3.0.0-alpha.108 Ausrufezeiche kommt auch, wenn im Layout die Zuordnung fehlt: image image Da sollte evtl ein anderes Zeichen erscheinen? Dann kann man es unterscheiden, Objekt in ioBroker nicht vorhanden, Layout-Fehler?

Zefau commented 2 years ago

alpha-105: Wenn der Wert "0" ist fehlt der "blaue Punkt"

und

Ausrufezeiche kommt auch, wenn im Layout die Zuordnung fehlt:

sollte mit v3.0.0-alpha.109 behoben sein

mcuiobroker commented 2 years ago

Ausrufezeichen ist weg, wenn im Layout ein Fehler ist. Trotzdem empfehle ich in dem Fall ein anderes Icon anzuzeigen z.B. mdi:alert-rhombus-outline image

Zefau commented 2 years ago

Wann soll das angezeigt werden? Es wird weiterhin ein Warndreieck angezeigt, wenn der Datenpunkt falsch ist.

mcuiobroker commented 2 years ago

In meinem Fall war kein Bodyelement und keine Action-Element ausgewählt, da ich vorher den DP gelöscht hatte.

RkcCorian commented 2 years ago

alpha-105: Wenn der Wert "0" ist fehlt der "blaue Punkt"

und

Ausrufezeiche kommt auch, wenn im Layout die Zuordnung fehlt:

sollte mit v3.0.0-alpha.109 behoben sein

"blauer" Punkt ist bei 0 wieder da :-)