Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. tr-064 v3.1.x (Latest Repo) Diskussion

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • apollon77
      apollon77 @crunchip last edited by

      @crunchip kannst du mal auch andere States wenigstens loggen als trigger und nicht nur Ringring? Nicht das es nur an dem state liegt.

      crunchip 1 Reply Last reply Reply Quote 0
      • crunchip
        crunchip Forum Testing Most Active @apollon77 last edited by crunchip

        @apollon77 könnte ich theoretisch, wenn ich nen passenden DP finde zum triggern, der sich auch bei eingehendem Anruf aktualisiert. so wie es jedoch momentan überblicke, aktualisiert keiner der DP´s die in Frage kommen könnten zum triggern.
        Unabhängig davon, bleibt ja dennoch das Problem...das weder ein noch ausgehende Anrufe aktualisiert werden.
        Die tr-064.0.calllists.xyz.json nur aktualisieren nach einem neustart.
        ich sehe es ja an den Zeitstempeln ob eine Aktualisierung stattfand, aber ich beobachte das nochmal die Tage in Ruhe

        apollon77 X 2 Replies Last reply Reply Quote 0
        • apollon77
          apollon77 @crunchip last edited by

          @crunchip genau den json hätte ich hetzt genommen weil der an sich immer aktualisiert wird.

          1 Reply Last reply Reply Quote 0
          • Latzi
            Latzi last edited by

            @apollon77 ich bekomme bei meinem iPhone gelegentlich die Meldung:

            2020-02-19 07:12:33.622  - warn: tr-064.0 (755) forEachConfiguredDevice: in GetSpecificHostEntry 0(Latzi-iPhone/50:A6:7F:7D:FF:E2):Error: sendSOAPActionRequest Error action=GetSpecificHostEntry serviceType=urn:dslforum-org:service:Hosts:1: 500 - {"code":500}
            

            und dabei verschwindet kurzzeitig die Anwesenheit (im Zehntelskeunden-Bereich). Ist das bekannt und kann ich dagegen etwas tun? Die Android zeigen dieses Verhalten nicht.

            apollon77 1 Reply Last reply Reply Quote 0
            • apollon77
              apollon77 @Latzi last edited by

              @Latzi die letzten Erkenntnisse dazu waren das das passiert wenn der dhcp lease ausläuft. Hast du „immer gleich ip geben“ aktiviert?

              Latzi 1 Reply Last reply Reply Quote 0
              • Latzi
                Latzi @apollon77 last edited by Latzi

                @apollon77 ja, ist eingestellt

                c78f7907-2390-4e7d-93ef-8e47c6284bd9-grafik.png

                Edit: Mesh ist aktiv!

                apollon77 1 Reply Last reply Reply Quote 0
                • apollon77
                  apollon77 @Latzi last edited by

                  @Latzi Dann keine IDee... Die FB gibt den Fehler zurück ...

                  Latzi 1 Reply Last reply Reply Quote 0
                  • Latzi
                    Latzi @apollon77 last edited by

                    @apollon77 oje, schade. Trotzdem Danke 👍

                    1 Reply Last reply Reply Quote 0
                    • X
                      Xyolyp @crunchip last edited by

                      @crunchip Ich habe das gleiche Problem wie du. Wenn der Adapter ein paar Tage läuft tut er nichts mehr mit dem Callmonitor. Anwesenheit funktioniert weiter aber der Callmonitor steigt aus.

                      crunchip 1 Reply Last reply Reply Quote 0
                      • crunchip
                        crunchip Forum Testing Most Active @Xyolyp last edited by

                        @Xyolyp nachdem ich heute Nacht, den Adapter kurzfristig auf debug gestellt hatte, funktioniert aktuell wieder alles, habe heute Nachmittag dann verschiedene Szenarien durchgetestet. Alle states werden aktualisiert. Mal sehen, wie lange.
                        Werde die Tage mal genauer beobachten, vllt auch einen Zusammenhang zu finden, wenn die Fritzbox alle paar Tage seitens Telekom aktualisiert wird.

                        1 Reply Last reply Reply Quote 0
                        • crunchip
                          crunchip Forum Testing Most Active last edited by

                          aktueller Stand der Dinge, Anruf bekommen, keine Ansage, folglich, es wurde wieder nicht aktualisiert.
                          Fritzbox Ereignisse durchgesehen, nichts negatives
                          Verbindung der Fritzbox/Internetanbieter, wurde auch nichts aktualisiert

                          • die schlechte Nachricht, tr-64 wurde wieder nirgends ein state aktualisiert, Stand/Zeitstempel, letzter Anruf von gestern
                          • die ganz schlechte Nachricht, nun hat auch der Fritzbox Adapter nicht aktualisiert! Selber Stand/Zeitstempel von gestern
                          apollon77 2 Replies Last reply Reply Quote 0
                          • apollon77
                            apollon77 @crunchip last edited by

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

                            crunchip 1 Reply Last reply Reply Quote 0
                            • apollon77
                              apollon77 @crunchip last edited by

                              @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

                              0 Apollon77 committed to iobroker-community-adapters/ioBroker.tr-064
                              fix
                              crunchip 1 Reply Last reply Reply Quote 0
                              • wendy2702
                                wendy2702 @crunchip last edited by 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.

                                dslraser crunchip 2 Replies Last reply Reply Quote 0
                                • dslraser
                                  dslraser Forum Testing Most Active @wendy2702 last edited by

                                  @wendy2702
                                  ja, so meinte ich das. Probleme hatte ich, als zwei Varianten installiert waren, mit Instanzen, auch wenn nur eine Instanz aktiviert war. Aktuell habe ich nur den 3.4.1 installiert bzw. eine Instanz davon und die ist aktiv. Es gibt keine weitere (auch keine deaktivierte) Instanz.
                                  Aber trotzdem weiß ich nicht ob es da einen Zusammenhang gibt.

                                  1 Reply Last reply Reply Quote 0
                                  • crunchip
                                    crunchip Forum Testing Most Active @apollon77 last edited by

                                    @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
                                    
                                    apollon77 1 Reply Last reply Reply Quote 0
                                    • crunchip
                                      crunchip Forum Testing Most Active @wendy2702 last edited by

                                      @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

                                      dslraser 1 Reply Last reply Reply Quote 0
                                      • dslraser
                                        dslraser Forum Testing Most Active @crunchip last edited by

                                        @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 Reply Last reply Reply Quote 0
                                        • crunchip
                                          crunchip Forum Testing Most Active @apollon77 last edited by Negalein

                                          @apollon77 du bist witzig😁
                                          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;
                                          

                                          apollon77 1 Reply Last reply Reply Quote 0
                                          • wendy2702
                                            wendy2702 last edited by

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

                                            iobroker list adapters
                                            
                                            crunchip 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

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

                                            980
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            tr-064
                                            50
                                            295
                                            34005
                                            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