Weiter zum Inhalt

ioBroker Allgemein

29.9k Themen 440.2k Beiträge
Integrationtsplattform für IoT

NEWS

  • [gelöst] 100% CPU Last durch PowerShell Tasks aus iobroker

    9
    1
    0 Stimmen
    9 Beiträge
    600 Aufrufe
    Bernd1967B
    @sfolville Ist schon länger her aber Danke für den Tipp. Hab die Tage das selbe Problem gehabt. VM / Windows 11 / 64Bit / Core i7 / 32GByte Ram System war zu 100% ausgelastet mit diversen Powershell Prozessen. Hatte erst alles mögliche im Info Adapter abgeschaltet, hat aber nichts gebracht. Dann habe ich dein Tipp befolgt und Info Adapter gelöscht, neu erstellt und iob neu gestartet. Seit dem ist Ruhe.
  • VOIP Client für IOBroker

    4
    0 Stimmen
    4 Beiträge
    763 Aufrufe
    Q
    @funcarv3r Ich nutze den sip2mqtt docker container. Funktioniert wunderbar mit der Fritzbox und ioBroker. Ich musste allerdings das Skript anpassen. https://hub.docker.com/r/retrohunter/pjsip-docker Spoiler import sys import os as os import signal import logging import threading import time import re import argparse import json import pjsua as pj import paho.mqtt.client as mqtt global args def extract_caller_id(url): m = re.match(r"\"(.*)\".*:(.*)@", url) return m.group(1) + " " + phone_format(m.group(2)) def phone_format(phone_number): clean_phone_number = re.sub('[^0-9]+', '', phone_number) formatted_phone_number = '' try: # formatted_phone_number = re.sub("(\d)(?=(\d{3})+(?!\d))", r"\1-", "%d" % int(clean_phone_number[:-1])) + clean_phone_number[-1] formatted_phone_number = phone_number except: logging.warn( "Warning: unable to format " + clean_phone_number ) formatted_phone_number = clean_phone_number return formatted_phone_number def signal_handler(signal, frame): logging.info( 'Exiting...' ) logging.info( '-- Unregistering --' ) time.sleep(2) logging.info( '-- Destroying Libraries --' ) time.sleep(2) lib.destroy() sys.exit(0) # Method to print Log of callback class def log_cb(level, str, len): logging.debug("SIP debug: " + str), # Callback for an established MQTT broker connection def mqtt_connect(broker, userdata, flags, rc): logging.info("MQTT: Connected with the broker...") # Callback to receive events from account class SMAccountCallback(pj.AccountCallback): global args def __init__(self, account=None): pj.AccountCallback.__init__(self, account) self.args = args def on_reg_state(self): logging.info( "SIP: Registration complete, status=" + str(self.account.info().reg_status) + " (" + str(self.account.info().reg_reason) + ")" ) def on_incoming_call(self, call): # Unless this callback is implemented, the default behavior is to reject the call with default status code. logging.info( "SIP: Incoming call from " + extract_caller_id( call.info().remote_uri ) ) broker.publish(args.mqtt_topic, payload="{\"verb\": \"incoming\", \"caller\":\"" + extract_caller_id( call.info().remote_uri ) + "\", \"uri\":" + json.dumps(call.info().remote_uri) + "}", qos=0, retain=True) current_call = call call_cb = SMCallCallback(current_call) current_call.set_callback(call_cb) def on_pager(self, from_uri, contact, mime_type, body): logging.info( "SIP: Incoming SMS from " + from_uri ) broker.publish(args.mqtt_topic, payload="{\"verb\": \"sms\", \"caller\":\"" + from_uri + "\", \"body\":" + json.dumps(body) + "}", qos=0, retain=True) class SMCallCallback(pj.CallCallback): def __init__(self, call=None): pj.CallCallback.__init__(self, call) self.args = args # Notification when call state has changed def on_state(self): logging.info( 'SIP: Call state is: ' + self.call.info().state_text ) if self.call.info().state == pj.CallState.CONFIRMED: logging.info( 'SIP: Current call is answered' ) broker.publish(args.mqtt_topic, payload="{\"verb\": \"answered\", \"caller\":\"" + extract_caller_id( self.call.info().remote_uri ) + "\", \"uri\":" + json.dumps(self.call.info().remote_uri) + "}", qos=0, retain=True) elif self.call.info().state == pj.CallState.DISCONNECTED: logging.info( 'SIP: Current call has ended' ) broker.publish(args.mqtt_topic, payload="{\"verb\": \"disconnected\", \"caller\":\"\", \"uri\":\"\"}", qos=0, retain=True) def main(argv): global broker global pj global lib global args app_name="SIP2MQTT" parser = argparse.ArgumentParser(description='A SIP monitoring tool that publishes incoming calls with CallerID to an MQTT channel') requiredNamed = parser.add_argument_group('required named arguments') requiredNamed.add_argument("-a", "--mqtt_domain", type=str, required=True, help="the MQTT broker domain string", default=os.environ.get('MQTT_DOMAIN', None)) requiredNamed.add_argument("-t", "--mqtt_port", type=int, required=True, help="the MQTT broker port number", default=os.environ.get('MQTT_PORT', None)) parser.add_argument( "--mqtt_keepalive", type=int, required=False, help="the MQTT broker keep alive in seconds", default=60) parser.add_argument( "--mqtt_protocol", type=str, required=False, help="the MQTT broker protocol", default="MQTTv311", choices=['MQTTv31', 'MQTTv311']) requiredNamed.add_argument("-u", "--mqtt_username", type=str, required=True, help="the MQTT broker username", default=os.environ.get('MQTT_USERNAME', None)) requiredNamed.add_argument("-p", "--mqtt_password", type=str, required=False, help="the MQTT broker password", default=os.environ.get('MQTT_PASSWORD', None)) parser.add_argument( "--mqtt_topic", type=str, required=False, help="the MQTT broker topic", default=os.environ.get('MQTT_TOPIC', "home/sip")) requiredNamed.add_argument("-d", "--sip_domain", type=str, required=True, help="the SIP domain", default=os.environ.get('SIP_DOMAIN', None)) parser.add_argument( "--sip_port", type=int, required=False, help="the SIP transport port number", default=os.environ.get('SIP_PORT', 5060)) requiredNamed.add_argument("-n", "--sip_username", type=str, required=True, help="the SIP username", default=os.environ.get('SIP_USERNAME', None)) requiredNamed.add_argument("-s", "--sip_password", type=str, required=False, help="the SIP password", default=os.environ.get('SIP_PASSWORD', None)) parser.add_argument( "--sip_display", type=str, required=False, help="the SIP user display name", default=app_name) parser.add_argument( "--log_level", type=int, required=False, help="the application log level", default=3, choices=[0, 1, 2, 3]) parser.add_argument("-v", "--verbosity", action="count", help="increase output verbosity", default=3) args = parser.parse_args() log_level = logging.INFO #Deault logging level if args.verbosity == 1: log_level = logging.ERROR elif args.verbosity == 2: log_level = logging.WARN elif args.verbosity == 3: log_level = logging.INFO elif args.verbosity >= 4: log_level = logging.DEBUG # Configure logging # logging.basicConfig(filename="sip2mqtt.log", format="%(asctime)s - %(levelname)s - %(message)s", # datefmt="%m/%d/%Y %I:%M:%S %p", level=log_level) root = logging.getLogger() root.setLevel(log_level) # ch = logging.StreamHandler(sys.stdout) # ch.setLevel(log_level) # formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') # ch.setFormatter(formatter) # root.addHandler(ch) # A more docker-friendly approach is to output to stdout logging.basicConfig(stream=sys.stdout, format="%(asctime)s - %(levelname)s - %(message)s", datefmt="%m/%d/%Y %I:%M:%S %p", level=log_level) # Log startup messages and our configuration parameters logging.info("------------------------") logging.info("Starting up...") logging.info("--- MQTT Broker Configuration ---") logging.info("Domain: " + args.mqtt_domain) logging.info("Port: " + str(args.mqtt_port)) logging.info("Protocol: " + args.mqtt_protocol) logging.info("Username: " + args.mqtt_username) logging.info("Keepalive Interval: " + str(args.mqtt_keepalive)) logging.info("Status Topic: " + args.mqtt_topic) logging.info("--- SIP Configuration ---") logging.info("Domain: " + args.sip_domain) logging.info("Username: " + args.sip_username) logging.info("DisplayName: " + args.sip_display) try: # Handle mqtt connection and callbacks broker = mqtt.Client(client_id="", clean_session=True, userdata=None, protocol=eval("mqtt." + args.mqtt_protocol)) broker.username_pw_set(args.mqtt_username, password=args.mqtt_password) broker.on_connect = mqtt_connect #broker.on_message = mqtt_message #don't need this callback for now broker.connect(args.mqtt_domain, args.mqtt_port, args.mqtt_keepalive) # Create library instance of Lib class lib = pj.Lib() ua = pj.UAConfig() ua.user_agent = app_name mc = pj.MediaConfig() mc.clock_rate = 8000 lib.init(ua_cfg = ua, log_cfg = pj.LogConfig(level=args.verbosity, callback=None), media_cfg=mc) lib.create_transport(pj.TransportType.UDP, pj.TransportConfig(args.sip_port)) lib.set_null_snd_dev() lib.start() acc_cfg = pj.AccountConfig() acc_cfg.id = "sip:" + args.sip_username + "@" + args.sip_domain acc_cfg.reg_uri = "sip:" + args.sip_domain acc_cfg.auth_cred = [ pj.AuthCred("*", args.sip_username, args.sip_password) ] acc_cfg.allow_contact_rewrite = True acc = lib.create_account(acc_cfg) acc_cb = SMAccountCallback(acc) acc.set_callback(acc_cb) logging.info( "-- Registration Complete --" ) logging.info( 'SIP: Status = ' + str(acc.info().reg_status) + ' (' + acc.info().reg_reason + ')' ) except pj.Error, e: logging.critical( ("Exception: " + str(e)) ) lib.destroy() sys.exit(1) # Main work loop try: rc = broker.loop_start() if rc: logging.warn( "Warning: " + str(rc) ) signal.signal(signal.SIGINT, signal_handler) while True: time.sleep(1) broker.loop_stop() except Exception, ex: logging.critical("Exception: " + str(ex)) lib.destroy() sys.exit(1) # Get things started if __name__ == '__main__': main(sys.argv[1:])
  • Sonoff Basic seltsames Verhalten

    11
    0 Stimmen
    11 Beiträge
    350 Aufrufe
    ?
    @geschild Danke für die Rückmeldung. Habe mir nun 2 Stück bestellt und hoffe, dass ich das Ganze nun in den Griff bekomme, mal schauen.
  • [gelöst] Fehlermeldung bei Influxdb upgrade auf 2.x

    9
    0 Stimmen
    9 Beiträge
    829 Aufrufe
    Christian KohlöffelC
    @thomas-braun Hab das ganze nun wie von Dir im "Der Linux-Werkzeugkasten" beschrieben umgestellt und einen User angelegt. Im nächsten Schritt wie im Forum auch an anderer Stelle beschrieben den Fehler von apt-update korrigiert. Die genannte Fehlermeldung bei sudo -u influxdb influxd upgrade war zwar noch da, doch hat der update auf die 2.x Version trotzdem funktioniert. Super vielen Dank nochmals Ps: Wie kann ich das als gelöst markieren. Konnte leider nix finden ...
  • [gelöst] Backitup "Error: self-signed certificate"

    1
    3
    0 Stimmen
    1 Beiträge
    446 Aufrufe
    Niemand hat geantwortet
  • Fernwärmezähler - optischen ZVEI Schnittstelle

    71
    3
    0 Stimmen
    71 Beiträge
    14k Aufrufe
    M
    @panicman Achso, dann klappt das sicherlich mal. Meiner zeigt das nicht an. Hab auch ein anderes Gerät ähnlich dem Sharky, nur anderes Branding.
  • Vis nicht mehr Safari kompatibel nach Update auf MacOS 13.5

    vis
    5
    0 Stimmen
    5 Beiträge
    622 Aufrufe
    W
    @marty56 Hilft Dir jetzt wohl nix, aber bei mir funktioniert VIS auf allen Geräten (Macbook, Mac mini, iPad, iPhone) mit dem jeweils heute erschienenen OS-Update unter Safari nach wie vor problemlos. Hat sich bei Dir eventuell beim Update netzwerkmäßig was zurückgesetzt? Greifst Du per WLAN zu? Da wäre bei Macbooks unter WLAN der Punkt „Private WLAN-Adresse“, der im Heimnetzwerk besser deaktiviert sein sollte. Gruss, Jürgen
  • 0 Stimmen
    1 Beiträge
    276 Aufrufe
    Niemand hat geantwortet
  • Modbus BYD Fronius Symo Gen24

    3
    3
    0 Stimmen
    3 Beiträge
    467 Aufrufe
    T
    @arteck Ja sorry habe es auf 200 geändert aber es lag auch nicht daran. Habe die Fronius Firmware zurück auf die 1.25.2-1 gespielt und jetzt geht es. Danke euch.
  • Shelly Push Nachrichten an PC schicken?

    2
    0 Stimmen
    2 Beiträge
    463 Aufrufe
    DJMarc75D
    @schmello https://forum.iobroker.net/topic/50982/redesign-wiobrowser-für-windows
  • Zwave Stick von Aeotec

    5
    0 Stimmen
    5 Beiträge
    574 Aufrufe
    P
    @arteck Ach so, ich dachte das wäre ein Shop ;-) Danke nochmal!
  • [gelöst] Fehlermeldung aus "Sonos-Adapter"

    3
    0 Stimmen
    3 Beiträge
    285 Aufrufe
    B
    Da gab es schon einen Issue mit identischem Inhalt, aber gelabelt mit wontfix. Folgender workaround hat jetzt bei mir funktioniert: Instanz gelöscht und wieder neu hinzugefügt. Jetzt ist wieder alles gut.
  • Kamerabild per Telegram versenden u. LXC

    4
    2
    0 Stimmen
    4 Beiträge
    440 Aufrufe
    G
    @Wal: der Hinweis war sehr gut, somit konnte ich ausschließen, das es was mit den Rechten zu tun haben muss. @crunchip: habe ich gemacht, war aber nicht der entscheidende Punkt Ich hatte jetzt erst mal geschaut, was im Verzeichnis ipcam abgelegt wurde. Dabei musste ich feststellen, dass das Verzeichnis überhaupt nicht existiert. Habe jetzt das Verzeichnis angelegt und jetzt werden auch wieder Bilder geliefert, somit alles gut! :-) Danke Euch, somit konnte ich das Problem eingrenzen.
  • Homematic ReGa Adapter findet 2te RPC Instanz nicht...

    56
    2
    0 Stimmen
    56 Beiträge
    7k Aufrufe
    michael.puschM
    @bahnuhr @Homoran @uv-on-fire Man darf das Thema dank "uv-on-fire" als abgeschlossen betrachten ! Er hat den Fehler lokalisiert denn es hat sich tatsächlich eine komponente 00089D89BA0E68 als verursacher herauskristalisiert. Ein HMIP-FSM unserer Terassenbeleuchtung. Dieser zeigte mir zwar an das er schaltet, mit zeitstempel, ohne fehlermeldung das auch alles ok sei, aber in wirklichkeit machte er nichts... dacht er wäre kleben geblieben. dann hab ich bemerkt das im dashboard keine spannug und keine frequenz angezeigt wurde... er aber so tut als würde er leben. Hab ihm für 5 sekunden vom Netz getrennt und er war wieder da. So wie er da war, waren alle störungen im HMIP Netz vorbei... Da dürfte mir der AxxxH das gesamte HMip Netz gestört und runtergerissen haben. Kann aber nicht nachvollziehen warum. Somit war anscheinend die rpc schnittstelle auf der CCU2 blockiert, die RPC.1 Instanz für die HMIP Schnittstelle nicht zeitnah erreichbar und der iob hat sich nach der neuinstallation des Adapters dann nicht mehr vernünftig auf die CCU2 verbinden können... Jetzt läuft alles ohne Fehlermeldung und ohne Zeitversatz ab.
  • [Problem] Seit Update des knx-Adapters große Verzögerung

    Verschoben
    7
    0 Stimmen
    7 Beiträge
    829 Aufrufe
    F
    @damiensky: Das Problem wurde in der Version 2.0.18 gelöst, siehe https://github.com/ioBroker/ioBroker.knx/issues/282 Zumindest hat diese Lösung bei mir funktioniert.
  • [gelöst] Backup Iobroker Problem

    3
    0 Stimmen
    3 Beiträge
    373 Aufrufe
    F
    @crunchip Haut hin. funktioniert perfekt. Danke
  • Toshiba Klima Problem mit Ansteuerung über HASS Adapter

    3
    0 Stimmen
    3 Beiträge
    906 Aufrufe
    G
    @aiko Vielen Dank für den Hinweis. Habe gerade erste gesehen, dass es inzwischen Deine Antwort gab. Konnte mein Problem damit lösen, vielen Dank! Es reicht die Übergabe von {"temperature": 18} zum Einstellen der Temperatur :-) Gruß, Gerti
  • Hue Adapter hängt sich auf

    2
    0 Stimmen
    2 Beiträge
    295 Aufrufe
    Thomas BraunT
    @toki1973 Versuch mal Sentry für den Adapter auszuschalten.
  • Tuya Adapter nur in eine Richtung.

    14
    0 Stimmen
    14 Beiträge
    1k Aufrufe
    K
    Also, Problem gelöst. Ich hatte auf dem Slave IoBroker ebenfalls eine Tuya Instanz am laufen. Warum auch immer. Jetzt läuft eine auf dem Master und alles geht. Danke.
  • Hat wer Probleme mit Influxdb und Node20?

    4
    0 Stimmen
    4 Beiträge
    418 Aufrufe
    F
    @djmarc75 sagte Hast DU denn Probleme damit ? Dann teile uns detailliert mit WELCHE. Wärest DU etwas aufmerksamer dann wüsstest du dass ich hier eher zu denen gehöre die Probleme nicht haben sondern lösen, u.A. auch schon Deine! Wenn du also nicht zum angesprochenen Kreis gehörst, dann lies doch einfach wo anders weiter @dp20eic mein Beitrag/meine Frage enthält alles was er enthalten muss. Auch für dich gilt daher: Einfach woanders weiternörgeln

386

Online

33.0k

Benutzer

83.5k

Themen

1.3m

Beiträge