



Ich hatte ja hier bereits geschrieben das ich Probleme mit meinem Onkyo-AV-Receiver TX-NR515 habe. Vom Ansatz her hat das Onkyo sehr kulant und positiv gelöst. Auch die Hotline bei Onkyo macht einen sehr guten und kompetenten Eindruck und konnte mir sehr gut weiterhelfen.
Nun wollte ich seit langem wieder einmal anstatt bei einem Online-Händler bei einem Elektrofachhändler vor Ort das Nachfolgegerät kaufen. Da ich keinen aktuellen Stand über die aktuellen AV-Receivern habe, wollte ich mich in diesem Fall vor Ort beraten lassen und auch gleich ein Gerät mitnehmen. Ich suchte kein High-End-Gerät, sondern die Preisklasse 300 – 500 Euro, was für meinen Anwendungsfall locker ausreicht. Ich wäre auch bereit gewesen etwas mehr bei einem vor Ort Kauf als Online auszugeben z.B. 50 Euro mehr.
Leider war es mir nicht möglich einfach einen von Onkyo zertifizierten Händler im Umkreis von ca. 50 KM zu finden (ich wollte bei einem kleinen Fachhändler „um die Ecke“ kaufen). Also musste ich wieder auf die größeren bekannten Elektrogroßhändler ausweichen.
Bei einer größere Kette hatte ich ich dann telefonisch rückversichert, ob man Receiver in meiner Preiskategorie vor Ort hat. Hier hatte ich von der Hotline (nicht vom Markt vor Ort) eine Zusage bekommen und somit habe ich mich am Samstag ca. 50 KM auf dem Weg nach Augsburg gemacht. Leider war dann bei zwei Märkten in Augsburg kein einziges Gerät in einer Preiskategorie 300 – 500 Euro vor Ort vorhanden. Auf meine Rückfrage das ich extra vorher telefonisch nachgefragt habe, wurde mir auch nicht weitergeholfen. Ich sollte in der nächsten Woche noch einmal vorbei kommen (am Samstag konnte ich kein Gerät bestellen wegen Modellwechsel bei Onkyo), dann ein Gerät aussuchen und dann würde der Receiver bestellt werden und ich könnte ihn abholen (ich müsste also 3 x nach Augsburg fahren um das Gerät zu kaufen).
Ich habe also in Augsburg noch einmal bei einer anderen Kette angerufen. Hier hatte der Augsburger Händler ein Gerät da, aber ca. 100 Euro teurer also beim vorherigen Händler. Das finde ich bei 175 Euro Cashback von Onkyo auch nicht wirklich eine Option.
Ich habe mich dann auf dem Heimweg gemacht und mich zu Hause doch etwas in die Materie eingelesen. Der Onkyo-Reciver TX-NR676 würde meinen Ansprüchen ganz gut genügen. Bei Amazon kostet der Receiver aktuell 379 Euro, bei dem ersten Händler 399 Euro (das wäre noch ok gewesen) und beim zweiten Händler 499 Euro (das finde ich zu viel vom Preis).
Da ich nicht noch einmal nach Augsburg fahren möchte und nun meine Beratung selbst online „durchgeführt“ habe, habe ich doch wieder Online eingekauft. Und bei „Händler 1“ musst ich mir noch anhören warum der Online-Handel die Geschäfte vor Ort kaputt macht.
Aus meiner Sicht ist es nicht nur der Preis, sondern auch der fehlende Kundenservice bzw. ein vor Ort Kauf wird einem mittlerweile sehr schwer gemacht …
Unser Onkyo-AV-Receiver TX-NR515 gibt seit ein paar Tagen auf allen Kanälen keinen Ton mehr aus.

Das Gerät ist ca. 4 Jahre alt und hat nach einem kurzen Rauschen überhaupt keinen Ton mehr von sich gegeben. Für einen AV-Receiver war das aus meiner Sicht eine relativ kurze Betriebsdauer. Als ich nach den Ursachen in diversen Foren gesucht habe, war ich über das Ergebnis doch überrascht.
Es gibt von Onkyo eine generelle Rückrufaktion für viele Modelle (darunter war auch mein Receiver). Wenn Ihr einen Onkyo-Receiver habt, prüft auf alle Fälle im Customer Care Program mit eurer Seriennummer den Status des Geräts.
Es wird dort vom Tonausfall in einzelnen oder allen Kanälen geschrieben, aber auch Störungen in der Netzwerkverbindung werden dort benannt. In meinem Fall kann ich CASHBACK oder TRADE-IN Verfahren wählen. Das TRADE-IN ist aber wegen einer Firmenfusion gerade nicht verfügbar.
Ich habe jetzt bei einem lokalen Elektrohändler angerufen und werde dort ein neues Gerät beziehen. Wenn ich einen neuen Onkyo-Receiver habe, kann ich die CASHBACK-Option von Onkyo durchführen. Für Onkyo ist das eine clevere Variante, weil ohne diese Option hätte ich mir von diesem Hersteller kein Gerät mehr gekauft.
Leider rentiert sich keine Reparatur des Geräts. Die Kosten würden sich dabei auf ca. 500 Euro berufen. Onkyo will das defekte Gerät nicht einmal zurückgeschickt haben, sondern ich soll es als „Briefbeschwerer“ nutzen. Bei so einer Anzahl an defekten Geräten leidet natürlich auch die Marke darunter …
Kennt Ihr das Problem mit den Tonausfällen bei Onkyo-Receivern?
Am 23.09.2018 von 16:30 – 17:00 Uhr kam ein interessanter Beitrag zu „Stromfresser Internet – Die Schattenseiten der Digitalisierung“ bei planete im ZDF. Der Inhalt der Sendung wird wie folgt dargestellt:
Es ist smart, es hilft uns, besser zu leben: das Internet. Doch ohne eine gigantische Maschinerie läuft nichts. Unzählige Rechenzentren werden gebraucht – und die sind wahre Stromfresser.
Ihr könnt den Beitrag in der zugehörigen Mediathek ansehen (oder hier direkt in diesem Beitrag). Das Video kann bis zum 20.09.2019 online abgerufen werden.
Der Videobeitrag ist sehr interessant und zeigt einmal ein paar andere Seiten der Digitalisierung auf. Wie ist eure Meinung dazu? Welche Risiken seht Ihr beim Thema „Digitalisierung“?

Um regelmäßig seine Mülltonnen am Entsorgungstag am Straßenrand zu stellen, haben die meisten Personen einen Papierkalender im Haus. Viele Entsorger stellen aber auch die Abholdaten der Mülltonnen online oder per Kalender bereit
Für den Landkreis Dachau gibt es eine App (DAH-Müll) und eine Oberfläche zur Visualisierung. Leider kann man auf die Daten dort nicht direkt per ICS / iCalendar zugreifen (da haben sich die Zuständigen etwas sehr gutes einfallen lassen).
Deswegen muss man jetzt manuell einmal die Kalenderdaten pro Jahr dort exportieren und sie in einen eigenen Kalender importieren (geht auch, aber Anwenderfreundlich ist etwas anderes).
Der Anwendungsfall ist also einen Kalender auszulesen und am Vortag eine Erinnerung an die digitalen Endgeräte, Sprachsteuerungen oder Kalender zu senden. Dazu wird in openHAB das CalDAV-Binding verwendet.
Beispiele für die Verwendung findet Ihr hier bei onesmarthome.de oder im openhabforum.de.
Im ersten Schritt besorgt man sich die iCalendar-Daten aus seinem jeweiligen Landkreis / Ort. Bei mir waren die Daten hier.
Leider musste ich die Inhalte noch etwas „umformatieren“:
Danach habe ich in meinem System (hier ownCloud) einen Kalender „Müll“ erstellt und die oben beschriebenen Daten importiert.
Danach kann ich folgenden Link für die weitere Integration verwenden:
https://URL/remote.php/dav/calendars/USER/CALENDAR/
Die URL, USER und CALENDAR müsst Ihr an eure Anforderungen anpassen.
Das CalDAV1-Binding wird wie folgt installiert:
Paper UI – Add-ons – Bindings – CalDAV Binding (personal) – INSTALL
ACHTUNG: Das CalDAV Binding (command) wird zur Steuerung und Präsenzmeldung verwendet und ist für diesen Beitrag nicht notwendig.
Es wird die Datei services/caldavio mit folgendem Inhalt erstellt:
caldavio:Muell:url=https://URL/remote.php/dav/calendars/USER/CALENDAR/
caldavio:Muell:username=USER
caldavio:Muell:password=PASSWORD
caldavio:Muell:reloadInterval=60
caldavio:Muell:preloadTime=2880
caldavio:Muell:disableCertificateVerification=true
caldavio:Muell:charset=utf8
Die groß geschriebenen Wörter bitte mit euren Daten ergänzen. Wichtig war in meiner Konfiguration noch disableCertificateVerification (wahrscheinlich wegen meinen kostenlosen Zertifikaten) und charset auf UTF-8.
Den reloadInterval kann man zum Testen auch auf 1 Minute stellen.
Ich habe für zwei Kalendereinträge und Datumswerte die Items generiert (es können bei mir zwei Tonnen zum gleichen Tag abgeholt werden):
/* Müllkalender */
String CalDAV_Muell_1 "Erste Tonne [%s]" <calendar> { caldavPersonal="calendar:Muell type:EVENT eventNr:1 value:NAME" }
DateTime CalDAV_Muell_1_Date "Datum der Abholung [%1$td.%1$tm.%1$tY]" <calendar> { caldavPersonal="calendar:Muell type:EVENT eventNr:1 value:START" }
String CalDAV_Muell_2 "Zweite Tonne [%s]" <calendar> { caldavPersonal="calendar:Muell type:EVENT eventNr:2 value:NAME" }
DateTime CalDAV_Muell_2_Date "Datum der Abholung [%1$td.%1$tm.%1$tY]" <calendar> { caldavPersonal="calendar:Muell type:EVENT eventNr:2 value:START" }
In der Sitemap habe ich das recht einfach so dargestellt:
Frame label="Informationen" {
Frame label="Müllkalender"{
Text item=CalDAV_Muell_1
Text item=CalDAV_Muell_1_Date
Text item=CalDAV_Muell_2
Text item=CalDAV_Muell_2_Date
}
}
Nun erfolgt die Automatisierung und die Benachrichtigung in der Regel (das kann man bestimmt noch etwas eleganter „scripten“):
rule "Müllkalender"
when
//Time cron "0 * * ? * *" //every 1 Minute
Time cron "0 15 17 * * ?" //once per Day 17:15
//Item date_today changed
then
var String muelltonne_1
muelltonne_1 = CalDAV_Muell_1.state.toString
var String muelltonne_2
muelltonne_2 = CalDAV_Muell_2.state.toString
// Prüfung ob der Wert gefüllt ist (damit beim cast auf DateTimeType keine Fehlermeldung erscheint)
if (muelltonne_1 != "UNDEF") {
// Datum der Abholung wird mit dem aktuellen Datum verglichen
// die erste Bedingung prüft, ob das aktuelle Datum vor dem Ablaufdatum + 24 Std. liegt
// die zweite Bedingung prüft, ob das aktuelle Datum nach dem Datum der Abholung liegt
if (now.isBefore(new DateTime((CalDAV_Muell_1_Date.state as DateTimeType).getCalendar().getTime()).plusHours(24)) &&
now.isAfter(new DateTime((CalDAV_Muell_1_Date.state as DateTimeType).getCalendar().getTime()))) {
// Benachrichtigung per Telegram an Bot senden
if(muelltonne_2 == "UNDEF") {
sendTelegram("xxx_bot", "Müllkalender: %s", muelltonne_1)
logInfo("INFO","CalDAV.rules - Müllkalender: %s", muelltonne_1)
} else {
sendTelegram("xxx_bot", "Müllkalender: %s & %s", muelltonne_1, muelltonne_2)
logInfo("INFO","CalDAV.rules - Müllkalender: %s & %s", muelltonne_1, muelltonne_2)
}
}
}
end
Die Anbindung des Kalenders in openHAB war relativ einfach. Etwas schwieriger hat sich die Anpassung der ICS-Datei aus meinem Landkreis gestaltet. Danach hat man recht einfach (nach ein paar Tests) seine Kalenderdaten angebunden.
In der Regel waren dann noch ein paar Workarounds notwendig, aber dann waren die Daten auch richtig vorhanden. Die Konvertierung in UTF-8 / Unicode war nicht so einfach in der cfg zu finden. Auch den CRON-Job nur einmal am Tag zu einer bestimmten Zeit auszuführen war für einen „Nicht-UNIXer“ nicht das einfachste 😉
Nun bekomme ich aber am Vortag um 17:15 Uhr eine Information per Telegram, dass die Müllabfuhr am nächsten Tag kommt.
Habt Ihr noch Ideen für die weitere Anbindung von Kalenderdaten? Habt Ihr eine Präsenzmeldung oder Steuerung eures SmartHome damit realisiert?
Für Berechnungen und zur allgemeinen Visualisierung soll in openHAB das aktuelle Datum und Uhrzeit über NTP aktualisiert und dargestellt werden. Weitere Informationen über das Network Time Protocol findet Ihr bei Wikipedia.
Die Dokumentation zum NTP-Binding findet Ihr hier – https://docs.openhab.org/addons/bindings/ntp/readme.html
Die Installation in der Paper UI wird über „Add-ons – Bindings – NTP Binding – INSTALL“ vorgenommen.
Eine Konfiguration des Servers wird in der Things-Datei konfiguriert:
ntp:ntp:zeit [ hostname="nl.pool.ntp.org", refreshInterval=60, refreshNtp=30 ]
Das Format wird in der Items-Datei den Wünschen entsprechend angepasst:
DateTime Date "Date [%1$tA, %1$td.%1$tm.%1$tY %1$tH:%1$tM]" { channel="ntp:ntp:zeit:dateTime" }
Mit ein paar Klicks hat man das Zeitprotokoll (NTP) in openHAB integriert.
Eine Visualisierung in der Sitemap ist nicht notwendig, da ich in meinem Fall die Werte nur in Regeln benötige.
In den nächsten Beiträgen werden ich darstellen, für was ich die NTP-Daten benötige.
Da wir letzte Woche an einem Abend ein größeres Unwetter hatten, habe ich mich entschlossen Unwetterdaten vom Deutschen Wetterdienst in openHAB zu integrieren.
Die Daten vom DWD sollen in der GUI angezeigt werden und wenn ein Unwetter im Anmarsch ist eine Benachrichtigung auf ein mobiles Endgerät senden.
Ein gutes Beispiel wie man die JSON-Daten in openHAB übernimmt, findet Ihr hier im openHAB-Forum.
Für die Integration der Unwettermeldungen benötigt Ihr deine „WARNCELLID“ für euren Ort.
Außerdem müssen / können noch bestimmte Bilder für die Visualisierung integriert werden (die Images findet Ihr auch in dem oben genannten Forums-Beitrag):
Diese Bindings benötigt Ihr für die Integration:
Diese Items habe ich für die Visualisierung erstellt:
DateTime DWD_Warnung_start "von: [%1$td.%1$tm.%1$tY %1$tH:%1$tM Uhr]" <time> DateTime DWD_Warnung_end "bis: [%1$td.%1$tm.%1$tY %1$tH:%1$tM Uhr]" <time> Number DWD_Warnung_level "Warnstufe: [MAP(Wetter_DWD.map):%s]" <dwdwarnung> String DWD_Warnung_description "Beschreibung: [%s]" <warnung> String DWD_Warnung_headline "Betreff: [%s]" <warnung> String DWD_Warnung_instruction "Hinweis: [%s]" <warnung> String DWD_Warnung_event "Event: [%s]" <warnung> String DWDSelectedSite
Für die Darstellung muss eine Map erstellt werden:
0=Keine Warnung (0)
1=Wetterwarnung (1)
2=markantes Wetter (2)
3=Unwetterwarnung (3)
4=extremes Unwetter (4)
10=Hitzewarnung (10)
Die Transformaton der Wetterdaten wird mit diesem Script durchgeführt:
(function(jsonString) {
var newString = jsonString.replace('warnWetter.loadWarnings(','');
newString = newString.replace(');','');
var newJSON = JSON.parse(newString);
var jsonResult = "";
if (newJSON.warnings.hasOwnProperty('WARNCELLIC')) {
jsonResult =JSON.stringify(newJSON.warnings['WARNCELLID'][0]);
} else jsonResult = 'NULL'
return jsonResult;
})(input)
ACHTUNG: Die WARNCELLID muss durch eure individuelle ID ersetzt werden.
Für die Automatisierung wird noch folgende Regel erstellt:
rule "DWD Warnungen"
when
Time cron "0 */30 * ? * *" //every 30 Minutes
//Time cron "0 * * ? * *" //every 1 Minute
then
var String jsonString = sendHttpGetRequest("https://www.dwd.de/DWD/warnungen/warnapp/json/warnings.json")
var String newString = transform("JS", "Wetter_DWD_getWarningsJSON.js", jsonString)
if (newString !="NULL") {
var String newStart = transform("JSONPATH", "$.start", newString)
var DateTime timestart = new DateTime(Long::parseLong(newStart))
DWD_Warnung_start.postUpdate(new DateTimeType(timestart.toString))
var String newEnd = transform("JSONPATH", "$.end", newString)
if (newEnd !==null) {
var DateTime timeend = new DateTime(Long::parseLong(newEnd))
DWD_Warnung_end.postUpdate(new DateTimeType(timeend.toString))
}
DWD_Warnung_level.postUpdate(transform("JSONPATH","$.level",newString))
DWD_Warnung_description.postUpdate(transform("JSONPATH","$.description",newString))
DWD_Warnung_headline.postUpdate(transform("JSONPATH","$.headline",newString))
DWD_Warnung_instruction.postUpdate(transform("JSONPATH","$.instruction",newString))
DWD_Warnung_event.postUpdate(transform("JSONPATH","$.event",newString))
// Benachrichtigung per Telegram an Bot senden
sendTelegram("BOTNAME", "Wetterwarnung in Altomünster" + "\n" +
"\nWarnstufe: " + DWD_Warnung_level.state.toString +
"\nBeschreibung: " + DWD_Warnung_description.state.toString +
"\nBetreff: " + DWD_Warnung_headline.state.toString +
"\nHinweis: " + DWD_Warnung_instruction.state.toString +
"\nEvent: " + DWD_Warnung_event.state.toString)
}
if (newString =="NULL") {
DWD_Warnung_start.postUpdate("NULL")
DWD_Warnung_end.postUpdate("NULL")
DWD_Warnung_level.postUpdate(0)
DWD_Warnung_description.postUpdate("-")
DWD_Warnung_headline.postUpdate("derzeit keine Warnungen")
DWD_Warnung_instruction.postUpdate("-")
DWD_Warnung_event.postUpdate("-")
}
end
ACHTUNG: Die Regel wird alle 30 Minuten ausgeführt und aktualisiert so die Daten. Die Funktion sendTelegram sendet an meinen Telegram-Bot die Informationen für die Benachrichtigung auf dem SmartPhone (dieses müsst Ihr dann ggf. hinzufügen oder die Zeilen entfernen – der BOTNAME muss gegen eure Konfiguration getauscht werden).
In der Sitemap können die Inhalte so angezeigt werden:
Text label="Wetterwarnungen" icon="dwdicon" {
Frame label="" {
Selection item=DWDSelectedSite label="Wetter" icon="dwd" mappings=[1="Aktuell", 2="Regenradar", 3="Heute", 4="Morgen", 5="Übermorgen", 6="Unwetter", 7="Pollenflug", 8="Warnungen"]
}
Frame label=" " visibility=[DWDSelectedSite==8] {
Text item=DWD_Warnung_headline label="" valuecolor=[DWD_Warnung_level==1="#ffff00", DWD_Warnung_level==2="#ffa500", DWD_Warnung_level==3="#ff0000", DWD_Warnung_level==4="#800000"]
Text item=DWD_Warnung_level visibility=[DWD_Warnung_level!=0] valuecolor=[1="#ffff00", 2="#ffa500", 3="#ff0000", 4="#800000"]
Text item=DWD_Warnung_start visibility=[DWD_Warnung_start!="NULL"]
Text item=DWD_Warnung_end icon="null" visibility=[DWD_Warnung_end!="NULL"]
}
Frame label=" " visibility=[DWDSelectedSite==8] {
Text item=DWD_Warnung_description visibility=[DWD_Warnung_description!="-"]
Text item=DWD_Warnung_instruction icon="null" visibility=[DWD_Warnung_instruction!="-"]
}
Frame label=" " visibility=[DWDSelectedSite==8] {
Text item=DWD_Warnung_event visibility=[DWD_Warnung_event!="-"] valuecolor=[DWD_Warnung_level==1="#ffff00", DWD_Warnung_level==2="#ffa500", DWD_Warnung_level==3="#ff0000", DWD_Warnung_level==4="#800000"]
}
}
Für einen ersten Test könnt Ihr die DWD-URL manuell aufrufen:
Bei dieser URL könnt Ihr dann eine WARNCELLID kopieren und in euer Script (JS) einbauen. Damit könnt Ihr dann eine „Warnung“ simulieren und die oben genannten Konfigurationen testen.
Im Zusammenspiel mit den mobilen Benachrichtigungen und dem Auslesen der Daten des Deutschen Wetterdienstes ergeben sich sinnvolle Anwendungsbeispiele. Wenn man etwas tiefer in openHAB einsteigen möchte (und es keine Standard-Bindings für die Anforderung gibt) kann man mit dem JSON-Binding und dem JavaScript-Binding recht einfach Webservices anbinden.
Das Auslesen der JSON-Datei klappt recht einfach und ist mit wenigen Zeilen Scripting erledigt.
Würdet Ihr Unwetterdaten in eure SmartHome-Umgebung integrieren? Fallen euch noch weitere Szenarien z.B. Pollenflug etc. ein?
