Numbers 16.05.2020

Es scheint als hätten unsere Regierenden trotz anscheinend kopflosem Durcheinanderentscheiden tatsächlich den optimalen Zeitpunkt für den Beginn der Lockerungen gefunden. Wer hätte das gedacht? Gestern gab es in Deutschland gerade noch 16000 Kranke – wobei das natürlich die Zahl der erfassten Kranken ist. Es gibt da mit Sicherheit noch eine hohe Dunkelziffer, die ich gar nicht schätzen will. Trotzdem machen die Zahlen der letzten Tage Mut.

Katastrophal ist allerdings die Lage in Brasilien. Natürlich haben die US mehr Kranke und auch mehr Neuinfektionen, aber die haben eben auch Equipment, um die Kranken zu versorgen. In Brasilien dürfte das ungleich schlechter aussehen.

Justizministerin: Barley fordert schnelle Reaktion auf Daten-Leak – SPIEGEL ONLINE – Politik

Barley fordert… erforderlich wäre tatsächlich wesentlich mehr Sachverstand im Kabinett. Wer solche Forderungen stellt, hat das Problem nicht begriffen. Wenn man mit dem Kopf gegen die Wand rennt, tut das weh. Man kann die Wand polstern und sich an der Tatsache freuen, dass man jetzt viel öfter dagegen rennen kann, bevor es weh tut. Oder man kann einfach nicht dagegen rennen. Das wäre aber wohl zu einfach.

Quelle: Justizministerin: Barley fordert schnelle Reaktion auf Daten-Leak – SPIEGEL ONLINE – Politik

Der Heimassi (10)

Nachdem sich der aus dem Powerline-Disaster entstandene Blutdruck wieder normalisiert hat, kommen wir zur Mosquitto-Server. MQTT ist ein offenes Protokoll, das sehr gut für M2M geeignet ist. Auch bei hohen Latenzen können Telemetriedaten vernünftig übertragen werden.

Der Mosquitto ist relativ einfach aufzusetzen. Hier ist ein vernünftiges Howto. Worauf zu achten ist, ist die Verwendung von Logins und die Absicherung via TLS. Es ist ratsam, hierfür die Zertifikate von Letsencrypt zu verwenden. Ist alles aufgesetzt, lässt sich die Funktion prüfen, indem man einfach mal alle Topics abonniert:

mosquitto_sub -u <user> -P <secret> -t "#"

Mit Hilfe von mosquitto_pub lässt sich eine Meldung publizieren. Man gibt in einer zweiten shell ein:

mosquitto_pub -h 127.0.0.1 -p 8883 -u <user> -P <secret> -t home/garage/sonoff_kanal1 -m ein

mosquitto_sub sollte nun ein einfaches „ein“ in einer neuen Zeile ausgeben. Damit wissen wir, dass der Server wie gewünscht funktioniert. Jetzt muss er noch mit Standortdaten gefüttert werden, damit HA bestimmen kann, wer sich wo befindet.

Hierzu verwende ich Owntracks. Die App ist sowohl für Android als auch für IOS erhältlich und open source – was bei personenbezogenen Daten wie Standorten ein wichtiges Merkmal ist.

Die Einrichtung verläuft relativ einfach. Unter „Einstellungen“ erstellt man eine „MQTT Privat“ Verbindung, verwendet das im Server hinterlegte Login und aktiviert TLS. Erfahrungsgemäß sind in der Standortbestimmung Verzögerungen von ein paar Minuten möglich. Das lässt sich per Einstellung in Owntracks tweaken – aber da wir jetzt keine sehr schnelle Reaktion brauchen und auch die Batterie des Telefons schonen wollen, bleiben wir da sehr zurückhaltend.

Jetzt bringen wir HA noch bei, diese Daten zu verwenden. Zum Einen müssen wir HA den Mosquitto bekannt machen:

mqtt:
  broker: 127.0.0.1
  port: 8883
  username: <user>
  password: <secret>

Zum Anderen muss HA wissen, wie er mit den Daten umzugehen hat:

device_tracker:
  - platform: owntracks
    mqtt_topic: "owntracks/#"
    max_gps_accuracy: 200
    waypoints: True

Um nun festzustellen, ob sich jemand vom Haus entfernt, verwendet man Zoning. Praktischerweise hat HA die Heimzone schon fertig eingerichtet. Die ist aber in der Grundkonfiguration schon recht groß und schließt in meinem Fall den Supermarkt mit ein – den man aufgrund von Großeinkäufen von SWMBO auch öfters mal mit dem Auto besucht. Das ist unpraktisch, weil dieser Punkt schon als „nicht daheim“ registriert werden soll. Also macht man die Zone manuell etwas kleiner.

zone:
  - name: work
    latitude: <lat>
    longitude: <lon>
    radius: 150
    icon: mdi:worker
  - name: Home
    latitude: <lat>
    longitude: <lon>
    radius: 150
    icon: mdi:account-multiple

Wird die Heimzone manuell konfiguriert, überschreibt sie die automatisch angelegte. Jetzt haben wir eine Standortplattform, auf deren Basis Bewegungen als Trigger oder Conditions verwendet werden können.

Im nächsten Kapitel schauen wir uns die Sonoff-Relais an. Sie brauchen eine alternative Software, die mqtt spricht.

 

 

 

 

Der Heimassi (4)

Es gibt Dinge, die fallen einem erst auf, wenn man genauer drüber nachdenkt. Nach Feierabend kommt man heim, man spricht über den Tag, macht vielleicht ein paar Pläne fürs Wochenende. Danach Abendessen, man legt sich einen Film zurecht, macht eine Flasche Wein auf oder schenkt sich ein Glas guten Scotch ein, die Sofa-Liegepositionen sind eingenommen, man startet den Film…

…und dann brennt da noch dieses lausige grelle Licht an der Decke. Die Fernbedienung für das Licht liegt genau weit genug entfernt, dass sie ohne aufzustehen nicht erreichbar ist, die Motivation dazu liegt aufgrund des vollen Bauchs am unteren Ende der Skala. Das Leben ist ungerecht.

Man stelle sich nun einen Superhelden mit fliegendem Cape und hautengen Kostüm vor, einen „hass-man“ Schriftzug über der breiten Brust. Home Assistant kommt zur Rettung!

Ziel ist also eine Kinoschaltung: Drücke ich auf der Amazon-Fire Fernbedienung auf „Play“, soll das Licht herunterdimmen und die Lichtfarbe wärmer werden. So weit, so gut. Da man an das Amazon-Geraffel so wohl noch nicht herankommt, ist es gut, dass die Fire-Box hier eigentlich nur als Hardware für Kodi missbraucht wird. Und an den kommt man sehr gut heran!

Also ist der Trigger mal kein Problem:

- alias: "Regel 2 - Kodi dimmt Licht bei start"
  hide_entity: True
  trigger:
    - platform: state
      entity_id: media_player.kodi
      to: 'playing'

Also wenn Kodi den Zustand nach „playing“ verändert, wird der Trigger ausgelöst.

Nächster Schritt. Welche Conditions machen Sinn?

 condition:
   - condition: time
     after: '17:00'
     before: '23:00'

Wäre eine Möglichkeit, ist aber zu starr. Also eventuell die selben Conditions wie fürs Einschalten des Lichts? Sunset -0:30? Nein. Es geht einfacher.

 - condition: state
   entity_id: light.Wohnzimmer_Decke
   state: 'on'

Wir sagen einfach: Wenn das Licht denn schon an ist, dann dimmen wir auch. Sonst eben nicht.

Wie bringen wir nun aber der Lampe bei, in welchem Zustand wir sie gerne hätten? Wir schicken ihr als Action einen ganzen Datensatz:

 action:
   service: light.turn_on
   data: 
     entity_id: light.Wohnzimmer_Decke
     color_temp: 453
     brightness: 20
     transition: 5

Nicht perfekt, aber schon sehr angenehm. Das Licht ändert die Farbe und dimmt langsam herunter. Farbtemperatur und Helligkeit gleichzeitig ändern kommt auf die Todo-Liste.

Jetzt ist es ja aber so, dass so ein Film recht lange dauern kann, und zwischendurch ein Bio-break (mmorpg-slang für „Ich muss pinkeln!“) nötig wird. Da hier im schummrigen Licht die Gefahr steigt, den kleinen Zeh an Möbeln oder Türfutter hängen zu lassen, will man keine Kompromisse eingehen: Das Licht muss heller werden!

- alias: "Regel 2/1 - Kodi hellt Licht nach Stop auf"
  hide_entity: True
  trigger:
    - platform: state
      entity_id: media_player.kodi
      to: 'paused'
  condition:
    - condition: state
      entity_id: light.Wohnzimmer_Decke
      state: 'on'
  action:
    service: light.turn_on
    data:
      entity_id: light.Wohnzimmer_Decke
      color_temp: 400
      brightness: 200
      transition: 5

Toll. Man mag es kaum glauben, aber es sind Kleinigkeiten, die einen Film besser machen.

Der Heimassi (3)

Der eigentliche Sinn einer Heimautomation liegt im Erledigen von Aufgaben ohne Zutun des Benutzers. Bisher war Home Assistant hier ja nur eine zugegebenermaßen hübsche Visualisierung verschiedener Teilnehmer. Das ändert sich jetzt.

YAML ist eine recht einfach zu erlernende Markup Language. Alle Konfigurationsdateien von HA sind in yaml gehalten. Ich hatte bisher relativ wenig Berührungspunkte, aber die Konfiguration fühlt sich rasch intuitiv an. Nach den ersten zwei, drei mal Einrückregeln missachten wird man vorsichtiger und achtet gewissenhaft auf solche Dinge.

Was will man also automatisieren? Alles, was unter normalen Umständen lästig ist. Also erst mal was einfaches. Abends Licht an. Man will ja nicht immer die Fernbedienung mit sich herumtragen. Da tut sich die Frage auf: Ab wann braucht man Licht? Logischerweise wenn die Sonne untergeht. Es ist ja aber schon vorher dunkel! Macht nix, dazu kann man einen negativen Offset einbauen. Praktisch!

automations.yaml

- alias: "Regel 1 - Licht an abends"
  hide_entity: True
  trigger:
    - platform: sun
      event: sunset
      offset: '-00:30:00'

30 Minuten scheinen mir da ganz in Ordnung zu sein. Was aber, wenn niemand daheim ist? Oha, das hatte ich nicht bedacht. Bewegungsmelder? Müsste man dann ja in jeden Raum einbauen. Blöde Geschichte. Man müsste sowas wie ein Gerät dabei haben, das sich meldet, wenn man daheim ist. Vielleicht mit bluetooth, nfc oder so… oder wifi…

Ja, kein Scheiß. Das waren wirklich meine Gedanken. Auf die naheliegende Lösung, dass heute jeder ein Handy in der Tasche hat, bin ich erst nach mehreren Minuten gekommen. Aber da waren wir beim nächsten Problem. Router unterstützt HA zwar viele, aber da ich Tomato als Router OS verwende, habe ich da nicht wirklich mit Unterstützung gerechnet. Weit gefehlt. HA kann das. Also los!

configuration.yaml

device_tracker:
  - platform: tomato
    host: 192.168.1.1
    username: '******'
    password: '*********'
    http_id: (im Quelltext des Routerinterface nach "http_id" suchen)
automations.yaml

condition:
  condition: and
  conditions:
    - condition: time
      after: '17:00'
      before: '23:00'
    - condition: or
      conditions: 
        - condition: state
          entity_id: device_tracker.thuhuongsiPhone
          state: 'home'
        - condition: state
          entity_id: device_tracker.galaxynote8
          state: 'home'

Edit: Hier hat sich ein Fehler eingeschlichen. In der vorherigen Version waren die Konditionen nicht passend verknüpft. Richtig ist natürlich „Zeit und eines der beiden Telefone“.

Aber moment mal! Sollte jetzt niemand daheim sein, aber später dann heim kommen, wäre der Trigger ’sunset -30′ ja verstrichen und es würde sich nichts tun. Das ist unschön. Also wird das Heimkommen der beiden Telefone noch als zweiter Trigger angehängt.

automations.yaml

- platform: state
  entity_id: device_tracker.thuhuongsiPhone
  entity_id: device_tracker.galaxynote8
  to: 'home'

Dann muss HA noch der Schaltbefehl, also die „action“ mitgeteilt werden.

automations.yaml
 
action:
  service: homeassistant.turn_on
  entity_id: light.Wohnzimmer_Decke

Läuft. Klasse! Die nächste Automatisierung sollte etwas anspruchsvoller sein.

AfD: Die Rechtspopulisten und der nationale Sozialismus – Kolumne – SPIEGEL ONLINE

Die AfD dürfte künftig auf einen Politikmix setzen, der in der deutschen Geschichte schon einmal furchtbar erfolgreich war: Rassismus plus Sozialstaat. Dann droht der Aufstieg der Rechten zur Massenbewegung.

Quelle: AfD: Die Rechtspopulisten und der nationale Sozialismus – Kolumne – SPIEGEL ONLINE

Man muss nicht mögen, was Augstein schreibt – aber das hier ist einfach nur brillant analysiert. Anstatt allerdings selbst mal zu analysieren schachern unsere GROKO-Granden um Ministerposten. Die AfD ist nicht einfach aus dem Nichts gewirbelt. Sie wurde gemacht. Von denen, die uns heute erzählen, wie gefährlich sie ist.

Anti-Terror-Gesetz in Großbritannien: Aktivist angeklagt wegen verweigerter Passwort-Herausgabe | heise online

Quelle: Anti-Terror-Gesetz in Großbritannien: Aktivist angeklagt wegen verweigerter Passwort-Herausgabe | heise online

Wenn die US ein Notebookverbot auf Flügen in Erwägung ziehen, wird die hiesige Empörungskultur bis zum Exzess zelebriert – die Engländer machen derweil, was sie wollen.

Herne: Die Geschichte vom Darknet-Killer ohne Darknet – SPIEGEL ONLINE

„Täter von Herne veröffentlichte Tatvideo im Darknet“: Schlagzeilen wie diese gab es vergangene Woche viele – dabei hatte der Fall gar nichts mit dem Darknet zu tun. Über die Folgen eines falschen Wortgebrauchs.

Quelle: Herne: Die Geschichte vom Darknet-Killer ohne Darknet – SPIEGEL ONLINE

In der Regel korrigiert ja meistens die Polizei die Medien. Dieses mal durfte der Spiegel den Klugscheißer geben. Und genau wie bei den oft übereifrigen Medien war es in diesem Fall dummes Gewäsch bar jeglicher Sachkenntnis. Es wäre schön, wenn sich die Polizei auf Fakten beschränken würde. Auch, wenn es dann etwas länger dauert.