den satz muss ich mir unbedingt merken. für support-mails die ich an freunde und verwandte schreibe. optimalerweise in versalien:

HINWEIS: DIESES HILFSANGEBOT GILT NUR BIS ENDE DES LAUFENDEN MONATS.

wie ingo sagt, die sensorik ist das problem. die meisten deutschen müllabholer hüten ihre abholdaten aber offenbar wie augäpfel. keine APIs, keine einfachen abfragen. von daher lautet die antwort: eher nicht.
ne #offenemülldateninitiative, das wär aber mal was.

messlatte

felix schwenzel, , in artikel

nachdem ich die nicht ganz billige (inklusive lieferung ca. 110,00 €) nokia-sleep an die beifahrerin weitergegeben hatte, wollte ich mir (endlich) eine zuverlässige schlaferkennung, bzw. einen zuverlässig bett-präsenz-sensor, selbst bauen. in diversen foren las ich von leuten, die sich günsige gewichtssensoren unter die vier beine ihres betts montierten und so quasi ihr ganzes bett wogen, um festzustellen, ob es besetzt ist.

mich schreckte der aufwand einer solchgen konstruktion ein bisschen. dafür müssten kabel von über zwei meter länge an allen seiten des betts verlegt werden, eine optisch akzeptable lösung für die bettbeine gefunden werden und eine lösung, mit der man das bett noch bewegen könnte, ohne die sensoren zu verlieren oder neu kalibrieren müsste. meine idee war die gewichtssensoren einfach auf eine zusätzle lattenrostlatte zu montieren. damit konnte ich zwar nicht mehr mein gewicht im schlaf messen, aber, so glaubte ich, zumindest zuverlässig erkennen, ob ich im bett liege oder nicht.

die sensoren, die ich mir in china kaufte (drei euro für vier stück) dürfen nicht plan aufliegen, sondern ihr mittelteil muss sich frei bewegen können. um sie auf eine latte zu montieren, mussen sie entweder in halteschalen liegen, oder über einem entsprechenden loch. statt drei-d-zu-drucken oder zu fräsen, habe ich einfach meine stecheisen ausgemotttet und eine span-latte, die früher als transportsicherung für ikea-küchen-fussleisten genutzt wurde, entsprechend malträtiert.

messlatte mit angezeichneten sensoren
messlatte mit sensoren löchern
messlatte mit sensoren

um die sensoren zu halten und das gewicht der matraze auf beide sensoren zu verteilen, habe ich eine weitere latte oben aufgeschraubt. die steht zwar leicht über (die spanlatte hat zufällig die gleiche höhe wie die regulären latten des lattenrost), aber das wird von der matraze aufgefangen und ist nicht zu bemerken.

messlatte
messlatte

die sensoren werden in der regel, zum beispiel in körperwaagen, zu viert verbaut. um ordentliche messwerte zu bekommen, wird meist eine sehr günstige platine mit einem verstärker genutzt, ein HX711-modul, in deutsch auch „wägezellenverstärker“ genannt. ich habe mir das teil von sparkfun gekauft (ca. 10 euro), die module gibt es aber auch sehr viel günstiger in china (ab 60 cent).

um die drei kabel der einzelnen sensoren zu verschalten gibt es unzählige schaltbilder im netz, für lediglich zwei sensoren musste ich ein bisschen suchen. dave x hat das auf stackexchange sehr schön dokumentiert. die HX711-modul-eingänge sind in der regel mit E+, E-, A+, A-, B+ und B- beschriftet. dafür lautet das anschlussschema dann:

   HX711.E+ : Cell1.White + Cell2.Black
   HX711.E- : Cell1.Black + Cell2.White
   HX711.A+ : Cell1.Red
   Hx711.A- : Cell2.Red

das sparkfun-HX711-modul ist allerdings mit RED, BLK, WHT, GRN und YLW beschriftet, die zuordnung lautet entsprechend:

   E+ RED
   E- BLK
   A- WHT
   A+ GRN

so habe ich die kabel der wägezellen dann auch angelötet.

messlattenelektronik (HX711 und esp8266)

vom wägezellenverstärker geht es dann zu einem microcontroller, der die messwerte auswertet und an die heimautomatisiewrungszentrale sendet, in meinem fall homeassistant. auch hierfür gibt es ein paar bibliotheken (eins, zwei, etc.), aber ich wollte gerne ESPeasy nutzen, weils so einfach ist. im aktuellen mega-pre-release-entwicklungsstrang, gibt es ein experiementelles modul für die HX711-unterstützung. um das zu nutzen, habe ich mir das aktuelle mega-pre-release von der ESPeasy-releaseseite auf github runtergeladen. im realease-zip findet sich ein vorkompiliertes firmware-image für den esp8266, in meinem fall ESP_Easy_mega-20180421_test_ESP8266_4096.bin, das ich einfach per komandozeile und esptool auf einen esp8266 geflasht habe (hier gibt’s weitere flashanleitungen):

./esptool -vv -cd nodemcu -cb 115200 -bz 4M -cp /dev/cu.wchusbserial1460 -ca 0x00000 -cf ESP_Easy_mega-20180421_test_ESP8266_4096.bin

mit ESPeasy ist die weitere konfiguration dann wirklich einfach: vom HX711-modul habe ich die DAT- und CLK-ausgänge mit den pins D4 (DOUT=DAT) und D5 (SCL=CLK) verbunden (VDD und VCC mit dem 5-volt- und GND mit dem masse-anschluss) — fertig:

ESPeasy konfiguration

damit sendet der esp8266 das gemessene gewicht alle zwei sekunden per mqtt. die formel ((%value%+135750)*-1)/20 kalibriert das gewicht auf ungefähr null kilogram. um die kalibirierungswerte rauszubekommen, habe ich die messlatte mit 1-kg-mehl- oder zucker-paketen belastet, mir die werte notiert, mich gewundet, wie genau die konstuktion misst und dann die formel oben ausgerechnet. je nach verwendeten modulen wird das wohl anders aussehen.

zusätzlich zu den wägezellen, habe ich in der messlatte auch noch einen RCWL-0516-radar-bewegungssensor und einen DHT-22 temperatur und feuchtemesser (in matrazennähe) eingebaut. wirklich nötig ist das aber natürlich nicht, wobei der DHT tatsächlich durch die matraze nach einer ca. 30 minütigen latenzzeit präsenz durch erhöhte feuchtigkeit misst. die temperatur-werte sind durch die matraze nicht wirklich verwertbar. den bewegungssensor nutze ich eigentlich um bewegungen im raum zu erfassen, aber natürlich erfasst er auch bewegungen im bett. allerdings, im gegenteil zu den wägezellen, auch die bewegungen im nebenbett.

die montage im bett ist einfach, wenn die messlatte die gleiche länge wie die übrigen latten hat und schmal genug ist, um zwischen die vorhandenen latten zu passen.

messlatte montiert

die messwerte der wägezellen sind erstaunlich genau. so bin ich (offensichtlich) gestern um kurz nach elf ins bett gegangen und nach wenigen minuten eingeschlafen (letzte bewegung um 23:22 uhr). nach dem einschlafen habe ich mich eine halbe stunde nicht bewegt, zwischen mitternacht und ein uhr war der schlaf dann etwas unruhiger, bis kurz vor zwei wurde es dann wieder etwas ruhiger, ab drei wurde mein schlaf offenbar immer leichter und um vier bin ich aufgewacht und aufgestanden. um viertel nach fünf hab ich mich dann wieder hingelegt, 20 minuten gelesen und habe dann nochmal zweieinhalb stunden anständig geschlafen.

messwerte der messlatte in grafana

* * *

weil die messwerte natürlich ständig fluktuieren, runde ich die messwerte im homeassistant auf ganze kilowerte. damit ist die messkurve, wie oben zu sehen, relativ stabil.


sensor:
  - platform: mqtt
    state_topic: "bett/weight/Weight"
    name: "bett gewicht"
    value_template: "{{ (value | float /1000) | round(0) }}"
    qos: 0
    unit_of_measurement: "kg"
    availability_topic: "bett/status/LWT"
    payload_available: "Connected"
    payload_not_available: "Connection Lost"

für die präsenzerkennung nutze ich einen binär-sensor, mit dem ich automatisierungen fürs licht steuern kann, obwohl die messwerte stabil genug sind um für automatisierungen auch direkt den messwert zu nutzen:


- platform: template
sensors:
bett_ix_besetzt:
friendly_name: "Bett ix (Messlatte)"
device_class: occupancy
entity_id: sensor.bett_gewicht
delay_on:
seconds: 5
delay_off:
seconds: 6
value_template: >-
{% if not is_state("sensor.bett_gewicht", "") %}
{{ states.sensor.bett_gewicht.state|float > 10 }}
{% else %}
False
{% endif %}

meine lieblingsautomatisierung ist derzeit, wenn der sensor für mehr als 10 sekunden einen wert grösser als 30 kilogramm misst, also die beifahrerin offenbar auf meine seite rübergerollt ist, dass dann für 10 sekunden serge gainsburgs je t’aime erklingt. ich finde das sehr witzig, die beifahrerin mittlerweile auch (ein bisschen).

gekostet hat der spass signifikant weniger als das nokia-sleep-dings für etwas über 100 euro. hier lagen die materialkosten eher so bei 20 euro.

einkaufsliste:

  • esp8266 (3-8 euro)
  • HX711 (1-10 euro)
  • wägezellen (3 euro)
  • [RCWL-0516 (1 euro)]
  • [DHT-22 (3 euro)]

nokia sleep

felix schwenzel, , in artikel    

ich habe bisher meinen schlaf mit der apple watch in kombination mit der autosleep-app getrackt. das funktioniert ganz gut, obwohl ich die uhr nachts meistens nicht trage (sondern lade). durch die kombination mit der iphone app weiss autosleep, dass ich wach bin, solange, oder sobald, sich mein iphone bewegt. trägt man die uhr, trackt autosleep auch die schlafherzfrequenz oder schlaftiefe.

vor ein paar wochen hörte ich, dass nokias neuer schlaftracker nokia sleep vorbestellbar sei und mitte april lieferbar sei. mitte april kam das teil dann unter meine matraze, um zu sehen, ob das versprechen nokias erfüllbar ist, dass das teil nicht nur die zeit, die ich im bett bin und schlafe misst, sondern auch die schlaftiefe, meine herzfrequenz und schnarchintervalle.

tatsächlich schien das nokia-sleep-teil das ganz gut hinzubekommen. die auswertung meiner nächtlichen herzfrequenz sah schlüssig aus, der vergleich mit den werten der apple watch zeigte, dass die messung mindestens so akkurat ist, wie die der apple watch. auch die auswertung der schlafftiefe, bestätigte die selbsteinschätzung meines schlafverhaltens. ich schlafe, im vergleich zur beifahrerin, relativ wenig, früher reichten mir unter der woche sechs stunden, mittlerweile reichen mir auch fünfeinhalb oder fünf stunden (am wochenende schlaf ich gerne zusatzlich tagsüber ein oder zwei stunden). meine vermutung war schon länger, dass ich meine erholsamen tiefschlafphasen relativ früh in der nacht, also nach dem einschlafen erledige und so auch bei frühmen aufstehen ziemlich erholt bin. andere, die ihre tefschlafphasen erst später in der nacht haben, tun sich mit frühaufstehen deshalb ein bisschen schwerer.

die auswertung der nokia-sleep-app meckerte zwar über meine niedrige gesamtschlafzeit, attestierte mir aber lange tiefschlafphasen, in der nacht von 20. april, trotz lediglich 5 stunden schlafzeit, immerhin fast 3 stunden tiefschlaf und mehr als eine stunde REM-schlaf.

zwei tage meiner schlafanalyse
zwei tage meiner schlafanalyse

nach zwei wochen habe ich die nokia-sleep-matte unter die matraze der beifahrerin geschoben und konnt bei ihr das gegenteil beobachten. ihre knapp acht stunden schlaf bestanden am 5. mai aus viereinhalb stunden unruhigem, leichten schlaf und nur drei stunden erholungsschlaf (tief und REM).

zwei tage schlafanalyse der beifahrerin
zwei tage schlafanalyse der beifahrerin

nach meiner beobachtung ist REM-schlaf-phasenerkennung nicht ganz akkurat. zumindest wenn ich morgens aus träumen aufwachte, was man ja vor allem in REM-phasen tut, sah mich nokia eher in tief- oder leichtschlaf. die beobachtungen der beifahrerin zeigen das gleiche.

* * *

einer der gründe mir das nicht ganz günstige (110,00 €) nokia-sleep-teil zu kaufen, war etwas was mir bei autosleep fehlte: die anbindung an meine hausautomatisierung.

es gibt keinen weg die daten aus der apple watch oder aus autosleep auszulesen oder auslöser für aktionen zu definieren. die nokia sleep kommt mit einer anbindung an den automatisierungsdienst ifttt. ifttt mag ich eigentlich nur so mittel, einerseits weil die reaktionszeiten von ifttt aus erfahrung eher bescheiden sind und weil ich mich bei hausautomatisierung eher ungerne auf daten aus der cloud verlasse (measure local, act local).

grundsätzlich halten sich meine bedenken, vitaldaten in der cloud zu speichern in grenzen. auf apple-servern dürfte sich da seit jahren einiges angesammelt haben. jetzt liegen vitaldaten von mir (und der beifahrerin) eben auch bei nokia, nachdem ich meine vitaldaten auch dem mittlerweile insolvent gegangenen sen.se für eine weile über deren schlafnuss (sleep-peanut) zugeführt habe. jetzt pumpt eben die (der) nokia-sleep diese daten in die nokia-cloud. was mich am cloud-gedöns eher nervt ist die (oft fehlende) zugänglichkeit der daten. ich möchte die auch selbst auswerten können und in echtzeit darauf zugreifen.

bevor ich mir die nokia sleep gekauft habe, hab ich mir die API von nokia-health angeschaut und das sah eigentlich ganz gut aus. theoretisch gibt es zugriff per API auf alle daten in der cloud, gesichert über oauth2 und token-basierte requests. das sieht in meiner mittelkompetenten einschätzung seriös und ausreichend sicher aus, aber eben auch kompliziert. was gut für die sicherheit und schwierig für die selbstauswertung ist.

da das einzig relevante datum für die heimautomatisierung aber ohnehin der zeitpunkt wann man sich ins bett legt und aufsteht ist, entschied ich mich für den ifttt-weg, statt selbst eine API-anbindung zu basteln (diektzugriff auf das per wlan im heimnetze eingebundene nokia health scheint nicht möglich, das teil scheint keine offenen ports zu haben). ifttt sendet meiner heimautomatisierungszentrale homeassistant eine nachricht, wenn ich mich ins bett lege und wenn ich aufstehe. das funktioniert erstaunlich gut und für ifttt-verhältnisse auch ganz flott. sobald ich 30-60 sekunden im bett liege, schlägt der auslöser bei mir auf. beim aufstehen dauerts gerade mal 2-3 sekunden. das ergebnis ist befriedigend: restlichter im schlafzimmer oder der wohnung kann ich so ausschalten (lassen) sobald ich im bett bin oder wenn ich tagsüber im bett liege, bestimmte mitteilungen an mein handy unterdrücken. weil die daten zuverlässig und zeitnah sind, könnte ich auch einen alarm scharf schalten (hätten wir einen) oder bewegungsmelder oder telefone stummschalten. sobald ich aufstehe, sind die bewegungsmelder wieder aktiv und abhängig von der zeit oder dem schlafzustand der mitbewohner liessen sich vorhänge öffnen. diese präzise und relativ zeitnahe bett-präsenz-erkennung für die heimautomatisierung war, wie gesagt, der hauptgrund mir den (die) nokia-sleep zu kaufen.

vorher hat das zwar auch ganz gut funktioniert, indem ich verschiedene sensordaten über bayesische wahrscheinlichkeitsrechnung zusammenführte (zeit, helligkeit, bewegungsmelderdaten, status meines laptops, an der steckdose gemssener ladestrom der apple watch, co2-gehalt der luft). diese bayesische sensor blieb aber, trotz ständiger optimierung leider eher unscharf, mit zu vielen falschen positiven. in sachen bett-präsenz-erkennung bin ich mit dem nokia-sleep hochzufrieden.

auch die nokia health mate app, bzw. deren schlafauswertung wirkt positiv. die sen.se-app, die die daten die meiner schlafnuss in die cloud pumpte, nervte bereits nach ein paar tagen und wirkte wie unseröser und unzuverlässiger hokus-pokus. dagegen scheint mir die health-mate-auswertung und usability um welten besser. die daten stehen nach dem aufstehen sofort zur verfügung (sen.se rechnete daran teilweise stundenlang rum) und daten sind übersichtlich und schlüssig dargestellt. sogar mit meinen mittagsschläfen kommt die auswertung zurecht und markiert sie als „siestas“. für alle daten (schlaftiefe, einschlafdauer, aufwachdauer, herzfrequenz, etc.) gibt es detailansichten, die angebliche schnarchdauer wird allerdings n ur aggregiert dargestellt.

die c’t kommt in ihrer aktuellen ausgabe zu ähnlichen testergebnissen wie ich, was die zuverlässigkeit der auswertung und ifttt-anbindung anbelangt. ich habe aber auch von mindestens zwei leuten gehört, bei denen die auswertung kompletten quatsch lieferte (30 minuten schlafdauer). ich vermute hier probleme mit der kalibrierung, entweder wegen der matrazen-dicke oder der form des lattenrosts.

weil ich die (das?) nokia-sleep an die beifahrerin weitergegeben habe (als eins der vielen geburtstagsgeschenke, über das sie sich nicht sonderlich freute), habe ich mir ein nokia-sleep selbst gebastelt, für 10 euro, statt 100. (artikel dazu folgt)