Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Anwesenheitscontrol basierend auf TR64 Adapter - Script

    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

    Anwesenheitscontrol basierend auf TR64 Adapter - Script

    This topic has been deleted. Only users with topic management privileges can see it.
    • Thomas Braun
      Thomas Braun Most Active @aXCell last edited by

      @axcell

      /usr/local/iobroker/

      Komischer Pfad. Auf /usr/local sollte nicht verlinkt werden.
      Node sauber installiert?

      which nodejs node npm && nodejs -v && node -v && npm -v && apt policy nodejs
      
      aXCell 1 Reply Last reply Reply Quote 0
      • aXCell
        aXCell @Thomas Braun last edited by aXCell

        @thomas-braun

        Ach so sorry, die Info fehlte:
        Ich bin auf MacOS unterwegs.

        aXCells-Mini:~ Alex$ which nodejs node npm && nodejs -v && node -v && npm -v &&
        

        ergibt:

        apt policy nodejs
        /usr/local/bin/node
        /usr/local/bin/npm
        
        
        Thomas Braun 1 Reply Last reply Reply Quote 0
        • Thomas Braun
          Thomas Braun Most Active @aXCell last edited by

          @axcell
          Bei MacOS kann das sein. Hab ich keinen Plan von.

          1 Reply Last reply Reply Quote 0
          • aXCell
            aXCell @aXCell last edited by aXCell

            @axcell said in Anwesenheitscontrol basierend auf TR64 Adapter - Script:

            .... und das LOG ist voller Fehlermeldungen 😞

            Beispiele der Fehler im LOG:

            javascript.0
            2021-08-16 17:39:51.086	error	at Object.writeFileSync (fs.js:1524:35)
            
            javascript.0
            2021-08-16 17:39:51.086	error	at Object.openSync (fs.js:498:3)
            
            javascript.0
            2021-08-16 17:39:51.081	error	Error in callback: Error: ENOENT: no such file or directory, open '/opt/iobroker/iobroker-data/Anwesenheiten.csv'
            
            javascript.0
            2021-08-16 20:13:11.105	warn	Read-only state "0_userdata.0.Anwesenheit.Status.persons.aXCell.offsetEntryLeave" has been written without ack-flag with value "11:19"
            
            javascript.0
            2021-08-16 20:13:11.104	warn	Read-only state "0_userdata.0.Anwesenheit.Status.persons.aXCell.isPresent" has been written without ack-flag with value "true"
            

            Was läuft da wieder mal schief bei mir?

            Vielen Dank für Ratschläge und Hinweise.

            Das Log wird leider trotz einiger Updates des Adapters immer noch mit "Fehlern" bzw. Warnungen gefüllt, wie z.B.

            0_userdata.0.Anwesenheit.Status.presentPersonsString" has been written without ack-flag with value
            

            Ja, ich habe den Log Level mittlerweile auf "error" gestellt, dennoch sind das ja Hinweise, das da irgendwas (bei mir zumindest) nicht ganz rund läuft mit dem Adapter.

            Gibt es da irgendwelche Hinweise von euch, wo ich ansetzten kann?

            VG aus Flensburg, Alex

            S 1 Reply Last reply Reply Quote 0
            • S
              SigiMOE @aXCell last edited by

              also ich bekomme aktuell auch eine WARN im Log:

              javascript.0
              2022-04-20 15:16:18.702	warn	Read-only state "0_userdata.0.Anwesenheit.Status.presentPersonsString" has been written without ack-flag with value "Sigi, Vanessa"
              
              javascript.0
              2022-04-20 15:16:18.702	warn	Read-only state "0_userdata.0.Anwesenheit.Status.allPresentPersonsCount" has been written without ack-flag with value "2"
              
              javascript.0
              2022-04-20 15:16:18.702	warn	Read-only state "0_userdata.0.Anwesenheit.Status.anyonePresent" has been written without ack-flag with value "true"
              
              javascript.0
              2022-04-20 15:16:18.702	warn	Read-only state "0_userdata.0.Anwesenheit.Status.presentPersonsHTML" has been written without ack-flag with value "<table style='width:100%'><thead><tr><th style='text-align:left;'>Name</th><th style='text-align:left;'>Status</th><th style='text-align:left;'>Kommt</th><th style='text-align:left;'>Geht</th></tr></thead><tbody><tr><td>Sigi</td><td><div class="mdui-green-bg mdui-state mdui-card">anwesend</div></td><td>20.04.2022 14:10:44</td><td>20.04.2022 13:44:40</td></tr><tr><td>Tim</td><td><div class="mdui-red-bg mdui-state mdui-card">abwesend</div></td><td>20.04.2022 15:07:34</td><td>20.04.2022 15:16:18</td></tr><tr><td>Vanessa</td><td><div class="mdui-green-bg mdui-state mdui-card">anwesend</div></td><td>19.04.2022 18:34:11</td><td>19.04.2022 17:39:09</td></tr></body></table>"
              
              javascript.0
              2022-04-20 15:16:18.702	warn	Read-only state "0_userdata.0.Anwesenheit.Status.presentPersonsJson" has been written without ack-flag with value "[{"Name":"Sigi","Status":"<span class='trStatusPresent'>anwesend</span>","Letzte Ankunft":"<span class='trRecentDate'>20.04.2022 14:10:44</span>","Letzte Abwesenheit":"20.04.2022 13:44:40","Dauer":"00:26"},{"Name":"Tim","Status":"<span class='trStatusLeave'>abwesend</span>","Letzte Ankunft":"20.04.2022 15:07:34","Letzte Abwesenheit":"<span class='trRecentDate'>20.04.2022 15:16:18</span>","Dauer":"16:23"},{"Name":"Vanessa","Status":"<span class='trStatusPresent'>anwesend</span>","Letzte Ankunft":"<span class='trRecentDate'>19.04.2022 18:34:11</span>","Letzte Abwesenheit":"19.04.2022 17:39:09","Dauer":"00:55"}]"
              
              javascript.0
              2022-04-20 15:16:18.701	warn	Read-only state "0_userdata.0.Anwesenheit.Status.persons.Vanessa.offsetEntryLeave" has been written without ack-flag with value "00:55"
              
              javascript.0
              2022-04-20 15:16:18.701	warn	Read-only state "0_userdata.0.Anwesenheit.Status.persons.Vanessa.isPresent" has been written without ack-flag with value "true"
              
              javascript.0
              2022-04-20 15:16:18.701	warn	Read-only state "0_userdata.0.Anwesenheit.Status.persons.Tim.offsetEntryLeave" has been written without ack-flag with value "16:23"
              
              javascript.0
              2022-04-20 15:16:18.701	warn	Read-only state "0_userdata.0.Anwesenheit.Status.persons.Tim.timeMostRecent" has been written without ack-flag with value "20.04.2022 15:16:18"
              
              javascript.0
              2022-04-20 15:16:18.701	warn	Read-only state "0_userdata.0.Anwesenheit.Status.persons.Tim.timeLastLeave" has been written without ack-flag with value "20.04.2022 15:16:18"
              
              javascript.0
              2022-04-20 15:16:18.700	warn	Read-only state "0_userdata.0.Anwesenheit.Status.persons.Tim.isPresent" has been written without ack-flag with value "false"
              
              javascript.0
              2022-04-20 15:16:18.700	warn	Read-only state "0_userdata.0.Anwesenheit.Status.persons.Sigi.offsetEntryLeave" has been written without ack-flag with value "00:26"
              
              javascript.0
              2022-04-20 15:16:18.700	warn	Read-only state "0_userdata.0.Anwesenheit.Status.persons.Sigi.isPresent" has been written without ack-flag with value "true"
              
              javascript.0
              2022-04-20 15:16:18.699	info	script.js.blockly-beispiele.Anwesenheit_TR_Skript: Tim geht, damit sind jetzt 2 Personen anwesend: Sigi, Vanessa
              

              Kann / muss ich da was tun ? Bzw. ist dies schlimm ? Weil funktionieren tut es ja offensichtlich.

              E 1 Reply Last reply Reply Quote 1
              • E
                emil70 @SigiMOE last edited by

                @sigimoe

                Kann ich bestätigen, nutze das script seit ein paar Wochen

                Javaadapter v8.8.3 wird genutzt

                PlatformBetriebssystem:linux
                Architektur:x64
                CPUs:4
                Geschwindigkeit:1501 MHz
                Modell:Intel(R) Celeron(R) CPU J3455 @ 1.50GHz
                RAM:11.5 GB
                System-Betriebszeit:216 T. 16:41:48
                Node.js:v18.20.4
                time:1730096843169
                timeOffset:-60
                NPM:10.8.2
                Adapter-Anzahl:544
                Datenträgergröße:3572.6 GB
                Freier Festplattenspeicher:2067.0 GB
                Aktive Instanzen:30
                Pfad:/opt/iobroker/
                Betriebszeit:59 T. 23:14:52
                aktiv:true
                _nodeCurrent:18.20.4
                _nodeNewest:18.20.4
                _nodeNewestNext:20.18.0
                _npmCurrent:10.8.2
                _npmNewest:10.7.0
                _npmNewestNext:10.8.2
                
                

                gibt es da eine Lösung für??

                1 Reply Last reply Reply Quote 0
                • L
                  looxer01 last edited by

                  @emil70
                  könnt ihr mal checken wie eure Datenpunkte angelegt wurden ?
                  Eigentlich sollte ja read:true und write:true sein.
                  Die Warnung deutete darauf hin, dass write:false steht.

                  Ich selber nutze das script nicht mehr, da ich auf Unifi umgestiegen bín.
                  Ich kann es also selber nicht so gut nachvollziehen.

                  vG Looxer

                  E 1 Reply Last reply Reply Quote 0
                  • E
                    emil70 @looxer01 last edited by emil70

                    @looxer01

                    Hatte ich mir heute morgen mal angesehen. Stehen Alle auf false

                    Screenshot 2024-10-29 at 18-43-59 objects - 4c5c1fa7680f.png

                    Somit wird man die Alle ändern müssen, denk ich

                    Edit: kann man das im script nicht anpassen?

                    L 1 Reply Last reply Reply Quote 0
                    • L
                      looxer01 @emil70 last edited by

                      @emil70
                      das ist ja schon so implementiert.
                      keine Ahnung, warum die States auf read only stehen.
                      kannst du die states löschen und das script neu starten ?
                      Dann nochmal checken bitte

                      (dann gehen aber deine von und geht zeiten verloren)

                      vG looxer

                      E 1 Reply Last reply Reply Quote 0
                      • E
                        emil70 @looxer01 last edited by

                        @looxer01
                        Ändert nix

                        Wo finde ich das im script?

                        L 1 Reply Last reply Reply Quote 0
                        • L
                          looxer01 @emil70 last edited by

                          @emil70

                          wenn die states angelegt werden, dann wird write: true gesetzt
                          ich sehe da keinen Fehler.

                          // Datenpunkte erzeugen
                          
                            createState(StateUser1, false, {read: true, write: true, type: 'boolean', name: 'Anwesenheit User1', desc: 'Anwesenheit User1'});
                            createState(StateUser2, false, {read: true, write: true, type: 'boolean', name: 'Anwesenheit User2', desc: 'Anwesenheit User2'});
                            createState(StateUser3, false, {read: true, write: true, type: 'boolean', name: 'Anwesenheit User3', desc: 'Anwesenheit User3'});
                            createState(StateUser4, false, {read: true, write: true, type: 'boolean', name: 'Anwesenheit User4', desc: 'Anwesenheit User4'});
                            createState(StateUser5, false, {read: true, write: true, type: 'boolean', name: 'Anwesenheit User5', desc: 'Anwesenheit User5'});
                            createState(StateUser6, false, {read: true, write: true, type: 'boolean', name: 'Anwesenheit User6', desc: 'Anwesenheit User6'});
                          
                            createState(StateUserString   , "Niemand", {read: true, write: true, type: 'string', name: 'Anwesenheit Userliste', desc: 'Anwesenheit Userliste'});
                            createState(StateUserAll      , false, {read: true, write: true, type: 'boolean', name: 'Anwesenheit alle User', desc: 'Anwesenheit alle User'});
                          
                            createState(StateUser1Geht    , CreationTime, {read: true, write: true, type: 'string', name: 'Anwesenheit Zeit ausloggen aus FB', desc: 'Zeit Verlassen User1'});
                            createState(StateUser1Kommt   , CreationTime, {read: true, write: true, type: 'string', name: 'Anwesenheit Zeit ausloggen in  FB', desc: 'Zeit kommen    User1'});
                            createState(StateUser2Geht    , CreationTime, {read: true, write: true, type: 'string', name: 'Anwesenheit Zeit ausloggen aus FB', desc: 'Zeit Verlassen User2'});
                            createState(StateUser2Kommt   , CreationTime, {read: true, write: true, type: 'string', name: 'Anwesenheit Zeit ausloggen in  FB', desc: 'Zeit kommen    User2'});
                            createState(StateUser3Geht    , CreationTime, {read: true, write: true, type: 'string', name: 'Anwesenheit Zeit ausloggen aus FB', desc: 'Zeit Verlassen User3'});
                            createState(StateUser3Kommt   , CreationTime, {read: true, write: true, type: 'string', name: 'Anwesenheit Zeit ausloggen in  FB', desc: 'Zeit kommen    User3'});
                            createState(StateUser4Geht    , CreationTime, {read: true, write: true, type: 'string', name: 'Anwesenheit Zeit ausloggen aus FB', desc: 'Zeit Verlassen User4'});
                            createState(StateUser4Kommt   , CreationTime, {read: true, write: true, type: 'string', name: 'Anwesenheit Zeit ausloggen in  FB', desc: 'Zeit kommen    User4'});
                            createState(StateUser5Geht    , CreationTime, {read: true, write: true, type: 'string', name: 'Anwesenheit Zeit ausloggen aus FB', desc: 'Zeit Verlassen User5'});
                            createState(StateUser5Kommt   , CreationTime, {read: true, write: true, type: 'string', name: 'Anwesenheit Zeit ausloggen in  FB', desc: 'Zeit kommen    User5'});
                            createState(StateUser6Geht    , CreationTime, {read: true, write: true, type: 'string', name: 'Anwesenheit Zeit ausloggen aus FB', desc: 'Zeit Verlassen User6'});
                            createState(StateUser6Kommt   , CreationTime, {read: true, write: true, type: 'string', name: 'Anwesenheit Zeit ausloggen in  FB', desc: 'Zeit kommen    User6'});
                            
                            createState(StateUserListeJason, CreationTime,{read: true, write: true, type: 'string', name: 'Anwesenheitsstatus Jason Liste', desc: 'UserListe als Jason'});
                          
                          E 1 Reply Last reply Reply Quote 0
                          • E
                            emil70 @looxer01 last edited by emil70

                            @looxer01

                            Den Part gibt es im script nicht.
                            Habe jetzt den

                            function buildScriptStates() {
                                let finalStates = [];
                                for (const lpDevice in DEVICES) {
                                    finalStates.push([FINAL_STATE_PATH + 'persons.' + cl(DEVICES[lpDevice]) + '.isPresent', {name: 'Is '+ cl(DEVICES[lpDevice]) + ' currently present?', type: 'boolean', read: true, write: false, def:false }]);
                                    finalStates.push([FINAL_STATE_PATH + 'persons.' + cl(DEVICES[lpDevice]) + '.timeLastLeave', {name: 'Time of last LEAVE of  ' + cl(DEVICES[lpDevice]), type: 'string', read: true, write: false, def:'' }]);
                                    finalStates.push([FINAL_STATE_PATH + 'persons.' + cl(DEVICES[lpDevice]) + '.timeLastEntry', {name: 'Time of last ENTRY of ' + cl(DEVICES[lpDevice]), type: 'string', read: true, write: false, def:'' }]);
                                    finalStates.push([FINAL_STATE_PATH + 'persons.' + cl(DEVICES[lpDevice]) + '.timeMostRecent', {name: 'Time of most recent entry or leave of ' + cl(DEVICES[lpDevice]), type: 'string', read: true, write: false, def:'' }]);
                                    finalStates.push([FINAL_STATE_PATH + 'persons.' + cl(DEVICES[lpDevice]) + '.offsetEntryLeave', {name:'Offset: Leave date/time - Entry date/time', type:'string', read:true, write:false, def:'' }]);
                                }
                                finalStates.push([FINAL_STATE_PATH + 'anyonePresent',          {name: 'Is any person present?', type: 'boolean', read: true, write: false, def: false }]);
                                finalStates.push([FINAL_STATE_PATH + 'presentPersonsString',   {name: 'List of present persons: String', type: 'string', read: true, write: false, def: '' }]);
                                finalStates.push([FINAL_STATE_PATH + 'presentPersonsJson',     {name: 'List of present persons: JSON', type: 'string', read: true, write: false, def: '' }]);
                                finalStates.push([FINAL_STATE_PATH + 'presentPersonsHTML',     {name: 'List of present persons: HTML', type: 'string', read: true, write: false, def: '' }]);
                                finalStates.push([FINAL_STATE_PATH + 'allPresentPersonsCount', {name:'Number of present persons', type: 'number', read: true, write: false, def: 0 }]);
                                if (SIMULATION_ACTIVE) finalStates.push([FINAL_STATE_PATH + 'presenceSimulationActive', {name: 'Presense Simulation Status', type: 'boolean', read: true, write: false, def: false }]);
                            
                                return finalStates;
                            }
                            

                            gefunden und da steht es write: false

                            ich pass das mal an und berichte

                            Das script ist von hier

                            Edit: Wenn ich den Part anpassen sind alle auf write: true

                            L 1 Reply Last reply Reply Quote 0
                            • L
                              looxer01 @emil70 last edited by

                              @emil70
                              aah ok, dann ist das script ja gar nicht aus diesem Thread.
                              Aber immerhin gelöst. gut so.

                              vG Looxer

                              E 1 Reply Last reply Reply Quote 0
                              • E
                                emil70 @looxer01 last edited by

                                @looxer01

                                Doch ist von hier
                                Beitrag 50

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                921
                                Online

                                31.8k
                                Users

                                80.0k
                                Topics

                                1.3m
                                Posts

                                33
                                115
                                19293
                                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