Telegram als Binding in openHAB integrieren

Eine meiner ersten Aktionen mit openHAB war die Integration für mobile Benachrichtungen mit Telegram. In meinem ersten Anwendungsfall wurde Telegram per Action angebunden und eine kleine Anleitung habe ich hier abgelegt.

Seit ein paar Versionen gibt es nun ein Telegram Binding. Mit diesem Binding ist auch ein einfacheres Verschicken von Nachrichten an Gruppen möglich. Es ist also höchste Zeit meine bestehende Umgebung zu aktualisieren / anzupassen.

Vorbereitung und Struktur

Weiterführende Informationen zu dem Thema findet Ihr hier. Einen Telegram-Bot habe ich bereits erzeugt, wenn Ihr dies noch benötigt, findet Ihr hier eine Anleitung.

Folgende Gruppen habe ich mir in Telegram erstellt für unser SmartHome erstellt:

  • Eidelsburger SmtartHome (für allgemeine Nachrichten z.B. Wetterwarnungen, Müllkalender, Statusmeldungen, Rauchmelder)
  • Eidelsburger SmartHome – Admin (für technische Nachrichten z.B. Neustart des Systems)
  • Eidelsburger SmartHome – Test (für Testnachrichten und neue Konfigurationen)

Damit kann ich für mich persönlich und für die ganze Familie die jeweiligen Nachrichten entsprechen kanalisieren und priorisieren.

Gruppen-ID’s aus Telegram

  • alle gewünschten Gruppen in Telegram für die weitere Verwendung erstellen
  • in der Telegram-App eine neue Gruppe erstellen und die notwendigen Benutzer hinzufügen (den Bot hatte ich bereits für die Nachrichten erstellt)
  • am Desktop-PC die URL https://web.telegram.org/ aufrufen
  • mit der zugehörigen Telefonnummer anmelden
  • den von Telegram verschickten Code vom mobilen Endgerät am Desktop-PC eingeben
  • nun die notwendige Gruppe auswählen
  • die URL in der Adressleiste sieht wie folgt aus: https://web.telegram.org/#/im?p=g1234567
  • die eindeutige Gruppen-ID befindet sich nach dem “p=g” (in diesem Beispiel: 1234567)
  • da alle Gruppen-Nummern in Telegram negativ sind, wäre die zu verwendende Nummer aus dem Beispiel: -1234567

openHAB-Binding

Hier gibt es ein paar Informationen über die Technik:

Das Binding ist über die Oberfläche wie folgt schnell und einfach installiert:

  • PaperUI – Add-ons – ACTIONS – Telegram Action (1.14.0) – bereits installiert, also nicht notwendig
  • PaperUI – Add-ons – ACTIONS – Telegram Binding (2.5.4) – INSTALL

Telegram.things

Im nächsten Schritt wird ein Thing entsprechend erstellt:

Thing telegram:telegramBot:HA_Bot [chatIds="-<channel main>","-<channel details>","-<channel test>", botToken="<token>", parseMode="Markdown"]

Hier ergänzt man in den chatIds die aus den Telegram-Gruppen extrahierten Nummern und passt seinen botToken entsprechend dem Bot an.

Telegram.items

Nun können die Standard-Items aus der Dokumentation hinzugefügt werden. Ich habe noch drei Variablen für die Verwendung der Telegram-ID’s erstellt (um mir etwas Tipparbeit zu sparen).

// Items for Telegram Groups
String TELEGRAM_CHANNEL_SMARTHOME "-<channel main>"
String TELEGRAM_CHANNEL_SMARTHOME_ADMIN "-<channel details>"
String TELEGRAM_CHANNEL_SMARTHOME_TEST "-<channel test>"

// Items for Telegram Groups
String telegramLastMessage "Telegram Bot Last Message" { channel = "telegram:telegramBot:HA_Bot:lastMessageText" }
String telegramLastMessageURL "Telegram Bot Last Message URL" { channel = "telegram:telegramBot:HA_Bot:lastMessageURL" }
DateTime telegramlastMessageDate "Telegram Bot Last Message Date" { channel = "telegram:telegramBot:HA_Bot:lastMessageDate" }
String telegramLastMessageName "Telegram Bot Last Message Sender" { channel = "telegram:telegramBot:HA_Bot:lastMessageName" }
String telegramLastMessageUsername "Telegram Bot Last Message Username" { channel = "telegram:telegramBot:HA_Bot:lastMessageUsername" }
String telegramLastMessageChatId "Telegram Bot Last Message chatId" { channel = "telegram:telegramBot:HA_Bot:chatId" }
String telegramLastMessageReplyId "Telegram Bot Last Message replyId" { channel = "telegram:telegramBot:HA_Bot:replyId" }

Telegram.rules

Nun kann in einem Regelwerk ganz einfach eine Nachricht an eine Telegram-Gruppe verschickt werden.

val telegramAction = getActions("telegram","telegram:telegramBot:HA_Bot")
telegramAction.sendTelegram(Long::parseLong(TELEGRAM_CHANNEL_HA_DETAILS), "%s %s", "Telegram Bot", "online")

In meinen bestehenden Rules-Dateien muss ich natürlich die vorherige Konfiguration der Telegram Action noch entsprechend suchen und aktualisieren (das wird bei den meisten Lesern nicht notwendig sein).

Fazit

Damit konnte ich mit relativ wenig Aufwand von den Telegram Actions auf das Telegram Binding wechseln. Die Action habe ich aktuell noch im System, wird aber von mir nicht mehr verwendet.

Jetzt kann ich meinen Bot auch an Gruppen einfach Nachrichten senden und die SmartHome-Funktion auf ein paar Anwender mehr verteilen.

Wie nutzt Ihr Telegram in eurem SmartHome? Habt Ihr ein anderes Nachrichtensystem verwendet? Mir würde ja noch eine Integration in Microsoft Teams sehr gut gefallen. 🙂

Digitalisierung von alten VHS-Aufnahmen

Im Rahmen der “Digitalisierung” darf man auch die Digitalisierung von alten analogen Medien nicht vergessen. In 2019 habe ich bereits alle alten Fotoalben digitalisiert.

Folgende Themen im Rahmen der “privaten” Digitalisierung habe ich aktuell noch offen:

  1. Digitalisierung von alten VHS-Aufnahmen der Videokamera (zum Teil VHS, VHS-C, Mini-DV)
  2. Digitalisierung von alten Film-DVD’s
  3. Digitalisierung von alten Aktenordnern

Aktuell habe ich mit der Digitalisierung der alten VHS-Aufnahmen begonnen.

Voraussetzungen

Welches Equipment verwende ich als Beispiel für die Digitalisierung von alten VHS-Aufnahmen:

  1. Windows 10 PC mit allen angeschlossenen Quellen
  2. Terratec Grabby für die Anbindung der RGB / Scart Quellen per USB
  3. Alter Videorekorder (der lag noch funktionsfähig im Keller)
  4. Open Broadcaster Software (OBS) als Digitalisierungssoftware

Umsetzung

Die Hardware ist relativ schnell bertriebsbereit an einem PC eingerichtet und einsatzbereit. Bei der Softwarelösung OBS müssen auch nur einmal die Quellen für Audio und Video konfiguriert werden und die Digitalisierung der ersten VHS-Kassetten kann beginnen.

Ich habe bewusst auf die Nachbereitung und Verbesserung des Quellmaterials verzichtet, obwohl viele der Videos aus den 80er Jahren sind. Eine Stunde Aufnahme als MP4-Datei benötigt in meinem Setup ca. 1 GB Speicher im Zielsystem.

In meiner Konfiguration benötigt es etwas Zeit um alle Videos zu verarbeiten, da die Laufzeit 1:1 bei den VHS-Videos abgespielt wird (aber das kann ja bequem nebenbei auf einem PC durchgeführt werden).

Fazit

Die Digitalisierung der Videos ging im Aufbau schnell und einfach. Wenn die VHS-Kassetten alle im Keller gefunden wurden, dann muss ich mich auf die Suche für den passenden VHS-C-Adapter machen. Bei den Mini-DV-Aufnahmen sollte es keine größeren Probleme geben, da hier der Camcorder noch vorhanden ist.

Bei den alten VHS-Aufnahmen ist aber auch leider schon die eine oder andere Kassette nicht mehr abspielbar d.h. nicht mehr mit vertretbarem Aufwand Digitalisierbar.

Wie digitalisiert Ihr eure alten Kinder- und Jugendaufnahmen? Nehmt Ihr eine Bild- und Tonverbesserung vor?

Common Data Service von Microsoft und Common Data Model

Die Vereinheitlichung von Daten über Geschäftsprozesse hinweg ist eine der Hauptdisziplinen in ECM-Projekten. Um diesen Vorgang zu vereinfachen, Applikationen und Datenquelle auf einer Metaebene zu verbinden, wurde das Common Data Model (CDM) konzipiert. Damit entsteht ein wiederverwendbarer Datensatz der in einer gemeinsamen Datensprache standardisiert nutzbar ist.

In diesem Artikel kann man sehen wie der Common Data Service in Microsoft Flow genutzt wird. Es werden über Auslösebedingung (Trigger) CRUD-Aktionen (Create, Read, Update, Delete) von Datensätzen und Aktionen (Actions) definiert und ausgeführt.

Im Fokus ist also die Definition und das Design des “Datenschemas” z.B. für die typischen ERP-Prozesse und die kaufmännischen Szenarien wie Rechnungen, Bestellungen.

Diese Daten werden dann mit den verschiedenen Applikationen wie z.B. Power BI, Flow und Automate im Microsoft-Universum verknüpft. Das ERP-System bekommt hiermit eine noch zentralerer Rolle und Applikationen können einfacher und übergreifender verwendet werden.

Welche Szenarien sehen Sie im ECM-Umfeld? Welche “Schemata” kann man gut im kfm. Kontext für das Model verwenden?

Laufziel 2020 schon zum Halbjahr erreicht! Kann das sein?

Was ist wenn man seine Laufziele für das gesamte Jahr schon zum Halbjahr also zum 30.06.2020 erreicht hat? Normalerweise würde ich sagen dann waren die Ziele zu niedrig. 🙂

Seit 09.06.2020 habe ich versucht mich jeden Tag mindestens 5.000 Schritte zu bewegen. Das ist im Home Office und einer sitzenden Tätigkeit neben den Sporttagen gar nicht so ganz einfach. Aktuell hält die “Serie” laut dem Fitnesstracker aber noch mit 22 Tagen am Stück an. Das hat dann für Juni 2020 auch mein bisher bestes Schrittziel bei Google Fit ergeben – es waren ca. 390.000 Schritte in diesem Monat.

Außerdem wollte ich im Juni 2020 das erste mal mehr als 200 km pro Monat laufen. Als Ergebnis standen dann ca. 250 km auf der Uhr. Da hat das Schritte-Ziel natürlich ganz gut geholfen.

Mein Jahresziel hatte ich hier (Laufbilanz 2019 und Planung für 2020) für das Jahr 2020 beschrieben. Ich wollte im gesamten Jahr 1.000 km zu laufen. Dieses Ziel wurde jetzt schon im Juni 2020 erreicht:

Mal schauen auf was ich in Zeiten des Virus jetzt noch an Training mache (ich würde sagen der nächste Meilenstein sind gesamt 1.500 km). Das Ringer-Training als Ergänzung zum Laufen ist ja aktuell leider noch nicht vernünftig möglich. Einen schnelleren Halbmarathon zu laufen ist ohne Veranstaltung auch nicht die beste Idee. Es wäre noch ein Training auf die Marathondistanz offen. Mal schauen …

Wie sehen eure sportlichen Ziele aus? Was motiviert euch in den Corona-Zeiten noch um Sport zu treiben?

H4e-Wandersonntag in Riedenburg im Altmühltal

Am heutigen Sonntag geht es in das schöne Riedenburg im Altmühltal. Es steht eine kleine Firmenwanderung der HENRICHSEN4easy GmbH an.

Bei Komoot kann man sich einen Eindruck der Tour machen. Es wurde von einem Arbeitskollegen eine ca. 13 KM Tour mit ein paar Höhenmetern geplant.

Die Highlights der Tour ist die Region “Klamm” und Burg Prunn (und natürlich der Biergartenbesuch).

Vielen Dank an die Organisatoren!

Neue Führungskräfte für neue Organisationsformen

In den letzten Artikeln habe ich ein paar Gedanken über neue und agile Organisationen beschrieben. Wenn sich die Organisationen ändern, dann müssen sich aber auch die Menschen (Mitarbeiter und Führungskräfte) entsprechend anpassen.

Was versteht man aktuell unter dem New Leadership Canvas?

Mit den neuen Organisationsformen ändern sich auch die Rahmenbedingungen und das Verständnis von Führungskräften. Die Führungskraft muss aktuell das operative Tagesgeschäft erledigen, aber auch Innovationen und neue Impulse in die Organisation bringen. Außerdem erwartet man ein gewisse Agilität in der Führungsebene. Es müssen natürlich auch die “traditionellen” und die “modernen” Mitarbeiter entsprechend geführt werden.

Bei den vielen Änderungen und Aufgaben muss die Begrifflichkeit der Führungskraft in Zukunft etwas angepasst werden. Wichtig wird ein neuer Leadership-Stil mit einem sehr ausgeprägten Netzwerk werden (hier verschwimmen immer mehr die Abteilungs- und Organisationsgrenzen).

Durch die “neue Agilität” müssen auch entsprechende Innovationen in die Unternehmungen getragen werden.

Hier gibt es viele Methoden um das zu gewährleisten:

  • Lean-Start-Up
  • Build, Measure, Learn
  • Minimal Viable Product
  • Design Thinking

Welche wichtigen Eigenschaften sehen Sie für Mitarbeiter und Führungskräfte in einem sich rasch verändernden Führungsmodell?

OneNote-Struktur für den beruflichen Alltag

Inspiriert von diesem Artikel bei Büro-Kaizen, habe ich meine OneNote-Struktur etwas optimiert und verbessert. Meine bestehenden Notizbücher sind schon etwas in die Jahre gekommen, darum war ein kleiner “Refresh” mal wieder sehr praktisch.

Der Fokus in diesem Artikel liegt auf der beruflichen Nutzung in meiner Tätigkeit als Teamleiter einer Consulting-Abteilung. Bei Interesse kann ich auch gerne meine private Nutzung darstellen.

Vorlage

In dem oben genannten Artikel werden die Notizbücher grob nach diesen zwei Kategorien unterteilt:

  • Dauerhafter Einsatz des Notizbuch
  • Weitere temporäre Notizbücher für zeitlich begrenzte Projekte

Damit ergibt sich aus dem “Kaizen” folgende Struktur (mit meinen Kommentaren versehen):

Struktur Kommentar
1 Projekte Unterteilung pro Kundenprojekt oder internes Projekt
2 Termine Im meiner Struktur nicht notwendig, da in 5. integriert
3 Personal Pro Mitarbeiter ein eigener Abschnitt (auch für eigene Themen)
4 Vertrieb Nicht notwendig, da in 2. oder 5. integriert
5 Meetings Übergreifende Regeltermine (Vor- und Nachbereitungen), Projekttermine lege ich drekt unter 1. ab
6 Wissen Eigenes persönliches Wissen (sehr wenig notwendig, wenn ich Informationen bereits im Entwurfsstatus öffentlich verteile), Aufbereitung für zentrale Wissensdatenbank
7 Team Nicht notwendig, da dies bereits über “SharePoint-Notizbücher” geregelt ist, Collaboration im Team mit dem Ziel die E-Mail-Flut  zu minimieren

Meine Struktur

Für meine tägliche Arbeit habe ich die Struktur etwas abgewandelt und wie folgt aufgebaut.

Persönliche Notizbücher

  • 0 Organisation
  • 1 Projekte
  • 2 Personal
  • 3 Meetings
  • 4 Wissen

Geteilte Notizbücher

  • Notizbuch für Teamwebsite
    • SharePoint Seite für Produkte, Portfolio und Wissensdatenbank
  • Notizbuch für Meetings
    • übergreifende Termine z.B. Kick-Offs, Bereichsmeetings
  • Notizbuch für Lenkungskreis
    • vertrauliche Informationen z.B. Führungskreis-Termine
  • Notizbuch für xxx
    • ein paar Projekte die etwas größeren Umfang haben

Die Notizbücher werden abhängig vom Inhalt dann in Abschnittsgruppen, Abschnitten und Seiten gegliedert (je nach Anforderung).

Fazit

Eine Überlegung / Verbesserung hätte ich beim Teilen der “Personal-Notizen” noch: hier betrifft es ja immer den Mitarbeiter und die Führungskraft d.h. man könnte auch pro Mitarbeiter ein Notizbuch machen und das entsprechend teilen um eine doppelte Datenhaltung zu umgehen.

Welche Verbesserungspotentiale sehen Sie bei der Ablagestruktur? Habe ich größere Elemente übersehen?

 

openHAB 2.5.6 veröffentlicht

Am 21.06.2020 wurde ein neues Update für openHAB veröffentlicht.

Die Version 2.5.6 ist komplett kompatibel zur den vorherigen  2.5.x Versionen.

Es gab mit der neuen Version 9 neue Add-ons und einige Erweiterungen und Bugfixes der bestehenden Plugins.

In den Release Notes werden die Änderungen kurz und im GitHub dann im Detail beschrieben.

Habt Ihr die Version 2.5.6 bei euch schon installiert? Wer war schon so mutig?