Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. bnz99

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    B
    • Profile
    • Following 0
    • Followers 0
    • Topics 0
    • Posts 6
    • Best 1
    • Groups 1

    bnz99

    @bnz99

    Starter

    1
    Reputation
    14
    Profile views
    6
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    bnz99 Follow
    Starter

    Best posts made by bnz99

    • RE: Withings Daten einlesen

      Hm...sehe gerade, dass in dem Javascriptteil noch der Test-Timestamp drin ist. Der muss entsprechend durch den Übergabeparameter ersetzt werden. Sonst steht da immer dasselbe drin.

      Ansonsten für die Datenbankspeicherung muss halt nur der SQL Adapter oder sonstiges installiert werden und entsprechend im Wert angehakt werden.

      Edit: in der Tat, habe eben mal in der DB nachgesehen, meine geparsten Zeitstempel waren alle dieselben 😉 Habe den Post oben korrigiert. Ich glaube der geparste Zeitwert ist aber ohnehin überflüssig. Sobald sich der Wert ändert, bekommt der Eintrag vom SQL Adapter ohnehin einen Zeitstempel bei der Speicherung. Der mag zwar in der Theorie etwas abweichen, aber eine Abweichung der Messwerte um ein paar Minuten bis der IFTTT Aufruf erfolgt, dürfte denke ich mal bei Gewicht oder Blutdruck die wenigsten interessieren.

      posted in Skripten / Logik
      B
      bnz99

    Latest posts made by bnz99

    • RE: Withings Daten einlesen

      @stoffel67 Ich bin mir gerade nicht sicher, welchen Authentication Code Du meinst.

      Falls Du die OAuth Token von Withings selbst meinst und mit der Frage auf die vorher im Thread selbstgebauten Lösungen mithilfe des Withings Developer Accounts verweist: die Lösung unterscheidet sich grundsätzlich von der selbstgebauten. Wenn ich mich richtig erinnere, authentisiert man IFTTT bei Withings bei erstmaligen Anlegen des Withings "this" Triggers. Das Token zu Deinem Withings Account hält dann IFTTT. IFTTT ist dann der Mittelmann, der mitlesen kann und für das Weiterleiten verantwortlich ist. Muss man halt selbst wissen inwieweit man das gut findet oder nicht. Man tauscht geringere Komplexität gegen seine Daten (an IFTTT).

      Ansonsten braucht man keinen Authentication Code.

      posted in Skripten / Logik
      B
      bnz99
    • RE: Withings Daten einlesen

      Hm...sehe gerade, dass in dem Javascriptteil noch der Test-Timestamp drin ist. Der muss entsprechend durch den Übergabeparameter ersetzt werden. Sonst steht da immer dasselbe drin.

      Ansonsten für die Datenbankspeicherung muss halt nur der SQL Adapter oder sonstiges installiert werden und entsprechend im Wert angehakt werden.

      Edit: in der Tat, habe eben mal in der DB nachgesehen, meine geparsten Zeitstempel waren alle dieselben 😉 Habe den Post oben korrigiert. Ich glaube der geparste Zeitwert ist aber ohnehin überflüssig. Sobald sich der Wert ändert, bekommt der Eintrag vom SQL Adapter ohnehin einen Zeitstempel bei der Speicherung. Der mag zwar in der Theorie etwas abweichen, aber eine Abweichung der Messwerte um ein paar Minuten bis der IFTTT Aufruf erfolgt, dürfte denke ich mal bei Gewicht oder Blutdruck die wenigsten interessieren.

      posted in Skripten / Logik
      B
      bnz99
    • RE: Withings Daten einlesen
      1. Zunächst brauchen wir einen iobroker app key.

      Ich habe einen iobroker pro account. Wenn man sich dort einloggt findet man unter APP-KEYS den URL-Anteil, den ich ausgeblendet habe. Wenn der noch nicht existiert, muss man den dort mit "App Key erzeugen" anlegen. Es geht wahrscheinlich auch mit einem iobroker.net app key, habe ich aber nicht getestet.

      1. Wir brauchen einen IFTTT key. Den gibt es bei ifttt.com, wenn man auf https://ifttt.com/maker_webhooks/ geht und auf documentation klickt. Da steht dann "Your key is:".

      2. Dann erzeugen wir ein ifttt applet. Bei ifttt.com create->if withings body scale new measurement then webhook:

      85f39a12-00d0-4e90-ab1a-ae62b186c905-image.png

      Der JSON Anteil hier noch mal zum kopieren:

      { "iftttType":"withingsBodyScale", "weightKg":{{WeightKg}}, "leanMassKg":{{LeanMassKg}}, "fatMassKg":{{FatMassKg}}, "fatPercent":{{FatPercent}},"measuredAt":" {{MeasuredAt}}" }
      

      Die URL setzt sich aus dem ifttt Anteil von iobroker.pro/iobroker.net zusammen + den appkey Anteil.

      1. Als nächstes müssen wir iftt im iobroker Cloud Adapter konfigurieren. Wenn der noch nicht installiert ist, muss der installiert werden. Wenn man nun die cloud.0 Instanz konfiguriert, muss der App Key eingetragen sein aus der iobroker.pro oder iobroker.net Konfiguration. Im Tab Services und IFTTT muss der IFTTT Key eingetragen werden. Der Rest kann so bleiben.

      2. Wir kriegen jetzt den json payload von Withings in iobroker reingepusht. Er liegt im Objektbaum unter cloud.0/services/ifttt. Da wird immer nur der jeweils aktuell übermittelte json string reinkopiert. Wenn wir vom Blutdruckmessgerät auch Daten kriegen (Vorgehen ist analog zu dem hier), kommt das hier auch reinkopiert. D.h. es bleibt hier auch nicht daurhaft als "Withings Wert" stehen. Jetzt muss der JSON payload zerlegt und sortiert abgelegt werden. Dafür können wir ein Blockly Skript anlegen. Mein Skript, welches auch das Blutdruckmessgerät unterstützt sieht so aus:

      61435317-3320-434d-9a9d-c1fa7ca41014-image.png

      1. Der im Skript referenzierte Code ist der hier:
      var moment = require('moment');
      require("moment/min/locales.min");
      moment.locale('en');
      
      var dateTime = moment(dateString,"MMMM DD, YYYY at hh:ssp", "Europe/Berlin");
      
      return dateTime.toDate();
      

      Damit das funktioniert, muss im Javascript Adapter "moment" als zusätzliches npm Modul eingetragen werden. Der Datumscode funktioniert aber scheinbar noch nicht ganz korrekt. Der String sieht aktuell etwas kaputt aus bei mir. Ich hatte aber noch keine Zeit mir das anzusehen.

      Ich hoffe das hilft soweit!

      posted in Skripten / Logik
      B
      bnz99
    • RE: Gosund SP111 fehlende Datenpunkte in MQTT

      @RalfTh Hm ok. Ich hatte bei mir die Einträge zwar alle drin, ich konnte sie aber nicht steuern (Power ON/OFF) usw., sondern konnte nur die Werte lesen, aber er schien mir bei einem ändern ON/OFF auf cmnd/tasmota-xxx/POWER nicht auf dem Broker zu publishen. Mit MQTT.fx lief das problemlos. Das mit dem JSON payload in den Leistungsdaten war mir gar nicht aufgefallen. Sei es drum, es läuft ja jetzt.

      posted in Hardware
      B
      bnz99
    • RE: Gosund SP111 fehlende Datenpunkte in MQTT

      Hi, ich war heute an derselben Stelle wir @RalfTh und wollte das eigentlich mit Mosquitto machen, weil auf dem da bei mir noch andere Dinge drüber laufen. Ich habe jetzt sowohl den MQTT Adapter als Client zum Mosquitto sowie den Sonoff Adapter für meine Tasmota Geräte laufen. Ist für mich auch ok so, weil es prima funktioniert.

      Ich frage mich dennoch ob man mit dem MQTT Adapter (als Client konfiguriert) die Tasmota Geräte irgendwie als synchronisierte Datenpunkt hätte steuern können. Oder geht das mit dem Adapter grundsätzlich gar nicht, weil er nicht weiß wie die Nachrichten zu publishen sind (stat vs. cmnd prefixe)?

      Ich habe die Funktionen vom MQTT Client Adapter grob überflogen und da sieht es mir so aus, dass man es dafür nutzen könnte, es wäre so wie ich es verstehe nur ziemlich viel Arbeit gewesen die Datenpunkte manuell zu konfigurieren. Sehe ich das so richtig?

      posted in Hardware
      B
      bnz99
    • RE: Withings Daten einlesen

      Ich habe mit die Lösung per IFTTT gebaut für Waage und Blutdruckmonitor, so dass der ganze Kram mit Developer Keys nicht notwendig ist. Sie ist noch nicht ganz fertig getestet, bin aber ganz zuversichtlich, dass es ok funktioniert. Hat das jemand Interesse an einer Zusammenfassung wie ich das gemacht habe?

      posted in Skripten / Logik
      B
      bnz99
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo