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
    #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

                                    658

                                    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