Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. MQTT Remote Commands für OwnTracks-Adapter

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    983

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

MQTT Remote Commands für OwnTracks-Adapter

Scheduled Pinned Locked Moved ioBroker Allgemein
13 Posts 2 Posters 1.0k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • mickymM mickym

    So ich habe es rausbekommen.

    Also Du kannst das remote steuern in dem Du folgenden JSON in cmd losschickst.

    {
        "_type": "cmd",
        "action": "setConfiguration",
        "configuration": {
            "_type": "configuration",
            "monitoring": 1
        }
    }
    

    Das Monitoring stellst Du wie folgt ein:

    monitoring Location reporting mode (iOS,Android/integer)
    -1 Quiet
    0 Manual
    1 Significant
    2 Move

    Habs gerade getestet - das tut. :)

    Die Automatisierung ist dann ja easy. Da ich NodeRed nutze, wird Dir ein Flow hierzu nichts nutzen. ;)

    Funktioniert nun aber auf Anhieb:
    f27d8480-9401-4126-9bf8-530129d5a82a-image.png

    ? Offline
    ? Offline
    A Former User
    wrote on last edited by
    #3

    @mickym Krass, Vielen Dank für die schnelle Hilfe! Darf ich Dich - ohne unverschämt zu werden - fragen, wie denn
    ein Java Script aussehen könnte? Mit Blockly kann ich mich überhaupt nicht anfreunden.

    Nochmal Danke für die schnelle und freundliche Hilfe!
    Gruß Jo

    mickymM 1 Reply Last reply
    0
    • ? A Former User

      @mickym Krass, Vielen Dank für die schnelle Hilfe! Darf ich Dich - ohne unverschämt zu werden - fragen, wie denn
      ein Java Script aussehen könnte? Mit Blockly kann ich mich überhaupt nicht anfreunden.

      Nochmal Danke für die schnelle und freundliche Hilfe!
      Gruß Jo

      mickymM Online
      mickymM Online
      mickym
      Most Active
      wrote on last edited by
      #4

      @k-nebel Ich kann mich mit Blockly auch nicht anfreunden. Ein Javascript ist mir ehrlich gesagt zu aufwändig jetzt und gerade im Fehlerfall schwierig für mich zu behandeln.

      Ich könnte Dir bei einem Node-Red Flow behilflich sein - das denke ich würde ich schnell hinbekommen, wenn Du halt hier mit unterstützt. Ich nutze das halt als meine präferierte Logikmaschine.

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      ? 1 Reply Last reply
      0
      • mickymM mickym

        @k-nebel Ich kann mich mit Blockly auch nicht anfreunden. Ein Javascript ist mir ehrlich gesagt zu aufwändig jetzt und gerade im Fehlerfall schwierig für mich zu behandeln.

        Ich könnte Dir bei einem Node-Red Flow behilflich sein - das denke ich würde ich schnell hinbekommen, wenn Du halt hier mit unterstützt. Ich nutze das halt als meine präferierte Logikmaschine.

        ? Offline
        ? Offline
        A Former User
        wrote on last edited by
        #5

        @mickym Also bin der Sache etwas näher gekommen....funkt aber noch nicht.

        sendTo('owntracks/0/users/devicex/cmd', 'sendMessage2Client',
        {
            "_type": "cmd",
            "action": "setConfiguration",
            "configuration": {
                "_type": "configuration",
                "monitoring": 2
            }
        });
        

        Divicex steht natürlich für den tatsächlichen Namen. Das Script meldet keinen Fehler, es kommt aber nichts an.

        mickymM 2 Replies Last reply
        0
        • ? A Former User

          @mickym Also bin der Sache etwas näher gekommen....funkt aber noch nicht.

          sendTo('owntracks/0/users/devicex/cmd', 'sendMessage2Client',
          {
              "_type": "cmd",
              "action": "setConfiguration",
              "configuration": {
                  "_type": "configuration",
                  "monitoring": 2
              }
          });
          

          Divicex steht natürlich für den tatsächlichen Namen. Das Script meldet keinen Fehler, es kommt aber nichts an.

          mickymM Online
          mickymM Online
          mickym
          Most Active
          wrote on last edited by mickym
          #6

          @k-nebel wie gesagt ich bin auch kein Javascript Guru - aber vielleicht gibts ja noch andere Hürden. Wo läuft denn Dein mqtt Broker?

          Wenn Du evtl. den mqtt Adapter als Broker laufen hast, dann kann der evtl. Probleme machen. Hast Du ein Interface im iobroker so dass Du es wie ich einfach eintragen kannst?

          30cf5dd9-57ca-42db-a673-23569975c49e-image.png

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          1 Reply Last reply
          0
          • ? A Former User

            @mickym Also bin der Sache etwas näher gekommen....funkt aber noch nicht.

            sendTo('owntracks/0/users/devicex/cmd', 'sendMessage2Client',
            {
                "_type": "cmd",
                "action": "setConfiguration",
                "configuration": {
                    "_type": "configuration",
                    "monitoring": 2
                }
            });
            

            Divicex steht natürlich für den tatsächlichen Namen. Das Script meldet keinen Fehler, es kommt aber nichts an.

            mickymM Online
            mickymM Online
            mickym
            Most Active
            wrote on last edited by mickym
            #7

            @k-nebel Musst Du bei dem sendto - um die geschweiften Klammern nicht noch Anführungszeichen machen - das ganze muss ja als String weg.

            sendTo('owntracks/0/users/devicex/cmd', 'sendMessage2Client','{"_type": "cmd","action": "setConfiguration","configuration": {"_type": "configuration","monitoring": 2}}');
            

            Wenn ich mir die Syntax zu sendto anschaue:

            sendTo('telegram', {user: 'UserName', text: 'Test message'});

            dann ist das ja viel komplexer. Wie gesagt, wenn Du es über NodeRed machst - dann kein Problem. Und wie im letzten Posting gesagt - trag halt einfach mal den Text direkt in Deinen Datenpunkt ein.

            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

            ? 1 Reply Last reply
            0
            • mickymM mickym

              @k-nebel Musst Du bei dem sendto - um die geschweiften Klammern nicht noch Anführungszeichen machen - das ganze muss ja als String weg.

              sendTo('owntracks/0/users/devicex/cmd', 'sendMessage2Client','{"_type": "cmd","action": "setConfiguration","configuration": {"_type": "configuration","monitoring": 2}}');
              

              Wenn ich mir die Syntax zu sendto anschaue:

              sendTo('telegram', {user: 'UserName', text: 'Test message'});

              dann ist das ja viel komplexer. Wie gesagt, wenn Du es über NodeRed machst - dann kein Problem. Und wie im letzten Posting gesagt - trag halt einfach mal den Text direkt in Deinen Datenpunkt ein.

              ? Offline
              ? Offline
              A Former User
              wrote on last edited by
              #8

              @mickym Hm, ich komme im Moment nicht weiter. Habe auf Github in einem Issue gelesen, dass es bei Android zur Zeit keine cmd-Actions gibt und auch nicht geplant sind. Keine guten Aussichten. Unter Objects gibt es auch keinen cmd Eintrag.
              Schade...

              mickymM 1 Reply Last reply
              0
              • ? A Former User

                @mickym Hm, ich komme im Moment nicht weiter. Habe auf Github in einem Issue gelesen, dass es bei Android zur Zeit keine cmd-Actions gibt und auch nicht geplant sind. Keine guten Aussichten. Unter Objects gibt es auch keinen cmd Eintrag.
                Schade...

                mickymM Online
                mickymM Online
                mickym
                Most Active
                wrote on last edited by mickym
                #9

                @k-nebel Ehrlich gesagt kann ich das nicht glauben - die Beschreibung zeigt, dass der Parameter auch auf Android geht.
                monitoring Location reporting mode (iOS,Android/integer).

                Ich würde mal den String direkt in Deinen cmd Datenpunkt eintragen. Mit dem sendTo weiß ich nicht ob dass das richtige Kommando ist.

                Wie gesagt unter NodeRed würde ich das ja mit Dir weiterverfolgen.

                Als ersten Schritt musst Du aber den String direkt in einen Datenpunkt kopieren. Dabei ist es egal, ob Du das direkt über Deinen iobroker machst, oder einem eigenen mqtt Publisher.

                Und ich hab Dir ja schon unten gesagt, wenn Du den MQTT-Adapter als Broker laufen hast, kannst Du auch Probleme haben. Schau mal im Log ob das was drin steht, ob irgendwelche Nachrichten nach mehreren Retries gelöscht werden. Solange Du die Voraussetzungen nicht prüfst, ist das halt ein Stochern im Nebel.

                @k-nebel sagte in MQTT Remote Commands für OwnTracks-Adapter:

                Unter Objects gibt es auch keinen cmd Eintrag.
                Schade...

                Ist das der mqtt Adapter als Broker? Ggf. halt selbst einfach einen cmd Datenpunkt anlegen.
                Und falls Du den owntracks Adapter nutzt - da würde ich halt lieber auf reines mqtt wechseln.

                Im Prinzip solltest Du gemäß Deiner Konfig folgende Datenpunkte unter Deinem Gerät finden:

                screen.png

                Der cmd ist für die Befehle und der event Datenpunkt signalisiert Dir wenn Du eine bekannte Location verlässt oder eintrittst - also z. Bsp. Zuhause. Das kannst Du dann als Trigger verwenden, um wie von Dir gewünscht den Modus umzuschalten.

                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                ? 1 Reply Last reply
                0
                • mickymM mickym

                  @k-nebel Ehrlich gesagt kann ich das nicht glauben - die Beschreibung zeigt, dass der Parameter auch auf Android geht.
                  monitoring Location reporting mode (iOS,Android/integer).

                  Ich würde mal den String direkt in Deinen cmd Datenpunkt eintragen. Mit dem sendTo weiß ich nicht ob dass das richtige Kommando ist.

                  Wie gesagt unter NodeRed würde ich das ja mit Dir weiterverfolgen.

                  Als ersten Schritt musst Du aber den String direkt in einen Datenpunkt kopieren. Dabei ist es egal, ob Du das direkt über Deinen iobroker machst, oder einem eigenen mqtt Publisher.

                  Und ich hab Dir ja schon unten gesagt, wenn Du den MQTT-Adapter als Broker laufen hast, kannst Du auch Probleme haben. Schau mal im Log ob das was drin steht, ob irgendwelche Nachrichten nach mehreren Retries gelöscht werden. Solange Du die Voraussetzungen nicht prüfst, ist das halt ein Stochern im Nebel.

                  @k-nebel sagte in MQTT Remote Commands für OwnTracks-Adapter:

                  Unter Objects gibt es auch keinen cmd Eintrag.
                  Schade...

                  Ist das der mqtt Adapter als Broker? Ggf. halt selbst einfach einen cmd Datenpunkt anlegen.
                  Und falls Du den owntracks Adapter nutzt - da würde ich halt lieber auf reines mqtt wechseln.

                  Im Prinzip solltest Du gemäß Deiner Konfig folgende Datenpunkte unter Deinem Gerät finden:

                  screen.png

                  Der cmd ist für die Befehle und der event Datenpunkt signalisiert Dir wenn Du eine bekannte Location verlässt oder eintrittst - also z. Bsp. Zuhause. Das kannst Du dann als Trigger verwenden, um wie von Dir gewünscht den Modus umzuschalten.

                  ? Offline
                  ? Offline
                  A Former User
                  wrote on last edited by
                  #10

                  @mickym Also ich nutze den Owntracks-Adapter. Dort habe ich einen Datenpunkt cmd an richtiger Stelle erzeugt und auch versucht das JSON Object direkt einzugeben - ohne Ergebnis.
                  Nebenher läuft natürlich der mqtt-Adapter. Fehler oder Warnungen gab es nicht.
                  Danke für dein Angebot mit NodeRed. Das wäre aber auch Neuland und ich würde darauf zurückkommen, wenn ich es nicht anders hin bekomme.
                  Bin gerade dabei das Open-Source Project von Owntracks mit Android-Studio zu bearbeiten. Es wäre nicht das erste Mal, dass es mir gelingt, eine eigene Funktion direkt in der App zu implementieren.
                  Werde berichten.
                  Gruß Jo

                  ? 1 Reply Last reply
                  0
                  • ? A Former User

                    @mickym Also ich nutze den Owntracks-Adapter. Dort habe ich einen Datenpunkt cmd an richtiger Stelle erzeugt und auch versucht das JSON Object direkt einzugeben - ohne Ergebnis.
                    Nebenher läuft natürlich der mqtt-Adapter. Fehler oder Warnungen gab es nicht.
                    Danke für dein Angebot mit NodeRed. Das wäre aber auch Neuland und ich würde darauf zurückkommen, wenn ich es nicht anders hin bekomme.
                    Bin gerade dabei das Open-Source Project von Owntracks mit Android-Studio zu bearbeiten. Es wäre nicht das erste Mal, dass es mir gelingt, eine eigene Funktion direkt in der App zu implementieren.
                    Werde berichten.
                    Gruß Jo

                    ? Offline
                    ? Offline
                    A Former User
                    wrote on last edited by
                    #11

                    @k-nebel Tja, das erzeugen der App funktioniert und ich habe in der "MapActivity.java" eine Funktion "SetMonitoringNext" gefunden. Man könnte nun einen Timer programmieren, der meinetwegen alle 5 Minuten die WLAN Verbindung checkt und - falls mit der richtigen SSID Verbunden, diese Funktion anstößt.
                    Problem bei der Sache: Die App ist ansonsten Komplett, aber der Open-Source-Code bietet keine Google Map Keys.
                    Das heisst, es wird keine Karte angezeigt. So etwas anzulegen geht, ist aber eine Prozedur. Werde mal weiter sehen.
                    Nur zur Info halt.

                    ? 1 Reply Last reply
                    0
                    • ? A Former User

                      @k-nebel Tja, das erzeugen der App funktioniert und ich habe in der "MapActivity.java" eine Funktion "SetMonitoringNext" gefunden. Man könnte nun einen Timer programmieren, der meinetwegen alle 5 Minuten die WLAN Verbindung checkt und - falls mit der richtigen SSID Verbunden, diese Funktion anstößt.
                      Problem bei der Sache: Die App ist ansonsten Komplett, aber der Open-Source-Code bietet keine Google Map Keys.
                      Das heisst, es wird keine Karte angezeigt. So etwas anzulegen geht, ist aber eine Prozedur. Werde mal weiter sehen.
                      Nur zur Info halt.

                      ? Offline
                      ? Offline
                      A Former User
                      wrote on last edited by A Former User
                      #12

                      Neues Update: App läuft, zwar ohne Map, aber die ist mir erst mal egal.
                      Für diejenigen die es interessiert hier die Änderungen:
                      AndroidManifest.xml

                      <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
                      

                      BackgroundService.java

                          //Check Monitoring & SSID
                          public Handler timerHandler = new Handler();
                          Runnable timerRunnable = new Runnable() {
                              @Override
                              public void run() {
                                  SharedPreferences prefs = getSharedPreferences("save_set", 0);
                                  SharedPreferences.Editor editor = prefs.edit();
                                  boolean auto = prefs.getBoolean("Auto", false);
                                  editor.commit();
                                  if(auto) {
                                      //Get SSID, if Connected
                                      WifiManager mWifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
                                      assert mWifiManager != null;
                                      WifiInfo info = mWifiManager.getConnectionInfo();
                                      if (info.getSSID().contains("MySSID")) {
                                              if (preferences.getMonitoring() == LocationProcessor.MONITORING_MOVE) {
                                                  preferences.setMonitoring(LocationProcessor.MONITORING_SIGNIFICANT);
                                              }
                                          } else{
                                          preferences.setMonitoring(LocationProcessor.MONITORING_MOVE);
                                      }
                                  }
                                  //Toast.makeText(getApplicationContext(), info.getSSID(), Toast.LENGTH_SHORT).show();
                                  timerHandler.postDelayed(timerRunnable, 60000);
                              }
                          };
                      

                      Zudem in der Funktion OnCreate()

                      timerHandler.postDelayed(timerRunnable, 60000);
                      

                      und in der Funktion OnDestroy()

                      timerHandler.removeCallbacks(timerRunnable);
                      

                      Ob ich mit der Map weiterkomme werde ich berichten.
                      Gruß
                      Jo

                      ? 1 Reply Last reply
                      0
                      • ? A Former User

                        Neues Update: App läuft, zwar ohne Map, aber die ist mir erst mal egal.
                        Für diejenigen die es interessiert hier die Änderungen:
                        AndroidManifest.xml

                        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
                        

                        BackgroundService.java

                            //Check Monitoring & SSID
                            public Handler timerHandler = new Handler();
                            Runnable timerRunnable = new Runnable() {
                                @Override
                                public void run() {
                                    SharedPreferences prefs = getSharedPreferences("save_set", 0);
                                    SharedPreferences.Editor editor = prefs.edit();
                                    boolean auto = prefs.getBoolean("Auto", false);
                                    editor.commit();
                                    if(auto) {
                                        //Get SSID, if Connected
                                        WifiManager mWifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
                                        assert mWifiManager != null;
                                        WifiInfo info = mWifiManager.getConnectionInfo();
                                        if (info.getSSID().contains("MySSID")) {
                                                if (preferences.getMonitoring() == LocationProcessor.MONITORING_MOVE) {
                                                    preferences.setMonitoring(LocationProcessor.MONITORING_SIGNIFICANT);
                                                }
                                            } else{
                                            preferences.setMonitoring(LocationProcessor.MONITORING_MOVE);
                                        }
                                    }
                                    //Toast.makeText(getApplicationContext(), info.getSSID(), Toast.LENGTH_SHORT).show();
                                    timerHandler.postDelayed(timerRunnable, 60000);
                                }
                            };
                        

                        Zudem in der Funktion OnCreate()

                        timerHandler.postDelayed(timerRunnable, 60000);
                        

                        und in der Funktion OnDestroy()

                        timerHandler.removeCallbacks(timerRunnable);
                        

                        Ob ich mit der Map weiterkomme werde ich berichten.
                        Gruß
                        Jo

                        ? Offline
                        ? Offline
                        A Former User
                        wrote on last edited by A Former User
                        #13

                        Finales Ergebnis:
                        Google Maps-Key besorgt und zusätzlichen Button zum Ein/Ausschalten meiner Funktion integriert.
                        Screenshot_20210315-174602_Owntracks.jpg

                        Wer das selber umsetzen möchte, kann mich gerne kontaktieren.
                        Einziger Wermutstropfen wäre, wenn die App ein automatisches Update erhält. Dann wird die eigene Version
                        wahrscheinlich überschrieben.
                        Gruß
                        Jo

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        Support us

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

                        791

                        Online

                        32.6k

                        Users

                        82.2k

                        Topics

                        1.3m

                        Posts
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Home
                        • Recent
                        • Tags
                        • Unread 0
                        • Categories
                        • Unreplied
                        • Popular
                        • GitHub
                        • Docu
                        • Hilfe