Archiv der Kategorie: Allgemeines & Neues

Hier poste ich alles, das keiner speziellen Kategorie entspricht

HomeMatic Bilder über Telegram pushen – UPDATE fix

Update 2: scheinbar klappt es bei einigen Usern noch immer nicht, oder nicht mehr, Bilder von IP-Kameras zu speichern und dann per Telegram Nachricht zu versenden. Bei mir hat es auf meiner ziemlich vollgestopften CCU2 immer funktioniert.

Jetzt, da ich ja aufgrund der Covid Ausgangsbeschränkungen, wie viele Österreicher immer zuhause sein muss, habe ich mir die Zeit genommen und mich ein wenig genauer mit der Thematik beschäftigt. Und da niemand lange um den „heißen Brei“ herum lesen möchte, komme ich gleich zur Sache: Dass es auf meiner CCU2 funktioniert hat, liegt daran, dass sie aufgrund des „mit Skripten und Programmen vollgestopften Zustandes“ in ihrer Abarbeitungsgeschwindigkeit ziemlich gebremst war. Darum funktionierte es auch in ein und demselben Skript, die Bilder von den IP Kameras abzuholen und im /tmp/ Ordner zu speichern und sie nur zwei Zeilen weiter im Skript per Telegram API zu versenden.

Die Bilder waren einfach noch nicht fertig im Filesystem gespeichert und die unvollständigen Dateien wurden schon gesendet.

Hier die einfache Lösung:

Das Skript in zwei separate Teile zerlegen und nach einander mit einer Verzögerung von ein bis zwei Sekunden abarbeiten lassen:

anklicken zum Vergrößern

Im ersten Skript werden jetzt lediglich die IP-Cams aufgerufen und die Bilder als Dateien gespeichert. Im zweiten Skript wird, wie schon zuvor die Telegram API aufgerufen. Jedoch wird das zweite Skript 1-2 Sekunden später gestartet. Dann sind schon alle Files gespeichert und kommen auch über Telegram an…

getestet auf CCU2, RaspiMatic (sollte auch auf der CCU3 klappen)

 

Homematic Aktor Schnellreparatur (Dimmaktor RS485)

Zum Thema „Alterung und Homematic Smart Home“ habe ich wieder einen kleinen Beitrag beizusteuern. Vielen Dank an Fritz für die Aufbereitung und Analyse. 

Wie im letzten Post „Homematic Aktor Schnellreparatur“, geht es auch dieses Mal wieder um ein Gerät der Smart Home Serie.  Es handelt sich um den Dimmer Aktor mit der Bezeichnung „HMW-LC-Dim1L-DR“. Das ist ein Phasenanschnitt Dimmer Aktor für Glühlampen und Niedervolt Halogenlampen mit konventionellem Transformator. Auch viele moderne LED-Lampen lassen sich mit diesem Dimmer steuern. Der Aktor gehört der „wired“ Reihe an, was bedeutet, er ist nicht über das BidCos Funkprotokoll mit der CCU verbunden, sondern über den RS485 Bus. Die Stromversorgung für die Datenkommunikation bekommt der Aktor von einem 24V Netzteil. Damit wird auch der µC im Aktor versorgt. Die Netzseite wird mittels Optokoppler von der Niedervoltseite mit Steuerdaten versorgt.  So ist die galvanische Trennung gewährleistet. Auf der Netzseite befindet sich einer Dimmer Controller Baustein, der wiederum den Triac steuert. Dieser Controller muss mit einer Spannung von ca. 15V versorgt werden. Um die zu erzeugen, hat der Hersteller einen Kapazitiven Spannungsteiler eingebaut. Und hier beginnen die Alterungsprobleme….

Das Fehlerbild äußert sich wie folgt: Die angeschlossene Lichtquelle lässt sich nicht dimmen beziehungsweise einschalten. Der Dimmer kommuniziert jedoch korrekt mit dem Bus. Die rote Funktions Led leuchtet korrekt. Die Befehle für „Aus“ und „Ein“ per Taster werden auch in der CCU angezeigt.

Schaltplan der Netzseite auf der „Hauptplatine“
defekter 330nF X2 Kondensator

Die Ursache: Der IC U2008, ein Dimmer-Control Baustein wird laut Datenblatt mit einer Spannung von DC 15V versorgt. Die Versorgungsspannung war in diesem Fall aber deutlich kleiner (bei ca. 5,8V) Diese Versorgungsspannung wird den 330nF / 275V X2 Kondensator C4 gemacht. Optisch ist der Kondensator in einwandfreiem Zustand, jedoch eine einfache Kapazitätsmessung zeigt schnell, dass hier nichts mehr passt. Der Kondensator C4 hatte nur mehr eine Kapazität von ca. 30-40nF. Es ist also wie so oft -> Der Kondensator war´s  😀

Dimmermodul Seitenansicht

Nach Austausch war die Spannung am U2008 wieder ok und der Dimmer verrichtet wieder seinen Dienst. Präventiv wurden auch noch die zwei weiteren auf dem Board befindlichen X2 Kondensatoren (C1 47nF/275V und C2 100nF/275) erneuert.

Einbauorte von C1 und C2

 

 

 

 

 

 

Homematic Nachrichten per Telegram UPDATE

Update: bei mir war auch die Pfadangabe zum „curl“ Befehl das Problem. Mit Angabe des „pseudo“ absoluten Pfades zum Befehl wurde er nicht mehr gefunden. Siehe unten:

 es genügt, den curl Befehl direkt aufzurufen, also anstelle von : ….State(„extra/curl -s -k https://api.telegram.org/bot“#botAPI#“/sendMessage…..

die Pfadangabe „extra/“ entfernen, je nach CCU Variante und Cuxd Version, also:  …… State(„curl -s -k https://api.telegram.org/bot“#botAPI#“/sendMessage …..

Wer sich nicht sicher ist, wo das Commando liegt, am besten im cuxd oder über SSH nachsehen…

Update Ende.

In den Kommentaren zum Beitrag „Nachrichten pushen mit Telegram“ wurde mehrfach darauf hingewiesen, dass die Pushnachrichten nicht mehr gesendet werden. Zuerst dachte ich es gibt irgendwelche grundlegende Änderungen bei der Telegram Api. Aber dem war nicht so. Also habe ich noch einmal ein Skript zusammengebastelt. Um zu debuggen, habe ich einen gesamten String aus einzelnen Teilen zusammengebaut. Das ist zwar alles andere als schön, aber es lässt sich leichter nachvollziehen was funktioniert oder eben nicht. Auch den Pfad zum curl-Kommando habe ich vollständig angegeben. Mit dem folgenden Beispiel Skript funktioniert bei mir die Textausgabe wieder:

 string msg = "Hallo Telegram";  
 string chatid = "123456789";                     
 string botAPI = "987654321:AABBCCDDEEFFGGGHHIIJJKKLLMMNNOOPPQQ";   
 string request;  
 string command1 = "/usr/local/addons/cuxd/curl -s -k https://api.telegram.org/bot"; !#botAPI#   
 string command2 = "/sendMessage -F text="; !#msg#   
 string command3 = " -F chat_id="; !#chatid#  
 request = command1+botAPI+command2+msg+command3+chatid;  
 dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(request);  

 

Dann sollte alles wieder klappen….

Smartes Licht mit Philips und Ikea

Von der Firma Philips wird das smarte Lichtsystem mit der Bezeichnung „hue“ angeboten. Es handelt sich dabei um Lampen und Leuchten, die über integriertes Funkmodul von einem Zentralgerät, oder auch Gateway genannt („hue bridge“) gesteuert werden können. Steuern bedeutet, dass die Lampen (solange sie mit Netzspannung versorgt sind) in Ihrer Helligkeit gedimmt, aus- und eingeschaltet und je nach Ausstattung auch in ihrer Lichtfarbe geändert werden können. Das Zentralgerät (die „hue-bridge“) ist dabei über eine LAN Schnittstelle mit dem im Haus befindlichen Internetrouter verbunden. Es ist sozusagen der Server für die Lampen. Die Kommunikation zwischen der Bridge und den Lampen findet über das Funkmodul statt. Hier hat Philips den ZigBee Standard implementiert. ZigBee wird übrigens auch bei vielen anderen Herstellern eingesetzt.

Um nun eine smarte Lampe mit der Bridge zu verbinden, benötigt man ein Terminal um auf die Bridge zugreifen zu können. Da ja heutzutage fast jeder auch ein Smartphone besitzt, ist es ein Einfaches, dieses als Konfiguration- und Steuerterminal zu verwenden. Die Hersteller haben, passend zu ihren Bridges, eine „App“ zur Verfügung gestellt, über die die Einrichtungsvorgänge einfachst zu realisieren sind. So muss eine neue Lampe nur eingeschaltet sein und in der App unter „Einstellungen -> Lampeneinstellungen -> Leuchte hinzufügen“, gewartet werden, bis die Lampen in Funkreichweite gefunden werden. Dann können sie im Netzwerk verbunden, benannt und in Gruppen arrangiert werden.

Auch die Homematic CCU bietet mit den aktuellen Firmware-versionen einen Zugriff auf Bridges zweier Hersteller. (Es werden die Bridges von Philips HUE und Osram Lightify unterstützt). So können die smarten Lampen auch über Homematic-Skripten und Programme gesteuert werden.

Jede Firma bringt also zu seinen smarten Lampen und Leuchten ein passendes Gateway mit.

Aber wie sieht es aus, wenn man in ein Hue-System eine Ikea – Trådfri Lampe integriert, oder es zumindest versuchen möchte? Ganz einfach – es klappt.  Voraussetzung ist nur, die Ikea Lampen in den Werkszustand zu versetzen. Auch das ist ganz einfach. Das Leuchtmittel in eine passende Fassung drehen und den Strom zur Lampe einschalten.  Jetzt die Lampe AUS – und wieder Einschalten. Und das insgesamt 6x in kurzen Abständen (ca. 500ms). Nach dem letzten „Aus – Ein“ sollte die Lampe langsam in der Helligkeit schwanken.  Jetzt kann sie im Hue-Gateway angelernt werden.

Somit stehen alle Smarten Leuchtmittel, die im Hue-System angelernt sind, auch im Homematic System zur verfügung.

 

 

 

 

Weihnachten 2019

Bildquelle: simardfrancois auf pixabay.com

Das fünfte Bloggerjahr ist vollendet. Bisher ist es mir gelungen mindestens einmal im Monat einen Beitrag zu verfassen. Die Ideen für Beiträge gehen natürlich auch nicht aus.

Die Zugriffe von realen Personen, also Ihr, die Ihr den Blog lest oder reinschaut, steigen gemächlich an. (Das zeigt zumindest die Google Statistik) Auch die kleine Umfrage auf der Startseite beweist, dass Ihr hier rein seht. VIELEN DANK für eure Teilnahme.

Parallel zu dem Blog habe ich mir vor einiger Zeit eingebildet, auch auf den Social-Media-Zug aufzuspringen und einen Instagram-Kanal erstellt. (@ingmarsretro) Dort poste ich Fotos von technischen Dingen, die mir so unterkommen und auch Content vom Blog.  Interessanter Weise haben den Kanal auch schon knapp 920 User abonniert.

In diesem Sinn…

Fröhliche Weihnachten und schöne Feiertage!

 

IR-Thermokamera an Raspberry PI

Lepton Camera Module

Ein vielleicht interessantes kleines Projekt ist, ein Lepton Kameramodul mit einem Raspberry zu betreiben.  In meinem Fall verwende ich ein Lepton Modul mit 80×60 Pixeln bei einer Pixelgröße von 17µm und einer spektralen Empfindlichkeit im langwelligen Infrarot Bereich von 8µm bis 14µm. Die Framerate beträgt maximal 8,6 Hz. Das Kameramodul wird in ein Breakout-Board gesteckt und dieses mit dem Raspberry PI verbunden. Die Infos dazu gibt‘s weiter unten. Es gibt auch im Entwicklerbereich der Website flir.lepton.com eine Anleitung wie das Breakoutboard mit dem Raspi betrieben wird.

Camera Module mit Breakout Board V1.4

Benötigt wird ein Raspberry PI (in diesem Beispiel habe ich einen Raspberry PI4 verwendet), ein Lepton Thermal Kamera Breakout Board V1.4 und ein wenig Drahtwerk für die Verbindungsleitungen. Die genaue Teileliste (um auch alles Aufbauen und in Betrieb nehmen zu können) ist unten angeführt:

  • Raspberry PI (Modell 2,3 oder 4)
  • Micro SD-Karte (ab 8GB)
  • USB-Steckernetzteil mit Micro USB (oder USB-C) Kabel (je nach Raspberry PI Modell)
  • LAN-Kabel und Zugang zu einem Switch oder Router mit bestehender Internetverbindung
  • Idealerweise einen Rechner mit (SD-Karten-Slot) um das Image für den Raspberry vorzubereiten
  • Ein Monitor für den Raspberry PI mit HDMI oder MINI-HDMI-Kabel
  • USB-Tastatur, Maus
  • Lepton Thermal Kamera Breakout Board

Ist alles vorhanden, dann ist die Verdrahtung des Kamera Moduls mit dem PI herzustellen. Am einfachsten verwendet man die Jumper-Kabel (Female-Female) die in der Modulbastelwelt sehr beliebt sind. Ein Lötkolben ist für viele Demo- und Testaufbauten nicht mehr notwendig… Die folgende Skizze zeigt die herzustellende Verdrahtung:

Klicken zum Vergrössern

Das Pinning ist hier nochmals angeführt:

  • Raspi GPIO PIN01 (3V3)     –>    Lepton Pin VIN
  • Raspi GPIO PIN03 (SDA)    –>     Lepton Pin SDA
  • Raspi GPIO PIN05 (SCL)      –>    Lepton Pin SCL
  • Raspi GPIO PIN06 (GND)   –>     Lepton Pin GND
  • Raspi GPIO PIN19(MOSI)  –>     Lepton Pin MOSI
  • Raspi GPIO PIN21(MISO)  –>     Lepton Pin MISO
  • Raspi GPIO PIN23(CLK)      –>     Lepton Pin CLK
  • Raspi GPIO PIN24(CEO)     –>     Lepton Pin CS

Als Betriebssystem für den Raspberry Pi habe ich Raspbian installiert. Das geht entweder über den Download des RASPBIAN Images von der Webseite https://www.raspberrypi.org/downloads/raspbian oder auch über den NOOBS Installer. Mit dem Tool „etcher“ oder „win32diskimager“ kann die Image Datei auf die SD-Karte geschrieben werden. Wer mit NOOBS arbeitet braucht nur die zip-Datei auf die FAT32 formatierte SD-Karte zu entpacken. Ist das erledigt, dann einfach die SD-Karte in den Raspberry stecken, Monitor, Keyboard und Maus an den PI anstecken und zum Schluss die Stromversorgung aktivieren. Wenn NOOBS auf der Karte ist, dann wird nach dem Start eine Auswahl an zu installierenden Betriebssystemen angezeigt. Hier am besten auch RASPIAN auswählen und die Installation starten. Ist das abgeschlossen, dann ist je nach gewähltem Image entweder nur eine Konsole oder eben ein Desktop zu sehen. Im letzten Fall ist dann ein Terminal zu öffnen, damit in der Konsole weitergearbeitet werden kann.

Mit sudo raspi-config ist nach dem login in die Konsole das Raspberry PI Config – Tool zu öffnen. Darin sind folgende Services zu aktivieren:

  • SPI (unter Advanced Options)
  • SSH (unter Advanced Options)
  • I2C (unter Advanced Options)
  • Enable Camera (im Hauptmenu des raspi-config tools)

Danach ist der Raspberry zu rebooten. Nach dem erneuten Start und login (als User pi mit default Passwort raspberry) muss das Paket openCV installiert werden. Mit sudo apt-get install python-opencv ist das erledigt.

Auf GitHub habe ich eine Python Library von brandoncurtis und kekiefer für das Lepton Board gefunden. Die Library nennt sich pylepton und ist auf https://github.com/groupgets/pylepton zu finden.

Mit git clone https://github.com/kekiefer/pylepton.git legen wir das Repository  an und wechseln danach in das Verzeichnis cd pylepton. Jetzt kann das Setup Skript ausgeführt werden: sudo python setup.py install.

Mit dem folgenden kleinen Codebeispiel wird die Lepton Kamera ausgelesen, das 80×60 Pixel große Bild auf 800% skaliert und angezeigt.

 

 import numpy as np  
 import cv2  
 from pylepton import Lepton  
 with Lepton() as lepi:  
  a,_ = lepi.capture()  
 cv2.normalize(a, a, 0, 65535, cv2.NORM_MINMAX) # extend contrast  
 np.right_shift(a, 8, a) #daten in 8bit anpassen 
 cv2.imwrite("thermobild.jpg", np.uint8(a)) #bild schreiben 
 img=cv2.imread('thermobild.jpg')  
 cv2.imshow('Thermobild', img)  
 print('Originalabmessungen: ',img.shape)  
 scale_percent = 800  
 width = int(img.shape[1] * scale_percent / 100)  
 height = int(img.shape[0] * scale_percent / 100)  
 dim = (width, height)  
 resized = cv2.resize(img, dim, interpolation = cv2.INTER_AREA)  
 print('Achtfach vergroessert: ',resized.shape)  
 cv2.imshow("Thermobild 8x", resized)  
 cv2.waitKey(0)  
 cv2.destroyAllWindows()  
 exit()  

Das Ergebnis sieht dann zum Beispiel so aus:


 

 

Homematic Aktor Schnellreparatur (Dimmaktor Funk)

Das bekannte und beliebte Smarthome System HomeMatic von eQ-3 ist mittlerweile auch schon in die Jahre gekommen und bei vielen Usern schon lange im Einsatz. Viele Komponenten sind, wie der im Bild dargestellte Aktor, meist in Unterputzdosen unter Schaltern oder umgeben von reichlich Drahtwerk eingebaut. Damit die sie auch jederzeit einsatzbereit sind, müssen sie natürlich permanent mit Energie versorgt werden. So kann es schon vorkommen, dass die in dem Aktor verbauten Komponenten aufgrund der Alterung auch einmal den Geist aufgeben. Ist der Aktor beispielsweise seit drei Jahren in Betrieb, so bedeutet das, er hat schon 26280 Betriebsstunden hinter sich. (24h * 365Tage * 3Jahre). Und welche Komponenten hier am anfälligsten sind, kann sich der geübtere Elektroniker sicher schon vorstellen.

Eigentlich wollte ich diesen Aktor eines Kollegen nur schnell begutachten und wenn rentabel reparieren, aber dann dachte ich mir, dass ja sehr viele von diesen Teilen im Umlauf und verbaut sind. Selbst in meinen vier Wänden laufen seit Jahren einige dieser Module. Und irgendwann werden auch diese ihre Probleme bekommen. Also macht es sicher Sinn, die Erfahrungen der Reparatur hier zu posten.

Im konkreten Fall handelt es sich um einen Dimm Aktor HM-LC-Dim1T-FM. Ein Ein-Kanal Aktor für den Einbau in Unterputzdosen. Das Fehlerbild: Die LED am Aktor beginnt nach Anlegen der Spannung zu Blinken – sonst keinerlei Funktion. Er lässt sich weder in den Anlernmodus versetzen noch auf Werkseinstellung zurücksetzen. Die Blinkfrequenz ist in etwa 2x pro Sekunde.

HM-LC-Dim1T-FM mit gelöstem Deckel

Zuerst ist der Deckel des Aktors zu lösen. Er wird mit vier Rastnasen gehalten und lässt sich recht einfach heraus Klicksen. Jetzt sind zwei übereinander liegende Platinen zu erkennen. Zwischen den Platinen liegt eine Kunststoffplatte. Die elektrische Verbindung zwischen den beiden Platinen wird durch Drahtbrücken hergestellt. Das „Platinen Paket“ lässt sich einfach aus dem Kunststoffgehäuse herausziehen. Jetzt sind alle Drahtbrücken entlang der Kanten zu entlöten. Es genügt natürlich, die Brücken nur an einer Platine zu lösen ;).

In den beiden, oben dargestellten Bildern ist die Controller-Platine zu erkennen. (Das ist die mit dem BidCos-Modul) auf dieser befindet sich auch der Atmel Mikrocontroller. Dieser Platine benötigt jetzt ein wenig Zuwendung. Man muss vielleicht noch wissen, wie die Spannungsversorgung für die Niedervoltelektronik des Aktors erzeugt wird. Aus der Netzspannung wird mit Hilfe eines Spannungsteilers aus Kondensator und Widerstand und einer Diode eine Zenerdioden-Stabilisierung erzeugt und mit Hilfe eines Kondensators geglättet. Diese daraus gewonnene Gleichspannung ist die Quelle für die Niedervoltelektronik. Diese ist natürlich nur in einem sehr schmalen Band belastbar. Und genau in dieser Schaltung liegt das altbekannte Problem. Der Elko. Er verliert durch Alterung und Austrocknung seine Kapazität. Eine saubere Gleichspannung am Controller ist dann nicht mehr möglich. Die Elektronik geht in einen undefinierten Zustand.

In diesem Fall habe ich gleich vier Elkos erneuert. Um diese zu erreichen muss zuerst das Funkmodul von der Stiftleiste abgelötet werden. Mit ein wenig Löterfahrung sollte das kein Problem darstellen. Die Lötaugen lassen sich dann mit einer Entlötlitze einfach wieder reinigen. Jetzt sind die vier Elkos mit den folgenden Positionsnummern zu erneuern. (Es sind zwar nicht alle defekt, aber es kann nicht schaden, sie zu tauschen, wenn das Funkmodul schon einmal herunten ist)

  • C3 mit 10µF 16V  105°
  • C7 mit 10µF 16V  105°
  • C10 mit 100µF 16V  105°
  • C21 mit 100µF 16V  105°

Bei den Bauformen sollte man sich unbedingt an die Größe der originalen Kondensatoren halten, da das Platinen Paket sonst nicht mehr in das Gehäuse passen könnte. Sind die Kondensatoren erneuert, dann war es das (in diesem Fall) auch schon. Das Platinen Paket zusammengelötet – und ein schneller Test – und siehe da, der Aktor bootet wieder wie gewohnt. Der Zeitaufwand für die Reparatur ist mit ca. 30min und für die Kondensatoren mit etwa einem Euro zu rechnen…

Ergebnisse zur Blogstatistik

Vor einigen Monaten habe ich das kleine Umfragetool zur Erfassung der Altersgruppen der Besucher meiner Blogseite eingerichtet. Da jeden Tag ein paar Mails mit Umfrageergebnissen eintrudeln, dachte ich, es ist an der Zeit, einmal einen Status zu veröffentlichen. In der Umfrage gibt es vier Altersgruppen (unter 20, 21 bis35, 36 bis 50 und größer 50 Jahre), sowie die Möglichkeit das Geschlecht bekanntzugeben.

Das Ergebnis sieht mit heutigem Tag, wie folgt aus:

An der Umfrage haben insgesamt 378 Personen teilgenommen. Im Detail verteilen sich die Altersgruppen wie folgt:

  • Gruppe „kleiner 20 Jahre“       41 Personen
  • Gruppe „21 bis 35 Jahre“      129 Personen
  • Gruppe „36 bis 50 Jahre“         99 Personen
  • Gruppe „größer 50 Jahre“    109 Personen

Der Anteil der weiblichen Blogleser sieht wie folgt aus:

  • Gruppe „kleiner 20 Jahre“       36%  (15 Personen)
  • Gruppe „21 bis 35 Jahre“           0%   (  0  Personen)
  • Gruppe „36 bis 50 Jahre“        10%   (10 Personen)
  • Gruppe „größer 50 Jahre“      18%   (18 Personen)

Anzumerken ist noch, dass das Statistiktool auch von einigen Spammern benutzt wurde um im Kommentar Feld Spam-Links zu posten. Diese wurden jedoch von den Filtern entfernt und scheinen in der Statistik nicht auf.

Homematic Nachrichten pushen mit Telegram

Mit der Homematic CCU ist es ja schon lange möglich, Nachrichten aus Systemereignissen heraus zu generieren und per E-Mail zu versenden. Ein einfaches Beispiel hierfür ist die Bestätigung der Alarmanlage. Wird diese scharf oder unscharf geschaltet, so kann der Status als Email versendet werden. Oder hat man Umweltdatensensoren verbaut, so kann man sich auch die Daten, wie Temperatur, Luftfeuchte etc. senden lassen. Dazu muss einfach nur das Email-Plug-In unter Zusatzsoftware installiert und eingerichtet werden. Die Nachrichten werden dann per Script Aufruf versendet. Jedes Mal, wenn der Ziel-Email-Client, zum Beispiel am Smartphone, die Nachrichten abruft, ist man wieder informiert.

Es muss aber nicht unbedingt die E-Mail-Lösung sein um Nachrichten zu versenden. Eine weitere Möglichkeit ist der Messenger „Telegram“. Er ist den Nachrichten Messengern WhatsApp, Signal, etc. ähnlich und versendet per Push-Service. Der Versand unterschiedlichster Daten ist hier möglich. Bilder, Videos und Audiodateien können genau so einfach wie Textnachrichten versendet werden. Um einen den Telegram Dienst mit der Homematic nutzen zu können, muss man sich der freien Telegram API bedienen. In den folgenden Zeilen zeige ich, wie ich ein für mich funktionsfähiges System aufgebaut habe, um von der Homematic CCU Nachrichten und IPCam-Bilder an ein Smartphone mit installiertem Telegram Messenger zu senden.

In dem Beispiel beschreibe ich die Installation und Einrichtung auf einem Android System. Beginnend mit dem Download der APP „Telegram Messenger“ aus dem Google Appstore kann derselbe dann installiert und gestartet werden. Nach dem registrieren der Telefonnummer sollte die Software dann auch schon bereit sein.

Einrichten des Bots:

In der rechten, oberen Ecke des Bildschirms ist das Lupensymbol für die Suche zu sehen. Das ist anzuwählen, um ein Eingabefeld zu erhalten. In dieses Feld ist nun BotFather einzugeben. Das ist quasi das Administrationstool für das Erstellen und Einrichten von Bots. Unter einem Bot (von englisch robot ‚Roboter‘) versteht man ein Computerprogramm, das weitgehend automatisch sich wiederholende Aufgaben abarbeitet, ohne dabei auf eine Interaktion mit einem menschlichen Benutzer angewiesen zu sein.( Quelle: Wikipedia)

Suchen des BotFather

Ist der BotFather gefunden, dann kann der einfach angeklickt werden und es öffnet sich ein Fenster.  Um die Einrichtung des eigenen Bots zu starten, ist in der Nachrichtenzeile folgendes Kommando einzutippen:

/start

Jetzt kommt als Antwort eine Liste mit Befehlen, die für die Bot-Einrichtung und Konfiguration nützlich sind. Um nun einen neuen Bot zu erstellen ist

/newbot

einzugeben. Als nächstes ist ein Name für den Bot auszuwählen. Hier habe ich als Beispiel CCU gewählt. Sollte der Name bereits vergeben sein, dann einen anderen wählen. Das gilt ebenso für den Benutzernamen, der mit „_bot“ zu enden hat. Hier habe ich iretro_bot gewählt.

Ist der Name gewählt und gültig, so kommt als Antwort eine Meldung mit einem Token, der in der Regel 45 Zeichen lang ist. Dieser Token ist zu kopieren oder abzuschreiben. Er ist der Schlüssel für den Bot. Die Arbeiten am Smartphone sind nun soweit abgeschlossen und es geht am PC weiter. Im Browser (am besten Firefox) ist die Telegram Website aufzurufen. web.telegram.org ist der Link zu Website. Diese Schritte dienen dazu, neben dem Token auch noch die ChatID zu erhalten, die in weiterer Folge in den Homematic Skripten benötigt wird. Um sich im Webbrowser anmelden zu können, ist die zu Anfang in der App registrierte Telefonnummer einzugeben. Ist die Nummer eingegeben wird auf das Smartphone ein Anmeldecode gesendet. Mit dem kann die Telegram Session im Browser gestartet werden. Jetzt sollte im Browser Telegram auch der iretro_bot per Suche zu finden sein. Ist er gefunden, dann ist er mit „STARTEN“ zu öffnen und irgendeine beliebige Nachricht einzugeben. Das Eingeben einer beliebigen Nachricht ist wichtig um dann auch die ChatID erhalten zu können. Ist das geschehen, dann ist in der Adresszeile desselben Browserfensters der folgende Link einzugeben:

https://api.telegram.org/hier_den_45_Zeichen_langen_APItoken_eingeben/getUpdates

und mit Enter bestätigen. Jetzt sollte im Browser in etwa folgendes zu sehen sein: (Tab JSON ausgewählt) Den Inhalt der Website habe ich in die untenstehende Tabelle kopiert. (die originale ID wurde natürlich geändert…)

Nun kann durch Eingabe in die Browserzeile eine Testnachricht vom PC an das Smartphone gesendet werden.

https://api.telegram.org/botAPITOKEN/sendMessage?chat_id=123456789&text=Hallo das ist ein Test

Nach Bestätigen erscheint die Nachricht in der Telegram App am Smartphone und alles hat geklappt. Für alles Weitere wird nun nur mehr der API-Token und die chatID benötigt.

Homematic und Telegram

Jetzt ist soweit alles für den Einsatz von Telegram mit der Homematic vorbereitet. Meine Beispiele hier beziehen sich auf eine CCU2. Als Addon muss die aktuelle Version des CUxD auf der CCU installiert sein. (Zum Zeitpunkt des erstellen des Blogbeitrages ist es 2.3.0). Der CUx-Daemon ermöglicht es unter anderem, per Skript auf das Linux System der CCU zuzugreifen und stellt somit eine universelle Schnittstelle zu anderen Systemen dar.

Die einfachste und am schnellsten realisierbare Anwendung mit Telegram ist, ein von der Homematic getriggertes Skript zu starten, das eine PUSH-Nachricht versendet. Dazu erstellt man in der CCU ein neues Programm und wählt zuerst unter Bedingung einen „Trigger“ aus. Mit „Trigger“ ist zum Beispiel eine Tastereingabe, eine Bewegungserkennung des Bewegungsmelders, oder auch einfach nur das Auslösen eines beliebigen Sensors gemeint. Das sollte für einen HomeMatic Benutzer auch kein Problem darstellen. Dann wählt man als Aktivität Skript aus und öffnet das Scripteingabefenster.  Das folgende Code-Beispiel sendet eine Nachricht an das Handy wenn bei der HomeMatic der gewählte Trigger ausgelöst ist und das Script gestartet wird:

!Variablen definieren
string msg = "Das ist eine Testnachricht von der CCU";
string chatid = "123456789"; !das ist die chatid
string botAPI = "987654321:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi"; !und das ist die BOT API id

!Textnachricht versenden
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("extra/curl -s -k https://api.telegram.org/bot"#botAPI#"/sendMessage -F text='"#msg#"' -F chat_id="#chatid);

 

Die ChatID in dem Beispielscript und auch die botAPI ist hier nur symbolisch angeführt. Wären da reale IDs angeführt, dann würden eure Versuche alle als Nachrichten auf meinem Handy landen. 🙂 Diese beiden IDs sind also durch die vorher ermittelten zu ersetzen.

 

Versenden von Kamerabildern

Es geht aber noch besser. Viele User haben neben der HomeMatic CCU auch noch IP-Kameras im Einsatz. Da bietet es sich doch an, den Trigger der HomeMatic und seine Webanbindung für das Versenden der IP-Kamera Bilder zu verwenden. Denn Telegramm kann neben Textnachrichten auch Bilddateien versenden.

Um das zu realisieren muss die IP Kamera in der Lage sein, einen Snapshot per http – Aufruf zu erzeugen. Das sollte bei den meisten Kameras möglich sein. In diesem Beispiel habe ich eine Dlink DCS-932 und eine Vivotec FD81xx Domkamera getestet. Es klappt mit beiden.

Hier die grundlegenden Snapshotaufrufe der Kameras:
DLINK:
https://benutzername:passwort@ip_der_kamera/image/jpeg.cgi

VIVOTEK:
https://benutzername:passwort@ip_der_kamera/cgi-bin/viewer/video.jpg?

Als nächstes muss sichergestellt sein, dass die HomeMatic nach dem Aufruf der Snapshot-Links die von der Kamera gelieferten Bilder auch irgendwo im Dateisystem der CCU speichern kann. Hier hilft der CUx-Daemon wieder weiter. Ich speichere im /tmp Ordner das Bild der Kamera unter dem Dateinamen „cambild.jpg“

CUxD Startbildschirm

Nach dem Aufruf desKameralinks über das unten gelistete Script sollte die Datei im /tmp Ordner zu sehen sein.

/tmp Ordner

Eine Kontrolle des Inhaltes der Datei „cambild.jpg“ kann einfach durch Doppelklicken durchgeführt werden. Das Bild sollte dann im CUxD Fenster zu sehen sein.

Kamerabild im CUxD Fenster

Das folgend gelistete Script in einem neu erstellten HomeMatic Programm kann nun durch Aufruf das Kamerabild abholen und versendet es als Telegram Push Nachricht.

string picture = "/tmp/cambild.jpg";  !das ist der Pfad in dem die Bilddatei erzeugt und gespeichert wird
string chatid = "123456789";        !das ist die chatid
string botAPI = "987654321:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi";  !und das ist die BOT API id

!Kamera aufrufen und snapshotdatei in /tmp/ anlegen und als datei cambild.jpg speichern
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget --auth-no-challenge -O /tmp/cambild.jpg 'https://user:passwort@000.000.000.000:80/image/jpeg.cgi?profileid=1'");

!Kamerabild per Telegram versenden
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("extra/curl -s -k https://api.telegram.org/bot"#botAPI#"/sendPhoto -F chat_id="#chatid#" -F photo='@"#picture#"'");

Keysite Oszilloskop stirbt im Standby – Netzteilreparatur

Ein interessantes Problem ist bei der Messtechnik in den Labors meines Arbeitsplatzes aufgetreten. Mit „Messtechnik“ bezeichne ich die Ausstattung eines Laborarbeitsplatzes, für die Grundlagenausbildung. Von den Laborarbeitsplätzen gibt es insgesamt neunzehn Einheiten, die mit je zwei Labornetzgeräten, zwei Tischmultimetern, einem Keysite Signalgenerator und einem Keysite (Agilent) Oszilloskop der Serie Infiniivision DSO-X 20xx ausgerüstet sind. Alle Geräte sind netzwerkfähig und sind über LAN mit dem zugehörigen Arbeitsplatzrechner verbunden. So kann mit Hilfe unterschiedlicher Software (Agilent VEE, Matlab, LabVIEW etc.) auf die Messgeräte zugegriffen werden. Die Geräte wurden vor ca. drei Jahren angeschafft und ersetzt die fast zwanzig Jahre alte Laborausstattung. 

Doch nun ist der Fall aufgetreten, dass bei einem Arbeitsplatz das DSO-X2012A Oszilloskop kein Lebenszeichen mehr von sich gab. Es kommt gelegentlich vor, dass bei Laborübungen oder beim freien Arbeiten in den Labors einmal ein Studierender den Not-Aus Schalter des Arbeitsplatzes betätigt und ihn so stromlos macht.  Doch das war nicht der Fall. Alle an dem Arbeitsplatz angeschlossenen Geräte funktionierten, mit Ausnahme des DSO. Auch am Ende des Kaltgerätesteckers war Spannung zu messen. Also konnte das Problem nur am Oszilloskop selber liegen. Die Rückwand ist schnell abgeschraubt, ein Schirmblech entfernt und das Netzteil liegt frei. Gleich bei der ersten optischen Begutachtung ist der große Siebelko mit nach oben gewölbter Kappe aufgefallen. Aber einmal schön der Reihe nach.

Netzteil des Infiniivision

An den AC Pins vom Netzeingang war die Netzspannung zu messen, jedoch an keinem der Ausgänge des Netzteils eine Gleichspannung. Egal ob der Powerschalter des Gerätes ein- oder ausgeschaltet war. Die Vermutung liegt nahe, dass das Netzteil defekt ist.

Eingangssicherung

Zunächst wurde das Netzteil ausgebaut und beginnend von der AC-Eingangsseite untersucht. Die Printsicherung im Bereich des Netzfilters ist gleich als erstes defektes Bauteil aufgefallen. Es handelt sich um eine träge 6.3A/250V Sicherung. Da eine ausgelöste Sicherung immer einen Grund hat, abzuschalten, wurde weitergesucht. Die Netzgleichrichter waren ok, jedoch hatte der 100uF / 420V Elektrolytkondensator, der als Gleichspannungsglättung der Primärseite eingesetzt ist, thermisch schon einiges abbekommen und war aufgebläht.

originaler Elko 100uF /420V /105°C

Auch seine Kapazität war nicht mehr im Nominalbereich. Aber auch das war nicht direkt der Grund für das Auslösen der Sicherung. Der war dann schnell gefunden. Ein Mosfet der als Ansteuerung des Transformators dient, war niederohmig. Genauer gesagt er hatte einen Kurzschluss zwischen allen Anschlüssen.

Mosfet STP12NM50

Das folgende Bild zeigt die Einbaupositionen der Bauteile. Diese wurden erneuert. Der Mosfet wurde durch einen Originaltyp ersetzt und der Netzelko gegen einen 100uF / 450V /105°C Typ getauscht. Der ist zwar von der Bauhöhe etwa fünf Millimeter höher, passt aber problemlos in das Netzteil.

Einbaulage des Kondensators und des Mosfet

Auf der Rückseite der Netzteilplatine waren zwei SMD Widerstände im Bereich des Gate-Anschlusses des Mosfet defekt. Es handelt sich dabei um einen SMD Widerstand der Baugröße 0805 mit 5,11 Ohm und einen SMD Widerstand der Baugröße 1206 mit 2,0 kOhm. Das untenstehende Bild zeigt auch hier wieder die Einbaulage.

Einbaulage der defekten SMD Widerstände

Nachdem alle erwähnten Bauteile erneuert waren, wurde ein erster Funktionstest durchgeführt. Dieser war jedoch ernüchternd, denn das Netzteil arbeitete noch nicht. Die Sicherung blieb intakt und die primärseitige Gleichspannung stand stabil. Doch das Gate des Mosfet wurde nicht angesteuert – leider. Denn jetzt kam der aufwendige Teil der Reparatur. Auf der Netzteilplatine befindet sich, stehend eingebaut, eine weitere Platine, auf der mehrere Controller IC´s verbaut sind. Verfolgt man die Gate-Leitung vom Mosfet, so endet sie an einem Pin dieser Ansteuerungsplatine. Also muss diese raus.

Controllerboard ausgebaut

Dazu musste zuerst das Kühlblech entfernt werden. Dann wurde es etwas mühsam, denn das Controllerboard ist nicht über eine Stiftleiste oder Steckverbindung mit der Hauptplatine verbunden, sondern die Kontaktpins sind gelayoutet und ausgefräst. Das bedeutet, man muss die Auslötarbeiten sehr behutsam in Angriff nehmen, um die Leiterbahnen an den Enden der gefrästen Pins nicht zu beschädigen.

Mainboard ohne Controllerplatine

 

UC3842B

Als der Ausbau erfolgreich abgeschlossen war, konnte das Controllerboard begutachtet werden. Und siehe da, die vom Gate des Mosfet geroutete Leitung endet an Pin 6 eines kleinen IC´s. Dabei handelt es sich um einen UC3842B VD1R2G. Bei diesem IC war das Gehäuse gesprengt. Neben dem Controller IC, war auch ein SOT23 PNP-Transistor (PMBT 2907A) gestorben und an allen Pins niederohmig.

Einbaulage der defekten Komponenten

Nach dem Erneuern der defekten Komponenten, wurde das Netzteil wieder zusammengebaut und ein Funktionstest durchgeführt. Das Oszilloskop startete wieder und das Netzteil verrichtete seinen Dienst.

defekte Bauteile
Ergebnis nach erfolgter Reparatur

Interessant wäre es jetzt herauszufinden, warum das Netzteil nach gerade einmal drei Jahren seinen Geist aufgibt. Zumal die Oszilloskope nicht im Dauerbetrieb laufen, sondern nur während der entsprechenden Lehrveranstaltungen eingeschaltet sind. Dabei ist folgendes aufgefallen: Das Oszilloskop ist permanent an die Stromversorgung angeschlossen. Der Power-Schalter des Oszilloskops schaltet aber nicht die AC-Versorgung aus, sondern nur im Sekundärbereich des Netzteils die Controlleransteuerung. Das bedeutet, das Netzteil arbeitet im ausgeschalteten Zustand quasi im Standby-Betrieb. Und dabei ist uns aufgefallen, dass bei allen ausgeschalteten Oszilloskopen im Standby eine Verlustleistung auftritt, die die Mosfets und vor allem den 100uF Elko stark erwärmt. Das würde den aufgebähten, ausgetrockneten Elko und den darauffolgenden Tod der Netzteile erklären.  Um das zu verifizieren wurde bei mehreren Geräten die seit Tagen nicht eingeschaltet waren, die Temperatur an den Komponenten gemessen.

 
Thermofühler an der Elkooberfläche

Hier konnte folgendes festgestellt werden. Sowohl an der Oberfläche des Kondensators als auch am Kühlblech der Mosfets waren im ausgeschalteten Zustand Temperaturen von 56°C bis knapp 60°C zu messen.  Sollte das so sein ??

Temperaturmessung am Elektrolytkondensator

 

Hier noch die benötigten Bauteile:

  • Widerstand 5R11 0,1W 0,1% Farnell Nr.: 1872688
  • Widerstand 2k0 0.66W Farnell Nr.: 721-9844
  • PNP Transistor SOT23, SMD Stempel 2F Type PMBT2907A, 215 Farnell Nr.: 1626500
  • PWM Controller IC, UC3842B VD1R2G / 500kHz Farnell Nr.:2845218
  • Kondensator 100uF / 105°C / 450V
  • Printsicherung T6.3A 250V

Jun2019: Bestellnummern aktualisiert