Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Automatischer View Wechsel / zwei unterschiedliche Geräte

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Automatischer View Wechsel / zwei unterschiedliche Geräte

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      m0uh @liv-in-sky last edited by

      @liv-in-sky Hmm... also ich hab jetzt eine 3. Instanz angelegt. Hab meine Tablets angepasst. Wenn ich ab Browser 3 Tabs öffne funktioniert das ganze problemlos. Scheinbar macht der Fully Kiosk Browser irgendwas anders... 😞 Das komische das Tablet schaltet irgendwann zurück aber nicht nach der definierten Zeit.

      liv-in-sky 4 Replies Last reply Reply Quote 0
      • liv-in-sky
        liv-in-sky @m0uh last edited by

        @m0uh ich muss mal testen mit fully - könnte dauern - mußte die fritzbox wechseln - seitdem habe ich ein paar problemchen im netz - aber ich schau mal

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

          @m0uh

          sorry - da war wohl ein bug im script

          teste mal das - und deine daten wieder eintragen

          
          /*SCHALTET ZURÜCK AUF VIEW DES ZIMMERS 1*/
          
          var remindSwitchTab1=false;
          var mySwitchTime1=20000;
          var myTabPort1="8082";
          var myURL1="http://192.168.178.59:8082/vis/index.html?speedy3#dives"
          
          /*für reload page*/
          if (location.port==myTabPort1) {
             
              setTimeout(function() {
              if (!remindSwitchTab1)  window.location.href = myURL1;
                 console.log("wait");
             }, mySwitchTime1)
          }
          
          /*nach klick wieder reaktiviert*/
          $(window).click(function(e) {
             if (!remindSwitchTab1 && location.port==myTabPort1){
                 remindSwitchTab1=true;
                  console.log("in href change 1 timer "+mySwitchTime1+" sek");
              setTimeout(function() {
                 window.location.href = myURL1;
                 console.log("finished for href change 1");
                 remindSwitchTab1=false;
                 
             }, mySwitchTime1)
             
             }
          });
          
          /*ENDE ----- SCHALTET ZURÜCK AUF VIEW DES ZIMMERS/TABLETS2*/
          
          /*SCHALTET ZURÜCK AUF VIEW DES ZIMMERS 2*/
          
          var remindSwitchTab2=false;
          var mySwitchTime2=20000;
          var myTabPort2="8072";
          var myURL2="http://192.168.178.59:8072/vis/index.html?speedy3#111"
          
          /*für reload page*/
          if (location.port==myTabPort2) {
             
              setTimeout(function() {
               if (!remindSwitchTab2)  window.location.href = myURL2;
                 console.log("wait");
             }, mySwitchTime2)
          }
          
          /*nach klick wieder reaktiviert*/
          $(window).click(function(e) {
             if (!remindSwitchTab2 && location.port==myTabPort2){
                 remindSwitchTab2=true;
                 console.log("in href change 2 timer "+mySwitchTime2+" sek");
              setTimeout(function() {
                window.location.href = myURL2;
                 console.log("finished for href change 2");
                 remindSwitchTab2=false;
                 
             }, mySwitchTime2)
          
             }
          });
          
          

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

            @m0uh

            was noch wichtig ist - du solltest keine der seiten doppelt offen haben (auch nicht beim testen) - also nicht auf port 8082 die definierte default-seite zweimal geöffnet haben

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

              @m0uh habe nochmal erwas mit fuly getestet - - zickte ein wenig rum - habe dann app upgedatet - jetzt scheint es zu laufen

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

                @liv-in-sky also so hab ich jetzt bei mir in der VIS als Skript drin stehen. 8082 (PC usw.) - 8083 (Dachgeschoss) - 8084 (Wohnzimmer)
                Zeit hab ich mal auf 20 Sekunden gestellt nur um zu testen. Dann hab ich festgestellt das es bei mir im Fully gar nicht funktioniert das Umschalten war jedes mal wenn er nach einer gewissen Zeit die Start URL neu läd.

                Wenn ich im Browser alle 3 VIS mit zugehörigen Ports öffne funktioniert es aber.... Komisich

                FullyKiosk Browser Version is 1.45-play & 1.45-fireOS

                 
                /*SCHALTET ZURÜCK AUF VIEW DES ZIMMERS 1*/
                 
                var remindSwitchTab1=false;
                var mySwitchTime1=20000;
                var myTabPort1="8083";
                var myURL1="http://192.168.178.67:8083/vis/index.html#Wohnung"
                 
                /*für reload page*/
                if (location.port==myTabPort1) {
                   
                    setTimeout(function() {
                    if (!remindSwitchTab1)  window.location.href = myURL1;
                       console.log("wait");
                   }, mySwitchTime1)
                }
                 
                /*nach klick wieder reaktiviert*/
                $(window).click(function(e) {
                   if (!remindSwitchTab1 && location.port==myTabPort1){
                       remindSwitchTab1=true;
                        console.log("in href change 1 timer "+mySwitchTime1+" sek");
                    setTimeout(function() {
                       window.location.href = myURL1;
                       console.log("finished for href change 1");
                       remindSwitchTab1=false;
                       
                   }, mySwitchTime1)
                   
                   }
                });
                 
                /*ENDE ----- SCHALTET ZURÜCK AUF VIEW DES ZIMMERS/TABLETS2*/
                 
                /*SCHALTET ZURÜCK AUF VIEW DES ZIMMERS 2*/
                 
                var remindSwitchTab2=false;
                var mySwitchTime2=20000;
                var myTabPort2="8084";
                var myURL2="http://192.168.178.67:8084/vis/index.html#Dachgeschoss"
                 
                /*für reload page*/
                if (location.port==myTabPort2) {
                   
                    setTimeout(function() {
                     if (!remindSwitchTab2)  window.location.href = myURL2;
                       console.log("wait");
                   }, mySwitchTime2)
                }
                 
                /*nach klick wieder reaktiviert*/
                $(window).click(function(e) {
                   if (!remindSwitchTab2 && location.port==myTabPort2){
                       remindSwitchTab2=true;
                       console.log("in href change 2 timer "+mySwitchTime2+" sek");
                    setTimeout(function() {
                      window.location.href = myURL2;
                       console.log("finished for href change 2");
                       remindSwitchTab2=false;
                       
                   }, mySwitchTime2)
                 
                   }
                });
                 
                
                
                
                
                1 Reply Last reply Reply Quote 0
                • M
                  m0uh @liv-in-sky last edited by m0uh

                  @liv-in-sky also im Fully funktioniert es nach dem neu laden genau 1x danach nicht mehr

                  was muss denn im Fully als Start URL drin stehen:

                  z.B.:
                  http://192.168.178.67:8083/vis/index.html#Wohnung
                  http://192.168.178.67:8084/vis/index.html#Dachgeschoss

                  oder reicht bei beiden:

                  http://192.168.178.67:8083/vis/index.html

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

                    @m0uh
                    es muss die zugeordnete drinstehen

                    ich habe die 1.46play draufgetan - dann war es etwas besser - aber ich muss gestehen, ich habe auch ab und an , dass bei einem tablet der rücksprung ausbleibt - bei einem geht es sehr gut - bei dem zweiten ist manchmal kein rücksprung- dann muss ich nochmal irgendwas drücken und es funktioniert

                    unter umständen liegt es an der webview version der tablets

                    hast du es mal mit pc getestet - einmal chrome und einen 2ten browser . vorher bei den tablets fully browser schliessen

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

                      @liv-in-sky Werde später mal updaten und bisschen testen... melde mich dann morgen wieder

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

                        @m0uh

                        wenn du testest, mache mal unterschedliche zeiten - mit mind 5 sek unterschied - dann schaut es bei mir besser aus !

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

                          @liv-in-sky also so leid es mir tut aber ich bekomm es nicht zum laufen.

                          So hab ich den Script drin:

                           /*SCHALTET ZURÜCK AUF VIEW DES ZIMMERS 1*/
                           
                          var remindSwitchTab1=false;
                          var mySwitchTime1=30000;
                          var myTabPort1="8083";
                          var myURL1="http://192.168.178.67:8083/vis/index.html#Wohnung"
                           
                          /*für reload page*/
                          if (location.port==myTabPort1) {
                             
                              setTimeout(function() {
                              if (!remindSwitchTab1)  window.location.href = myURL1;
                                 console.log("wait");
                             }, mySwitchTime1)
                          }
                           
                          /*nach klick wieder reaktiviert*/
                          $(window).click(function(e) {
                             if (!remindSwitchTab1 && location.port==myTabPort1){
                                 remindSwitchTab1=true;
                                  console.log("in href change 1 timer "+mySwitchTime1+" sek");
                              setTimeout(function() {
                                 window.location.href = myURL1;
                                 console.log("finished for href change 1");
                                 remindSwitchTab1=false;
                                 
                             }, mySwitchTime1)
                             
                             }
                          });
                           
                          /*ENDE ----- SCHALTET ZURÜCK AUF VIEW DES ZIMMERS/TABLETS2*/
                           
                          /*SCHALTET ZURÜCK AUF VIEW DES ZIMMERS 2*/
                           
                          var remindSwitchTab2=false;
                          var mySwitchTime2=10000;
                          var myTabPort2="8084";
                          var myURL2="http://192.168.178.67:8084/vis/index.html#Dachgeschoss"
                           
                          /*für reload page*/
                          if (location.port==myTabPort2) {
                             
                              setTimeout(function() {
                               if (!remindSwitchTab2)  window.location.href = myURL2;
                                 console.log("wait");
                             }, mySwitchTime2)
                          }
                           
                          /*nach klick wieder reaktiviert*/
                          $(window).click(function(e) {
                             if (!remindSwitchTab2 && location.port==myTabPort2){
                                 remindSwitchTab2=true;
                                 console.log("in href change 2 timer "+mySwitchTime2+" sek");
                              setTimeout(function() {
                                window.location.href = myURL2;
                                 console.log("finished for href change 2");
                                 remindSwitchTab2=false;
                                 
                             }, mySwitchTime2)
                           
                             }
                          });
                          

                          FullyBrowser beide bei v1.46 & es ist jeweils
                          http://192.168.178.67:8083/vis/index.html#Wohnung
                          http://192.168.178.67:8084/vis/index.html#Dachgeschoss
                          eingetragen

                          es wird auf keine anderen Gerät zum selben Zeitpunkt irgendeine VIS Instanz ausgeführt. (auf keinen der 3 Ports)

                          Zeit ist auf 30 & 10 Sekunden. OHNE ERFOLG 😞

                          WENN ich aber in Chrome im selben Browser 2 Tabs mit den dazugehörigen Ports öffne funktioniert es (auch wenn Sie noch im Fully geöffnet sind).
                          Also irgendwas passt nicht... scheint ja irgend eine Einstellung im Fully zu sein.

                          liv-in-sky 4 Replies Last reply Reply Quote 0
                          • liv-in-sky
                            liv-in-sky @m0uh last edited by

                            @m0uh

                            ich kann es nur zum teil nachstellen - prüfe auch gerade mit 2 pc browser, handy und 2 tablets

                            bis auf ein tablet funktioniert es bei den andren 4'ren

                            alle haben verschiedene android systeme

                            ich kann den fehler auch nicht definieren - entweder webview oder , wie du sagst, ein setting von fully. wobei ich bei den tablets das selbe setting eingespielt habe

                            füge mal zum test in zeile 24 und 57 das hier ein: location.reload(true);

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

                              @m0uh ich überlege nochmal, ob mir eine andere struktur einfällt, um fully zu überlisten

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

                                @m0uh

                                NEUER VERSUCH:

                                erstes script wie gehabt im vis script tab:

                                
                                
                                
                                
                                
                                
                                /*SCHALTET ZURÜCK AUF VIEW DES ZIMMERS 1*/
                                
                                
                                var myTabPort1="8072";
                                var myURL1="http://192.168.178.59:8072/vis/index.html?speedy3#dives"
                                
                                /*für reload page*/
                                if (location.port==myTabPort1) {
                                
                                   setInterval(function() {
                                    	var Self = this;
                                Self.servConn.getStates('0_userdata.0.vis.visSchaltenTablet1', (error, states) => {  console.log(states['0_userdata.0.vis.visSchaltenTablet1'].val);
                                      if(!states['0_userdata.0.vis.visSchaltenTablet1'].val) window.location.href = myURL1;
                                } );
                                  
                                    
                                }, 10000); 
                                   
                                   
                                }
                                
                                /*nach klick wieder reaktiviert*/
                                $(window).click(function(e) {
                                    if ( location.port==myTabPort1){
                                    vis.setValue('0_userdata.0.vis.visSchaltenTablet1',true);
                                    vis.setValue('0_userdata.0.vis.visTablet1Port',location.port);
                                    }
                                   
                                
                                });
                                
                                /*ENDE ----- SCHALTET ZURÜCK AUF VIEW DES ZIMMERS/TABLETS2*/
                                
                                /*SCHALTET ZURÜCK AUF VIEW DES ZIMMERS 2*/
                                
                                
                                var myTabPort2="8082";
                                var myURL2="http://192.168.178.59:8082/vis/index.html?speedy3#111"
                                
                                /*für reload page*/
                                if (location.port==myTabPort2) {
                                   
                                    setInterval(function() {
                                    	var Self = this;
                                Self.servConn.getStates('0_userdata.0.vis.visSchaltenTablet2', (error, states) => {  console.log(states['0_userdata.0.vis.visSchaltenTablet2'].val);
                                      if(!states['0_userdata.0.vis.visSchaltenTablet2'].val) window.location.href = myURL2;
                                } );
                                  
                                    
                                }, 10000);
                                }
                                
                                /*nach klick wieder reaktiviert*/
                                $(window).click(function(e) {
                                    if ( location.port==myTabPort2){
                                   vis.setValue('0_userdata.0.vis.visSchaltenTablet2',true);
                                   vis.setValue('0_userdata.0.vis.visTablet2Port',location.port);
                                    }
                                });
                                
                                /*ENDE ----- SCHALTET ZURÜCK AUF VIEW DES ZIMMERS/TABLETS2*/
                                
                                
                                

                                zweites script ist ein blockly:

                                • diesmal ist es wichtig, dass eine seite in nur einem browser läuft !!!! paralleles testen mit pc und tablet ist nicht möglich - also möglich schon, bringt aber das system durcheinander
                                • legt dp unter 0_userdata.0.vis... an - beim ersten start gibt es warnungen im log - dann ist's aber ok
                                • im blockly stellst du die zeit ein, wie lange es brauchen soll, bis umgeschaltet wird (+/- 10 sekunden (das liegt daran, dass die vis längstens 10 sek braucht, um den dp zu scannen - macht aber nix, da du ja im alltäglichen gebrauch, eine längere zeit hast, bis zurückgeschaltet wird

                                <xml xmlns="https://developers.google.com/blockly/xml">
                                 <block type="control" id="jiT=5gzt@D{jw:lQ/sRj" x="138" y="62">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                   <field name="OID">0_userdata.0.vis.visSchaltenTablet1</field>
                                   <field name="WITH_DELAY">FALSE</field>
                                   <value name="VALUE">
                                     <block type="logic_boolean" id="f6V4kE:Sv(lQq6?b/OXY">
                                       <field name="BOOL">FALSE</field>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="on" id="47Vgt73D7f*NJ?fzqZ)=">
                                       <field name="OID">0_userdata.0.vis.visSchaltenTablet1</field>
                                       <field name="CONDITION">true</field>
                                       <field name="ACK_CONDITION"></field>
                                       <statement name="STATEMENT">
                                         <block type="control" id="r=v=$LZ_)hp*[k2~.E?+">
                                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                           <field name="OID">0_userdata.0.vis.visSchaltenTablet1</field>
                                           <field name="WITH_DELAY">TRUE</field>
                                           <field name="DELAY_MS">20</field>
                                           <field name="UNIT">sec</field>
                                           <field name="CLEAR_RUNNING">TRUE</field>
                                           <value name="VALUE">
                                             <block type="logic_boolean" id="60cF{d0.+g+1R-it_}b7">
                                               <field name="BOOL">FALSE</field>
                                             </block>
                                           </value>
                                         </block>
                                       </statement>
                                     </block>
                                   </next>
                                 </block>
                                 <block type="control" id="$%;Pi^,ag:.sGy?9Y_*u" x="863" y="63">
                                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                   <field name="OID">0_userdata.0.vis.visSchaltenTablet2</field>
                                   <field name="WITH_DELAY">FALSE</field>
                                   <value name="VALUE">
                                     <block type="logic_boolean" id="Tf}*u!bzB$c5x)cj,gE/">
                                       <field name="BOOL">FALSE</field>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="on" id="XK~S*oR`-3UsKv8}:.gO">
                                       <field name="OID">0_userdata.0.vis.visSchaltenTablet2</field>
                                       <field name="CONDITION">true</field>
                                       <field name="ACK_CONDITION"></field>
                                       <statement name="STATEMENT">
                                         <block type="control" id="Yb3L,,bJRIk:~%63O3b2">
                                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                           <field name="OID">0_userdata.0.vis.visSchaltenTablet2</field>
                                           <field name="WITH_DELAY">TRUE</field>
                                           <field name="DELAY_MS">15</field>
                                           <field name="UNIT">sec</field>
                                           <field name="CLEAR_RUNNING">TRUE</field>
                                           <value name="VALUE">
                                             <block type="logic_boolean" id="rpb$-Bot}hJhz3dF~53u">
                                               <field name="BOOL">FALSE</field>
                                             </block>
                                           </value>
                                         </block>
                                       </statement>
                                     </block>
                                   </next>
                                 </block>
                                 <block type="create" id="HgG4/Uci^Q[F7JzyWH2r" x="112" y="388">
                                   <field name="NAME">0_userdata.0.vis.visSchaltenTablet1</field>
                                   <value name="VALUE">
                                     <block type="logic_boolean" id="Q=U*Oe.0!2h5.$/_z`d(">
                                       <field name="BOOL">FALSE</field>
                                     </block>
                                   </value>
                                   <value name="COMMON">
                                     <block type="text" id="5xS7/sF`Eu`$+05,%xs~">
                                       <field name="TEXT">{     "name": "visSchaltenTablet1",     "role": "",     "type": "boolean",     "desc": "Manuell erzeugt",     "read": true,     "write": true,     "def": false   }</field>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="create" id="k,#JlL_@Nk5.mCKE_1]d">
                                       <field name="NAME">0_userdata.0.vis.visTablet1Port</field>
                                       <value name="VALUE">
                                         <block type="text" id="Z?^1C.(4OIS`#cK3Xyhl">
                                           <field name="TEXT"></field>
                                         </block>
                                       </value>
                                       <value name="COMMON">
                                         <block type="text" id="b/AWg*F,.u3QRJ0VV{vO">
                                           <field name="TEXT">{     "name": "visTablet1Port",     "role": "",     "type": "string",     "read": true,     "write": true,     "desc": "Manuell erzeugt",     "def": ""   }</field>
                                         </block>
                                       </value>
                                     </block>
                                   </next>
                                 </block>
                                 <block type="create" id=".RM4[Jv28cn@Pbq1|9@H" x="837" y="363">
                                   <field name="NAME">0_userdata.0.vis.visSchaltenTablet2</field>
                                   <value name="VALUE">
                                     <block type="logic_boolean" id="o7kvz#@SSDlT2q463d|r">
                                       <field name="BOOL">FALSE</field>
                                     </block>
                                   </value>
                                   <value name="COMMON">
                                     <block type="text" id="ptK02b+_x56Z=%kPz1h/">
                                       <field name="TEXT">{     "name": "visSchaltenTablet2",     "role": "",     "type": "boolean",     "desc": "Manuell erzeugt",     "read": true,     "write": true,     "def": false   }</field>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="create" id="by8cqSkHx~yLSS=MZ)z8">
                                       <field name="NAME">0_userdata.0.vis.visTablet2Port</field>
                                       <value name="VALUE">
                                         <block type="text" id="cQG;Lj`1x1-rGM`Io%*}">
                                           <field name="TEXT"></field>
                                         </block>
                                       </value>
                                       <value name="COMMON">
                                         <block type="text" id="3atbKpSXAs6tM+s=or!S">
                                           <field name="TEXT">{     "name": "visTablet2Port",     "role": "",     "type": "string",     "read": true,     "write": true,     "desc": "Manuell erzeugt",     "def": ""   }</field>
                                         </block>
                                       </value>
                                     </block>
                                   </next>
                                 </block>
                                </xml>
                                

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

                                  @m0uh läuft bei mir bis jetzt stabil

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

                                    @liv-in-sky Sorry war leider bisschen beschäftigt... werde das ganze die Woche mal testen und mich bei dir melden!

                                    DANKE schon mal!

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

                                      @m0uh dachte schon, du hast keine lust mehr 🙂

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

                                        @liv-in-sky ganz im Gegenteil aber bin derzeit geschäftlich unterwegs und das wird sich jetzt die nächsten 7 Wochen nicht ändern.... ich hoffe du gibst mich bis dahin nicht auf 😛 ich melde mich definitiv wenn ich das ganze mal in Ruhe getestet habe!

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

                                          @m0uh hoffentlich vergesse ich bis dahin nicht alles 🙂

                                          bei mir funktioniert es mit dem beiden neuen scripten - du meldest dicheinfach , wenn du wieder zeit hast

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          410
                                          Online

                                          32.0k
                                          Users

                                          80.4k
                                          Topics

                                          1.3m
                                          Posts

                                          3
                                          26
                                          1418
                                          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