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. MQTT Remote Commands für OwnTracks-Adapter

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.1k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

MQTT Remote Commands für OwnTracks-Adapter

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
13 Beiträge 2 Kommentatoren 965 Aufrufe
  • Ä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.
  • 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
    Ein ehemaliger Benutzer
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • ? Ein ehemaliger Benutzer

      @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 Offline
      mickymM Offline
      mickym
      Most Active
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        Ein ehemaliger Benutzer
        schrieb am zuletzt editiert von
        #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 Antworten Letzte Antwort
        0
        • ? Ein ehemaliger Benutzer

          @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 Offline
          mickymM Offline
          mickym
          Most Active
          schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
          0
          • ? Ein ehemaliger Benutzer

            @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 Offline
            mickymM Offline
            mickym
            Most Active
            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
            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
              Ein ehemaliger Benutzer
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              0
              • ? Ein ehemaliger Benutzer

                @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 Offline
                mickymM Offline
                mickym
                Most Active
                schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                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
                  Ein ehemaliger Benutzer
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  0
                  • ? Ein ehemaliger Benutzer

                    @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
                    Ein ehemaliger Benutzer
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    0
                    • ? Ein ehemaliger Benutzer

                      @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
                      Ein ehemaliger Benutzer
                      schrieb am zuletzt editiert von Ein ehemaliger Benutzer
                      #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 Antwort Letzte Antwort
                      0
                      • ? Ein ehemaliger Benutzer

                        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
                        Ein ehemaliger Benutzer
                        schrieb am zuletzt editiert von Ein ehemaliger Benutzer
                        #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 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

                        778

                        Online

                        32.5k

                        Benutzer

                        81.6k

                        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