Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. tr-064 v3.1.x (Latest Repo) Diskussion

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

tr-064 v3.1.x (Latest Repo) Diskussion

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
tr-064
295 Beiträge 50 Kommentatoren 47.1k Aufrufe 50 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • apollon77A apollon77

    @crunchip Findest Du im Log irgendwas von dem adapter nach dem letzten Zeitstempel?

    crunchipC Abwesend
    crunchipC Abwesend
    crunchip
    Forum Testing Most Active
    schrieb am zuletzt editiert von
    #202

    @apollon77 Im heutigen log taucht gar nichts auf, weder tr-64 noch fritzbox.
    Das ist das log, vom letzten Test/Anruf gestern

    2020-02-19 13:13:47.784 - info: fritzbox.0 (3268) data from 192.168.178.1: 19.02.20 13:13:47;RING;0;xxxxxxxx;xxxx;SIP0;
    2020-02-19 13:13:48.827 - info: sayit.0 (3070) saying: xxxxxxx ruft gerade an.
    2020-02-19 13:13:49.073 - info: sayit.0 (3070) Set "chromecast.0.Google_Home_mini.player.announcement to {"url":"http://10.1.1.10:8082/state/sayit.0.tts.mp3","volume":60}
    2020-02-19 13:14:03.757 - info: fritzbox.0 (3268) data from 192.168.178.1: 19.02.20 13:14:03;DISCONNECT;0;0;
    2020-02-19 13:16:00.022 - info: host.IoBroker instance system.adapter.dwd.0 started with pid 11203
    2020-02-19 13:16:05.236 - info: host.IoBroker instance system.adapter.dwd.0 terminated with code 0 (NO_ERROR)
    2020-02-19 13:18:56.478 - info: info.0 (1703) Popup news was read...
    2020-02-19 13:20:00.083 - info: host.IoBroker instance system.adapter.weatherunderground.0 started with pid 12442
    2020-02-19 13:20:08.684 - info: host.IoBroker instance system.adapter.weatherunderground.0 terminated with code 0 (NO_ERROR)
    2020-02-19 13:23:17.103 - info: fritzbox.0 (3268) data from 192.168.178.1: 19.02.20 13:23:17;RING;0;xxxxxxx;981400;SIP0;
    2020-02-19 13:23:18.173 - info: sayit.0 (3070) saying: xxxxxxxxx ruft gerade an.
    2020-02-19 13:23:18.378 - info: sayit.0 (3070) Set "chromecast.0.Google_Home_mini.player.announcement to {"url":"http://10.1.1.10:8082/state/sayit.0.tts.mp3","volume":60}
    2020-02-19 13:23:25.692 - info: fritzbox.0 (3268) data from 192.168.178.1: 19.02.20 13:23:25;DISCONNECT;0;0;
    2020-02-19 13:24:07.593 - info: fritzbox.0 (3268) data from 192.168.178.1: 19.02.20 13:24:07;CALL;0;0;xxxxx;xxxxxxxx;SIP0;
    2020-02-19 13:24:38.693 - info: fritzbox.0 (3268) data from 192.168.178.1: 19.02.20 13:24:38;DISCONNECT;0;0;
    2020-02-19 13:27:59.752 - info: fritzbox.0 (3268) data from 192.168.178.1: 19.02.20 13:27:59;CALL;0;0;xxxxx;xxxxxxxxx;SIP0;
    2020-02-19 13:28:18.208 - info: fritzbox.0 (3268) data from 192.168.178.1: 19.02.20 13:28:18;CONNECT;0;0;xxxxxxxxx;
    2020-02-19 13:28:26.370 - info: fritzbox.0 (3268) data from 192.168.178.1: 19.02.20 13:28:26;DISCONNECT;0;6;
    

    hier nach dem cronjob

    2020-02-20 00:01:00.016 - info: tr-064.0 (3240) Scheduled restart.
    2020-02-20 00:01:00.041 - info: tr-064.0 (3240) terminating
    2020-02-20 00:01:00.045 - info: tr-064.0 (3240) Terminated (START_IMMEDIATELY_AFTER_STOP): Without reason
    2020-02-20 00:01:00.620 - error: host.IoBroker instance system.adapter.tr-064.0 terminated with code 156 (156)
    2020-02-20 00:01:00.620 - info: host.IoBroker Restart adapter system.adapter.tr-064.0 because enabled
    2020-02-20 00:01:01.678 - info: host.IoBroker instance system.adapter.tr-064.0 started with pid 21837
    2020-02-20 00:01:04.336 - info: tr-064.0 (21837) starting. Version 3.1.4 in /opt/iobroker/node_modules/iobroker.tr-064, node: v10.19.0
    

    umgestiegen von Proxmox auf Unraid

    apollon77A 1 Antwort Letzte Antwort
    0
    • wendy2702W wendy2702

      @crunchip sagte in tr-064 v3.1.x (Latest Repo) Diskussion:

      @dslraser
      Ich hatte ja den Fritzbox Adapter laufen, jedoch damals, glaub bei Umstellung auf den js-controller 2.x, warf der Fritzbox Adapter einige Fehler und bekam ihn nicht mehr zum laufen und da ich ihn eigentlich eh nicht in Verwendung hatte, habe ich ihn gelöscht.
      Das gleich, mit dem alten (soef) tr-64, dieser lief ohne Probleme, bekam ich auch nicht mehr zum laufen, mit dem Controller Update, daher der Wechsel auf den Community. Dieser lief genauso bescheiden, wie der Jetzige tr-64.
      Zeitgleich hatte ich diese nicht laufen.

      Hast du nur die Instanz nicht laufen aber vielleicht noch eine Instanz und/oder die Adapter installiert?

      Ich glaube das ist es was @dslraser meint.

      Bei mir läuft der Adapter inklusive Ansage Script seit erscheinen Problemlos.

      crunchipC Abwesend
      crunchipC Abwesend
      crunchip
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #203

      @wendy2702 nein, es ist nur der tr-64 instaliert.
      nochmal die Reihenfolge
      tr-64 lief in der alten Version, nach Umstellung (js-controller) war das soef Problem, daher zusätzlich den community installiert, der alte war ausgeschaltet. Einige Tage laufen lassen, mit dem Community, dann habe ich den alten tr-64 gelöscht.
      nachdem der alte wiederbelebt wurde, habe ich diesen Installiert und danach den Community gelöscht.
      als einzigstes "Überbleibsel" hab ich die meta noch drin stehen, dazu hatte ich aber glaub ich, auch schon gefragt, ob das so richtig ist, aber keine Antwort bekommen
      659f65da-0cce-42d8-a213-588dde1f7176-image.png

      umgestiegen von Proxmox auf Unraid

      dslraserD 1 Antwort Letzte Antwort
      0
      • crunchipC crunchip

        @wendy2702 nein, es ist nur der tr-64 instaliert.
        nochmal die Reihenfolge
        tr-64 lief in der alten Version, nach Umstellung (js-controller) war das soef Problem, daher zusätzlich den community installiert, der alte war ausgeschaltet. Einige Tage laufen lassen, mit dem Community, dann habe ich den alten tr-64 gelöscht.
        nachdem der alte wiederbelebt wurde, habe ich diesen Installiert und danach den Community gelöscht.
        als einzigstes "Überbleibsel" hab ich die meta noch drin stehen, dazu hatte ich aber glaub ich, auch schon gefragt, ob das so richtig ist, aber keine Antwort bekommen
        659f65da-0cce-42d8-a213-588dde1f7176-image.png

        dslraserD Offline
        dslraserD Offline
        dslraser
        Forum Testing Most Active
        schrieb am zuletzt editiert von
        #204

        @crunchip
        hm...wenn es alle Varianten nicht tun, dann deutet es ja fast auf die Fritte selbst hin ? Aber wie gesagt, alles nur Vermutungen. Ohne Fehler im LOG, wie will man da auch was finden...

        1 Antwort Letzte Antwort
        0
        • apollon77A apollon77

          @crunchip bzw versuch malden Fix bei dir manuell einzubauen

          https://github.com/iobroker-community-adapters/ioBroker.tr-064/commit/17acbc4aca960ca911087b8830ace84e4dd5a49c

          da hatte ich mal ne exception gesehn die ggf für sowas verantwortlich sein könnte

          crunchipC Abwesend
          crunchipC Abwesend
          crunchip
          Forum Testing Most Active
          schrieb am zuletzt editiert von Negalein
          #205

          @apollon77 du bist witzig:grin:
          wo und wie pack ich das rein?
          das ist die aktuelle callmonitor.js

          /* jshint -W097 */
          /* jshint strict: false */
          /* jslint node: true */
          'use strict';
          
          const CALLMONITOR_NAME = 'callmonitor';
          const enableConnect1012 = '--- To use the callmonitor, enable connects to port 1012 on FritzBox by dialing #96*5* with a directly connected phone (line/dect) and restart this adapter';
          
          function checkPatchForECONNREFUSED(adapter) {
             if (process || process.version) {
                 const ar = process.version.split('.');
                 if (ar[0].indexOf('v') === 0) {
                     ar[0] = ar[0].substr(1);
                 }
                 let version = 0;
                 for (let i = 0; i < ar.length; i++) {
                     version *= 1000;
                     version += ~~ar[i];
                 }
                 if (version >= 6000000) return;
             }
          
             const util = require('util');
             const old_errnoException = util._errnoException;
             util._errnoException = function (err, syscall, original) {
                 if (typeof original === 'string' && original.indexOf(':1012') >= 0) {
                     adapter.log.error('--- ECONNREFUSED ' + original);
                     adapter.log.error(enableConnect1012);
                 }
                 return old_errnoException(err, syscall, original);
             };
          }
          
          const pauseStates = {
             inbound:  'ring',
             lastCall: 'end',
             connect:  'connect'
          };
          
          function CallMonitor(adapter, devices, phonebook) {
             if (!adapter.config.useCallMonitor) {
                 return;
             }
             adapter.log.debug('starting callmonitor');
             checkPatchForECONNREFUSED(adapter);
          
             const net = require('net');
             const connections = {};
             let timeout;
             let lastCaller;
             let lastCallee;
             let client;
          
             devices.root.createNew(CALLMONITOR_NAME + '.toPauseState', {val: '', common: {name: 'On call states', desc: 'State to pause players. values are: ring, connect, end'}});
          
             function init() {
                 client = new net.Socket();
          
                 client.on('connect', () =>
                     adapter.log.debug('callmonitor connected'));
          
                 client.on('error', err => {
                     if (err.errno === 'ECONNREFUSED') {
                         adapter.log.error(enableConnect1012);
                         this.close();
                     }
                 });
          
                 client.on('close', _hadError => {
                     timeout && clearTimeout(timeout);
                     timeout = setTimeout(() => {
                         timeout = null;
                         init();
                     }, adapter.config.reconnectInterval || 5000);
                 });
          
                 client.on('data', data => {
                     const raw = data.toString();
                     adapter.log.debug('Callmonitor Raw: ' + raw);
                     const array = raw.split(';');
                     const type = array[1];
                     const id = array[2];
                     const timestamp = array[0];
                     let message;
                     //var dev = new devices.CDevice(0, '');
                     //dev.setDevice(CALLMONITOR_NAME, {common: {name: CALLMONITOR_NAME, role: 'channel'}, native: {} });
                     const dev = new devices.CDevice(CALLMONITOR_NAME, '');
                     dev.force = true;
                     let timer = null;
          
                     function set(name) {
                         //const dev = new devices.CDevice(CALLMONITOR_NAME, '');
                         //dev.force = true;
                         timer && clearTimeout(timer);
                         timer = null;
          
                         adapter.log.debug('New Call data ' + name + ': ' + JSON.stringify(message));
                         dev.setChannel('', '');
                         dev.set('ringing', name === 'inbound');
          
                         // var pause = pauseStates[name];
                         // if (pause !== undefined) {
                         //     dev.set('toPauseState', pause);
                         // }
          
                         dev.setChannel(name, name);
                         for (const i in message) {
                             if (i[0] !== '_') {
                                 dev.set(i, message[i]);
                             }
                         }
                         dev.set('timestamp', timestamp);
                         message._type = name;
                         if (adapter.config.usePhonebook && phonebook) {
                             if (lastCaller !== message.caller) {
                                 lastCaller = message.caller;
                             }
                             if (!message.callerName && message.caller) {
                                 const pbe = phonebook.byNumber(message.caller);
                                 if (pbe) {
                                     message.callerName = pbe.name;
                                     if (pbe.imageurl) {
                                         message.imageurlcaller = pbe.imageurl;
                                     }
                                 } else {
                                     message.callerName = '';
                                 }
                             }
                             dev.set('callerName', message.callerName || '');
          
                             if (lastCallee !== message.callee) {
                                 lastCallee = message.callee;
                             }
          
                             if (!message.calleeName && message.callee) {
                                 const pbee = phonebook.byNumber(message.callee);
                                 if (pbee) {
                                     message.calleeName = pbee.name;
                                     if (pbee.imageurl) message.imageurlcallee = pbee.imageurl;
                                 } else {
                                     message.calleeName = '';
                                 }
                             }
                             dev.set('calleeName', message.calleeName || '');
                         }
          
                         dev.set('json', JSON.stringify(message));
          
                         dev.setChannel('', '');
                         const pause = pauseStates[name];
                         if (pause !== undefined) {
                             dev.set('toPauseState', pause);
                             message.extension && dev.set('toPauseState-' + message.extension, pause);
                         }
          
                         // soef.getHttpData(message.imageurlcaller, function (err, body, res) {
                         //     res = res;
                         // })
                         adapter.log.debug('callMonitor.set: type=' + name + ' caller=' + message.caller + ' callee=' + message.callee + (message.callerName ? ' callerName=' + message.callerName : '') + (message.calleeName ? ' calleeName=' + message.calleeName : ''));
                         timer = setTimeout(() => {
                             dev.update();
                             devices.update();
                         }, 500);
                     }
          
                     switch (type) {
                         case 'CALL':
                             message = {caller: array[4], callee: array[5], extension: array[3], timestamp, id};
                             connections[id] = message;
                             set('outbound');
                             break;
          
                         case 'RING':
                             message = {caller: array[3], callee: array[4], timestamp, id};
                             connections[id] = message;
                             set('inbound');
                             break;
          
                         case 'CONNECT':
                             message = connections[id];
                             if (!message) {
                                 break;
                             }
                             message.extension = array[3];
                             set('connect');
                             break;
          
                         case 'DISCONNECT':
                             message = connections[id];
                             if (!message) {
                                 break;
                             }
                             switch (message._type) {
                                 case 'inbound':
                                     message.type = 'missed';
                                     break;
                                 case 'connect':
                                     message.type = 'disconnect';
                                     break;
                                 case 'outbound':
                                     message.type = 'unreached';
                                     break;
                             }
                             message.duration = array[3] >> 0;
                             //set('disconnect');
                             set('lastCall');
                             delete connections[id];
                             break;
                     }
                 });
          
                 client.connect({
                     host: adapter.config.ip,
                     port: 1012
                 })
                     .on('error', error =>
                         adapter.log.error('Cannot start ' + CALLMONITOR_NAME + ': ' + error));
             }
          
             this.close = function () {
                 if (client) {
                     try {
                         client.removeAllListeners();
                         client.destroy();
                     } catch (e) {
          
                     }
                     client = null;
                 }
                 timeout && clearTimeout(timeout);
                 timeout = null;
             };
          
             init();
          
             return this;
          }
          
          module.exports = CallMonitor;
          

          umgestiegen von Proxmox auf Unraid

          apollon77A 1 Antwort Letzte Antwort
          0
          • wendy2702W Online
            wendy2702W Online
            wendy2702
            schrieb am zuletzt editiert von
            #206

            kannst du mal auf Konsolen ebene schauen ob es den wirklich nur einmal gibt?

            iobroker list adapters
            

            Bitte keine Fragen per PN, die gehören ins Forum!

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            crunchipC 1 Antwort Letzte Antwort
            0
            • wendy2702W wendy2702

              kannst du mal auf Konsolen ebene schauen ob es den wirklich nur einmal gibt?

              iobroker list adapters
              
              crunchipC Abwesend
              crunchipC Abwesend
              crunchip
              Forum Testing Most Active
              schrieb am zuletzt editiert von
              #207

              @wendy2702 gibt nur den einen
              system.adapter.tr-064 : tr-064 - v3.1.4

              umgestiegen von Proxmox auf Unraid

              1 Antwort Letzte Antwort
              0
              • crunchipC crunchip

                @apollon77 du bist witzig:grin:
                wo und wie pack ich das rein?
                das ist die aktuelle callmonitor.js

                /* jshint -W097 */
                /* jshint strict: false */
                /* jslint node: true */
                'use strict';
                
                const CALLMONITOR_NAME = 'callmonitor';
                const enableConnect1012 = '--- To use the callmonitor, enable connects to port 1012 on FritzBox by dialing #96*5* with a directly connected phone (line/dect) and restart this adapter';
                
                function checkPatchForECONNREFUSED(adapter) {
                   if (process || process.version) {
                       const ar = process.version.split('.');
                       if (ar[0].indexOf('v') === 0) {
                           ar[0] = ar[0].substr(1);
                       }
                       let version = 0;
                       for (let i = 0; i < ar.length; i++) {
                           version *= 1000;
                           version += ~~ar[i];
                       }
                       if (version >= 6000000) return;
                   }
                
                   const util = require('util');
                   const old_errnoException = util._errnoException;
                   util._errnoException = function (err, syscall, original) {
                       if (typeof original === 'string' && original.indexOf(':1012') >= 0) {
                           adapter.log.error('--- ECONNREFUSED ' + original);
                           adapter.log.error(enableConnect1012);
                       }
                       return old_errnoException(err, syscall, original);
                   };
                }
                
                const pauseStates = {
                   inbound:  'ring',
                   lastCall: 'end',
                   connect:  'connect'
                };
                
                function CallMonitor(adapter, devices, phonebook) {
                   if (!adapter.config.useCallMonitor) {
                       return;
                   }
                   adapter.log.debug('starting callmonitor');
                   checkPatchForECONNREFUSED(adapter);
                
                   const net = require('net');
                   const connections = {};
                   let timeout;
                   let lastCaller;
                   let lastCallee;
                   let client;
                
                   devices.root.createNew(CALLMONITOR_NAME + '.toPauseState', {val: '', common: {name: 'On call states', desc: 'State to pause players. values are: ring, connect, end'}});
                
                   function init() {
                       client = new net.Socket();
                
                       client.on('connect', () =>
                           adapter.log.debug('callmonitor connected'));
                
                       client.on('error', err => {
                           if (err.errno === 'ECONNREFUSED') {
                               adapter.log.error(enableConnect1012);
                               this.close();
                           }
                       });
                
                       client.on('close', _hadError => {
                           timeout && clearTimeout(timeout);
                           timeout = setTimeout(() => {
                               timeout = null;
                               init();
                           }, adapter.config.reconnectInterval || 5000);
                       });
                
                       client.on('data', data => {
                           const raw = data.toString();
                           adapter.log.debug('Callmonitor Raw: ' + raw);
                           const array = raw.split(';');
                           const type = array[1];
                           const id = array[2];
                           const timestamp = array[0];
                           let message;
                           //var dev = new devices.CDevice(0, '');
                           //dev.setDevice(CALLMONITOR_NAME, {common: {name: CALLMONITOR_NAME, role: 'channel'}, native: {} });
                           const dev = new devices.CDevice(CALLMONITOR_NAME, '');
                           dev.force = true;
                           let timer = null;
                
                           function set(name) {
                               //const dev = new devices.CDevice(CALLMONITOR_NAME, '');
                               //dev.force = true;
                               timer && clearTimeout(timer);
                               timer = null;
                
                               adapter.log.debug('New Call data ' + name + ': ' + JSON.stringify(message));
                               dev.setChannel('', '');
                               dev.set('ringing', name === 'inbound');
                
                               // var pause = pauseStates[name];
                               // if (pause !== undefined) {
                               //     dev.set('toPauseState', pause);
                               // }
                
                               dev.setChannel(name, name);
                               for (const i in message) {
                                   if (i[0] !== '_') {
                                       dev.set(i, message[i]);
                                   }
                               }
                               dev.set('timestamp', timestamp);
                               message._type = name;
                               if (adapter.config.usePhonebook && phonebook) {
                                   if (lastCaller !== message.caller) {
                                       lastCaller = message.caller;
                                   }
                                   if (!message.callerName && message.caller) {
                                       const pbe = phonebook.byNumber(message.caller);
                                       if (pbe) {
                                           message.callerName = pbe.name;
                                           if (pbe.imageurl) {
                                               message.imageurlcaller = pbe.imageurl;
                                           }
                                       } else {
                                           message.callerName = '';
                                       }
                                   }
                                   dev.set('callerName', message.callerName || '');
                
                                   if (lastCallee !== message.callee) {
                                       lastCallee = message.callee;
                                   }
                
                                   if (!message.calleeName && message.callee) {
                                       const pbee = phonebook.byNumber(message.callee);
                                       if (pbee) {
                                           message.calleeName = pbee.name;
                                           if (pbee.imageurl) message.imageurlcallee = pbee.imageurl;
                                       } else {
                                           message.calleeName = '';
                                       }
                                   }
                                   dev.set('calleeName', message.calleeName || '');
                               }
                
                               dev.set('json', JSON.stringify(message));
                
                               dev.setChannel('', '');
                               const pause = pauseStates[name];
                               if (pause !== undefined) {
                                   dev.set('toPauseState', pause);
                                   message.extension && dev.set('toPauseState-' + message.extension, pause);
                               }
                
                               // soef.getHttpData(message.imageurlcaller, function (err, body, res) {
                               //     res = res;
                               // })
                               adapter.log.debug('callMonitor.set: type=' + name + ' caller=' + message.caller + ' callee=' + message.callee + (message.callerName ? ' callerName=' + message.callerName : '') + (message.calleeName ? ' calleeName=' + message.calleeName : ''));
                               timer = setTimeout(() => {
                                   dev.update();
                                   devices.update();
                               }, 500);
                           }
                
                           switch (type) {
                               case 'CALL':
                                   message = {caller: array[4], callee: array[5], extension: array[3], timestamp, id};
                                   connections[id] = message;
                                   set('outbound');
                                   break;
                
                               case 'RING':
                                   message = {caller: array[3], callee: array[4], timestamp, id};
                                   connections[id] = message;
                                   set('inbound');
                                   break;
                
                               case 'CONNECT':
                                   message = connections[id];
                                   if (!message) {
                                       break;
                                   }
                                   message.extension = array[3];
                                   set('connect');
                                   break;
                
                               case 'DISCONNECT':
                                   message = connections[id];
                                   if (!message) {
                                       break;
                                   }
                                   switch (message._type) {
                                       case 'inbound':
                                           message.type = 'missed';
                                           break;
                                       case 'connect':
                                           message.type = 'disconnect';
                                           break;
                                       case 'outbound':
                                           message.type = 'unreached';
                                           break;
                                   }
                                   message.duration = array[3] >> 0;
                                   //set('disconnect');
                                   set('lastCall');
                                   delete connections[id];
                                   break;
                           }
                       });
                
                       client.connect({
                           host: adapter.config.ip,
                           port: 1012
                       })
                           .on('error', error =>
                               adapter.log.error('Cannot start ' + CALLMONITOR_NAME + ': ' + error));
                   }
                
                   this.close = function () {
                       if (client) {
                           try {
                               client.removeAllListeners();
                               client.destroy();
                           } catch (e) {
                
                           }
                           client = null;
                       }
                       timeout && clearTimeout(timeout);
                       timeout = null;
                   };
                
                   init();
                
                   return this;
                }
                
                module.exports = CallMonitor;
                

                apollon77A Offline
                apollon77A Offline
                apollon77
                schrieb am zuletzt editiert von
                #208

                @crunchip das links in dem GitHub Link auf der Seite sind die Zeilennummern. Rote sind gelöschte und grüne sind neue. Und es wird immer bissl mehr oben und unten drunter angezeigt. Das sollte reichen um die Stellen im Code zu finden. Alternativ Klick im GitHub oben rechts auf file anzeigen oder so und dort ggf raw. Dann kopierst du halt alles

                Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                crunchipC 1 Antwort Letzte Antwort
                0
                • crunchipC crunchip

                  @apollon77 Im heutigen log taucht gar nichts auf, weder tr-64 noch fritzbox.
                  Das ist das log, vom letzten Test/Anruf gestern

                  2020-02-19 13:13:47.784 - info: fritzbox.0 (3268) data from 192.168.178.1: 19.02.20 13:13:47;RING;0;xxxxxxxx;xxxx;SIP0;
                  2020-02-19 13:13:48.827 - info: sayit.0 (3070) saying: xxxxxxx ruft gerade an.
                  2020-02-19 13:13:49.073 - info: sayit.0 (3070) Set "chromecast.0.Google_Home_mini.player.announcement to {"url":"http://10.1.1.10:8082/state/sayit.0.tts.mp3","volume":60}
                  2020-02-19 13:14:03.757 - info: fritzbox.0 (3268) data from 192.168.178.1: 19.02.20 13:14:03;DISCONNECT;0;0;
                  2020-02-19 13:16:00.022 - info: host.IoBroker instance system.adapter.dwd.0 started with pid 11203
                  2020-02-19 13:16:05.236 - info: host.IoBroker instance system.adapter.dwd.0 terminated with code 0 (NO_ERROR)
                  2020-02-19 13:18:56.478 - info: info.0 (1703) Popup news was read...
                  2020-02-19 13:20:00.083 - info: host.IoBroker instance system.adapter.weatherunderground.0 started with pid 12442
                  2020-02-19 13:20:08.684 - info: host.IoBroker instance system.adapter.weatherunderground.0 terminated with code 0 (NO_ERROR)
                  2020-02-19 13:23:17.103 - info: fritzbox.0 (3268) data from 192.168.178.1: 19.02.20 13:23:17;RING;0;xxxxxxx;981400;SIP0;
                  2020-02-19 13:23:18.173 - info: sayit.0 (3070) saying: xxxxxxxxx ruft gerade an.
                  2020-02-19 13:23:18.378 - info: sayit.0 (3070) Set "chromecast.0.Google_Home_mini.player.announcement to {"url":"http://10.1.1.10:8082/state/sayit.0.tts.mp3","volume":60}
                  2020-02-19 13:23:25.692 - info: fritzbox.0 (3268) data from 192.168.178.1: 19.02.20 13:23:25;DISCONNECT;0;0;
                  2020-02-19 13:24:07.593 - info: fritzbox.0 (3268) data from 192.168.178.1: 19.02.20 13:24:07;CALL;0;0;xxxxx;xxxxxxxx;SIP0;
                  2020-02-19 13:24:38.693 - info: fritzbox.0 (3268) data from 192.168.178.1: 19.02.20 13:24:38;DISCONNECT;0;0;
                  2020-02-19 13:27:59.752 - info: fritzbox.0 (3268) data from 192.168.178.1: 19.02.20 13:27:59;CALL;0;0;xxxxx;xxxxxxxxx;SIP0;
                  2020-02-19 13:28:18.208 - info: fritzbox.0 (3268) data from 192.168.178.1: 19.02.20 13:28:18;CONNECT;0;0;xxxxxxxxx;
                  2020-02-19 13:28:26.370 - info: fritzbox.0 (3268) data from 192.168.178.1: 19.02.20 13:28:26;DISCONNECT;0;6;
                  

                  hier nach dem cronjob

                  2020-02-20 00:01:00.016 - info: tr-064.0 (3240) Scheduled restart.
                  2020-02-20 00:01:00.041 - info: tr-064.0 (3240) terminating
                  2020-02-20 00:01:00.045 - info: tr-064.0 (3240) Terminated (START_IMMEDIATELY_AFTER_STOP): Without reason
                  2020-02-20 00:01:00.620 - error: host.IoBroker instance system.adapter.tr-064.0 terminated with code 156 (156)
                  2020-02-20 00:01:00.620 - info: host.IoBroker Restart adapter system.adapter.tr-064.0 because enabled
                  2020-02-20 00:01:01.678 - info: host.IoBroker instance system.adapter.tr-064.0 started with pid 21837
                  2020-02-20 00:01:04.336 - info: tr-064.0 (21837) starting. Version 3.1.4 in /opt/iobroker/node_modules/iobroker.tr-064, node: v10.19.0
                  
                  apollon77A Offline
                  apollon77A Offline
                  apollon77
                  schrieb am zuletzt editiert von
                  #209

                  @crunchip heißt das vllt das nach einem scheduled restart das Problem da war und keine Daten mehr ankamen ? Dann wäre wieder debug log interessant ...

                  Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                  • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                  • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                  crunchipC 1 Antwort Letzte Antwort
                  0
                  • apollon77A apollon77

                    @crunchip das links in dem GitHub Link auf der Seite sind die Zeilennummern. Rote sind gelöschte und grüne sind neue. Und es wird immer bissl mehr oben und unten drunter angezeigt. Das sollte reichen um die Stellen im Code zu finden. Alternativ Klick im GitHub oben rechts auf file anzeigen oder so und dort ggf raw. Dann kopierst du halt alles

                    crunchipC Abwesend
                    crunchipC Abwesend
                    crunchip
                    Forum Testing Most Active
                    schrieb am zuletzt editiert von
                    #210

                    @apollon77 ok, werd ich testen

                    umgestiegen von Proxmox auf Unraid

                    1 Antwort Letzte Antwort
                    0
                    • apollon77A apollon77

                      @crunchip heißt das vllt das nach einem scheduled restart das Problem da war und keine Daten mehr ankamen ? Dann wäre wieder debug log interessant ...

                      crunchipC Abwesend
                      crunchipC Abwesend
                      crunchip
                      Forum Testing Most Active
                      schrieb am zuletzt editiert von crunchip
                      #211

                      @apollon77 der nächtliche Neustart wäre zumindest eine mögliche Fehlerquelle, dachte ja zuerst, das Fritzbox/Telekom aktualisiert hat und das der Grund wäre, aber ja nicht der Fall war.
                      jetzt könnt ich testen

                      • a) gucken, das ich ihn aktuell zum laufen bekomm und nehm den Neustart raus
                      • b) ich lass wie es ist und änder die Datei

                      @apollon77 sagte in tr-064 v3.1.x (Latest Repo) Diskussion:

                      Dann wäre wieder debug log interessant ...

                      könnte ich machen, falls ich so lange wach bin heute

                      umgestiegen von Proxmox auf Unraid

                      1 Antwort Letzte Antwort
                      0
                      • crunchipC Abwesend
                        crunchipC Abwesend
                        crunchip
                        Forum Testing Most Active
                        schrieb am zuletzt editiert von
                        #212

                        @apollon77 v3.2.0 gerade probiert

                        host.IoBroker	2020-02-21 08:26:54.076	info	Restart adapter system.adapter.tr-064.0 because enabled
                        host.IoBroker	2020-02-21 08:26:54.076	info	instance system.adapter.tr-064.0 terminated with code 0 (NO_ERROR)
                        host.IoBroker	2020-02-21 08:26:54.075	error	Caught by controller[0]: at process._tickCallback (internal/process/next_tick.js:68:7)
                        host.IoBroker	2020-02-21 08:26:54.075	error	Caught by controller[0]: at promise.then (/opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49)
                        host.IoBroker	2020-02-21 08:26:54.075	error	Caught by controller[0]: at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
                        host.IoBroker	2020-02-21 08:26:54.075	error	Caught by controller[0]: at (anonymous function).(anonymous function) (/opt/iobroker/node_modules/iobroker.objects-redis/index.js:17:71697)
                        host.IoBroker	2020-02-21 08:26:54.075	error	Caught by controller[0]: at objects.getObject (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:2491:65)
                        host.IoBroker	2020-02-21 08:26:54.075	error	Caught by controller[0]: at adapter.getForeignObject (/opt/iobroker/node_modules/iobroker.tr-064/main.js:115:13)
                        host.IoBroker	2020-02-21 08:26:54.074	error	Caught by controller[0]: at main (/opt/iobroker/node_modules/iobroker.tr-064/main.js:1119:49)
                        host.IoBroker	2020-02-21 08:26:54.074	error	Caught by controller[0]: ReferenceError: secret is not defined
                        tr-064.0	2020-02-21 08:26:53.526	info	(25256) Terminated (NO_ERROR): Without reason
                        tr-064.0	2020-02-21 08:26:53.525	info	(25256) terminating
                        tr-064.0	2020-02-21 08:26:53.495	error	(25256) ReferenceError: secret is not defined at main (/opt/iobroker/node_modules/iobroker.tr-064/main.js:1119:49) at adapter.getForeignObject (/opt/iobroker/node_modules/iobroker.tr-064/main.
                        tr-064.0	2020-02-21 08:26:53.494	error	(25256) uncaught exception: secret is not defined
                        tr-064.0	2020-02-21 08:26:53.251	info	(25256) starting. Version 3.2.0 in /opt/iobroker/node_modules/iobroker.tr-064, node: v10.19.0
                        host.IoBroker	2020-02-21 08:26:50.119	info	instance system.adapter.tr-064.0 started with pid 25256
                        host.IoBroker	2020-02-21 08:26:49.074	info	Restart adapter system.adapter.tr-064.0 because enabled
                        

                        umgestiegen von Proxmox auf Unraid

                        apollon77A 1 Antwort Letzte Antwort
                        0
                        • crunchipC crunchip

                          @apollon77 v3.2.0 gerade probiert

                          host.IoBroker	2020-02-21 08:26:54.076	info	Restart adapter system.adapter.tr-064.0 because enabled
                          host.IoBroker	2020-02-21 08:26:54.076	info	instance system.adapter.tr-064.0 terminated with code 0 (NO_ERROR)
                          host.IoBroker	2020-02-21 08:26:54.075	error	Caught by controller[0]: at process._tickCallback (internal/process/next_tick.js:68:7)
                          host.IoBroker	2020-02-21 08:26:54.075	error	Caught by controller[0]: at promise.then (/opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49)
                          host.IoBroker	2020-02-21 08:26:54.075	error	Caught by controller[0]: at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
                          host.IoBroker	2020-02-21 08:26:54.075	error	Caught by controller[0]: at (anonymous function).(anonymous function) (/opt/iobroker/node_modules/iobroker.objects-redis/index.js:17:71697)
                          host.IoBroker	2020-02-21 08:26:54.075	error	Caught by controller[0]: at objects.getObject (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:2491:65)
                          host.IoBroker	2020-02-21 08:26:54.075	error	Caught by controller[0]: at adapter.getForeignObject (/opt/iobroker/node_modules/iobroker.tr-064/main.js:115:13)
                          host.IoBroker	2020-02-21 08:26:54.074	error	Caught by controller[0]: at main (/opt/iobroker/node_modules/iobroker.tr-064/main.js:1119:49)
                          host.IoBroker	2020-02-21 08:26:54.074	error	Caught by controller[0]: ReferenceError: secret is not defined
                          tr-064.0	2020-02-21 08:26:53.526	info	(25256) Terminated (NO_ERROR): Without reason
                          tr-064.0	2020-02-21 08:26:53.525	info	(25256) terminating
                          tr-064.0	2020-02-21 08:26:53.495	error	(25256) ReferenceError: secret is not defined at main (/opt/iobroker/node_modules/iobroker.tr-064/main.js:1119:49) at adapter.getForeignObject (/opt/iobroker/node_modules/iobroker.tr-064/main.
                          tr-064.0	2020-02-21 08:26:53.494	error	(25256) uncaught exception: secret is not defined
                          tr-064.0	2020-02-21 08:26:53.251	info	(25256) starting. Version 3.2.0 in /opt/iobroker/node_modules/iobroker.tr-064, node: v10.19.0
                          host.IoBroker	2020-02-21 08:26:50.119	info	instance system.adapter.tr-064.0 started with pid 25256
                          host.IoBroker	2020-02-21 08:26:49.074	info	Restart adapter system.adapter.tr-064.0 because enabled
                          
                          apollon77A Offline
                          apollon77A Offline
                          apollon77
                          schrieb am zuletzt editiert von
                          #213

                          @crunchip hat ja auch keiner gesagt das GitHub gerade nutzbar ist, oder?! ;-)

                          Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                          • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                          • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                          crunchipC 1 Antwort Letzte Antwort
                          0
                          • apollon77A apollon77

                            @crunchip hat ja auch keiner gesagt das GitHub gerade nutzbar ist, oder?! ;-)

                            crunchipC Abwesend
                            crunchipC Abwesend
                            crunchip
                            Forum Testing Most Active
                            schrieb am zuletzt editiert von
                            #214

                            @apollon77 stimmt, wollte es nur testen, da ich durch https://forum.iobroker.net/post/381090 darauf gekommen bin
                            diesbezüglich wollte ich es nur melden, bzw Bescheid geben:kissing_heart:

                            umgestiegen von Proxmox auf Unraid

                            1 Antwort Letzte Antwort
                            0
                            • wendy2702W Online
                              wendy2702W Online
                              wendy2702
                              schrieb am zuletzt editiert von
                              #215

                              Gestern eine Ansage komplett neu aufgesetzt.

                              TR-064 in Version 3.1.4 installiert, Benutzer auf Fritzbox eingerichtet und Haken gesetzt um TR064 Zugriff zu erlauben.

                              Direkt beim ersten Anruf wurden alle Datenpunkte angelegt und aktualisiert.

                              @crunchip : habe nicht alle Beiträge gelesen aber der Haken für TR064 Zugriff in der Fritzbox ist noch drin?

                              Du könntest mal den Netzwerkverkehr mitschneiden zwischen Fritzbox und iobroker.

                              Entweder hier: http://fritz.box/html/capture.html oder mit Wireshark im Netzwerk schnüffeln um zu sehen wer wann nicht antwortet.

                              Bitte keine Fragen per PN, die gehören ins Forum!

                              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                              crunchipC 1 Antwort Letzte Antwort
                              0
                              • wendy2702W wendy2702

                                Gestern eine Ansage komplett neu aufgesetzt.

                                TR-064 in Version 3.1.4 installiert, Benutzer auf Fritzbox eingerichtet und Haken gesetzt um TR064 Zugriff zu erlauben.

                                Direkt beim ersten Anruf wurden alle Datenpunkte angelegt und aktualisiert.

                                @crunchip : habe nicht alle Beiträge gelesen aber der Haken für TR064 Zugriff in der Fritzbox ist noch drin?

                                Du könntest mal den Netzwerkverkehr mitschneiden zwischen Fritzbox und iobroker.

                                Entweder hier: http://fritz.box/html/capture.html oder mit Wireshark im Netzwerk schnüffeln um zu sehen wer wann nicht antwortet.

                                crunchipC Abwesend
                                crunchipC Abwesend
                                crunchip
                                Forum Testing Most Active
                                schrieb am zuletzt editiert von
                                #216

                                @wendy2702 sagte in tr-064 v3.1.x (Latest Repo) Diskussion:

                                TR064 Zugriff in der Fritzbox ist noch drin?

                                ja klar, funktioniert ja auch wieder nach einem manuellen Neustart, hab versuchsweise mal den scheduled von 0:01 vorverlegt auf 23:58
                                mit wireshark kenn ich mich leider nicht aus

                                umgestiegen von Proxmox auf Unraid

                                1 Antwort Letzte Antwort
                                0
                                • wendy2702W Online
                                  wendy2702W Online
                                  wendy2702
                                  schrieb am zuletzt editiert von
                                  #217

                                  Mach doch mal den Mitschnitt auf der Fritzbox, also Mitschnitt starten, z.b. einen Anruf empfangen, Mitschnitt stoppen und log hier posten.

                                  Bitte keine Fragen per PN, die gehören ins Forum!

                                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                  crunchipC 1 Antwort Letzte Antwort
                                  0
                                  • wendy2702W wendy2702

                                    Mach doch mal den Mitschnitt auf der Fritzbox, also Mitschnitt starten, z.b. einen Anruf empfangen, Mitschnitt stoppen und log hier posten.

                                    crunchipC Abwesend
                                    crunchipC Abwesend
                                    crunchip
                                    Forum Testing Most Active
                                    schrieb am zuletzt editiert von
                                    #218

                                    @wendy2702 ok und was muss ich da anklicken zum mitschneiden?

                                    umgestiegen von Proxmox auf Unraid

                                    1 Antwort Letzte Antwort
                                    0
                                    • wendy2702W Online
                                      wendy2702W Online
                                      wendy2702
                                      schrieb am zuletzt editiert von wendy2702
                                      #219

                                      Starten für den "ethx" Port an denen dein Iobroker hängt.

                                      Habe mal versucht dein Historie mit dem Problem zu lesen.

                                      Hast du mal versucht alles was mit TR-064 zu tun hat zu löschen und neu zu installieren?

                                      Also Instanz löschen, Adapter löschen, alle Objekte löschen, iobroker bzw. iobroker rechner neu starten, dann Adapter installieren, Instanz erzeugen und konfigurieren?

                                      Was steht bei dir im Adapter drin, "fritz.box" oder die IP ?

                                      Mal zum testen Callmonitor in der Box deaktiviert, Fritzbox neustart, Callmonitor aktiviert ?

                                      Bitte keine Fragen per PN, die gehören ins Forum!

                                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                      crunchipC 2 Antworten Letzte Antwort
                                      0
                                      • wendy2702W wendy2702

                                        Starten für den "ethx" Port an denen dein Iobroker hängt.

                                        Habe mal versucht dein Historie mit dem Problem zu lesen.

                                        Hast du mal versucht alles was mit TR-064 zu tun hat zu löschen und neu zu installieren?

                                        Also Instanz löschen, Adapter löschen, alle Objekte löschen, iobroker bzw. iobroker rechner neu starten, dann Adapter installieren, Instanz erzeugen und konfigurieren?

                                        Was steht bei dir im Adapter drin, "fritz.box" oder die IP ?

                                        Mal zum testen Callmonitor in der Box deaktiviert, Fritzbox neustart, Callmonitor aktiviert ?

                                        crunchipC Abwesend
                                        crunchipC Abwesend
                                        crunchip
                                        Forum Testing Most Active
                                        schrieb am zuletzt editiert von
                                        #220

                                        @wendy2702 sagte in tr-064 v3.1.x (Latest Repo) Diskussion:

                                        alles was mit TR-064 zu tun hat zu löschen

                                        könnte ich mal versuchen, das artet jedoch dann etwas aus, da ich sämtliche Datenpunkte(Influx/Flot/Grafana)...alles wieder neu anlegen müsste

                                        @wendy2702 sagte in tr-064 v3.1.x (Latest Repo) Diskussion:

                                        "fritz.box" oder die IP

                                        IP-Adresse ist hinterlegt

                                        @wendy2702 sagte in tr-064 v3.1.x (Latest Repo) Diskussion:

                                        testen Callmonitor in der Box deaktiviert

                                        das wäre nochmal ne Option

                                        umgestiegen von Proxmox auf Unraid

                                        1 Antwort Letzte Antwort
                                        0
                                        • wendy2702W wendy2702

                                          Starten für den "ethx" Port an denen dein Iobroker hängt.

                                          Habe mal versucht dein Historie mit dem Problem zu lesen.

                                          Hast du mal versucht alles was mit TR-064 zu tun hat zu löschen und neu zu installieren?

                                          Also Instanz löschen, Adapter löschen, alle Objekte löschen, iobroker bzw. iobroker rechner neu starten, dann Adapter installieren, Instanz erzeugen und konfigurieren?

                                          Was steht bei dir im Adapter drin, "fritz.box" oder die IP ?

                                          Mal zum testen Callmonitor in der Box deaktiviert, Fritzbox neustart, Callmonitor aktiviert ?

                                          crunchipC Abwesend
                                          crunchipC Abwesend
                                          crunchip
                                          Forum Testing Most Active
                                          schrieb am zuletzt editiert von crunchip
                                          #221

                                          @wendy2702 sagte in tr-064 v3.1.x (Latest Repo) Diskussion:

                                          versucht alles was mit TR-064 zu tun hat zu löschen

                                          denke, hat damit nichts zu tun, da auch der fritzbox Adapter nicht aktualisiert

                                          .....und täglich grüsst das Murmeltier....:grin:

                                          • gestern die Option in der Fritzbox de/aktiviert
                                          • Adapter neugestartet, fritzbox.0, sowie tr-64.0.

                                          cronjob hatte ich bei beiden eingestellt, tr-64-- 23:58 und fritzbox--23:59, also bewusst mal vor 0:00
                                          hatte es laufe des Tages mehrfach gestestet, funktionierte den ganzen Tag, jedoch heute morgen wieder nicht,
                                          weder der fritzbox , noch der tr-64 aktualisieren, eingehende und ausgehende Anrufe getestet.

                                          beide Adapter manuell neugestartet und funktioniert wieder alles.
                                          werde den nächtlichen cronjob jetzt mal weglassen und testen ob es morgen aktualisiert.

                                          umgestiegen von Proxmox auf Unraid

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          811

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe