NEWS

[Tipp] In HTML-Widget States verarbeiten/anzeigen


  • Developer

    Hi,

    ich hatte mir einen Wolf gesucht hier im Forum und nun die Lösung.

    Ich wollte im VIS anzeigen, ob ein Script regelmäßig einen Datenpunkt updated (in meinem Fall mein Log-Script).
    Also: Falls Datenpunkt 0_userdata.0.Log-Script.All.lastTimeUpdated in den letzten 30 Sekunden aktualisiert wurde, dann:
    1_active.png

    Falls keine Aktualisierung innerhalb 30 Sekunden, dann:
    2_inactive.png

    Hier der Code für das HTML-Widget:

    Widget-Export (enthält bereits den Code):

    Dies nur als ein Beispiel.
    Entscheidende Info von hier: https://forum.iobroker.net/topic/29851/socket-io-state-lesen-und-setzen/


    Keywords für Forumsuche (Tags sind limitiert hier, warum auch immer): getState() setState() vis.setValue vis.getValue


  • Forum Testing Most Active

    @Mic

    Da kommt nicht viel?

    Screenshot (1818).png


  • Developer

    @sigi234
    Hab oben auf den "Standard-Pfad" '0_userdata.0.Log-Script.All.lastTimeUpdated' geändert, damit sollte es gehen. Vorher stand da '0_userdata.0.System.Log-Script.All.lastTimeUpdated'
    Hier übrigens auch gepostet: https://forum.iobroker.net/post/384066


  • Developer

    Damit öffnet man sich auch andere schöne Spielereien, ohne zusätzlicher Datenpunkte.
    Z.B. Ausgabe eines Datums von einem State in "Heute, um 20:15 Uhr" anstatt "25.02.2020, um 20:15 Uhr" usw.
    Man kann also mittels JavaScript die State-Daten entsprechend verarbeiten und zur Anzeige bringen, gerade wenn es dafür noch keine Widgets gibt oder diese Optionen nicht bieten.


  • Starter

    @Mic
    Hinweis:
    Apollon77 hatte in deinem verlinkten Thread folgendes gepostet:

    getState liefert den Wert des States. GetObject liefert das Objekt. Und bei getState ist es state.val (wenn state die Variable des response callbacks ist)

    Du benutzt in deinem Beispiel oben getStates und greifst im Nachgang auf das eigentliche Objekt des json mit [objID] zu. Dürfte einfacher sein, wenn getState genutzt wird. Habe es selbst nie getestet, da ich nie states auslese.



  • @Mic

    Danke für die Idee .

    oder mit Emoji den Zustand anzeigen ...

    1.JPG

    2.JPG


  • Developer

    @GiuseppeS sagte in [Tipp] In HTML-Widget States verarbeiten/anzeigen:

    @Mic
    Hinweis:
    Apollon77 hatte in deinem verlinkten Thread folgendes gepostet:

    getState liefert den Wert des States. GetObject liefert das Objekt. Und bei getState ist es state.val (wenn state die Variable des response callbacks ist)

    Du benutzt in deinem Beispiel oben getStates und greifst im Nachgang auf das eigentliche Objekt des json mit [objID] zu. Dürfte einfacher sein, wenn getState genutzt wird. Habe es selbst nie getestet, da ich nie states auslese.

    Danke für den Hinweis. Ich hatte kurz getState() getestet, aber hatte nicht funktioniert bei mir, daher blieb ich bei getObject.

    @Glasfaser sagte in [Tipp] In HTML-Widget States verarbeiten/anzeigen:

    oder mit Emoji den Zustand anzeigen ...

    Auch schön.


  • Starter

    @Mic
    Vielleicht würde es so auch funktionieren...

    servConn.getStates(objID, (error, states) => {
            let stateValue = states[objID].val;
    
    // evtl so funktioniert es auch
    
    servConn.getState(objID, (error, state) => {
            let stateValue = state.val;
    

  • Developer

    @GiuseppeS sagte in [Tipp] In HTML-Widget States verarbeiten/anzeigen:

    @Mic
    Vielleicht würde es so auch funktionieren...

    Geht leider nicht, Widget bleibt dann komplett leer.



  • @Mic

    Wollte nur mal erwähnen , habe mir letztens ein Wolf gesucht !

    Hat ein Nachteil , sperrt die Funktion "View export" im Vis Editor .


  • Developer

    @Glasfaser sagte in [Tipp] In HTML-Widget States verarbeiten/anzeigen:

    Wollte nur mal erwähnen , habe mir letztens ein Wolf gesucht !

    So gings mir auch 😀

    Hat ein Nachteil , sperrt die Funktion "View export" im Vis Editor .

    Grad getestet, das ist bei mir leider auch so. Du hast ja hier auch gepostet, wo ein Widget-JS die Export-Funktion sperrt: https://forum.iobroker.net/post/433242
    Vielleicht machst du am besten im VIS-Adapter ein Issue auf? Danke.



  • @Mic

    Ist mir letztens aufgefallen , da ich mein View auf Logparser komplett umgestellt habe .

    ( Ja ... ich habe es jetzt komplett umgestellt 😉 )



  • @Mic
    Hallo Mic, könntest du erläutern, wie das mit dem Umwandeln in "heute, um 20:15 Uhr" funktioniert ?

    Ich weiß, es passt nicht ganz zum eigentlichen Thema ... aber genau diese Funktion suche ich schon länger, habe aber bisher nichts dazu gefunden 😞


  • Developer

    @Förster sagte in [Tipp] In HTML-Widget States verarbeiten/anzeigen:

    Ich weiß, es passt nicht ganz zum eigentlichen Thema ... aber genau diese Funktion suche ich schon länger, habe aber bisher nichts dazu gefunden

    Passt nun wirklich gar nicht hier rein 😉 Daher nur kurze Antwort: Umsetzung kannst du dir im Adapter-Code ansehen:
    https://github.com/Mic-M/ioBroker.logparser/blob/master/lib/mic-functions.js#L104
    Zu weiteren Fragen machst du am besten separaten Thread auf mit genauer Beschreibung, Use Case, usw.


Log in to reply
 

Suggested Topics

2.0k
Online

32.3k
Users

39.0k
Topics

528.0k
Posts