FHEM Forum

FHEM => Sonstiges => Thema gestartet von: TeeVau am 24 Januar 2014, 14:06:58

Titel: Withings Modul: Startprobleme, User bekommen keine Daten
Beitrag von: TeeVau am 24 Januar 2014, 14:06:58
Hallo André,

habe meine Waage nun mal ein paar Tage benutzt und wollte das Withingskonto nun in FHEM einbinden, mit deinem Modul.
Nachdem ich JSON manuell auf der FBF nachinstalliert habe, habe ich folgende Schritte gemacht:
define sz_Waage withings ACCOUNT username passwort
Daraufhin wurde das Device sz_Waage angelegt. Zusätzlich wurde etwas später das Device sowie die 2 User angelegt. Im Log war folgendes zu finden:

2014.01.23 11:52:03 3: withings_D12xxxxx: I/O device is sz_Waage
2014.01.23 11:52:03 3: sz_Waage: create new device 'withings_D12xxx' for device '12xxxxx'
2014.01.23 11:52:02 3: withings_U27xxxxx: I/O device is sz_Waage
2014.01.23 11:52:02 3: sz_Waage: create new device 'withings_U27xxxxx' for user '27xxxxx'
2014.01.23 11:52:01 3: withings_U27xxxxx: I/O device is sz_Waage
2014.01.23 11:52:01 3: sz_Waage: create new device 'withings_U27xxxxx' for user '27xxxxx'
Use of uninitialized value in string eq at ./FHEM/32_withings.pm line 153.
Use of uninitialized value in string eq at ./FHEM/32_withings.pm line 152.
Use of uninitialized value $list in concatenation (.) or string at ./FHEM/32_withings.pm line 654.
Use of uninitialized value in string eq at ./FHEM/32_withings.pm line 627.
Use of uninitialized value in string eq at ./FHEM/32_withings.pm line 615.
Use of uninitialized value in string eq at ./FHEM/32_withings.pm line 603.
Use of uninitialized value $list in concatenation (.) or string at ./FHEM/32_withings.pm line 654.
Use of uninitialized value in string eq at ./FHEM/32_withings.pm line 627.
Use of uninitialized value in string eq at ./FHEM/32_withings.pm line 615.
Use of uninitialized value in string eq at ./FHEM/32_withings.pm line 603.
Use of uninitialized value $list in concatenation (.) or string at ./FHEM/32_withings.pm line 654.
Use of uninitialized value in string eq at ./FHEM/32_withings.pm line 627.
Use of uninitialized value in string eq at ./FHEM/32_withings.pm line 615.
Use of uninitialized value in string eq at ./FHEM/32_withings.pm line 603.
Use of uninitialized value in string eq at ./FHEM/32_withings.pm line 123.
Use of uninitialized value in string eq at ./FHEM/32_withings.pm line 122.
Use of uninitialized value in string eq at ./FHEM/32_withings.pm line 121.


Danach habe ich 4 FileLogs angelegt. Für das I/O Device sz_Waage, für das Device und die 2 User. Zum debuggen habe ich bei allen 4 auf verbose auf 5 gesetzt.
Bei sz_Waage habe ich ein get devices und get users gemacht. Das einzige was sich allerdings updatet ist das device, da bekomme ich halbwegs regelmäßig Battery und CO2, das landet auch im FileLog.
Für die User bekomme ich allerdings gar keine Daten. Im FileLog ist nix, die User haben auch keine Readings. Auch ein get update oder get updateAll bringt bei den Usern nix.

list sz_Waage

Internals:
   AccountID  11xxxxx
   CFGFN     
   Clients    :withings:
   DEF        ACCOUNT txxxx xxxxxx
   Hash       9f0da1052a702a0xxxxxxxxx
   Login      txxxxxx
   NAME       sz_Waage
   NR         297
   Password   xxxxxxx
   STATE      Connected
   SUBTYPE    ACCOUNT
   SessionKey 7664-dbxxxxxxx
   SessionTimestamp 1390567963
   TYPE       withings
   Token      00d4xxxx-xxxxxx
Attributes:
   room       withings
   verbose    5


list withings_D12xxxxx

Internals:
   CFGFN     
   DEF        12xxxxx
   Device     12xxxxx
   DeviceType Body scale
   INTERVAL   3600
   IODev      sz_Waage
   LAST_POLL  2014-01-24 09:52:37
   Model      Body analyzer
   NAME       withings_D12xxxxx
   NR         300
   STATE      762 ppm
   SUBTYPE    DEVICE
   TYPE       withings
   fw         811
   sn         SN-00:24:xxxxxxxxx
   status     0
   Readings:
     2014-01-24 13:52:43   battery         ok
     2014-01-24 13:52:43   batteryLevel    95
     2014-01-24 09:30:13   co2             762
     2014-01-23 11:52:12   humidity        0
     2014-01-24 13:52:43   lastWeighinDate 2014-01-24 09:37:00
     2014-01-24 09:30:13   temperature     17.9
     2014-01-24 09:52:37   temperature_avg_day 18.1
     2014-01-24 09:52:37   temperature_avg_month 19.6
     2014-01-24 09:52:37   temperature_cum_day 643581.7
     2014-01-24 09:52:37   temperature_cum_month 41415701.5
     2014-01-24 09:52:37   temperature_max_day 18.1
     2014-01-23 11:52:07   temperature_max_month 19.8
     2014-01-24 09:52:37   temperature_min_day 17.8
     2014-01-23 11:52:07   temperature_min_month 17.7
Attributes:
   IODev      sz_Waage
   alias      Body scale
   room       withings
   stateFormat co2 ppm
   verbose    5


list withings_U27xxxxx

Internals:
   CFGFN     
   CHANGED   
   DEF        2755832 8c93xxxxxx
   INTERVAL   3600
   IODev      sz_Waage
   Key        8c9344xxxxxxx
   LAST_POLL  2014-01-24 13:34:49
   NAME       withings_U27xxxxx
   NR         298
   STATE      weight kg
   SUBTYPE    USER
   TYPE       withings
   User       27xxxxx
   birthdate  1xxxxxxx
   gender     male
   shortName  xxx
   status     0
   userName   xxxxxxxxx
   Readings:
Attributes:
   IODev      sz_Waage
   alias      xxx
   room       withings
   stateFormat weight kg
   verbose    5



Und seit dem benutzen des Withings Moduls habe ich vermehrt die Logmeldungen im FHEM Log:
Use of uninitialized value in concatenation (.) or string at ./FHEM/32_withings.pm line 408.
Use of uninitialized value in concatenation (.) or string at ./FHEM/32_withings.pm line 432.
Use of uninitialized value $authcookies in pattern match (m//) at ./FHEM/32_withings.pm line 202.


Was läuft da schief, dass die User keine Daten bekommen?
Grüße, Tobias
Titel: Antw:Withings Modul: Startprobleme, User bekommen keine Daten
Beitrag von: justme1968 am 24 Januar 2014, 14:38:41
verwendest du wirklich die aktuell eingecheckte version die mit update mit kommt?

es sollte die hier sein:
Zitat# $Id: 32_withings.pm 4693 2014-01-19 17:33:16Z justme1968 $

die meisten meldungen schauen danach aus das du nicht im account eingeloggt bist. das kann aber nicht sein weil dann die daten auch nicht da wären. kommt denn beim get sz_Waage users bzw devices etwas zurück?

hast du die IODev attribute selber vergeben?

bitte lösch mal alle wittings devices. die logfiles kannst du lassen aber leer machen. dann leg mal nur den account neu an. versuch es bitte mal ohne das ACCOUNT schlüsselwort. die devices und user sollten alle automatisch neu angelegt werden wenn du autoreate aktiv hast.

mach mal bitte auf die user ein 'get <device> updateAll'.

gruss
  andre
Titel: Antw:Withings Modul: Startprobleme, User bekommen keine Daten
Beitrag von: TeeVau am 24 Januar 2014, 15:10:32
Nein, habe nix manuelles gesetzt außer verbose.
Ok...also alle Logfiles leer gemacht, aber nicht gelöscht. Danach:
delete withings.*
delete sz_Waagedefine sz_Waage withings xxxx xxxx


Darauf im Log:
2014.01.24 14:59:11 1: sz_Waage: no I/O device
2014.01.24 14:59:11 3: No I/O device found for sz_Waage


Es wird aber kein User und kein Device angelegt, oder kann das evtl. sehr lange dauern? Nach 10 Minuten war noch nix da.
Scheint, dass er das define direkt als User erkannt hat:

Internals:
   CFGFN     
   DEF        xxxx xxxx
   INTERVAL   3600
   IODev     
   Key        xxxx
   NAME       sz_Waage
   NR         216
   STATE      Initialized
   SUBTYPE    USER
   TYPE       withings
   User       xxxx
   birthdate  1970-01-01
   gender     male
   shortName 
   status     2555
   userName   
Attributes:
   stateFormat weight kg

Birthdate stimmt übrigens nicht.

Ein get sz_Waage updateAll sieht für mich recht Ergebnislos aus. Es verändert sich nichts im fhem-device sz_Waage und im Logfile steht auch nichts.


EDIT:
Auf der linux console habe ich gerade folgende Meldungen gesehen, die haben sich seit dem neuen define angesammelt:
Use of uninitialized value in numeric eq (==) at ./FHEM/32_withings.pm line 342.
Use of uninitialized value in concatenation (.) or string at ./FHEM/32_withings.pm line 343.
Use of uninitialized value in concatenation (.) or string at ./FHEM/32_withings.pm line 343.
Use of uninitialized value in localtime at ./FHEM/32_withings.pm line 344.
Use of uninitialized value $args[2] in concatenation (.) or string at ./FHEM/98_weblink.pm line 120.
Use of uninitialized value in sprintf at fhem.pl line 1713.
Titel: Antw:Withings Modul: Startprobleme, User bekommen keine Daten
Beitrag von: justme1968 am 24 Januar 2014, 15:19:37
das ist schief gegangen. wenn er das als USER erkennt geht natürlich garnichts.

bitte noch mal löschen und wieder mit dem ACCOUNT schlüsselwort anlegen.

wenn das define richtig funktioniert werden die user und devices direkt danach angelegt. das dauert keine 20 sekunden.

gruss
  andre
Titel: Antw:Withings Modul: Startprobleme, User bekommen keine Daten
Beitrag von: TeeVau am 24 Januar 2014, 15:54:55
klappt nicht. Das selbe Verhalten wie im 1. post beschrieben.
Nachdem define werden user und device angelegt, für device kommen die Daten, für User nicht.

Edit: ist die aktuelle Version, habe es gerade noch mal geprüft...
Titel: Antw:Withings Modul: Startprobleme, User bekommen keine Daten
Beitrag von: justme1968 am 24 Januar 2014, 16:07:51
was passiert beim get users und get devices?

was sagt 'version whitings'

ich baue heute abend mal eine version mit mehr debug informationen.

kannst du vielleicht bis dahin schon mal vor die zeile 654 (die mit return "Unknown...) eine zeile mitLog 3, "$name: >$hash->{SUBTYPE}< >>$cmd<<";einfügen?

die fehlermeldungen ganz oben sind sehr seltsam. das schaut so aus als ob es wittings device gibt das weder ACCOUNT,DEVICE oder USER ist. das geht eigentlich nicht.

was sagt 'list TYPE=withings' ?

kannst du bitte mal das 'withingslogin.pl' aus dem original wittings thread mit deinen zugangsdaten laufen lassen und schauen ob das funktioniert.

gruss
  andre
Titel: Antw:Withings Modul: Startprobleme, User bekommen keine Daten
Beitrag von: TeeVau am 24 Januar 2014, 17:04:55
bei einem get user updatAll wird das internal LAST_POLL neu gesetzt, sonst passiert nichts merkbares.
Auch im Log ist kein Fehler, kein reading, kein FileLog Eintrag.

Bei einem get device updateAll werden meiner Ansicht nach die Readings aktualisiert, es sieht so zuminest vom timestamp her aus.

Version sagt:
# $Id: 32_withings.pm 4693 2014-01-19 17:33:16Z justme1968 $

list sagt:
sz_Waage
withings_D12xxxxx
withings_U27xxxxx
withings_U27xxxxx


Das Perlscript teste ich später, bin jetzt gleich Unterwegs und das ganze Wochenende weg. Den Debug Eintrag mach ich dann auch und spiele noch mal alles durch.
Danke für deine Mühe und schönes Wochenende.
Titel: Antw:Withings Modul: Startprobleme, User bekommen keine Daten
Beitrag von: TeeVau am 24 Januar 2014, 17:17:55
Doch noch eben auf die schnelle ;-)
Hab den $log Eintrag gemacht, alle devices wieder gelöscht. Also das selbe SPiel wie vorhin.
Bei dem ddefine kommt:
2014.01.24 17:10:03 3: withings: >ACCOUNT< >>?<<
2014.01.24 17:09:51 3: withings_D12xxxxx: I/O device is withings
2014.01.24 17:09:51 3: withings: create new device 'withings_D12xxxxx' for device '12xxxxx'
2014.01.24 17:09:50 3: withings_U27xxxxx: I/O device is withings
2014.01.24 17:09:50 3: withings: create new device 'withings_U27xxxxx' for user '27xxxxx'
2014.01.24 17:09:49 3: withings_U27xxxxx: I/O device is withings
2014.01.24 17:09:49 3: withings: create new device 'withings_U27xxxxx' for user '27xxxxx'


User und Device sind im FHEM angelegt...

get updateAll auf das Device liefert:
2014.01.24 17:14:14 3: withings_D12xxxxx: >DEVICE< >>?<<
2014.01.24 17:13:23 3: withings_D12xxxxx: >DEVICE< >>?<<

Im FileLog sind die alten Daten...

get updateAll auf einen user liefert:
2014.01.24 17:15:23 3: withings_U27xxxxx: >USER< >>?<<
2014.01.24 17:15:17 3: withings_U27xxxxx: >USER< >>?<<

Im FileLog ist nix, auch kein Reading vorhanden

Bei dem 2. user ist es das selbe Spiel...
Titel: Antw:Withings Modul: Startprobleme, User bekommen keine Daten
Beitrag von: justme1968 am 24 Januar 2014, 17:20:43
das schaut so weit gut aus. jedenfalls scheint es die warnung von ganz oben nicht zu geben.

bitte schau mal direkt in deinem account nach. kannst du da die daten sehen ?

ich mal die debug version fertig und dann sehen wir weiter.

gruss
  andre
Titel: Antw:Withings Modul: Startprobleme, User bekommen keine Daten
Beitrag von: TeeVau am 28 Januar 2014, 11:37:37
Hallo,

das Problem ist gelöst und betrifft bestimmt noch den ein oder anderen, neuen Nutzer. Deshalb hier eine kurze Beschreibung.
Das Problem ist, dass keine Daten über die API Schnittstelle gesendet werden. Eine direkte Fehlermeldung gibt es nicht. Hintergrund ist, dass die Gewichtsdaten für den Webzugriff zusätzlich freigeschaltet werden müssen. Diese freischalten funktioniert nicht über das neue Dashboard, sondern nur über das Alte.

Zur Zeit läuft das Modul auf meiner FritzBox 7390. Das JSON Modul muss per Hand nachinstalliert werden, falls nicht vorhanden (Mit einer normalen FHEM Installation, egal welche Quelle, wird JSON nicht auf der FBF installiert). Ich hoffe es ist für jemanden hilfreich.

Habe die gplot Datei etwas abgeändert....farblich dargestellt werden nun die Grenzen so, wie im Withings Dashboard beschrieben.
Tobias
Titel: Antw:Withings Modul: Startprobleme, User bekommen keine Daten
Beitrag von: elbmarschsurfer am 13 Dezember 2016, 19:58:55
Hallo,
auch wenn das Thema Withings veraltet scheint, interessiert es mich momentan sehr. Kann man die "interval"- Zeit im Attribut irgendwie kleiner als 3600 stellen? Bei mir kam beim Versuch, die Zeit auf 60 Sekunden zu stellen die Meldung: "interval set to 3600"
Höher als die angegebene Zeit in den Internals einstellen klappt. Also, falls es geht: Wie? Und falls nicht: Warum nicht?  ;)

Würde mich freuen, wenn jemand helfen kann, hatte vor, mit dem Ergebnis einer Wägung ein Ereignis auszulösen.