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. Skripten / Logik
  4. Node-Red
  5. Owntracks und node-red

NEWS

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

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

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

Owntracks und node-red

Geplant Angeheftet Gesperrt Verschoben Node-Red
19 Beiträge 5 Kommentatoren 8.1k 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.
  • ruhr70R Offline
    ruhr70R Offline
    ruhr70
    schrieb am zuletzt editiert von
    #1

    Ich versuche mich gerade daran Owntracks in Verbindung mit ioBroker zu nutzen.

    Leider scheitere ich daran, die mqtt-node mit Owntracks zu verbinden.

    Was ist Owntracks

    Owntracks ist u.a. eine native iOS/Android App, die als mqtt Client fungiert und den aktuellen Standort des Smartphones per mqtt an einen mqtt Broker sendet.

    Was will ich erreichen

    1. lernen ;-)

    2. überhaupt einmal einen externen mqtt Client mit ioBroker/node-Red zusammenbringen

    3. Die Handykoordinaten über node-red an ioBroker übertragen

    4. Dann für die (schon sehr gut funktionierende) Anwesenheitsautomatik verwenden (Auswertung der Koordinaten / Bewegungsrichtung).

    Meine Fragen

    Habe ich das Prinzip überhaupt richtig verstanden?

    (owntrack = mqtt Client / node-red = mqtt Broker)

    Müsste mein Vorhaben prinzipiell funktionieren?

    Hat jemand Beispiele, was im mqtt node von node-red einzustellen ist und wie der passende TCP Stream dazu aussieht?

    Setzt Node-red eventuell TLS/SSL voraus?

    Hilfe ;-)

    Ein paar Infos, was bisher geschah

    • Auf der Node-red Seite gibt es Beispiele, bei denen Owntrack mit Node-red zusammenarbeitet. Leider haben sie mir nicht geholfen.

    • Owntracks ist als App auf einem iPhone installiert

    • der gewählte Port ist in der Fritzbox zur ioBroker Installation freigeschaltet

    • als Test ist ein tcp node auf ein Debug node eingerichtet. Hier kommen Daten vom iPhone an

    • die Einstellungen am iPhone und am mqtt node bekomme ich nciht hin. Hier bleibt immer der Status Dsconnect. Im Debug node nach dem mqtt node kommt auch nichts an.

    • TLS habe ich für die erste Einrichtung deaktiviert (testweise aber auch wieder freigeschaltet), um die Komplexität niedrig zu halten.

    • Bei allen Versuchen zeigt Owntracks den Status "OSStatus error -9806) an. Eine Googlesuche sagt mir, dass es sich dabei um ein SSL Problem handelt. Die Meldung kommt aber auch, wenn ich TLS im Owntrack Client deaktiviert habe.

    • Ich habe es mit und ohne Auth versucht.

    • Ohne Auth kommt im TCP Stream beim Check in den Einstellungenvon Owntracks wie folgt an: "FMQIsdp<ruhrowntracks ruhr"{"tst":"1430033466","_type":"lwt"}"<e=""></ruhrowntracks>. Ruhr ist die UserID in Owntracks, owntrakcs/ruhr ist das Topic. tst dürfte der Timestamp sein und lwt (? eventuell Last Will?). Das erste ruhr vor dem Topi irritiert mich etwas. Das bekomme ich nicht weg (vielleicht gehört das ja da hin). Testweise habe ich im node-red mqtt Node das Topic auch von owntracks/# auf ruhrowntracks/# geändert.

    • Ich habe diverseste Kombinationen in Owntracks und dem node-red mqtt node versucht. Mit und ohne Auht, mit und ohne TLS, Client ID, Device ID, Topic, …

    Adapter: Fritzbox, Unify Circuit
    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

    1 Antwort Letzte Antwort
    0
    • ruhr70R Offline
      ruhr70R Offline
      ruhr70
      schrieb am zuletzt editiert von
      #2

      WORKAROUND

      Die ersten Schritte haben über folgenden Umweg funktioniert:

      • Ich habe eine mqtt Instanz in ioBroker aktiviert und auf einen anderen Port gebunden.

      • Einstellungen in Owntracks: TLS: aus (kommt später), Auth: an, UserID: ruhr, Password, xxxxxx

      • Einstellungen im mqtt Adapter (ioBroker), siehe Grafik unten

      • Meldungen werden im Objekt: mqtt.0.owntracks.ruhr gespeichert als -> [Object ArrayBuffer]

      • Flow in Node-red, siehe unten. Für den ersten Test habe ich nur die Koordinaten aus dem Object extrahiert.

      Einstellungen im ioBroker mqtt Adapter:
      327_2015-04-26_mqtt_adapter_einstellungen.jpg

      Node-red Flow (als Workaround zum mqtt node):
      327_2015-04-26_node-red_flow.jpg

      Der TCP node war nur zum Test für den mqtt node in Node-red.

      Was jetzt noch folgt:

      Ausgabe der Koordinaten als Zahl und nicht als String (hier fehlen mir die Javascript Kenntnisse).

      Speicher in Variablen im Node-red Objekt.

      Weitere Verarbeitung der Koordinaten.

      [EDIT]

      Zu: Speicher in Variablen im Node-red Objekt.

      Hat Google schon geholfen ;-)

      msg.payload = parseFloat(msg.payload.lat);
      return msg;
      

      [/EDIT]

      Mich würde trotzdem interessieren, was die richtigen Einstellungen direkt im mqtt node von Node-red wären. Das kann doch nicht so schwer sein ;-)

      Adapter: Fritzbox, Unify Circuit
      Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

      1 Antwort Letzte Antwort
      0
      • ruhr70R Offline
        ruhr70R Offline
        ruhr70
        schrieb am zuletzt editiert von
        #3

        Aktueller Status

        327_2015-05-03_owntracks__ber_mqtt_node.jpg

        Owntracks selbst hat wohl gemuckt. Warum auch immer.

        Nun ist auch der mqtt Node in Node Red direkt mit Owntracks connected, ohne dass ich was geändert habe.

        In der Beispielgrafik gehe ich zwar noch den Umweg über den mqtt Adapter in Node Red, welcher dann das Objekt in iobroker ablegt.

        Es wird aber auch direkt über die mqtt node funktionieren (in anderen Flows getestet).

        Ich finde allerdings die .csv Datei aus dem Flow nicht im Dateisystem. :shock:

        Adapter: Fritzbox, Unify Circuit
        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

        1 Antwort Letzte Antwort
        0
        • ruhr70R Offline
          ruhr70R Offline
          ruhr70
          schrieb am zuletzt editiert von
          #4

          327_2015.05.03_owntracks_geofence.jpg

          Jetzt werden alle Variablen so gefüttert, wie ich es mir vorstelle.

          Der Umweg über eine mqtt Instanz in ioBroker ist nicht mehr notwendig.

          Ermittelt werden u.a.:

          • Die Entfernung Luftlinie in Metern und km zwischen Handy und Wohnung.

          • Events, d.h. betreten und verlassen von in Owntracks definierten Geofence Punkten -> "Wohnung betreten", "Wohnung verlassen", "Büro betreten"

          • Die Koordinaten (lat,lon) des Smartphones

          • Die aktuelle Höhe des Smartphones

          • Ein http:// Link mit dem aktuellen Standort zu openstreetmap zur Einbindung in Vis mit einem iFrame Widget

          • Der aktuelle Standort als Google Maps Link (nicht im iFrame darstellbar)

          • der aktuelle Batterieladestand des Handys

          • die aktuelle Reisegeschwindigkeit

          • Die Bewegungsrichtung als Gradzahl, Norden = 0

          Adapter: Fritzbox, Unify Circuit
          Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

          1 Antwort Letzte Antwort
          0
          • P Offline
            P Offline
            pix
            schrieb am zuletzt editiert von
            #5

            Hallo,

            das sieht super aus hört sich gut an. Da geofency noch nicht fertig ist, würde ich das gern testen. Kannst du Näheres beschreiben?

            Gruß

            pix

            ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

            1 Antwort Letzte Antwort
            0
            • ruhr70R Offline
              ruhr70R Offline
              ruhr70
              schrieb am zuletzt editiert von
              #6

              Hi Pix,

              die Parameterbeschreibung für Owntracks findest Du hier:

              https://github.com/owntracks/owntracks/wiki/JSON

              die App für iOs:

              https://itunes.apple.com/de/app/owntrac … 24691?mt=8

              Für Android ist die App auch verfügbar.

              Die Einrichtung am Client:

              • Port, z.B. 1883 (Portforwarding am Router zu ioBroker)

              • TLS aus

              • Auth an

              • UserID / Password

              • ClientID: ich habe "iPhone 6" eingetragen

              • Clean Session: an (habe es anders nicht getestet)

              • Keep Alive: 60s

              -Traker ID: zwei Buchstaben als Deine Kennung

              Der Rest bleibt so, wie er ist.

              Als nächstes einfach ein TCP Stream 1883 auf ein Debug node unschauen, ob was ankommt.

              Dann die mqtt Node mit Deinem User/passwort einrichten.

              Broker: localhost:1883

              Topic: owntracks/#

              Und wieder auf ein Debug Node.

              Wenn diese node connect, dann gib Info. Ich nehme dann die persönlichen Infos aus meinen Flow raus und Poste ihn.

              Geofence

              Parallel probiere ich gerade Geofence mit Node Red zu verbinden.

              Das klappt auch schon zum Teil. Die Meldungen kommen ohne Authentifizierung lesbar rein.

              Manchmal steht noch der http Post vorneweg, daher meine Anfrage im Forum unter Scripte.

              Da ich nicht weiss, wie ich eine Rückmeldung an Geofence in Node Red erstellen kann, meldet Geofence nach dem Absetzen der Location dann einen Timeout. Die Daten sind aber angekommen.

              Bisher immer im Verbindungstest.Morgen versuche ich es mit den automatisch abgesetzten Meldungen.

              Mit dem TCP Stream macht es wahrscheinlich auf Dauer keinen Sinn. Ich bin aber guter Dinge, dass es in Node Red anders lösbar ist.

              Ich weiss nur noch nicht wie ;-)

              Solange kann man Owntracks ganz gut verwenden.

              327_2015-05-03_geofency_flow.png
              Der Testflow für Geofence.

              Adapter: Fritzbox, Unify Circuit
              Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

              1 Antwort Letzte Antwort
              0
              • derAugeD Offline
                derAugeD Offline
                derAuge
                schrieb am zuletzt editiert von
                #7

                Spannesndes Projekt !

                > ich finde allerdings die .csv Datei aus dem Flow nicht im Dateisystem. :shock:
                Beispiel:
                315_node-red_datei.png

                wenn du den gesamten Path eingibst, solltest du die Datei auch finden

                Gruß

                derAuge

                1 Antwort Letzte Antwort
                0
                • ruhr70R Offline
                  ruhr70R Offline
                  ruhr70
                  schrieb am zuletzt editiert von
                  #8

                  @derAuge:

                  Spannesndes Projekt !

                  > ich finde allerdings die .csv Datei aus dem Flow nicht im Dateisystem. :shock:
                  wenn du den gesamten Path eingibst, solltest du die Datei auch finden `

                  Danke! So einfach kann es sein ;-)

                  Adapter: Fritzbox, Unify Circuit
                  Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                  1 Antwort Letzte Antwort
                  0
                  • A Offline
                    A Offline
                    Arminhh
                    schrieb am zuletzt editiert von
                    #9

                    Hallo Ruhr70,

                    würdest du bitte den Flow für Owntracks als export zur Verfügung stellen?

                    mfg

                    Arminhh

                    1 Antwort Letzte Antwort
                    0
                    • ruhr70R Offline
                      ruhr70R Offline
                      ruhr70
                      schrieb am zuletzt editiert von
                      #10

                      @Arminhh:

                      Hallo Ruhr70,

                      würdest du bitte den Flow für Owntracks als export zur Verfügung stellen?

                      mfg

                      Arminhh `

                      ! ````
                      [{"id":"e3fec925.2c1cb","type":"websocket-listener","path":"/ws/location","wholemsg":"false"},{"id":"935915de.8aaf08","type":"mqtt-broker","broker":"localhost","port":"8883","clientid":""},{"id":"f44e79a8.0bb188","type":"tcp in","name":"","server":"server","host":"","port":"8883","datamode":"stream","datatype":"utf8","newline":"","topic":"","base64":false,"x":165,"y":95,"z":"b6ad2ad3.4952d8","wires":[["7fc57e10.803a8"]]},{"id":"7fc57e10.803a8","type":"debug","name":"","active":false,"console":"false","complete":"false","x":359,"y":95,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"7dcf930.f82306c","type":"ioBroker in","name":"mqtt.0.owntracks.ruhr","topic":"mqtt.0.owntracks.ruhr","payloadType":"value","x":168.44442749023438,"y":267.30165672302246,"z":"b6ad2ad3.4952d8","wires":[["814c4ad4.7eb3b8","8cc85523.7337a8","5182c591.ae7d3c"]]},{"id":"abaf7bcc.545088","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1177.4446105957031,"y":277.77784061431885,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"a15b133d.5ea4f","type":"function","name":"Koordinaten (lat)","func":"msg.payload = parseFloat(msg.payload.lat);\nreturn msg;","outputs":"1","x":933.1112594604492,"y":471.44450759887695,"z":"b6ad2ad3.4952d8","wires":[["6a4eb537.95b14c","d8405a65.27bfa8"]]},{"id":"665579db.99aa88","type":"function","name":"Koordinaten (lon)","func":"msg.payload = parseFloat(msg.payload.lon);\nreturn msg;","outputs":"1","x":934.111198425293,"y":502.5556831359863,"z":"b6ad2ad3.4952d8","wires":[["6a4eb537.95b14c","9b926334.646da"]]},{"id":"62ea35ad.9d15cc","type":"json","name":"","x":571.444450378418,"y":284.0000581741333,"z":"b6ad2ad3.4952d8","wires":[["abaf7bcc.545088"]]},{"id":"98b398b2.674c68","type":"comment","name":"Owntracks an ioBroker mqtt Instanz (Port 1883)","info":"Beschreibung der JSON Datenfelder:\n\nhttps://github.com/owntracks/owntracks/wiki/JSON","x":214.44442749023438,"y":228.85719871520996,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"aa20df49.55df2","type":"comment","name":"Ausgabe: Value","info":"","x":338.1110610961914,"y":291.190580368042,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"3c2fb13.fc3d04e","type":"comment","name":"Behandlung als JSON","info":"","x":578.444450378418,"y":250.0000581741333,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"d82a28bf.27d5d8","type":"comment","name":"Auswertung der JSON Daten","info":"","x":932.1111450195312,"y":440.0000476837158,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"5f14b3f9.a0eb4c","type":"mqtt in","name":"owntracks geofence 8883","topic":"owntracks/#","broker":"935915de.8aaf08","x":146.53965759277344,"y":398.825475692749,"z":"b6ad2ad3.4952d8","wires":[["c4beb199.3b415"]]},{"id":"8e10f81d.71ef08","type":"comment","name":"owntracks an mqtt Node","info":"","x":139.8730010986328,"y":362.82545280456543,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"8508796a.7af788","type":"comment","name":"Zum Test: mqtt Stream an Node-red","info":"","x":247,"y":55.4444580078125,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"8085f870.7f7a08","type":"function","name":"Höhe in m (alt)","func":"msg.payload = parseInt(msg.payload.alt);\nreturn msg;","outputs":"1","x":929.000114440918,"y":557.0000190734863,"z":"b6ad2ad3.4952d8","wires":[["6a4eb537.95b14c","3a2352.ffc5dcae"]]},{"id":"bbbf2a6d.4440d8","type":"function","name":"Batterieladestand (batt)","func":"msg.payload = parseInt(msg.payload.batt);\nreturn msg;","outputs":"1","x":932.0000534057617,"y":606.0000495910645,"z":"b6ad2ad3.4952d8","wires":[["6a4eb537.95b14c","1fb9d498.e0462b"]]},{"id":"96d42da.f692bd","type":"switch","name":"","property":"payload.alt","rules":[{"t":"neq","v":"0"}],"checkall":"true","outputs":1,"x":683.3333435058594,"y":454.66668701171875,"z":"b6ad2ad3.4952d8","wires":[["a15b133d.5ea4f","665579db.99aa88","8085f870.7f7a08","bbbf2a6d.4440d8","580577f.fa7fa88","7a3fb950.85c048","7a28f7c7.85d708","ae10b882.51ef48","4c7b5917.b384a8","aebde284.51422","f8deb6fe.072148","a4b9f5dd.5b4608","492c5b31.b6d3a4","4214357a.bdebcc","a9f4c66f.560b38","f03ba82d.0fc458","9caa825.f63558","b06787.ff4f9878"]]},{"id":"e7d2359.f182dc8","type":"comment","name":"Meldungen mit 0 ausfiltern","info":"","x":615.6666259765625,"y":494.6666965484619,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"6a4eb537.95b14c","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1171.0000534057617,"y":396.00002670288086,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"580577f.fa7fa88","type":"function","name":"Kurs 0 = Norden (cog)","func":"msg.payload = parseInt(msg.payload.cog);\nreturn msg;","outputs":"1","x":935.9999923706055,"y":657.0000495910645,"z":"b6ad2ad3.4952d8","wires":[["6a4eb537.95b14c","378ec644.c8713a"]]},{"id":"7a3fb950.85c048","type":"function","name":"Grund für die Meldung (t)","func":"msg.payload = msg.payload.t;\nreturn msg;\n\n\n// "p" ping, issued randomly by background task\n// "c" circular region enter/leave event\n// "b" beacon region enter/leave event\n// "r" response to a "reportLocation" request\n// "u" manual publish requested by the user\n// "t" timer based publish in move move\n// "a" or missing t indicates automatic location update","outputs":"1","x":939.9999923706055,"y":713.0000495910645,"z":"b6ad2ad3.4952d8","wires":[["6a4eb537.95b14c","bbbe09d0.4441f8"]]},{"id":"c295332b.3d6ad","type":"comment","name":"Radius um einen geofence Punkt (wann und wofür?)","info":"","x":331.3332290649414,"y":1218.5833015441895,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"7ba7952c.84586c","type":"function","name":"rad","func":"msg.payload = parseInt(msg.payload.alt);\nreturn msg;","outputs":"1","x":325.33329010009766,"y":1252.5833320617676,"z":"b6ad2ad3.4952d8","wires":[[]]},{"id":"14a0be9.feb5f41","type":"function","name":"event","func":"msg.payload = msg.payload.event;\nreturn msg;","outputs":"1","x":343.33324432373047,"y":1060.2499952316284,"z":"b6ad2ad3.4952d8","wires":[[]]},{"id":"ebd146b7.142eb8","type":"comment","name":"verlassen oder betreten eines Geofence Punkts","info":"event is one of "enter" or "leave" and tells if the app is entering or leaving a geofence","x":344.66654205322266,"y":1027.2499599456787,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"7a28f7c7.85d708","type":"function","name":"Tracker ID (tid)","func":"msg.payload = msg.payload.tid;\nreturn msg;","outputs":"1","x":943.9999923706055,"y":771.0000495910645,"z":"b6ad2ad3.4952d8","wires":[["6a4eb537.95b14c","aeec7628.511388"]]},{"id":"ae10b882.51ef48","type":"function","name":"(Geschwindigkeit in km/h (vel)","func":"msg.payload = parseInt(msg.payload.vel);\nreturn msg;","outputs":"1","x":937.9999923706055,"y":819.0000495910645,"z":"b6ad2ad3.4952d8","wires":[["6a4eb537.95b14c","e50efbf1.1af108"]]},{"id":"4c7b5917.b384a8","type":"function","name":"Genauigkeit Koordinaten in m (acc)","func":"msg.payload = parseInt(msg.payload.acc);\nreturn msg;","outputs":"1","x":930.9999923706055,"y":872.0000495910645,"z":"b6ad2ad3.4952d8","wires":[["6a4eb537.95b14c","7023287f.8fdcd8"]]},{"id":"aebde284.51422","type":"function","name":"GoogleMaps Adresse https","func":"msg.payload = "https://www.google.de/maps/@\" \n + msg.payload.lat + "," +\n + msg.payload.lon;\nreturn msg;\n","outputs":"1","x":919.9999923706055,"y":931.6666831970215,"z":"b6ad2ad3.4952d8","wires":[["6a4eb537.95b14c","e9a36.fff165ca"]]},{"id":"d8405a65.27bfa8","type":"ioBroker out","name":"","topic":"OwntracksMHlat","ack":"true","autoCreate":"true","x":1174.9999923706055,"y":470.55559158325195,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"9b926334.646da","type":"ioBroker out","name":"","topic":"OwntracksMHlon","ack":"true","autoCreate":"true","x":1176.9999923706055,"y":515.555591583252,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"3a2352.ffc5dcae","type":"ioBroker out","name":"","topic":"OwntracksMHalt","ack":"true","autoCreate":"true","x":1175.9999923706055,"y":563.555591583252,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"1fb9d498.e0462b","type":"ioBroker out","name":"","topic":"OwntracksMHbatt","ack":"true","autoCreate":"true","x":1177.9999923706055,"y":614.555591583252,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"378ec644.c8713a","type":"ioBroker out","name":"","topic":"OwntracksMHcog","ack":"true","autoCreate":"true","x":1171.9999923706055,"y":662.555591583252,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"bbbe09d0.4441f8","type":"ioBroker out","name":"","topic":"OwntracksMHt","ack":"true","autoCreate":"true","x":1164.9999923706055,"y":711.555591583252,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"aeec7628.511388","type":"ioBroker out","name":"","topic":"OwntracksMHtid","ack":"true","autoCreate":"true","x":1167.9999923706055,"y":761.555591583252,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"e50efbf1.1af108","type":"ioBroker out","name":"","topic":"OwntracksMHvel","ack":"true","autoCreate":"true","x":1166.9999923706055,"y":811.555591583252,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"7023287f.8fdcd8","type":"ioBroker out","name":"","topic":"OwntracksMHacc","ack":"true","autoCreate":"true","x":1172.9999923706055,"y":868.555591583252,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"e9a36.fff165ca","type":"ioBroker out","name":"","topic":"OwntracksMHgoogleMaps","ack":"true","autoCreate":"true","x":1175.9999923706055,"y":935.000057220459,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"f8deb6fe.072148","type":"function","name":"Timestamp (tst)","func":"msg.payload = msg.payload.tst;\nreturn msg;","outputs":"1","x":929.9999923706055,"y":997.4445152282715,"z":"b6ad2ad3.4952d8","wires":[["a367452b.5c98b8","cb17ba4e.34e848"]]},{"id":"a367452b.5c98b8","type":"ioBroker out","name":"","topic":"OwntracksMHtst","ack":"true","autoCreate":"true","x":1140.9999923706055,"y":999.000057220459,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"a4b9f5dd.5b4608","type":"switch","name":"Zwei gleiche Timestamps rausfiltern","property":"payload.tst","rules":[{"t":"eq","v":"node-red.0.OwntracksMHtst"}],"checkall":"true","outputs":1,"x":523.9999313354492,"y":601.0000267028809,"z":"b6ad2ad3.4952d8","wires":[["8a724ea9.758db"]]},{"id":"8a724ea9.758db","type":"debug","name":"Debug: Ausgabe nur bei gleichen Timestamps","active":true,"console":"false","complete":"payload.tst","x":463.99996185302734,"y":644.000057220459,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"d64dde02.29b22","type":"comment","name":"#### todos ####","info":"","x":321.33324432373047,"y":1171.5833683013916,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"492c5b31.b6d3a4","type":"function","name":"Datum (tst) lesbar umwandeln","func":"// (1) wandelt timestamo ins ISO Datumformat um\n//msg.timestamp= new Date().toISOString()\n\n\n// (2) beliebiges Datum festlegbar: hier: YYYY-MM-DD HH:MM.SS\n// (Ausgabeformat wird danz am Ende zusammengestellt)\nvar now = new Date(); \n// var now = new Date(parseInt(msg.payload.tst)); \nvar year = now.getFullYear();\nvar month = now.getMonth()+1; \nvar day = now.getDate();\nvar hour = now.getHours();\nvar minute = now.getMinutes();\nvar second = now.getSeconds(); \nif(month.toString().length == 1) {\nvar month = '0'+month;\n}\nif(day.toString().length == 1) {\nvar day = '0'+day;\n} \nif(hour.toString().length == 1) {\nvar hour = '0'+hour;\n}\nif(minute.toString().length == 1) {\nvar minute = '0'+minute;\n}\nif(second.toString().length == 1) {\nvar second = '0'+second;\n} \n//msg.timestamp = year+'-'+month+'-'+day+' '+hour+':'+minute+':'+second;\nmsg.payload = year+'-'+month+'-'+day+' '+hour+':'+minute+':'+second;\n\n\nreturn msg;","outputs":1,"x":935.1110229492188,"y":1057.7777881622314,"z":"b6ad2ad3.4952d8","wires":[["b3dd7455.4c2288","bf5d8b9d.40a278"]]},{"id":"b3dd7455.4c2288","type":"ioBroker out","name":"","topic":"OwntracksMHdatum","ack":"true","autoCreate":"true","x":1161.7776107788086,"y":1056.111156463623,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"cb17ba4e.34e848","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1347.6110649108887,"y":999.8611545562744,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"bf5d8b9d.40a278","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1352.6110458374023,"y":1052.361141204834,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"dfd5fc7d.202a","type":"comment","name":"Datum auf Date() geändert","info":"Über msg.payload.tst kommt immer ein Datum aus 1970 mit.\nDaher wird nun das aktuelle Datum im Flow erzeugt und verwendet.","x":916.3610572814941,"y":1088.6111555099487,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"a02b2e06.5fd4d","type":"comment","name":"http://osmtools.de/osmlinks/?lang=de","info":"http://osmtools.de/osmlinks/?lang=de&lon=6.7855&lat=51.246498&zoom=18\n","x":802.2539716448102,"y":59.682543073381694,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"d20ecee4.2df13","type":"comment","name":"http://www.openstreetmap.org/?mlon=6.7855&mlat=51.246498&zoom=18#map=18/51.24650/6.78550","info":"","x":1006.5397186279297,"y":91.11111450195312,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"4214357a.bdebcc","type":"function","name":"openstreetmap Adresse http","func":"// http://www.openstreetmap.org/?mlon=6.7855&mlat=51.246498&zoom=18#map=18/51.24650/6.78550\n\n// Koordinate inkl. Marker\nmsg.payload = "http://www.openstreetmap.org/?mlon=\" \n + msg.payload.lon + "&mlat="\n + msg.payload.lat + "&zoom=16#map=16/" // Zoom Stufe 16 (beide Werte anpssen, wenn Änderung gewünscht)\n + msg.payload.lat + "/"\n + msg.payload.lon;\nreturn msg;\n","outputs":"1","x":917.9682235717773,"y":1146.8254137039185,"z":"b6ad2ad3.4952d8","wires":[["166203bf.e99dfc","7c4a1782.83b5e8"]]},{"id":"166203bf.e99dfc","type":"ioBroker out","name":"","topic":"OwntracksMHopenstreetmap","ack":"true","autoCreate":"true","x":1186.539665222168,"y":1143.9683017730713,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"7c4a1782.83b5e8","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1397.9682846069336,"y":1143.9682321548462,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"a9f4c66f.560b38","type":"function","name":"öpnv Adresse http","func":"// http://öpnvkarte.de/?lon=6.7855&lat=51.246498&zoom=17\n\nmsg.payload = "http://öpnvkarte.de/?lon=\" \n + msg.payload.lon + "&lat="\n + msg.payload.lat + "&zoom=17"; // Zoom Stufe 17 \n\nreturn msg;\n","outputs":"1","x":913.682487487793,"y":1193.9683532714844,"z":"b6ad2ad3.4952d8","wires":[["e109e0c9.1ef62"]]},{"id":"e109e0c9.1ef62","type":"ioBroker out","name":"","topic":"OwntracksMHöpnvkarte","ack":"true","autoCreate":"true","x":1186.539649963379,"y":1196.8254709243774,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"569fb260.a9604c","type":"file","name":"","filename":"/opt/iobroker/wegepunkte.csv","appendNewline":true,"overwriteFile":"false","x":1179.8730163574219,"y":1263.9682607650757,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"f03ba82d.0fc458","type":"function","name":"Daten für eine Datei","func":"msg.payload = msg.payload.lat + ","\n + msg.payload.lon + ","\n + msg.payload.tst + ",";\n\nvar now = new Date(); \n// var now = new Date(parseInt(msg.payload.tst)); \nvar year = now.getFullYear();\nvar month = now.getMonth()+1; \nvar day = now.getDate();\nvar hour = now.getHours();\nvar minute = now.getMinutes();\nvar second = now.getSeconds(); \nif(month.toString().length == 1) {\nvar month = '0'+month;\n}\nif(day.toString().length == 1) {\nvar day = '0'+day;\n} \nif(hour.toString().length == 1) {\nvar hour = '0'+hour;\n}\nif(minute.toString().length == 1) {\nvar minute = '0'+minute;\n}\nif(second.toString().length == 1) {\nvar second = '0'+second;\n} \n//msg.timestamp = year+'-'+month+'-'+day+' '+hour+':'+minute+':'+second;\nmsg.payload = msg.payload + year+'-'+month+'-'+day+' '+hour+':'+minute+':'+second;\n\n\nreturn msg;\n","outputs":"1","x":933.682487487793,"y":1266.8253393173218,"z":"b6ad2ad3.4952d8","wires":[["569fb260.a9604c","732eaf14.8cd15"]]},{"id":"732eaf14.8cd15","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1133.6824989318848,"y":1298.2539434432983,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"53db6e12.ac249","type":"comment","name":"Datei für Import (z.B. in Google Maps)","info":"https://support.google.com/mymaps/answer/3024836?hl=de","x":1449.3967304229736,"y":1264.2062978744507,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"9caa825.f63558","type":"function","name":"Luftlinie in km zwischen Smartphone und daheim","func":"//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n//::: :::\n//::: This routine calculates the distance between two points (given the :::\n//::: latitude/longitude of those points). It is being used to calculate :::\n//::: the distance between two locations using GeoDataSource (TM) prodducts :::\n//::: :::\n//::: Definitions: :::\n//::: South latitudes are negative, east longitudes are positive :::\n//::: :::\n//::: Passed to function: :::\n//::: lat1, lon1 = Latitude and Longitude of point 1 (in decimal degrees) :::\n//::: lat2, lon2 = Latitude and Longitude of point 2 (in decimal degrees) :::\n//::: unit = the unit you desire for results :::\n//::: where: 'M' is statute miles (default) :::\n//::: 'K' is kilometers :::\n//::: 'N' is nautical miles :::\n//::: :::\n//::: Worldwide cities and other features databases with latitude longitude :::\n//::: are available at http://www.geodatasource.com :::\n//::: :::\n//::: For enquiries, please contact sales@geodatasource.com :::\n//::: :::\n//::: Official Web site: http://www.geodatasource.com :::\n//::: :::\n//::: GeoDataSource.com (C) All Rights Reserved 2015 :::\n//::: :::\n//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n\n\n\nfunction distance(lat1, lon1, lat2, lon2, unit) {\n\tvar radlat1 = Math.PI * lat1/180\n\tvar radlat2 = Math.PI * lat2/180\n\tvar radlon1 = Math.PI * lon1/180\n\tvar radlon2 = Math.PI * lon2/180\n\tvar theta = lon1-lon2\n\tvar radtheta = Math.PI * theta/180\n\tvar dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);\n\tdist = Math.acos(dist)\n\tdist = dist * 180/Math.PI\n\tdist = dist * 60 * 1.1515\n\tif (unit=="K") { dist = dist * 1.609344 }\n\tif (unit=="N") { dist = dist * 0.8684 }\n\treturn dist\n}\n\n\n// Home: 51.252596, 6.783141\nvar lat1 = 51.252596;\nvar lon1 = 6.783141;\n// aktueller Standort\nvar lat2 = parseFloat(msg.payload.lat);\nvar lon2 = parseFloat(msg.payload.lon); \n \nvar msg1 = {};\nmsg1.payload = Math.round(distance(lat1, lon1, lat2, lon2, "K")*1000)/1000 // Distanz in km\nvar msg2 = {};\nmsg2.payload = Math.round(distance(lat1, lon1, lat2, lon2, "K")*1000); // in m \nreturn [msg1,msg2];\n\n","outputs":"2","x":1496.7777125040689,"y":431.1111412048339,"z":"b6ad2ad3.4952d8","wires":[["87de0544.7821f8","1815c7be.e7ea38","3c67cfe6.c3983"],["87de0544.7821f8","9839e89f.67c618"]]},{"id":"87de0544.7821f8","type":"debug","name":"","active":false,"console":"false","complete":"payload","x":1798.444480895996,"y":389.4444532394409,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"1815c7be.e7ea38","type":"ioBroker out","name":"","topic":"OwntracksMHDistanzKM","ack":"true","autoCreate":"true","x":1835.1109008789062,"y":429.44446754455566,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"3c67cfe6.c3983","type":"function","name":"als String mit dynamischen Nachkommastellen","func":"function runden(x) {\n var k = (Math.round(x * 100) / 100).toString();\n k += (k.indexOf('.') == -1)? '.0' : '0';\n var p = k.indexOf('.'), m = k.indexOf('-.');\n var f = (p == 0 || m == 0)? '0,' : ',';\n return k.substring(0, p) + f + k.substring(p+1, p+3);\n}\n\n\nvar dist = msg.payload;\nif (dist < 1) {\ndist = Math.round(dist * 1000).toString();\nmsg.payload = dist + " m"; \n} else {\ndist = runden(dist).toString();\nmsg.payload = dist + " km";\n}\n\nreturn msg;","outputs":1,"x":1515.1110191345215,"y":549.4444694519043,"z":"b6ad2ad3.4952d8","wires":[["24e21602.db1dea","b5ba9c19.4a456"]]},{"id":"24e21602.db1dea","type":"ioBroker out","name":"","topic":"OwntracksMHDistanzKMstring","ack":"true","autoCreate":"true","x":1840.1109466552734,"y":547.7777624130249,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"b5ba9c19.4a456","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1785.1110458374021,"y":604.4444745381672,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"fc1122ab.03eee","type":"function","name":"handelt es sich um einen event?","func":"// The received message is stored in 'msg'\n// It will have at least a 'payload' property:\n// console.log(msg.payload);\n// The 'context' object is available to store state\n// between invocations of the function\n// context = {};\nvar now = Date();\nvar message = "";\nvar standort = "";\nvar event = "";\ndata = JSON.parse(msg.payload);\n\n// data.event != undefined => die Meldung enthält kein Feld "event"\n// der if Zweig wird ausgeführt, wenn der Typ der Meldung Location ist und das Feld event vorhanden ist\nif ( (data._type == "location") && (data.event != undefined ) ) {\n\t event = "event";\n\t \n\t // es wird geprüft, ob die Beshreibung für eine location mitgeschickt wird\n\t // ind er Onwtracks app beim Standord "Share" aktiviert\n\t\tif ( data.desc != undefined ) {\n\t\t\t// Shared waypoint, comes with a description:\n\t\t\t\tmessage = data.desc;\n \t\t} else {\n \t\t\t// No description is set, non shared "private" waypoint\n \t\t\t\tmessage = data.lat + "," + data.lon;\n \t\t}\n \t\tstandort = message;\n \n // enthält event == "enter"\n\t\tif ( data.event == "enter" ) {\t\t\t\n\t\t\tmessage = message + " betreten";\n\t\t} else {\n\t\t\tmessage = message + " verlassen";\n\t\t\tstandort = "unbekannt"; // ein Standort wurde verlassen, neuer Standort = "unbekannt"\n\t\t}\n \n \n }\n \nvar msg1 = {};\nvar msg2 = {};\nmsg1.event = event;\nmsg1.payload = message;\n//console.log(msg.payload);\n\nmsg2.event = event;\nmsg2.payload = standort;\n\n\nreturn [msg1,msg2];","outputs":"2","x":1531.7777252197266,"y":751.1110401153564,"z":"b6ad2ad3.4952d8","wires":[["274cc031.d8b34","c677a7fa.398858"],["5abbb50a.a5444c"]]},{"id":"274cc031.d8b34","type":"switch","name":"Prüfen, ob JSON ein event enthielt","property":"event","rules":[{"t":"cont","v":"event"}],"checkall":"true","outputs":1,"x":1540.777603149414,"y":810.4445381164551,"z":"b6ad2ad3.4952d8","wires":[["f00177a7.0ffe88","713d6fe9.8ec29"]]},{"id":"f00177a7.0ffe88","type":"debug","name":"","active":true,"console":"false","complete":"payload","x":1864.1111526489258,"y":782.1108245849609,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"713d6fe9.8ec29","type":"ioBroker out","name":"","topic":"OwntracksMHstandortÄnderung","ack":"true","autoCreate":"true","x":1843.4443359375,"y":812.7777137756348,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"983d3a10.67c2c8","type":"comment","name":"#### todos - erledigt ####","info":"","x":338.44434356689453,"y":989.4444370269775,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"2a0bedc4.d5f412","type":"debug","name":"","active":false,"console":"false","complete":"false","x":893.4444007873535,"y":391.11109828948975,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"2da5d7a3.d25a28","type":"json","name":"","x":540.1110916137695,"y":456.1111011505127,"z":"b6ad2ad3.4952d8","wires":[["96d42da.f692bd","2a0bedc4.d5f412"]]},{"id":"c677a7fa.398858","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1863.4444007873535,"y":732.7776889801025,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"9839e89f.67c618","type":"ioBroker out","name":"","topic":"OwntracksMHDistanzM","ack":"true","autoCreate":"true","x":1838.4443664550781,"y":477.77777099609375,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"3b7b6929.c48496","type":"comment","name":"GEOFENCE = event","info":"","x":1498.444465637207,"y":706.111102104187,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"5abbb50a.a5444c","type":"switch","name":"Prüfen, ob JSON ein event enthielt","property":"event","rules":[{"t":"cont","v":"event"}],"checkall":"true","outputs":1,"x":1541.7777709960938,"y":904.4443807601929,"z":"b6ad2ad3.4952d8","wires":[["2eb71c6c.d148e4","3598ce6c.ca6732"]]},{"id":"2eb71c6c.d148e4","type":"debug","name":"","active":true,"console":"false","complete":"payload","x":1860.111270904541,"y":867.7773723602295,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"3598ce6c.ca6732","type":"ioBroker out","name":"","topic":"OwntracksMHstandort","ack":"true","autoCreate":"true","x":1821.111228942871,"y":906.7775535583496,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"a42a7a54.5bd588","type":"websocket out","name":"","server":"e3fec925.2c1cb","x":875.2064056396484,"y":1516.301570892334,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"14cae0e5.eb351f","type":"websocket in","name":"","server":"e3fec925.2c1cb","x":439.20640563964844,"y":1568.301570892334,"z":"b6ad2ad3.4952d8","wires":[["c27e7ac0.3d8188","fec0f15d.013f1"]]},{"id":"57f652ee.a809ac","type":"http in","name":"","url":"/map","method":"get","x":438.20640563964844,"y":1666.301570892334,"z":"b6ad2ad3.4952d8","wires":[["d49bc33b.2b644"]]},{"id":"156c627b.ea939e","type":"http response","name":"","x":886.2064056396484,"y":1666.301570892334,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"d49bc33b.2b644","type":"template","name":"Google Maps http://eigeneIP:1880/map","field":"","template":"\n\n\n <title>Owntracks & The ThingBox Live Map</title>\n \n \n \n \n \n\n\n \n \n \n\n","x":658.2064056396484,"y":1666.301570892334,"z":"b6ad2ad3.4952d8","wires":[["156c627b.ea939e"]]},{"id":"c27e7ac0.3d8188","type":"function","name":"function 2","func":"// The received message is stored in 'msg'\n// It will have at least a 'payload' property:\n// console.log(msg.payload);\n// The 'context' object is available to store state\n// between invocations of the function\n// context = {};\n\nmsg.payload = context.global.location;\n\nreturn msg;","outputs":1,"x":665.2064056396484,"y":1568.301570892334,"z":"b6ad2ad3.4952d8","wires":[["a42a7a54.5bd588","52e0ab0d.ad1f54"]]},{"id":"40a1c6e1.bf5e38","type":"function","name":"function 1","func":"// The received message is stored in 'msg'\n// It will have at least a 'payload' property:\n// console.log(msg.payload);\n// The 'context' object is available to store state\n// between invocations of the function\n// context = {};\ncontext.global.location = msg.payload;\n\nreturn msg;","outputs":1,"x":668.2064056396484,"y":1472.301570892334,"z":"b6ad2ad3.4952d8","wires":[["a42a7a54.5bd588","7d68d68f.829728"]]},{"id":"b06787.ff4f9878","type":"function","name":"Adaptation","func":"var zoom = 17; // Default = 17\n// In Zeile 20 im Template Node die eigene IP-Adresse vonioBroker/Node-red eintragen\n\n\nvar latitude = msg.payload.lat;\nvar longitude = msg.payload.lon;\nmsg.payload = '[{"lat":"' + latitude + '","lng":"' + longitude + '","zoom":"' + zoom + '"}]'; \nreturn msg;","outputs":1,"x":510.20640563964844,"y":1472.301570892334,"z":"b6ad2ad3.4952d8","wires":[["40a1c6e1.bf5e38"]]},{"id":"7d68d68f.829728","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1039.777816772461,"y":1483.301570892334,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"52e0ab0d.ad1f54","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1039.492172241211,"y":1557.0158042907715,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"fec0f15d.013f1","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1033.777816772461,"y":1611.444393157959,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"d4cafa2.f2b3508","type":"comment","name":"http://eigeneIP:1880/map (eigene IP in Zeile 20 im Template Node eintragen)","info":"","x":741.7778167724609,"y":1425.444393157959,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"c4beb199.3b415","type":"debug","name":"","active":true,"console":"false","complete":"true","x":568.4444580078125,"y":376.11109924316406,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"814c4ad4.7eb3b8","type":"debug","name":"","active":false,"console":"false","complete":"true","x":879.1111145019529,"y":227.11111450195307,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"8cc85523.7337a8","type":"debug","name":"","active":false,"console":"false","complete":"false","x":935.1111145019529,"y":177.1111145019531,"z":"b6ad2ad3.4952d8","wires":[]},{"id":"5182c591.ae7d3c","type":"function","name":"","func":"\nreturn msg;","outputs":1,"x":389.39685249328613,"y":422.0634641647339,"z":"b6ad2ad3.4952d8","wires":[["fc1122ab.03eee","2da5d7a3.d25a28"]]}]

                      Adapter: Fritzbox, Unify Circuit
                      Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                      1 Antwort Letzte Antwort
                      0
                      • A Offline
                        A Offline
                        Arminhh
                        schrieb am zuletzt editiert von
                        #11

                        Hallo rur70,

                        danke für den Flow.

                        Versuche gerade soweit alles einzurichten. ich komme soweit, das im Log die Daten ankommen.

                        mqtt-0	2015-09-07 16:52:03	info	Send to client [ArminsHandy] "owntracks/armin/ArminsHandy": {"_type": "location", "lat": "53.xxxxx", "lon": "10.0112962", "tst": "1441622918", "acc": "30.0", "batt": "83"}
                        mqtt-0	2015-09-07 16:52:03	info	Send to client [ArminsHandy] "owntracks/armin/Armins Handy": {"_type": "location", "lat": "53.xxxxxx", "lon": "10.0113532", "tst": "1441615725", "acc": "30.0", "batt": "96"}
                        mqtt-0	2015-09-07 16:52:01	info	Client [ArminsHandy] subscribes on "mqtt.0.owntracks.+.+" with regex /mqtt\.0\.owntracks\.[^.]*\.[^\.].*$/
                        mqtt-0	2015-09-07 16:52:01	info	Client [ArminsHandy] subscribes on "owntracks.+.+" with regex /owntracks\.[^.]*\.[^\.].*$/
                        mqtt-0	2015-09-07 16:52:01	info	Client [ArminsHandy] publishes "mqtt.0.$SYS.keepalive"(string):
                        mqtt-0	2015-09-07 16:52:01	info	Client [ArminsHandy] publishes "mqtt.0.$SYS.keepalive"(string):
                        mqtt-0	2015-09-07 16:52:01	info	Client [ArminsHandy] publishes "mqtt.0.$SYS.keepalive"(string):
                        mqtt-0	2015-09-07 16:52:01	info	Client [ArminsHandy] publishes "mqtt.0.$SYS.keepalive"(string):
                        mqtt-0	2015-09-07 16:52:01	info	Client [ArminsHandy] publishes "mqtt.0.$SYS.keepalive"(string):
                        mqtt-0	2015-09-07 16:52:01	info	Client [ArminsHandy] publishes "mqtt.0.$SYS.keepalive"(string):
                        mqtt-0	2015-09-07 16:52:01	info	Client [ArminsHandy] publishes "mqtt.0.$SYS.keepalive"(string):
                        mqtt-0	2015-09-07 16:52:01	info	Client [ArminsHandy] publishes "mqtt.0.$SYS.keepalive"(string):
                        mqtt-0	2015-09-07 16:52:01	info	Client [ArminsHandy] publishes "mqtt.0.$SYS.keepalive"(string):
                        mqtt-0	2015-09-07 16:52:01	info	Client [ArminsHandy] publishes "mqtt.0.$SYS.keepalive"(string):
                        mqtt-0	2015-09-07 16:52:01	info	Client [ArminsHandy] connected
                        

                        Der Flow sieht so aus.
                        280_screenshot_52.jpg
                        Was ich nicht verstehe, sind die unterschiedlichen Ports

                        Wo ich im Flow meine Daten eintragen muss. Ich habe mal testweise meine Device ID eingetragen.
                        280_screenshot_53.jpg
                        Wo werden die events eingetragen?

                        Die Variablen wurden auch nicht angelegt

                        Danke für die Hilfe!! Super Arbeit!

                        mfg

                        Armin

                        1 Antwort Letzte Antwort
                        0
                        • ruhr70R Offline
                          ruhr70R Offline
                          ruhr70
                          schrieb am zuletzt editiert von
                          #12

                          Die unterschiedlichen Ports sind noch "Müll", die beim Testen übrig geblieben sind (Port 8883).

                          Der Flow funktioniert mit dem 1883 und dem mqtt Adapter.

                          Den Rest muss ich mir nachher mal ansehen. War da schon ewig nicht mehr dran.

                          Adapter: Fritzbox, Unify Circuit
                          Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                          1 Antwort Letzte Antwort
                          0
                          • A Offline
                            A Offline
                            Arminhh
                            schrieb am zuletzt editiert von
                            #13

                            so bin ein wenig weiter gekommen.

                            Nachdem ich MQTT mit User und Kennwort konfiguriert habe, 280_screenshot_55.jpg habe ich auch eine Verbindung. Nur die die Variablen werden nicht angelegt und in Notes kommen diese Fehler. (SIehe Bild. Das Log sieht so aus.

                            -0	2015-09-07 18:43:45	info	Client [ArminsHandy] publishes "mqtt.0.$SYS.keepalive"(string):
                            host-Test	2015-09-07 18:30:08	info	instance system.adapter.ical.0 terminated with code 0 (OK)
                            host-Test	2015-09-07 18:30:00	info	instance system.adapter.ical.0 started with pid 4227
                            mqtt-0	2015-09-07 18:28:44	info	Client [ArminsHandy] publishes "mqtt.0.$SYS.keepalive"(string):
                            mqtt-0	2015-09-07 18:20:56	info	Client [ArminsHandy] subscribes on "mqtt.0\. owntracks.#" with regex /^mqtt\.0\. owntracks\..*/
                            mqtt-0	2015-09-07 18:20:56	info	Client [ArminsHandy] subscribes on " owntracks.#" with regex /^ owntracks\..*/
                            mqtt-0	2015-09-07 18:20:56	info	Client [ArminsHandy] connected
                            mqtt-0	2015-09-07 18:20:56	info	Client [ArminsHandy] closed
                            node-red-0	2015-09-07 18:20:56	info	Save /root/iobroker-data/node-red/flows.json
                            mqtt-0	2015-09-07 18:20:55	info	Client [ArminsHandy] disconnected
                            mqtt-0	2015-09-07 18:14:18	info	Client [ArminsHandy] publishes "mqtt.0.owntracks.armin.ArminsHandy"(string): {"_type": "location", "lat": "53.xxxxx", "lon": "10.0113643", "tst": "1441642460", "acc": "30.0", "batt": "82"}
                            mqtt-0	2015-09-07 18:13:23	info	Send to client [ArminsHandy] "owntracks/armin/ArminsHandy/waypoints": undefined
                            mqtt-0	2015-09-07 18:13:23	info	Send to client [ArminsHandy] "owntracks/armin/ArminsHandy": {"_type": "location", "lat": "53.xxxxx", "lon": "10.0112962", "tst": "1441622918", "acc": "30.0", "batt": "83"}
                            mqtt-0	2015-09-07 18:13:21	info	Client [ArminsHandy] subscribes on "mqtt.0.owntracks.+.+" with regex /mqtt\.0\.owntracks\.[^.]*\.[^\.].*$/
                            mqtt-0	2015-09-07 18:13:21	info	Client [ArminsHandy] subscribes on "owntracks.+.+" with regex /owntracks\.[^.]*\.[^\.].*$/
                            mqtt-0	2015-09-07 18:13:21	info	Client [ArminsHandy] connected
                            mqtt-0	2015-09-07 18:13:21	info	Client [ArminsHandy] closed
                            mqtt-0	2015-09-07 18:13:21	info	Client [ArminsHandy] disconnected
                            node-red-0	2015-09-07 18:10:46	warn	7 Sep 18:10:46 - [warn] [switch:f77c1141.0883f] TypeError: Cannot read property 'alt' of null
                            node-red-0	2015-09-07 18:10:46	error	7 Sep 18:10:46 - [error] [function:handelt es sich um einen event?] TypeError: Cannot read property '_type' of null
                            mqtt-0	2015-09-07 18:10:46	info	Send to client [ArminsHandy] "Owntracks geofence 1883": null
                            node-red-0	2015-09-07 18:10:44	info	Save /root/iobroker-data/node-red/flows.json
                            mqtt-0	2015-09-07 18:10:44	info	Client [ArminsHandy] subscribes on "mqtt.0.Owntracks geofence 1883"
                            mqtt-0	2015-09-07 18:10:44	info	Create state mqtt.0.Owntracks geofence 1883 for subscribe
                            mqtt-0	2015-09-07 18:10:44	info	Client [ArminsHandy] connected
                            node-red-0	2015-09-07 18:10:43	info	Save /root/iobroker-data/node-red/flows.json
                            mqtt-0	2015-09-07 18:09:50	info	Client [ArminsHandy] closed
                            node-red-0	2015-09-07 18:09:50	info	Save /root/iobroker-data/node-red/flows.json
                            mqtt-0	2015-09-07 18:09:49	info	Client [ArminsHandy] disconnected
                            mqtt-0	2015-09-07 18:04:29	info	Send to client [ArminsHandy] "owntracks/armin/ArminsHandy/waypoints": undefined
                            mqtt-0	2015-09-07 18:04:29	info	Send to client [ArminsHandy] "owntracks/armin/ArminsHandy": {"_type": "location", "lat": "53.xxxx", "lon": "10.0112962", "tst": "1441622918", "acc": "30.0", "batt": "83"}
                            mqtt-0	2015-09-07 18:04:27	info	Client [ArminsHandy] subscribes on "mqtt.0.owntracks.+.+" with regex /mqtt\.0\.owntracks\.[^.]*\.[^\.].*$/
                            mqtt-0	2015-09-07 18:04:27	info	Client [ArminsHandy] subscribes on "owntracks.+.+" with regex /owntracks\.[^.]*\.[^\.].*$/
                            mqtt-0	2015-09-07 18:04:27	info	Send to client [ArminsHandy] "hue/0/Philips_hue/Holzterasse/command": {"on":true,"hue":10834,"sat":254,"bri":254,"transitiontime":23}
                            mqtt-0	2015-09-07 18:04:27	info	Client [ArminsHandy] connected
                            mqtt-0	2015-09-07 18:04:26	info	Client [ArminsHandy] closed
                            mqtt-0	2015-09-07 18:04:26	info	Client [ArminsHandy] disconnected
                            mqtt-0	2015-09-07 18:03:59	info	Client [ArminsHandy] publishes "mqtt.0.owntracks.armin.ArminsHandy.waypoints"(string): {"_type": "waypoint", "desc": "zuhause", "lat": "53.634628", "lon": "10.0113573", "tst": "1441603247", "rad": "1
                            mqtt-0	2015-09-07 18:03:41	info	Client [ArminsHandy] publishes "mqtt.0.owntracks.armin.ArminsHandy"(string): {"_type": "location", "lat": "53.xxxxx", "lon": "10.0113298", "tst": "1441641822", "acc": "30.0", "batt": "84"}
                            mqtt-0	2015-09-07 18:01:30	info	Send to client [ArminsHandy] "owntracks/armin/ArminsHandy/waypoints": undefined
                            mqtt-0	2015-09-07 18:01:30	info	Send to client [ArminsHandy] "owntracks/armin/ArminsHandy": {"_type": "location", "lat": "53.xxxxx", "lon": "10.0112962", "tst": "1441622918", "acc": "30.0", "batt": "83"}
                            mqtt-0	2015-09-07 18:01:28	info	Client [ArminsHandy] subscribes on "mqtt.0.owntracks.+.+" with regex /mqtt\.0\.owntracks\.[^.]*\.[^\.].*$/
                            mqtt-0	2015-09-07 18:01:28	info	Client [ArminsHandy] subscribes on "owntracks.+.+" with regex /owntracks\.[^.]*\.[^\.].*$/
                            mqtt-0	2015-09-07 18:01:28	info	Client [ArminsHandy] connected
                            mqtt-0	2015-09-07 18:01:28	info	Client [ArminsHandy] closed
                            mqtt-0	2015-09-07 18:01:28	info	Client [ArminsHandy] disconnected
                            mqtt-0	2015-09-07 18:01:04	info	Client [ArminsHandy] publishes "mqtt.0.owntracks.armin.ArminsHandy.waypoints" (string): {"_type": "waypoint", "desc": "zuhause", "lat": "53.634628", "lon": "10.0113573", "tst": "1441603247", "rad": "
                            mqtt-0	2015-09-07 18:01:04	info	Create state mqtt.0.owntracks.armin.ArminsHandy.waypoints
                            mqtt-0	2015-09-07 18:01:03	info	Client [ArminsHandy] publishes "mqtt.0.$SYS.keepalive"(string):
                            mqtt-0	2015-09-07 18:00:37	info	Client [ArminsHandy] publishes "mqtt.0.owntracks.armin.ArminsHandy"(string): {"_type": "location", "lat": "53.xxxxx9", "lon": "10.0113298", "tst": "1441641639", "acc": "30.0", "batt": "85"}
                            mqtt-0	2015-09-07 18:00:30	info	Client [ArminsHandy] publishes "mqtt.0.owntracks.armin.ArminsHandy"(string): {"_type": "location", "lat": "53.xxxxx", "lon": "10.0113464", "tst": "1441641632", "acc": "30.0", "batt": "86"}
                            
                            
                            1 Antwort Letzte Antwort
                            0
                            • A Offline
                              A Offline
                              Arminhh
                              schrieb am zuletzt editiert von
                              #14

                              hallo ruhr70,

                              so langsam komme ich weiter. Scheinbar habe ich ein Port Problem. Ich bekomme die Fehlermeldung "unable to listen on port 1883, error: Error: listen EADDRINUSE" Der MQTT Adapter läuft auf Port 1883 und der Node-redadapter auf 1880. Kannst Du mir da einen Tip geben? Was ich nicht verstehe ist, warum sehe ich dann die Daten vom MQTT Adapter im IOBroker Log?

                              mfg

                              Arminhh
                              6334_google.jpg

                              1 Antwort Letzte Antwort
                              0
                              • ruhr70R Offline
                                ruhr70R Offline
                                ruhr70
                                schrieb am zuletzt editiert von
                                #15

                                Du hast es anders eingerichtet als ich.

                                Ich nutze den mqtt Adapter von ioBroker und dann in Node-red den Datenpunkt von dem Adapter.

                                Du nutzt direkt die mqtt Anbindung von Node-red.

                                Du hast nun wahrscheinlich den Port 1883 in Node-red über den mqtt Baustein in Node-red realisiert und den mqtt-Adapter in ioBroker noch Parallel aktiv?

                                Dann würden zwei Applikationen um den Port 1883 kämpfen und eine gewinnt. Das würde die Fehlermeldung "unable to listen on port 1883, error: Error: listen EADDRINUSE" erklären.

                                Ich sitze gerade nicht vor meiner Installation. Aber der Port 1880 ist doch der Port der Weboberfläche von Node-red oder? Das hat damit nichts zu tun.

                                Du hast Dich für die variante entschieden, die bei mir nicht aktiv ist ;-)

                                das wird etwas schwierig.

                                Adapter: Fritzbox, Unify Circuit
                                Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                                1 Antwort Letzte Antwort
                                0
                                • A Offline
                                  A Offline
                                  Arminhh
                                  schrieb am zuletzt editiert von
                                  #16

                                  Hallo Ruhr70

                                  jetzt ist der Groschen gefallen! Die Variablen werden jetzt gefüllt.

                                  Anbei mal screenshot von den Werten. Ich habe das Gefühl die Werte sind so noch nicht richtig formatiert.

                                  Was ich nicht verstehe, wie ich die Wegepoints einfüge. Ich habe auf dem Handy einmal zuhause und einen 2 Wegepoint eingerichtet. zuhause wird angezeigt der 2 nicht.

                                  Der Batteriestatus stimmt nicht.

                                  Obwohl das Handy direkt neben mir liegt zeigt die Distanz über 343 km an.

                                  Über ein paar Tips würde ich mich freuen!

                                  Sorry für die vielen Fragen!

                                  mfg

                                  Arminhh

                                  280_screenshot_56.jpg

                                  1 Antwort Letzte Antwort
                                  0
                                  • A Offline
                                    A Offline
                                    Arminhh
                                    schrieb am zuletzt editiert von
                                    #17

                                    Guten morgen,

                                    jetzt läuft es bei mir!

                                    Eine Frage zum App Ownreack Sobalb das Handy auf Standby geht sendet das App keine Daten mehr und der Status im Flow geht auf unbekannt. Kann ich da noch was machen?

                                    Frage 2

                                    Ich habe den Flow erweitert um die Funktion die Waypoints zusätzlich als Zahl auszugeben. Die Funktion habe ich bei der Funktion( Prüfen ob JSON ein Event enthäll)t.

                                    Dort greife ich mit

                                    msg.payload=msg.payload;

                                    if ( msg.payload == "unbekannt" )

                                    msg.payload = 0;

                                    return msg;

                                    oder

                                    msg.payload=msg.payload;

                                    if ( msg.payload == "zuhause" )

                                    msg.payload = 1;

                                    return msg;

                                    die Werte ab.

                                    Das Merkwürdige ist, es Funktioniert kurz. Das bedeutet die Variable wird kurz mit 0 oder 1 gefüllt nach ein paar Sekunden wird wieder der Wert zuhause oder unbekannt in die Variable geschrieben. Was mache ich falsch!

                                    Anbei der Flow und ein Screenshot.

                                    Erreichen möchte ich damit, die Standorte einem Tile ValueList 8 Widget zuweisen zu können.

                                    280_screenshot_58.jpg

                                    Hier der Flow

                                    [{"id":"2ab4dfa8.d54b2","type":"websocket-listener","path":"/ws/location","wholemsg":"false"},{"id":"a1f9b6e6.5e0648","type":"ioBroker in","name":"owntracks/armin/ArminsHandy","topic":"mqtt.0.owntracks.armin.ArminsHandy","payloadType":"value","x":175.44442749023438,"y":250.85719871520996,"z":"d3db8aa8.2c2478","wires":[["52c56ca0.ad3a94","9d18abf4.62e758","2715045a.d8eafc"]]},{"id":"c3dceab4.3c2318","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1184.4446105957031,"y":261.33338260650635,"z":"d3db8aa8.2c2478","wires":[]},{"id":"7d17eb00.82e814","type":"function","name":"Koordinaten (lat)","func":"msg.payload = parseFloat(msg.payload.lat);\nreturn msg;","outputs":"1","x":940.1112594604492,"y":455.00004959106445,"z":"d3db8aa8.2c2478","wires":[["d62bdfe8.29d42","10f3801a.ef0c8"]]},{"id":"3fc4e765.c03b18","type":"function","name":"Koordinaten (lon)","func":"msg.payload = parseFloat(msg.payload.lon);\nreturn msg;","outputs":"1","x":941.111198425293,"y":486.1112251281738,"z":"d3db8aa8.2c2478","wires":[["d62bdfe8.29d42","d23f5754.2dc0a8"]]},{"id":"20a23cfd.df5dc4","type":"json","name":"","x":578.444450378418,"y":267.5556001663208,"z":"d3db8aa8.2c2478","wires":[["c3dceab4.3c2318"]]},{"id":"6327d64d.9cd828","type":"comment","name":"Owntracks an ioBroker mqtt Instanz (Port 1883)","info":"Beschreibung der JSON Datenfelder:\n\nhttps://github.com/owntracks/owntracks/wiki/JSON","x":221.44442749023438,"y":212.41274070739746,"z":"d3db8aa8.2c2478","wires":[]},{"id":"4dbc57fc.b243a8","type":"comment","name":"Ausgabe: Value","info":"","x":345.1110610961914,"y":274.7461223602295,"z":"d3db8aa8.2c2478","wires":[]},{"id":"ea0f4f3f.15f0b","type":"comment","name":"Behandlung als JSON","info":"","x":585.444450378418,"y":233.5556001663208,"z":"d3db8aa8.2c2478","wires":[]},{"id":"c1d42279.3e2be","type":"comment","name":"Auswertung der JSON Daten","info":"","x":939.1111450195312,"y":423.5555896759033,"z":"d3db8aa8.2c2478","wires":[]},{"id":"d37b63a4.2c84a","type":"function","name":"Höhe in m (alt)","func":"msg.payload = parseInt(msg.payload.alt);\nreturn msg;","outputs":"1","x":936.000114440918,"y":540.5555610656738,"z":"d3db8aa8.2c2478","wires":[["d62bdfe8.29d42","95bb59b7.6a44a8"]]},{"id":"94b876af.6b4788","type":"function","name":"Batterieladestand (batt)","func":"msg.payload = parseInt(msg.payload.batt);\nreturn msg;","outputs":"1","x":939.0000534057617,"y":589.555591583252,"z":"d3db8aa8.2c2478","wires":[["d62bdfe8.29d42","b231ed52.4dce1"]]},{"id":"713e55fc.8ec1ac","type":"switch","name":"","property":"payload.alt","rules":[{"t":"neq","v":"0"}],"checkall":"true","outputs":1,"x":690.3333435058594,"y":438.22222900390625,"z":"d3db8aa8.2c2478","wires":[["7d17eb00.82e814","3fc4e765.c03b18","d37b63a4.2c84a","94b876af.6b4788","fed37e61.012c8","6b95e417.946a1c","3cd77854.c32888","1cb03cf.fe34fc3","57f743c8.a808bc","56a04f2e.a95fb","fdbe760.f024188","5f32add6.a0cd54","a78ac0e7.58754","4fb65101.b049b","5607f660.a9f808","d5757a45.2a8a88","aeb6f8f1.514908","9d9f8ae3.626078"]]},{"id":"c58e474f.3a71b8","type":"comment","name":"Meldungen mit 0 ausfiltern","info":"","x":622.6666259765625,"y":478.2222385406494,"z":"d3db8aa8.2c2478","wires":[]},{"id":"d62bdfe8.29d42","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1178.0000534057617,"y":379.55556869506836,"z":"d3db8aa8.2c2478","wires":[]},{"id":"fed37e61.012c8","type":"function","name":"Kurs 0 = Norden (cog)","func":"msg.payload = parseInt(msg.payload.cog);\nreturn msg;","outputs":"1","x":942.9999923706055,"y":640.555591583252,"z":"d3db8aa8.2c2478","wires":[["d62bdfe8.29d42","203fa93d.dfc056"]]},{"id":"6b95e417.946a1c","type":"function","name":"Grund für die Meldung (t)","func":"msg.payload = msg.payload.t;\nreturn msg;\n\n\n// \"p\" ping, issued randomly by background task\n// \"c\" circular region enter/leave event\n// \"b\" beacon region enter/leave event\n// \"r\" response to a \"reportLocation\" request\n// \"u\" manual publish requested by the user\n// \"t\" timer based publish in move move\n// \"a\" or missing t indicates automatic location update","outputs":"1","x":946.9999923706055,"y":696.555591583252,"z":"d3db8aa8.2c2478","wires":[["d62bdfe8.29d42","46183fe4.b9e7c"]]},{"id":"3cd77854.c32888","type":"function","name":"Tracker ID (tid)","func":"msg.payload = msg.payload.tid;\nreturn msg;","outputs":"1","x":950.9999923706055,"y":754.555591583252,"z":"d3db8aa8.2c2478","wires":[["d62bdfe8.29d42","b72fd3fc.48d03"]]},{"id":"1cb03cf.fe34fc3","type":"function","name":"(Geschwindigkeit in km/h (vel)","func":"msg.payload = parseInt(msg.payload.vel);\nreturn msg;","outputs":"1","x":944.9999923706055,"y":802.555591583252,"z":"d3db8aa8.2c2478","wires":[["d62bdfe8.29d42","a37ad666.5c8528"]]},{"id":"57f743c8.a808bc","type":"function","name":"Genauigkeit Koordinaten in m (acc)","func":"msg.payload = parseInt(msg.payload.acc);\nreturn msg;","outputs":"1","x":937.9999923706055,"y":855.555591583252,"z":"d3db8aa8.2c2478","wires":[["d62bdfe8.29d42","ccd1c76a.332e38"]]},{"id":"56a04f2e.a95fb","type":"function","name":"GoogleMaps Adresse https","func":"msg.payload = \"https://www.google.de/maps/@\" \n       + msg.payload.lat + \",\" +\n       + msg.payload.lon;\nreturn msg;\n","outputs":"1","x":926.9999923706055,"y":915.222225189209,"z":"d3db8aa8.2c2478","wires":[["d62bdfe8.29d42","54c7e36b.ab381c"]]},{"id":"10f3801a.ef0c8","type":"ioBroker out","name":"","topic":"OwntracksMHlat","ack":"true","autoCreate":"true","x":1181.9999923706055,"y":454.11113357543945,"z":"d3db8aa8.2c2478","wires":[]},{"id":"d23f5754.2dc0a8","type":"ioBroker out","name":"","topic":"OwntracksMHlon","ack":"true","autoCreate":"true","x":1183.9999923706055,"y":499.11113357543945,"z":"d3db8aa8.2c2478","wires":[]},{"id":"95bb59b7.6a44a8","type":"ioBroker out","name":"","topic":"OwntracksMHalt","ack":"true","autoCreate":"true","x":1182.9999923706055,"y":547.1111335754395,"z":"d3db8aa8.2c2478","wires":[]},{"id":"b231ed52.4dce1","type":"ioBroker out","name":"","topic":"OwntracksMHbatt","ack":"true","autoCreate":"true","x":1184.9999923706055,"y":598.1111335754395,"z":"d3db8aa8.2c2478","wires":[]},{"id":"203fa93d.dfc056","type":"ioBroker out","name":"","topic":"OwntracksMHcog","ack":"true","autoCreate":"true","x":1178.9999923706055,"y":646.1111335754395,"z":"d3db8aa8.2c2478","wires":[]},{"id":"46183fe4.b9e7c","type":"ioBroker out","name":"","topic":"OwntracksMHt","ack":"true","autoCreate":"true","x":1171.9999923706055,"y":695.1111335754395,"z":"d3db8aa8.2c2478","wires":[]},{"id":"b72fd3fc.48d03","type":"ioBroker out","name":"","topic":"OwntracksMHtid","ack":"true","autoCreate":"true","x":1174.9999923706055,"y":745.1111335754395,"z":"d3db8aa8.2c2478","wires":[]},{"id":"a37ad666.5c8528","type":"ioBroker out","name":"","topic":"OwntracksMHvel","ack":"true","autoCreate":"true","x":1173.9999923706055,"y":795.1111335754395,"z":"d3db8aa8.2c2478","wires":[]},{"id":"ccd1c76a.332e38","type":"ioBroker out","name":"","topic":"OwntracksMHacc","ack":"true","autoCreate":"true","x":1179.9999923706055,"y":852.1111335754395,"z":"d3db8aa8.2c2478","wires":[]},{"id":"54c7e36b.ab381c","type":"ioBroker out","name":"","topic":"OwntracksMHgoogleMaps","ack":"true","autoCreate":"true","x":1182.9999923706055,"y":918.5555992126465,"z":"d3db8aa8.2c2478","wires":[]},{"id":"fdbe760.f024188","type":"function","name":"Timestamp (tst)","func":"msg.payload = msg.payload.tst;\nreturn msg;","outputs":"1","x":936.9999923706055,"y":981.000057220459,"z":"d3db8aa8.2c2478","wires":[["c96d66a9.369298","b2db292e.4d24d8"]]},{"id":"c96d66a9.369298","type":"ioBroker out","name":"","topic":"OwntracksMHtst","ack":"true","autoCreate":"true","x":1147.9999923706055,"y":982.5555992126465,"z":"d3db8aa8.2c2478","wires":[]},{"id":"5f32add6.a0cd54","type":"switch","name":"Zwei gleiche Timestamps rausfiltern","property":"payload.tst","rules":[{"t":"eq","v":"node-red.0.OwntracksMHtst"}],"checkall":"true","outputs":1,"x":530.9999313354492,"y":584.5555686950684,"z":"d3db8aa8.2c2478","wires":[["cae6e6af.351918"]]},{"id":"cae6e6af.351918","type":"debug","name":"Debug: Ausgabe nur bei gleichen Timestamps","active":false,"console":"false","complete":"payload.tst","x":470.99996185302734,"y":627.5555992126465,"z":"d3db8aa8.2c2478","wires":[]},{"id":"a78ac0e7.58754","type":"function","name":"Datum (tst) lesbar umwandeln","func":"// (1) wandelt timestamo ins ISO Datumformat um\n//msg.timestamp= new Date().toISOString()\n\n\n// (2) beliebiges Datum festlegbar: hier: YYYY-MM-DD HH:MM.SS\n//     (Ausgabeformat wird danz am Ende zusammengestellt)\nvar now     = new Date(); \n// var now     = new Date(parseInt(msg.payload.tst)); \nvar year    = now.getFullYear();\nvar month   = now.getMonth()+1; \nvar day     = now.getDate();\nvar hour    = now.getHours();\nvar minute  = now.getMinutes();\nvar second  = now.getSeconds(); \nif(month.toString().length == 1) {\nvar month = '0'+month;\n}\nif(day.toString().length == 1) {\nvar day = '0'+day;\n}   \nif(hour.toString().length == 1) {\nvar hour = '0'+hour;\n}\nif(minute.toString().length == 1) {\nvar minute = '0'+minute;\n}\nif(second.toString().length == 1) {\nvar second = '0'+second;\n}   \n//msg.timestamp = year+'-'+month+'-'+day+' '+hour+':'+minute+':'+second;\nmsg.payload = year+'-'+month+'-'+day+' '+hour+':'+minute+':'+second;\n\n\nreturn msg;","outputs":1,"x":942.1110229492188,"y":1041.333330154419,"z":"d3db8aa8.2c2478","wires":[["c5ae4dd5.3a51b","f27cefc6.0d831"]]},{"id":"c5ae4dd5.3a51b","type":"ioBroker out","name":"","topic":"OwntracksMHdatum","ack":"true","autoCreate":"true","x":1168.7776107788086,"y":1039.6666984558105,"z":"d3db8aa8.2c2478","wires":[]},{"id":"b2db292e.4d24d8","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1354.6110649108887,"y":983.4166965484619,"z":"d3db8aa8.2c2478","wires":[]},{"id":"f27cefc6.0d831","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1359.6110458374023,"y":1035.9166831970215,"z":"d3db8aa8.2c2478","wires":[]},{"id":"4a7ccf70.b5833","type":"comment","name":"Datum auf Date() geändert","info":"Über msg.payload.tst kommt immer ein Datum aus 1970 mit.\nDaher wird nun das aktuelle Datum im Flow erzeugt und verwendet.","x":923.3610572814941,"y":1072.1666975021362,"z":"d3db8aa8.2c2478","wires":[]},{"id":"2bfe9c31.d40164","type":"comment","name":"http://osmtools.de/osmlinks/?lang=de","info":"http://osmtools.de/osmlinks/?lang=de&lon=6.7855&lat=51.246498&zoom=18\n","x":809.2539716448102,"y":43.238085065569194,"z":"d3db8aa8.2c2478","wires":[]},{"id":"6fa2151d.905dec","type":"comment","name":"http://www.openstreetmap.org/?mlon=6.7855&mlat=51.246498&zoom=18#map=18/51.24650/6.78550","info":"","x":1013.5397186279297,"y":74.66665649414062,"z":"d3db8aa8.2c2478","wires":[]},{"id":"4fb65101.b049b","type":"function","name":"openstreetmap Adresse http","func":"// http://www.openstreetmap.org/?mlon=6.7855&mlat=51.246498&zoom=18#map=18/51.24650/6.78550\n\n// Koordinate inkl. Marker\nmsg.payload = \"http://www.openstreetmap.org/?mlon=\" \n       + msg.payload.lon + \"&mlat=\"\n       + msg.payload.lat + \"&zoom=16#map=16/\" // Zoom Stufe 16 (beide Werte anpssen, wenn Änderung gewünscht)\n       + msg.payload.lat + \"/\"\n       + msg.payload.lon;\nreturn msg;\n","outputs":"1","x":924.9682235717773,"y":1130.380955696106,"z":"d3db8aa8.2c2478","wires":[["22ead552.dd152a","127acc53.ed8534"]]},{"id":"22ead552.dd152a","type":"ioBroker out","name":"","topic":"OwntracksMHopenstreetmap","ack":"true","autoCreate":"true","x":1193.539665222168,"y":1127.5238437652588,"z":"d3db8aa8.2c2478","wires":[]},{"id":"127acc53.ed8534","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1404.9682846069336,"y":1127.5237741470337,"z":"d3db8aa8.2c2478","wires":[]},{"id":"5607f660.a9f808","type":"function","name":"öpnv Adresse http","func":"// http://xn--pnvkarte-m4a.de/?lon=6.7855&lat=51.246498&zoom=17\n\nmsg.payload = \"http://xn--pnvkarte-m4a.de/?lon=\" \n       + msg.payload.lon + \"&lat=\"\n       + msg.payload.lat + \"&zoom=17\"; // Zoom Stufe 17 \n\nreturn msg;\n","outputs":"1","x":920.682487487793,"y":1177.5238952636719,"z":"d3db8aa8.2c2478","wires":[["e61780a2.19e88"]]},{"id":"e61780a2.19e88","type":"ioBroker out","name":"","topic":"OwntracksMHöpnvkarte","ack":"true","autoCreate":"true","x":1193.539649963379,"y":1180.381012916565,"z":"d3db8aa8.2c2478","wires":[]},{"id":"3f8c6d6d.c07392","type":"file","name":"","filename":"/opt/iobroker/wegepunkte.csv","appendNewline":true,"overwriteFile":"false","x":1194.8730163574219,"y":1242.5237426757812,"z":"d3db8aa8.2c2478","wires":[]},{"id":"d5757a45.2a8a88","type":"function","name":"Daten für eine Datei","func":"msg.payload = msg.payload.lat + \",\"\n            + msg.payload.lon + \",\"\n            + msg.payload.tst + \",\";\n\nvar now     = new Date(); \n// var now     = new Date(parseInt(msg.payload.tst)); \nvar year    = now.getFullYear();\nvar month   = now.getMonth()+1; \nvar day     = now.getDate();\nvar hour    = now.getHours();\nvar minute  = now.getMinutes();\nvar second  = now.getSeconds(); \nif(month.toString().length == 1) {\nvar month = '0'+month;\n}\nif(day.toString().length == 1) {\nvar day = '0'+day;\n}   \nif(hour.toString().length == 1) {\nvar hour = '0'+hour;\n}\nif(minute.toString().length == 1) {\nvar minute = '0'+minute;\n}\nif(second.toString().length == 1) {\nvar second = '0'+second;\n}   \n//msg.timestamp = year+'-'+month+'-'+day+' '+hour+':'+minute+':'+second;\nmsg.payload = msg.payload + year+'-'+month+'-'+day+' '+hour+':'+minute+':'+second;\n\n\nreturn msg;\n","outputs":"1","x":940.682487487793,"y":1250.3808813095093,"z":"d3db8aa8.2c2478","wires":[["3f8c6d6d.c07392","c7c13407.383ec8"]]},{"id":"c7c13407.383ec8","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1140.6824989318848,"y":1281.8094854354858,"z":"d3db8aa8.2c2478","wires":[]},{"id":"d5a78bd8.2a5878","type":"comment","name":"Datei für Import (z.B. in Google Maps)","info":"https://support.google.com/mymaps/answer/3024836?hl=de","x":1456.3967304229736,"y":1247.7618398666382,"z":"d3db8aa8.2c2478","wires":[]},{"id":"aeb6f8f1.514908","type":"function","name":"Luftlinie in km zwischen Smartphone und daheim","func":"//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n//:::                                                                         :::\n//:::  This routine calculates the distance between two points (given the     :::\n//:::  latitude/longitude of those points). It is being used to calculate     :::\n//:::  the distance between two locations using GeoDataSource (TM) prodducts  :::\n//:::                                                                         :::\n//:::  Definitions:                                                           :::\n//:::    South latitudes are negative, east longitudes are positive           :::\n//:::                                                                         :::\n//:::  Passed to function:                                                    :::\n//:::    lat1, lon1 = Latitude and Longitude of point 1 (in decimal degrees)  :::\n//:::    lat2, lon2 = Latitude and Longitude of point 2 (in decimal degrees)  :::\n//:::    unit = the unit you desire for results                               :::\n//:::           where: 'M' is statute miles (default)                         :::\n//:::                  'K' is kilometers                                      :::\n//:::                  'N' is nautical miles                                  :::\n//:::                                                                         :::\n//:::  Worldwide cities and other features databases with latitude longitude  :::\n//:::  are available at http://www.geodatasource.com                          :::\n//:::                                                                         :::\n//:::  For enquiries, please contact sales@geodatasource.com                  :::\n//:::                                                                         :::\n//:::  Official Web site: http://www.geodatasource.com                        :::\n//:::                                                                         :::\n//:::               GeoDataSource.com (C) All Rights Reserved 2015            :::\n//:::                                                                         :::\n//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::\n\n\n\nfunction distance(lat1, lon1, lat2, lon2, unit) {\n\tvar radlat1 = Math.PI * lat1/180\n\tvar radlat2 = Math.PI * lat2/180\n\tvar radlon1 = Math.PI * lon1/180\n\tvar radlon2 = Math.PI * lon2/180\n\tvar theta = lon1-lon2\n\tvar radtheta = Math.PI * theta/180\n\tvar dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);\n\tdist = Math.acos(dist)\n\tdist = dist * 180/Math.PI\n\tdist = dist * 60 * 1.1515\n\tif (unit==\"K\") { dist = dist * 1.609344 }\n\tif (unit==\"N\") { dist = dist * 0.8684 }\n\treturn dist\n}\n\n\n// Home: 51.252596, 6.783141\nvar lat1 = 53.6348366;\nvar lon1 = 10.010861;\n// aktueller Standort\nvar lat2 = parseFloat(msg.payload.lat);\nvar lon2 = parseFloat(msg.payload.lon);     \n          \nvar msg1 = {};\nmsg1.payload = Math.round(distance(lat1, lon1, lat2, lon2, \"K\")*1000)/1000 // Distanz in km\nvar msg2 = {};\nmsg2.payload = Math.round(distance(lat1, lon1, lat2, lon2, \"K\")*1000); // in m \nreturn [msg1,msg2];\n\n","outputs":"2","noerr":0,"x":1503.7777125040689,"y":414.6666831970214,"z":"d3db8aa8.2c2478","wires":[["10fbf9bb.ef0406","1deb2a20.e214d6","21a6d400.de592c"],["10fbf9bb.ef0406","d0889097.2f777"]]},{"id":"10fbf9bb.ef0406","type":"debug","name":"","active":false,"console":"false","complete":"payload","x":1805.444480895996,"y":372.9999952316284,"z":"d3db8aa8.2c2478","wires":[]},{"id":"1deb2a20.e214d6","type":"ioBroker out","name":"","topic":"OwntracksMHDistanzKM","ack":"true","autoCreate":"true","x":1842.1109008789062,"y":413.00000953674316,"z":"d3db8aa8.2c2478","wires":[]},{"id":"21a6d400.de592c","type":"function","name":"als String mit dynamischen Nachkommastellen","func":"function runden(x) {\n  var k = (Math.round(x * 100) / 100).toString();\n  k += (k.indexOf('.') == -1)? '.0' : '0';\n  var p = k.indexOf('.'), m = k.indexOf('-.');\n  var f = (p == 0 || m == 0)? '0,' : ',';\n  return k.substring(0, p) + f + k.substring(p+1, p+3);\n}\n\n\nvar dist = msg.payload;\nif (dist < 1) {\ndist = Math.round(dist * 1000).toString();\nmsg.payload = dist + \" m\"; \n} else {\ndist = runden(dist).toString();\nmsg.payload = dist + \" km\";\n}\n\nreturn msg;","outputs":1,"x":1522.1110191345215,"y":533.0000114440918,"z":"d3db8aa8.2c2478","wires":[["e18f0bc3.1e70f8","eb3fa92.f14c058"]]},{"id":"e18f0bc3.1e70f8","type":"ioBroker out","name":"","topic":"OwntracksMHDistanzKMstring","ack":"true","autoCreate":"true","x":1847.1109466552734,"y":531.3333044052124,"z":"d3db8aa8.2c2478","wires":[]},{"id":"eb3fa92.f14c058","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1792.1110458374023,"y":588.0000165303547,"z":"d3db8aa8.2c2478","wires":[]},{"id":"80f8ec84.7f071","type":"function","name":"handelt es sich um einen event?","func":"// The received message is stored in 'msg'\n// It will have at least a 'payload' property:\n//   console.log(msg.payload);\n// The 'context' object is available to store state\n// between invocations of the function\n//   context = {};\nvar now = Date();\nvar message = \"\";\nvar standort = \"\";\nvar event = \"\";\ndata = JSON.parse(msg.payload);\n\n// data.event != undefined => die Meldung enthält kein Feld \"event\"\n// der if Zweig wird ausgeführt, wenn der Typ der Meldung Location ist und das Feld event vorhanden ist\nif ( (data._type == \"location\") && (data.event != undefined ) ) {\n\t    event = \"event\";\n\t    \n\t    // es wird geprüft, ob die Beshreibung für eine location mitgeschickt wird\n\t    // ind er Onwtracks app beim Standord \"Share\" aktiviert\n\t\tif ( data.desc != undefined ) {\n\t\t\t// Shared waypoint, comes with a description:\n\t\t\t\tmessage = data.desc;\n \t\t} else {\n \t\t\t// No description is set, non shared \"private\" waypoint\n \t\t\t\tmessage = data.lat + \",\" + data.lon;\n \t\t}\n \t\tstandort = message;\n       \n       // enthält event == \"enter\"\n\t\tif ( data.event == \"enter\" ) {\t\t\t\n\t\t\tmessage = message + \" betreten\";\n\t\t} else {\n\t\t\tmessage = message + \" verlassen\";\n\t\t\tstandort = \"unbekannt\"; // ein Standort wurde verlassen, neuer Standort = \"unbekannt\"\n\t\t}\n \n \n }\n \nvar msg1 = {};\nvar msg2 = {};\nmsg1.event = event;\nmsg1.payload = message;\n//console.log(msg.payload);\n\nmsg2.event = event;\nmsg2.payload = standort;\n\n\nreturn [msg1,msg2];","outputs":"2","x":1535.7777099609375,"y":672.6665344238281,"z":"d3db8aa8.2c2478","wires":[["3e9bcf7c.c1643","73a1334d.8c5ecc"],["1a700707.e58ff9","8913f6d4.76ec08"]]},{"id":"3e9bcf7c.c1643","type":"switch","name":"Prüfen, ob JSON ein event enthielt","property":"event","rules":[{"t":"cont","v":"event"}],"checkall":"true","outputs":1,"x":1547.777603149414,"y":794.0000801086426,"z":"d3db8aa8.2c2478","wires":[["6c155f47.93eaa","403f792a.bfc088"]]},{"id":"6c155f47.93eaa","type":"debug","name":"","active":true,"console":"false","complete":"payload","x":1871.1111526489258,"y":765.6663665771484,"z":"d3db8aa8.2c2478","wires":[]},{"id":"403f792a.bfc088","type":"ioBroker out","name":"","topic":"OwntracksMHstandortÄnderung","ack":"true","autoCreate":"true","x":1946.4443054199219,"y":825.333251953125,"z":"d3db8aa8.2c2478","wires":[]},{"id":"ba30197a.45cfe8","type":"debug","name":"","active":false,"console":"false","complete":"false","x":900.4444007873535,"y":374.66664028167725,"z":"d3db8aa8.2c2478","wires":[]},{"id":"636c5fbe.9c93a","type":"json","name":"","x":547.1110916137695,"y":439.6666431427002,"z":"d3db8aa8.2c2478","wires":[["713e55fc.8ec1ac","ba30197a.45cfe8"]]},{"id":"73a1334d.8c5ecc","type":"debug","name":"","active":true,"console":"false","complete":"true","x":1906.4443969726562,"y":636.333251953125,"z":"d3db8aa8.2c2478","wires":[]},{"id":"d0889097.2f777","type":"ioBroker out","name":"","topic":"OwntracksMHDistanzM","ack":"true","autoCreate":"true","x":1845.4443664550781,"y":461.33331298828125,"z":"d3db8aa8.2c2478","wires":[]},{"id":"ea3f5adf.15c0a8","type":"comment","name":"GEOFENCE = event","info":"","x":1490.4443969726562,"y":624.6666564941406,"z":"d3db8aa8.2c2478","wires":[]},{"id":"1a700707.e58ff9","type":"switch","name":"Prüfen, ob JSON ein event enthielt","property":"event","rules":[{"t":"cont","v":"event"}],"checkall":"true","outputs":1,"x":1645.7778015136719,"y":1016.9999580383301,"z":"d3db8aa8.2c2478","wires":[["3c920522.c36dfa","fa023ee9.05fdc","35bec916.ca4136","366d7e73.c99282","87213994.78dec8","2dfdeb78.d20214","15e334b2.ea1ccb"]]},{"id":"3c920522.c36dfa","type":"debug","name":"","active":true,"console":"false","complete":"payload","x":1961.1112976074219,"y":945.3329048156738,"z":"d3db8aa8.2c2478","wires":[]},{"id":"fa023ee9.05fdc","type":"ioBroker out","name":"","topic":"OwntracksMHstandort","ack":"true","autoCreate":"true","x":1965.1111755371094,"y":1008.3330879211426,"z":"d3db8aa8.2c2478","wires":[]},{"id":"985e076.f67a1f8","type":"websocket out","name":"","server":"2ab4dfa8.d54b2","x":882.2064056396484,"y":1499.8571128845215,"z":"d3db8aa8.2c2478","wires":[]},{"id":"b9ee93e2.46117","type":"websocket in","name":"","server":"2ab4dfa8.d54b2","x":446.20640563964844,"y":1551.8571128845215,"z":"d3db8aa8.2c2478","wires":[["ede05e89.121fa","e7a01c03.185fe"]]},{"id":"fae24650.051db8","type":"http in","name":"","url":"/map","method":"get","x":445.20640563964844,"y":1649.8571128845215,"z":"d3db8aa8.2c2478","wires":[["15613a46.ea9ec6"]]},{"id":"cc422a3c.33bdd8","type":"http response","name":"","x":893.2064056396484,"y":1649.8571128845215,"z":"d3db8aa8.2c2478","wires":[]},{"id":"15613a46.ea9ec6","type":"template","name":"Google Maps http://eigeneIP:1880/map","field":"","template":"\n\n\n  <title>Owntracks & The ThingBox Live Map</title>\n  \n  \n  \n \n   \n\n\n \n  \n   \n\n","x":665.2064056396484,"y":1649.8571128845215,"z":"d3db8aa8.2c2478","wires":[["cc422a3c.33bdd8"]]},{"id":"ede05e89.121fa","type":"function","name":"function 2","func":"// The received message is stored in 'msg'\n// It will have at least a 'payload' property:\n//   console.log(msg.payload);\n// The 'context' object is available to store state\n// between invocations of the function\n//   context = {};\n\nmsg.payload = context.global.location;\n\nreturn msg;","outputs":1,"x":672.2064056396484,"y":1551.8571128845215,"z":"d3db8aa8.2c2478","wires":[["985e076.f67a1f8","22ed11fa.dd12ee"]]},{"id":"7c21f710.83de08","type":"function","name":"function 1","func":"// The received message is stored in 'msg'\n// It will have at least a 'payload' property:\n//   console.log(msg.payload);\n// The 'context' object is available to store state\n// between invocations of the function\n//   context = {};\ncontext.global.location = msg.payload;\n\nreturn msg;","outputs":1,"x":675.2064056396484,"y":1455.8571128845215,"z":"d3db8aa8.2c2478","wires":[["985e076.f67a1f8","56783279.a987cc"]]},{"id":"9d9f8ae3.626078","type":"function","name":"Adaptation","func":"var zoom = 17; // Default = 17\n// In Zeile 20 im Template Node die eigene IP-Adresse vonioBroker/Node-red eintragen\n\n\nvar latitude = msg.payload.lat;\nvar longitude = msg.payload.lon;\nmsg.payload = '[{\"lat\":\"' + latitude + '\",\"lng\":\"' + longitude + '\",\"zoom\":\"' + zoom + '\"}]'; \nreturn msg;","outputs":1,"x":517.2064056396484,"y":1455.8571128845215,"z":"d3db8aa8.2c2478","wires":[["7c21f710.83de08"]]},{"id":"56783279.a987cc","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1046.777816772461,"y":1466.8571128845215,"z":"d3db8aa8.2c2478","wires":[]},{"id":"22ed11fa.dd12ee","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1046.492172241211,"y":1540.571346282959,"z":"d3db8aa8.2c2478","wires":[]},{"id":"e7a01c03.185fe","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1040.777816772461,"y":1594.9999351501465,"z":"d3db8aa8.2c2478","wires":[]},{"id":"505b375f.afa4c8","type":"comment","name":"http://eigeneIP:1880/map (eigene IP in Zeile 20 im Template Node eintragen)","info":"","x":748.7778167724609,"y":1408.9999351501465,"z":"d3db8aa8.2c2478","wires":[]},{"id":"52c56ca0.ad3a94","type":"debug","name":"","active":false,"console":"false","complete":"true","x":886.1111145019531,"y":210.66665649414057,"z":"d3db8aa8.2c2478","wires":[]},{"id":"9d18abf4.62e758","type":"debug","name":"","active":false,"console":"false","complete":"false","x":942.1111145019531,"y":160.6666564941406,"z":"d3db8aa8.2c2478","wires":[]},{"id":"2715045a.d8eafc","type":"function","name":"","func":"\nreturn msg;","outputs":1,"x":396.39685249328613,"y":405.6190061569214,"z":"d3db8aa8.2c2478","wires":[["80f8ec84.7f071","636c5fbe.9c93a"]]},{"id":"35bec916.ca4136","type":"function","name":"zuhause 1","func":"msg.payload=msg.payload;\nif ( msg.payload == \"zuhause\" ) \n\t\t\t\tmsg.payload = 1;\n\t\t\t\treturn msg;","outputs":1,"noerr":0,"x":1817.1182250976562,"y":1127.6665649414062,"z":"d3db8aa8.2c2478","wires":[["415d3396.bea2cc","92bff9f5.6d4008"]]},{"id":"415d3396.bea2cc","type":"ioBroker out","name":"OwntracksStandortZahl","topic":"OwntracksStandortZahl","ack":"true","autoCreate":"true","x":2096.1182250976562,"y":1199.6665649414062,"z":"d3db8aa8.2c2478","wires":[]},{"id":"92bff9f5.6d4008","type":"debug","name":"","active":true,"console":"false","complete":"true","x":2042.1182250976562,"y":1087.6665649414062,"z":"d3db8aa8.2c2478","wires":[]},{"id":"8913f6d4.76ec08","type":"debug","name":"","active":true,"console":"false","complete":"true","x":1912.6736260991042,"y":689.2222263371505,"z":"d3db8aa8.2c2478","wires":[]},{"id":"366d7e73.c99282","type":"function","name":"unbekannt 0","func":"msg.payload=msg.payload;\nif ( msg.payload == \"unbekannt\" ) \n\t\t\t\tmsg.payload = 0;\n\t\t\t\treturn msg;","outputs":1,"noerr":0,"x":1828.1182250976562,"y":1090.1107788085938,"z":"d3db8aa8.2c2478","wires":[["415d3396.bea2cc"]]},{"id":"87213994.78dec8","type":"function","name":"SybilleWohnung 2","func":"msg.payload=msg.payload;\nif ( msg.payload == \"SybilleWohnung\" ) \n\t\t\t\tmsg.payload = 2;\n\t\t\t\treturn msg;","outputs":1,"noerr":0,"x":1842.1182250976562,"y":1164.1107788085938,"z":"d3db8aa8.2c2478","wires":[["415d3396.bea2cc"]]},{"id":"2dfdeb78.d20214","type":"function","name":"Buero 3","func":"msg.payload=msg.payload;\nif ( msg.payload == \"Buero\" ) \n\t\t\t\tmsg.payload = 3;\n\t\t\t\treturn msg;","outputs":1,"noerr":0,"x":1810.1182250976562,"y":1203.1109008789062,"z":"d3db8aa8.2c2478","wires":[["415d3396.bea2cc"]]},{"id":"15e334b2.ea1ccb","type":"function","name":"nichts","func":"msg.payload=msg.payload;\nif ( msg.payload === \"\" ) \n\t\t\t\tmsg.payload = 0;\n\t\t\t\treturn msg;","outputs":1,"noerr":0,"x":1822.1182250976562,"y":1254.1110229492188,"z":"d3db8aa8.2c2478","wires":[["415d3396.bea2cc"]]}]
                                    
                                    

                                    Danke für die Hilfe!

                                    mfg

                                    Arminhh

                                    1 Antwort Letzte Antwort
                                    0
                                    • A Offline
                                      A Offline
                                      Arminhh
                                      schrieb am zuletzt editiert von
                                      #18

                                      Hallo Ruhr70,

                                      ich verzweifele langsam! Alle Variable werden gefüllt. Nur node-red.0.OwntracksMHstandort und node-red.0.OwntracksMHstandortÄnderung nicht! in der Variable node-red.0.OwntracksMHstandortÄnderung steht der Wegepoint drin. Was kann das noch sein?

                                      mfg

                                      Arminhh

                                      1 Antwort Letzte Antwort
                                      0
                                      • S Offline
                                        S Offline
                                        Schnutexxl
                                        schrieb am zuletzt editiert von
                                        #19

                                        Hallo Ihr Künstler,

                                        ich bin ein wenig verwirrt durch eure beiden Node-Red Flows. Ich Bekomme beide nicht zum fliegen.

                                        Welche Node´s muss ich denn nun konkret anpassen.

                                        Was habe ich gemacht:

                                        mqtt.0 Instanz konfiguriert, wie beschrieben.

                                        Owntracks installiert und konfiguriert, wie beschrieben

                                        NodeRed Flow importiert, erst von Ruhr und dann den modifizierten von Arminhh

                                        Versucht Node´s zu konfigurieren, aber irgendwie fehlt mir hier das Verständniss.

                                        Somit welche Node´s muss ich denn nun konkret wie anpassen?

                                        Danke und Gruß

                                        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

                                        378

                                        Online

                                        32.4k

                                        Benutzer

                                        81.5k

                                        Themen

                                        1.3m

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

                                        • Du hast noch kein Konto? Registrieren

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