modul für withings wage (und blutdruck messgerät)

Begonnen von justme1968, 22 Dezember 2013, 00:28:31

Vorheriges Thema - Nächstes Thema

vonb

Hallo Zusammen

Ich habe meine Withings Waage in Fhem eingebunden und einen SVG Plot gemacht.

Leider werden die Daten aber nicht dargestellt.
Die Daten selbst werden von Fhem ausgelesen.

Kann mir jemand sagen, wo der Fehler liegt?

Anbei ein Screenshot vom SVG_Log und vom File_Log

rrr

Wäre es möglich auch kleinere Intervalle als 1 Stunde zuzulassen?
Bei jedem Versuch einen Wert kleiner als 3600 einzugeben, setzt FHEM ihn wieder auf 3600.

justme1968

das müsstest du zur zeit direkt im modul ändern.

warum möchtest du die kleineren intervalle ?

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rrr

Wenn ich das direkt im Modul ändere, dann muss ich das bei jedem Update wieder anpassen...

Leider gibt es ja keine push-Möglichkeit, dass bei einem Wiegevorgang die neuen Werte an FHEM gesendet werden. Von daher wäre eine kürzere Aktualisierungszeit wünschenswert, um vor allem nicht die Benutzer zu verwirren, welche sich vor kurzem gewogen haben und nun bis zu einer Stunde auf die aktuellen Werte in FHEM warten.

Markus M.

Was Updates angeht brauchst du keine Angst haben, da passiert nichts da ich aktuell leider nicht dazu komme.
Langfristig muss ich das Modul komplett umschreiben, dann nehme ich die Begrenzung sowieso raus bzw. setze sie auf 5 Minuten.

Hast du ne Fritzbox? Wenn du damit erkennen kannst ob die Waage gerade im WLAN aktiv war, könntest du manuell ein Update triggern.
Aktuell weder Smarthome noch FHEM vorhanden

TeeVau

Hallo,

ich habe seit ein paar Tagen das Problem, dass das withingsmodul keine Daten mehr abholt. Habe heute mal versucht mit get update oder get updateAll das ganze zu Richten, leider ohne Erfolg. Das I/O Device withings meldet im state ERROR. Ein verbose mit 5 bringt leider gar keine Logmeldung, lediglich beim restart gibt es eine, die das I/O Device anzeigt. Ist also auch nicht sehr hilfreich zur Fehlersuche. Hat das Problem noch jemand oder das selbe Problem? In der App werden die Daten alle angezeigt.

List auf das I/O Device:

Internals:
   Clients    :withings:
   DEF        ACCOUNT user password
   Hash       xxxxxxxxxxxxxxxxxxxx
   Login      user
   NAME       withings
   NR         133
   NTFY_ORDER 50-withings
   Password   password
   STATE      Error
   SUBTYPE    ACCOUNT
   SessionKey
   SessionTimestamp xxxxxxx
   TYPE       withings
   Token      xxx-xxxx
Attributes:
   room       hidden
   verbose    5


Das list vom Device (Waage)

Internals:
   CHANGED
   DEF        xxxxxx
   Device     xxxxxx
   DeviceType
   INTERVAL   3600
   IODev      withings
   NAME       withings_Dxxxxxx
   NR         136
   NTFY_ORDER 50-withings_Dxxxxxx
   STATE      CO2: co2 ppm Bat: battery (batteryLevel%)
   SUBTYPE    DEVICE
   TYPE       withings
   fw
   model
   sn
   status     2555
   Readings:
Attributes:
   IODev      withings
   alias      Schlafzimmer
   room       Schlafzimmer
   stateFormat CO2: co2 ppm Bat: battery (batteryLevel%)
   verbose    5


List vom User:

Internals:
   CHANGED
   DEF        xxxxxx yyyyyyyy
   INTERVAL   3600
   IODev      withings
   Key        xxxxxxx
   LAST_POLL  2015-08-12 14:10:06
   NAME       withings_Uxxxxxxx
   NR         134
   NTFY_ORDER 50-withings_Uxxxxxxx
   STATE      Gewicht: xyz kg Fettanteil: xyz %
   SUBTYPE    USER
   TYPE       withings
   User       xxxxxxx
   birthdate  xxxxxxx
   shortName  xxxxxxx
   status     0
   userName   xxxxxxx
   Readings:
     2015-08-12 06:14:17   fatFreeMass     xxxxxxx
     2015-08-12 06:14:17   fatMassWeight   xxxxxxx
     2015-08-12 06:14:17   fatRatio        xxxxxxx
     2015-08-12 06:14:17   heartPulse      xxxxxxx
     2014-01-13 18:09:17   height          xxxxxxx
     2015-08-12 06:14:17   weight          xxxxxxx
Attributes:
   IODev      withings
   alias      Gewicht
   room       Schlafzimmer
   stateFormat Gewicht: weight kg Fettanteil: fatRatio %
FHEM 5.8 dev (virtualisiert) / FBF 7390 (CUL 868MHz V 1.51 / panStick (AVR1))
FS20: fs20di,fs20pira,fs20sm8,fs20st2,fs20tfk,fs20ue1,fs20ws1
panStamp (AVR1): RGB Multi von ext23, 1W-DSxxxx, I/O Sketch, Spritzpumpe
Multimedia: Panasonic TV (VIERA), Kodi, Yamaha RX-V781, LMS
Sonstiges: XiaomiFlowerSen

Falkenstein

Ich habe das gleiche Problem seit dem letzten Fhem Update. Bei einen Neustart vom Fhem spuckt das Log auch eine Fehlermeldung aus:

2015.08.11 23:43:43 1: PERL WARNING: Use of uninitialized value $authcookies in pattern match (m//) at ./FHEM/32_withings.pm line 201.
2015.08.11 23:43:43 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/32_withings.pm line 210.
2015.08.11 23:43:43 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/32_withings.pm line 359.
2015.08.11 23:43:43 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/32_withings.pm line 384.
2015.08.11 23:43:43 3: withings_D27390: I/O device is withings
2015.08.11 23:43:43 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/32_withings.pm line 411.
2015.08.11 23:43:43 1: PERL WARNING: Use of uninitialized value in hash element at ./FHEM/32_withings.pm line 313.
2015.08.11 23:43:43 1: PERL WARNING: Use of uninitialized value in hash element at ./FHEM/32_withings.pm line 315.
2015.08.11 23:43:43 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/32_withings.pm line 436.


Da ist sicherlich wieder etwas anderes verändert worden



justme1968

ich habe keine probleme mit dem modul an sich. ich kann auch ein neues withings ACCOUNT device mit meinen zugangsdaten anlegen.

aber ich habe gerade gemerkt das ich keine devices mehr in meinem account habe.

ich schaue mal ob ich mehr rausfinde.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Markus M.

#158
Zitat von: justme1968 am 12 August 2015, 14:37:51ich schaue mal ob ich mehr rausfinde.

Steck ausser dem Bugfix keine Energie mehr rein, ich baue das Modul gerade komplett neu auf ;)

Kannst du kurz einen Satz dazu sagen, wie die Kommunikation zwischen den einzelnen Instanzen der Geräte und User funktioniert?
Ich müsste dabei Daten der Devices beim User Update abfragen, um das Problem der zeitversetzten Readings einiger Geräte zu umgehen.
Wo landen eigentlich dann die Daten bei Nonblocking Abfragen? In der gleichen Instanz die sie abgeschickt hat?

Ich hab ein paar Stunden ins Reverse Engineering gesteckt und werde dabei nicht mehr auf die offene API zugreifen sondern alles über die Services machen die auch die Weboberfläche und die Apps benutzen.


In der neuen Version dann möglich:
Gewicht, Blutdruck, Puls, SpO2 und Grösse von Waagen, Blutdruckmessgeräten und Pulse
An Schlafdaten minutengenau Puls, Atmung und Sleeplevel von Aura oder nur Sleeplevel vom Pulse
Activity, Schritte, Auf- und Abstieg, Entfernung und der restliche Kram wie Kalorien etc. minutengenau von Pulse oder Activite
An Gerätedaten CO2 der Waage, Temperatur und Licht von Aura, VOC von Home
Warnmeldungen von Home und dem Babymonitor (allerdings ohne Video - wenn sich jemand mit Amazon S3 Authentifizierung auskennt, bitte melden)
Und als Bonus die kompletten Einstellungen wie Alarm etc. von Aura über das lokale Netzwerk

Seid gespannt ;)
Markus
Aktuell weder Smarthome noch FHEM vorhanden

Falkenstein

Bei mir hat das Modul am 8.08.15 das letzte mal seine Daten geholt. Ein manuelles Update geht bei mir auch nicht.

justme1968

ok. dann warte ich :)

geräte und user sind unabhängig voneinander. beim abfragen der werte von der withings seite über das master device werden ein paar hashes umgebogen.

ich würde keine arbeit in das zusammen sortieren der readings aus unterschiedlichen devices stecken.  entweder dblog verwenden. da ist es egal. oder ein log file pro device. inzwischen kannst du die entweder direkt under mir logProxy in einem plot darstellen. das device übergreifende sortieren ist den aufwand nicht wert.

in hash der beim nonblocking aufruf mitgegeben wird der client hash mit übergeben. also das device das die anfrage abgeschickt hat. im callback der das ergebnis der anfrgage dann auswertet wird dann darüber wieder das device gefunden.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Markus M.

Zitat von: justme1968 am 13 August 2015, 21:05:06
ok. dann warte ich :)

geräte und user sind unabhängig voneinander. beim abfragen der werte von der withings seite über das master device werden ein paar hashes umgebogen.

Schon gesehen. Urgs
Vor allem das was ich beim letzten Versuch verbrochen habe ;)

Zitatich würde keine arbeit in das zusammen sortieren der readings aus unterschiedlichen devices stecken.  entweder dblog verwenden. da ist es egal. oder ein log file pro device. inzwischen kannst du die entweder direkt under mir logProxy in einem plot darstellen. das device übergreifende sortieren ist den aufwand nicht wert.

Es geht um die Werte für den Herzschlag, die aus einer Abfrage aber von verschiedenen Devices kommen können die leider fast alle ihre Daten asynchron abliefern können und im Fall vom Pulse auch tun. DbLog schreibt dir beliebig viele Duplikate eines Datensatzes in die DB und hilft damit nicht wirklich weiter.

Zitatin hash der beim nonblocking aufruf mitgegeben wird der client hash mit übergeben. also das device das die anfrage abgeschickt hat. im callback der das ergebnis der anfrgage dann auswertet wird dann darüber wieder das device gefunden.

Jepp, das funktioniert soweit.
Meine Aufrufe und Funktionen hab ich dann soweit fast alle beisammen, was fehlt ist die passende Berechnung von startdate, enddate und das Parsen.
Ich denke bis zum Ende des Wochenendes gibt es eine erste Version für Körperdaten, Waage und Aura.

:) Markus
Aktuell weder Smarthome noch FHEM vorhanden

justme1968

ZitatEs geht um die Werte für den Herzschlag, die aus einer Abfrage aber von verschiedenen Devices kommen können die leider fast alle ihre Daten asynchron abliefern können und im Fall vom Pulse auch tun. DbLog schreibt dir beliebig viele Duplikate eines Datensatzes in die DB und hilft damit nicht wirklich weiter.

vielleicht sollten die werte dann nicht beim jeweiligen physikalischen device geloggt werden sondern direkt beim user in einem eigenen fhem device nur dafür.

dann muss nur innerhalb einer abfrage sortiert werden und nicht device übergreifend.

die duplikate entfernst du ja beim sortieren und in dem du alles verwirfst was vor dem letzen abfrage zeitpunkt war.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Markus M.

Zitat von: justme1968 am 13 August 2015, 21:59:41
vielleicht sollten die werte dann nicht beim jeweiligen physikalischen device geloggt werden sondern direkt beim user in einem eigenen fhem device nur dafür.

Die Abfrage dafür hängt sowieso schon am User.
Das mit den Geräten ist etwas komplizierter und wahrscheinlich eher was für eine spätere Version.

Zitatdie duplikate entfernst du ja beim sortieren und in dem du alles verwirfst was vor dem letzen abfrage zeitpunkt war.

Ja, aber bei der User Abfrage (die die du über die API gemacht hattest) neu dann pro Device.
Jetzt hast du mich aus dem Konzept gebracht - ich muss meine Logik nochmal ändern und die automatisch erhobenen Daten für Activity und Sleep jeweils beim Pulse oder der Aura Matte speichern, sonst gibt das ein komplettes Chaos.
Ich geh erst mal schlafen, viel zu warm heute :)
Aktuell weder Smarthome noch FHEM vorhanden

Markus M.

Hab gerade einen Punkt an dem ich scheitere...
Ich möchte im Device eine Verknüpfung auf den kompletten User Hash anlegen.

Die ID funktioniert, die Verknüpfung nicht.
    if(defined($devicelink->{userid}))
    {
      $hash->{User} = $devicelink->{userid};
      $hash->{UserDevice} = $modules{$hash->{TYPE}}{defptr}{"U".$devicelink->{userid}} if defined($modules{$hash->{TYPE}}{defptr}{"U".$devicelink->{userid}});
    }

Klappt sowas in Perl/FHEM generell nicht oder mache ich was falsch?
Aktuell weder Smarthome noch FHEM vorhanden