Smarte Personenwaage

Allgemeine Fragen rund um die "Smart Home" Hardware/Komponenten

Moderatoren: seppy, udo1toni

Antworten
manes
Beiträge: 224
Registriert: 23. Jul 2020 17:49
Answers: 0
Wohnort: Kreis Wesel

Smarte Personenwaage

Beitrag von manes »

Ich überlege mir eine neue Personenwaage zuzulegen. Das sollte natürlich dann so sein, das sie die Standardwerte Gewicht, Körperfett usw. in mein OpenHab System einspielen kann. Hat jemand schon so seine Erfahrung damit gemacht und könnte was dazu sagen? Auf jeden Fall soll es keine externe Cloud sein. Schön wäre es, wenn die Waage sich über Wlan in das private Netzwerk verbindet und dort dann z.B. über MQTT Daten verschickt, die von OpenHab gelesen werden können. Gibt es sowas überhaupt? Und dann noch bezahlbar, oder träume ich so kurz vor Weihnachten einfach nur zu viel?
Also, hat jemand sowas in eigener Verwendung, oder kennt jemanden, der jemanden kennt?
---------------------
liebe Grüße Manfred

Benutzeravatar
udo1toni
Beiträge: 15240
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Smarte Personenwaage

Beitrag von udo1toni »

Ich nutze hier eine Medisana BS444. Die Waage bietet 10 Personen-Speicher und überträgt die Daten jeweils nach der Wägung über Bluetooth.
Für die Verbindung zu openHAB nutze ich ein Tool, welches auf einem separaten Pi zero läuft, der - mit Mininetzteil im Spiegelschrank am Dauerstrom - die Waage abfragt, sobald er sie findet. Die Daten werden dann per mqtt weitergeleitet.
Näheres kann ich später zeigen :)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

manes
Beiträge: 224
Registriert: 23. Jul 2020 17:49
Answers: 0
Wohnort: Kreis Wesel

Re: Smarte Personenwaage

Beitrag von manes »

das klingt gut. Dann bin ich mal gespannt.
---------------------
liebe Grüße Manfred

manes
Beiträge: 224
Registriert: 23. Jul 2020 17:49
Answers: 0
Wohnort: Kreis Wesel

Re: Smarte Personenwaage

Beitrag von manes »

ist jetzt später? :)
---------------------
liebe Grüße Manfred

Benutzeravatar
udo1toni
Beiträge: 15240
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Smarte Personenwaage

Beitrag von udo1toni »

Vermutlich... :lol:

Es gibt in github ein Projekt: https://github.com/keptenkurk/BS440.

Wie erwähnt nutze ich eine Medisana BS444. Es gibt noch diverse andere Körperanalysewaagen bei der Firma Medisana, und es ist durchaus möglich, dass alle Geräte der connect-Klasse (also mit eingebautem Bluetooth) das gleiche Kommunikationsprotokoll verwenden. Sicher funktioniert die Software aber auf jeden Fall mit dem Modell BS440 und BS444 (Erstere, weil sie dafür entwickelt wurde, Letztere, weil ich diese Waage nutze...)

Die Software habe ich bei mir auf einem Pi zero W installiert, der zusammen mit einem Netzteilmodul (hlk-5m05) im Spiegelschrank verbaut ist (ich habe im Spiegelschrank Dauerstrom). Auf dem Pi ist die Software installiert und als Dienst gestartet. Sobald die Software läuft, scannt sie alle 10 Sekunden nach Bluetooth Geräten. Findet sie ein Gerät mit passender ID, baut sie eine Verbindung auf und ruft die Analysedaten ab.
Anschließend sendet sie den letzten gültigen Datensatz an die konfigurierten Plugins (z.B. Daten irgendwohin schreiben, auf einer einfachen Webseite anzeigen, an ein mqtt Topic senden - diesen Weg nutze ich).
Man kann in der Waage bis zu zehn Personen definieren. Die Waage wählt (anhand des aktuellen Gewichts) automatisch den passenden Speicherplatz aus (natürlich kann man das auch manuell tun... soll ja Familien geben, in denen mehrere Personen ein sehr ähnliches Gewicht haben...)
Die Speicherplätze können über die Konfiguration auf dem Pi mit einem Namen versehen werden, so dass im Topic anschließend die Datensätze eindeutig zuzuordnen sind - die Speicherplatznummer wird aber immer auch mit ausgewiesen.

Ein übertragener Datensatz sieht dann so aus:

Code: Alles auswählen

{
	"valid": true,
	"weight": 12.3,
	"timestamp": 1733904474,
	"person": 1,
	"bmi": 45.6,
	"kcal": 7890,
	"fat": 12.3,
	"tbw": 45.6,
	"muscle": 78.9,
	"bone": 1.2,
	"gender": "male",
	"age": 11,
	"size": 299,
	"activity": "normal",
	"model": "BS444",
	"name": "Udo",
	"date": "2024-12-11T09:08:40.397"
}
Aus nachvollziehbaren Gründen ;) sind das natürlich keine echten Daten...
In openHAB benötige ich also nur ein passendes mqtt Thing:

Code: Alles auswählen

     Thing topic bs444 "Medisana Waage" {
         Type string : json       "Json"        [ stateTopic="bs444/udo/" ]
         Type number : weight     "Gewicht"     [ stateTopic="bs444/udo/", transformationPattern="JSONPATH:$.weight", unit="kg" ]
         Type number : bmi        "BMI"         [ stateTopic="bs444/udo/", transformationPattern="JSONPATH:$.bmi" ]
         Type number : kcal       "kCal"        [ stateTopic="bs444/udo/", transformationPattern="JSONPATH:$.kcal", unit="kcal" ]
         Type number : fat        "Fett"        [ stateTopic="bs444/udo/", transformationPattern="JSONPATH:$.fat", unit="%" ]
         Type number : tbw        "Wasser"      [ stateTopic="bs444/udo/", transformationPattern="JSONPATH:$.tbw", unit="%" ]
         Type number : muscle     "Muskel"      [ stateTopic="bs444/udo/", transformationPattern="JSONPATH:$.muscle", unit="%" ]
         Type number : bone       "Knochen"     [ stateTopic="bs444/udo/", transformationPattern="JSONPATH:$.bone", unit="kg" ]
         Type number : timestamp  "Zeitstempel" [ stateTopic="bs444/udo/", transformationPattern="JSONPATH:$.timestamp", unit="s" ]
      }
wobei ich wegen der Einheiten im Thing direkt die Daten in einzelne Channel zerlege. Wahlweise könnte man das auch im Link zwischen json-string Channel und diversen Number Items unterbringen, dann halt ohne vollständige UoM Unterstützung. Das json ist bei mir nur der Vollständigkeit halber konfiguriert, aber das kann auch bei der Fehlersuche praktisch sein.
Im json sind einige weitere Datenpunkte enthalten, die sich jedoch nicht ändern und somit auch nicht ausgewertet werden müssen.
Möchte man weitere Personen berücksichtigen, so müssen entsprechend weitere Channel nach obigem Schema angelegt werden, mit anderem stateTopic.
Die Waage überträgt stets die letzten 30 Datensätze der gemessenen Person an den Bluetooth Empfänger, die Software leitet den letzten Datensatz weiter.
Ab und zu kommt es vor, dass die Datenübertragung nicht richtig funktioniert, dann kann man beim nächsten Wiegevorgang (nach dem Wiegen) das Log des Dienstes öffnen und dort auf alle 30 Datensätze zugreifen. Ich habe mir ein Excel Arbeitsblatt angelegt, mit dem ich die Daten bequem in ein passendes Zielformat bringen kann (InfluxDB) so dass ich die Daten dann immer noch mit vertretbarem Aufwand nachpflegen kann.

Da die Waage ausschließlich über die zugehörige App konfiguriert werden kann, muss man ab und zu den Dienst mal anhalten, damit man die Waage mit dem Smartphone verbinden kann. Nur so kann man Körpergröße, Alter und Körpertyp (sportlich oder ich...) anpassen. Da die Waage kein Geburtsdatum kennt und auch keine richtige Uhr hat, wird das Alter nicht automatisch angepasst, das muss also auf jeden Fall über die zugehörige App geschehen. Wie so oft kann man an dieser Stelle nicht vermeiden, mit der Cloud in Berührung zu kommen, aber irgendwas ist ja immer...

Die Software hat außerdem noch eine "Macke", das macht sich bemerkbar, wenn sie mehrere Tage am Stück läuft. Mein Workaround hierfür ist, dass ich in der service Datei den Parameter RuntimeMaxSec auf 1d gesetzt habe, das bedeutet, dass der Dienst nach spätestens 24 Stunden automatisch erneut gestartet wird. Dabei wird auch die log-Datei neu initialisiert, so dass hier einigermaßen Platz gespart wird - natürlich hat das auch Nachteile :) weil man nicht weit in die Vergangenheit schauen kann...

Fragen? Fragen!
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

manes
Beiträge: 224
Registriert: 23. Jul 2020 17:49
Answers: 0
Wohnort: Kreis Wesel

Re: Smarte Personenwaage

Beitrag von manes »

jetzt muß ich erstmal die ganzen Infos verarbeiten und einsortieren. :lol:
---------------------
liebe Grüße Manfred

Antworten