Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. .txt file in Widget darstellen..

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    .txt file in Widget darstellen..

    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      JoergH last edited by

      Gibt es ein Widget in dem ich ein .txt file darstellen kann?

      Cinimod BananaJoe 2 Replies Last reply Reply Quote 0
      • Cinimod
        Cinimod Most Active @JoergH last edited by Cinimod

        @joergh

        Davon mal was versucht ?

        Bildschirmfoto 2022-01-15 um 21.28.11.png

        EDIT: glaube ich habe dich falsch verstanden. Hab auch keine Lösung gefunden bisher.

        1 Reply Last reply Reply Quote 0
        • BananaJoe
          BananaJoe Most Active @JoergH last edited by

          @joergh So weit ich weis, direkt nein.
          Du musst die .txt Datei erst über ein Skript einlesen und in einen Datenpunkt schreiben.

          Eventuell geht folgendes: Die Textdatei in .html umbenennen und versuchen diese in einem iFrame darzustellen. Dazu musst du den genauen Pfad für den Aufruf ermitteln, diese muss also an einem von VIS erreichbaren Ort liegen.
          Zum Test ggf. die Datei im VIS Editor hochladen.

          J 1 Reply Last reply Reply Quote 0
          • J
            JoergH @BananaJoe last edited by

            @bananajoe Danke. Hmmm, tja nun wollte ich es ja gerade vermeiden das in einen DP zu schreiben, sondern es als .txt Datei auf der SSD speichern...wenn ich die Datei in einem von vis erreichbaren Pfad speichere (was ist denn von vis erreichbar?), dann kann ich es statt .txt auch auf .html enden lassen, das wäre nicht das Problem...

            Danke für den Tipp!

            BananaJoe liv-in-sky 2 Replies Last reply Reply Quote 0
            • BananaJoe
              BananaJoe Most Active @JoergH last edited by

              @joergh sagte in .txt file in Widget darstellen..:

              (was ist denn von vis erreichbar?)

              Schau dir die Pfade in der VIS an bzw. schau dir die Eigenschaften einer Grafik an wenn du dir eine VIS anzeigen lässt.
              Sollte z.B.

              /opt/iobroker/iobroker-data/files/vis.0/main/
              

              usw. sein (main = Projektname)

              1 Reply Last reply Reply Quote 0
              • liv-in-sky
                liv-in-sky @JoergH last edited by

                @joergh

                ich glaube, du kommst um das script nicht herum - um es als html anzuzeigen, muss es im iobroker bekannt sein - es muss also geschrieben werden über ein script, da ein iframe einen webserver auf der anderen seite braucht, was der iobroker server ist

                bei txt ist es eigentlich das selbe, da musst du es in einen dp schreiben

                J BananaJoe 3 Replies Last reply Reply Quote 0
                • J
                  JoergH @liv-in-sky last edited by

                  @liv-in-sky Ja, schade. Dachte es gibt einfach ein html Widget bei dem ich einen Pfad eintragen kann und er öffnet dann das file und stellt es dar....Also spar ich mir am besten gleich das Schreiben in ein File und schreibe alles in einen String DP, den ich dann anzeigen lasse...?

                  1 Reply Last reply Reply Quote 0
                  • BananaJoe
                    BananaJoe Most Active @liv-in-sky last edited by

                    @liv-in-sky Ich stimme dir zu das das Schreiben in einen Datenpunkt die Sache um Welten vereinfachen würde, auch wenn es dazu erst ein Skript braucht.

                    Ich bin auch schon mal an einer Grafik verzweifelt. Die auf die Platte zu bekommen war kein Thema, die in der VIS anzeigen zu lassen wenn diese nicht darüber hochgeladen wurde ... (nein, einfach Überschreiben reicht nicht, die VIS lässt sich da nicht so einfach beschubsen.

                    liv-in-sky 1 Reply Last reply Reply Quote 0
                    • liv-in-sky
                      liv-in-sky @BananaJoe last edited by

                      @bananajoe

                      anstatt über vis laden muss man den speziellen befehl writeFile() nutzen - der macht das file auch bekannt in der vis/iobroker

                      1 Reply Last reply Reply Quote 0
                      • J
                        JoergH @liv-in-sky last edited by

                        @liv-in-sky
                        So jetzt habe ich mir eine Liste erzeugt und in einen String DP geschrieben. Da entsteht dann z.B. so eine Liste...

                        
                        ["23:25:21.823 Ich versuche Daten...","23:25:33.929 ...in eine Liste zu schreiben...","23:25:51.250 ...und dann wieder auszulesen...","23:26:07.627 um sie anzuzeigen..."]
                        
                        

                        Wenn ich den DP in den ich das als String schreibe nun angebe im Value List-Text Widget, dann zeigt er mir aber keine Liste, sondern den kompletten String inklusive der Anführungszeichen an....any ideas?

                        ed8e24ca-cf93-4902-ab36-3b08d776d684-grafik.png

                        BananaJoe liv-in-sky 2 Replies Last reply Reply Quote 0
                        • BananaJoe
                          BananaJoe Most Active @JoergH last edited by

                          @joergh als htmlCode schreiben? so mit <br>für neue zeile und so?
                          Alternativ als JSON, da kannst du dann die Darstellung sehr schön in den entsprechenden Widgets formatieren, inklusive das du die Reihenfolge der Spalten noch mal ändern kannst bzw. sogar welche ausblenden.

                          1 Reply Last reply Reply Quote 0
                          • liv-in-sky
                            liv-in-sky @JoergH last edited by

                            @joergh seltsames format - du schreibst eigentlich ein array in den dp

                            wie schreibst /erstellst du das eigentlich - hast du da möglicheiten, dass zu beeinflussen - wennn nicht, wird wohl wieder ein script nötig sein

                            du könntest ein json format nehmen und ein json widget - siehe @BananaJoe

                            [{"time":"23:25:21.823", "text":"Ich versuche Daten..."},{"time":"23:25:33.929","text":"in eine Liste zu schreiben..."}]
                            

                            oder du nimmst ein html widget mußt dann aber ein html schreiben - also <br> für neue zeile

                            23:25:21.823 Ich versuche Daten...<br>
                            23:25:33.929 ...in eine Liste zu schreiben...<br>
                            23:25:51.250 ...und dann wieder auszulesen...<br>
                            23:26:07.627 um sie anzuzeigen...
                            
                            

                            dein momentanes format ist eher ungünstig - woher soll das widget wissen, wo eine neue zeile ist bzw was soll es mit den eckigen klammern machen

                            J 1 Reply Last reply Reply Quote 0
                            • J
                              JoergH @liv-in-sky last edited by

                              @liv-in-sky
                              Das ganz ist Teil eines Skriptes.

                              0b399ab0-515d-4089-832d-f441e73fd7c9-grafik.png

                              Dachte das "Liste" Format würde dafür sorgen, dass die mit entsprechenden Trennzeichen versehen werden die dann zur entsprechenden Darstellung genutzt werden. So wie es aussieht funktioniert das so aber nicht....

                              Ich kann das mal schnell auf html umbasteln...

                              liv-in-sky 3 Replies Last reply Reply Quote 0
                              • liv-in-sky
                                liv-in-sky @JoergH last edited by

                                @joergh
                                mach es lieber auf json - dann hast du mit dem inventwo json widget schöne möglichkeiten, das zu formatieren

                                1 Reply Last reply Reply Quote 0
                                • liv-in-sky
                                  liv-in-sky @JoergH last edited by

                                  @joergh

                                  liste ist ein doofer name - ist die übersetzung von array

                                  das json musst du mit einem javascript functions blockly machen, flls interesse

                                  1 Reply Last reply Reply Quote 0
                                  • liv-in-sky
                                    liv-in-sky @JoergH last edited by liv-in-sky

                                    @joergh

                                    hier mal ein beispiel für die erzeugung eines json arrays

                                    Image 4.png

                                    <xml xmlns="https://developers.google.com/blockly/xml">
                                     <variables>
                                       <variable id="3x+uiY^LT~Vv|;Rnf~@U">myjsonArray</variable>
                                       <variable id="1%kx)8[s_nj*5uEEo]CH">zeit</variable>
                                       <variable id="_c2[Wd8,N14Er)%1G]!}">text</variable>
                                     </variables>
                                     <block type="variables_set" id="@frIvR$BlW;b0uR.Qqj3" x="63" y="187">
                                       <field name="VAR" id="3x+uiY^LT~Vv|;Rnf~@U">myjsonArray</field>
                                       <value name="VALUE">
                                         <block type="lists_create_with" id="KW[0_$Yjk~~%xadDJ,NX">
                                           <mutation items="0"></mutation>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="comment" id="|KE9Kg/1ggEZkRdYDlPQ">
                                           <field name="COMMENT">muss immer wider aufgerufen werden</field>
                                           <next>
                                             <block type="procedures_callcustomnoreturn" id="EExq}vOtL!*0B6I!C:nr">
                                               <mutation name="etwas tun">
                                                 <arg name="zeit"></arg>
                                                 <arg name="text"></arg>
                                               </mutation>
                                               <value name="ARG0">
                                                 <block type="text" id="aT/dI(HPz:tJ[u^?6FOT">
                                                   <field name="TEXT">12:23</field>
                                                 </block>
                                               </value>
                                               <value name="ARG1">
                                                 <block type="text" id="K{8vzWm|r=x9EXNHWR^G">
                                                   <field name="TEXT">erster eintrag</field>
                                                 </block>
                                               </value>
                                               <next>
                                                 <block type="procedures_callcustomnoreturn" id="7~6m_w/]|s1!e4Qbvyx!">
                                                   <mutation name="etwas tun">
                                                     <arg name="zeit"></arg>
                                                     <arg name="text"></arg>
                                                   </mutation>
                                                   <value name="ARG0">
                                                     <block type="text" id="[}#NGTrRpP_J{yeUV?-}">
                                                       <field name="TEXT">13:44</field>
                                                     </block>
                                                   </value>
                                                   <value name="ARG1">
                                                     <block type="text" id="T2feN=VyPoV0icC_fX#W">
                                                       <field name="TEXT">zweiter eintrag</field>
                                                     </block>
                                                   </value>
                                                   <next>
                                                     <block type="debug" id="X(]`D{lj[!;8*{aKI(B|">
                                                       <field name="Severity">log</field>
                                                       <value name="TEXT">
                                                         <shadow type="text" id="veRPR75t0gV+j4Kbp^gM">
                                                           <field name="TEXT">test</field>
                                                         </shadow>
                                                         <block type="variables_get" id="t5{_n[-q9DM$KIky*.3}">
                                                           <field name="VAR" id="3x+uiY^LT~Vv|;Rnf~@U">myjsonArray</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </next>
                                                 </block>
                                               </next>
                                             </block>
                                           </next>
                                         </block>
                                       </next>
                                     </block>
                                     <block type="procedures_defcustomnoreturn" id="j?7,VR.oK}Vg/ze4avd+" x="412" y="237">
                                       <mutation statements="false">
                                         <arg name="zeit" varid="1%kx)8[s_nj*5uEEo]CH"></arg>
                                         <arg name="text" varid="_c2[Wd8,N14Er)%1G]!}"></arg>
                                       </mutation>
                                       <field name="NAME">etwas tun</field>
                                       <field name="SCRIPT">DQpteWpzb25BcnJheS5wdXNoKHsNCiAgICAiemVpdCI6emVpdCwNCiAgICAidGV4dCI6IHRleHQNCiAgICANCn0pDQoNCg0KDQovL2xvZyhKU09OLnN0cmluZ2lmeShteWpzb25BcnJheSkp</field>
                                       <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                     </block>
                                    </xml>
                                    

                                    edit:
                                    das json sollte dann ja noch in einen dp geschrieben werden und bevor du das erzeugst auch von einem datenpunkt gelesen werden - damit das an das json appended wird und nicht überschrieben

                                    J 1 Reply Last reply Reply Quote 0
                                    • J
                                      JoergH @liv-in-sky last edited by

                                      @liv-in-sky Danke für das Beispiel. Da ich mich mit JSON und den Blockly "Funktionen" kaum auskenne ein paar Fragen:

                                      Die Funktion die Du in dem Beispiel aufrufst mit "etwas tun" ist doch bisher nirgends beschrieben worden? Muss ich die nicht erstmal schreiben? Woher weiss er denn was mit Zeit und Text zu tun ist?

                                      liv-in-sky 1 Reply Last reply Reply Quote 0
                                      • liv-in-sky
                                        liv-in-sky @JoergH last edited by

                                        @joergh

                                        sollte das sein: ist das nicht im import dabei ?

                                        Image 5.png

                                        J 2 Replies Last reply Reply Quote 0
                                        • J
                                          JoergH @liv-in-sky last edited by

                                          @liv-in-sky Und wieder was gelernt. Danke! Ich hatte das noch nicht importiert, sondern mir nur den Baustein angesehen. Jetzt habe ich kapiert, dass sich der JS Code hinter den Punkten versteckt und da was hinterlegt ist. Wäre irgendwie praktisch wenn man das am Baustein schon sehen könnte 🙂

                                          liv-in-sky 1 Reply Last reply Reply Quote 0
                                          • liv-in-sky
                                            liv-in-sky @JoergH last edited by

                                            @joergh

                                            jetzt weißt du es ja - wie erwähnt muss im script noch das lesen des existierenden jsons (in einem dp) und das wiederschreiben rein
                                            du brauchst daher einen dp mit type string

                                            myjsonArray=JSON.parse(getState("0_userdata.0.CONTROL-OWN.AAATEST.TestString1").val);
                                            myjsonArray.push({
                                                "zeit":zeit,
                                                "text": text
                                             })
                                            setState("0_userdata.0.CONTROL-OWN.AAATEST.TestString1",JSON.stringify(myjsonArray));
                                            })
                                            

                                            <xml xmlns="https://developers.google.com/blockly/xml">
                                             <variables>
                                               <variable id="1%kx)8[s_nj*5uEEo]CH">zeit</variable>
                                               <variable id="_c2[Wd8,N14Er)%1G]!}">text</variable>
                                               <variable id="3x+uiY^LT~Vv|;Rnf~@U">myjsonArray</variable>
                                               <variable type="timeout" id="timeout">timeout</variable>
                                             </variables>
                                             <block type="comment" id="yFL!h.,c,Zp-Dy^Kq,hm" x="113" y="112">
                                               <field name="COMMENT">beim ersten mal leerer dp</field>
                                               <next>
                                                 <block type="controls_if" id="{/+O6HOy7Ojt}`9A$PX}">
                                                   <value name="IF0">
                                                     <block type="text_isEmpty" id="oedr?+DzZQYcMQbkQH8J">
                                                       <value name="VALUE">
                                                         <shadow type="text">
                                                           <field name="TEXT"></field>
                                                         </shadow>
                                                         <block type="get_value" id="tH/||B;9eB]:7_k)30Yk">
                                                           <field name="ATTR">val</field>
                                                           <field name="OID">0_userdata.0.CONTROL-OWN.AAATEST.TestString1</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                   <statement name="DO0">
                                                     <block type="variables_set" id="@frIvR$BlW;b0uR.Qqj3">
                                                       <field name="VAR" id="3x+uiY^LT~Vv|;Rnf~@U">myjsonArray</field>
                                                       <value name="VALUE">
                                                         <block type="lists_create_with" id="KW[0_$Yjk~~%xadDJ,NX">
                                                           <mutation items="0"></mutation>
                                                         </block>
                                                       </value>
                                                       <next>
                                                         <block type="control" id="v~m,=)~HcShOSXySqCcJ">
                                                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                           <field name="OID">0_userdata.0.CONTROL-OWN.AAATEST.TestString1</field>
                                                           <field name="WITH_DELAY">FALSE</field>
                                                           <value name="VALUE">
                                                             <block type="variables_get" id=";XGxvAYF.bITTA[2E;F5">
                                                               <field name="VAR" id="3x+uiY^LT~Vv|;Rnf~@U">myjsonArray</field>
                                                             </block>
                                                           </value>
                                                         </block>
                                                       </next>
                                                     </block>
                                                   </statement>
                                                   <next>
                                                     <block type="comment" id="|KE9Kg/1ggEZkRdYDlPQ">
                                                       <field name="COMMENT">muss immer wider aufgerufen werden</field>
                                                       <next>
                                                         <block type="timeouts_settimeout" id="];;*w]a|*ID$C%y`iP0p">
                                                           <field name="NAME">timeout</field>
                                                           <field name="DELAY">2</field>
                                                           <field name="UNIT">sec</field>
                                                           <statement name="STATEMENT">
                                                             <block type="procedures_callcustomnoreturn" id="EExq}vOtL!*0B6I!C:nr">
                                                               <mutation name="etwas tun">
                                                                 <arg name="zeit"></arg>
                                                                 <arg name="text"></arg>
                                                               </mutation>
                                                               <value name="ARG0">
                                                                 <block type="text" id="aT/dI(HPz:tJ[u^?6FOT">
                                                                   <field name="TEXT">12:23</field>
                                                                 </block>
                                                               </value>
                                                               <value name="ARG1">
                                                                 <block type="text" id="K{8vzWm|r=x9EXNHWR^G">
                                                                   <field name="TEXT">erster eintrag</field>
                                                                 </block>
                                                               </value>
                                                               <next>
                                                                 <block type="procedures_callcustomnoreturn" id="7~6m_w/]|s1!e4Qbvyx!">
                                                                   <mutation name="etwas tun">
                                                                     <arg name="zeit"></arg>
                                                                     <arg name="text"></arg>
                                                                   </mutation>
                                                                   <value name="ARG0">
                                                                     <block type="text" id="[}#NGTrRpP_J{yeUV?-}">
                                                                       <field name="TEXT">13:44</field>
                                                                     </block>
                                                                   </value>
                                                                   <value name="ARG1">
                                                                     <block type="text" id="T2feN=VyPoV0icC_fX#W">
                                                                       <field name="TEXT">zweiter eintrag</field>
                                                                     </block>
                                                                   </value>
                                                                   <next>
                                                                     <block type="debug" id="X(]`D{lj[!;8*{aKI(B|">
                                                                       <field name="Severity">log</field>
                                                                       <value name="TEXT">
                                                                         <shadow type="text" id="veRPR75t0gV+j4Kbp^gM">
                                                                           <field name="TEXT">test</field>
                                                                         </shadow>
                                                                         <block type="variables_get" id="t5{_n[-q9DM$KIky*.3}">
                                                                           <field name="VAR" id="3x+uiY^LT~Vv|;Rnf~@U">myjsonArray</field>
                                                                         </block>
                                                                       </value>
                                                                     </block>
                                                                   </next>
                                                                 </block>
                                                               </next>
                                                             </block>
                                                           </statement>
                                                         </block>
                                                       </next>
                                                     </block>
                                                   </next>
                                                 </block>
                                               </next>
                                             </block>
                                             <block type="procedures_defcustomnoreturn" id="j?7,VR.oK}Vg/ze4avd+" x="437" y="288">
                                               <mutation statements="false">
                                                 <arg name="zeit" varid="1%kx)8[s_nj*5uEEo]CH"></arg>
                                                 <arg name="text" varid="_c2[Wd8,N14Er)%1G]!}"></arg>
                                               </mutation>
                                               <field name="NAME">etwas tun</field>
                                               <field name="SCRIPT">DQoNCg0KbXlqc29uQXJyYXk9SlNPTi5wYXJzZShnZXRTdGF0ZSgiMF91c2VyZGF0YS4wLkNPTlRST0wtT1dOLkFBQVRFU1QuVGVzdFN0cmluZzEiKS52YWwpOw0KDQpteWpzb25BcnJheS5wdXNoKHsNCiAgICAiemVpdCI6emVpdCwNCiAgICAidGV4dCI6IHRleHQNCiAgICANCn0pDQoNCnNldFN0YXRlKCIwX3VzZXJkYXRhLjAuQ09OVFJPTC1PV04uQUFBVEVTVC5UZXN0U3RyaW5nMSIsSlNPTi5zdHJpbmdpZnkobXlqc29uQXJyYXkpKTsNCg0KLy9sb2coSlNPTi5zdHJpbmdpZnkobXlqc29uQXJyYXkpKQ==</field>
                                               <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                             </block>
                                            </xml>
                                            

                                            J 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            906
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            48
                                            1201
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo