Zwei Videos für Steaks auf dem Oberhitzegrill

Hier sind noch zwei interessante Videos, wie man Steaks auf einem Oberhitzegrill zubereitet.

Hier bereiten die Sizzle Brothers ein Rinderfilet zu:

Tim Mälzer gibt weitere Tipps für das Grillen eines Steaks:

Denver Cut Steak und Rinderlende vom Oberhitzegrill

Am Sonntag gab es ein Denver Cut Steak (364 Gramm) und ein Lendensteak vom Ox (282 Gramm) vom Lampl-Hof auf dem Oberhitzegrill.

Der Oberhitzegrill wird auf der höchsten Stufe vorgeheizt. In der Auffangschale wird eine Soße zum Garen aus Butter, Thymian, Roamarin und Knoblauch vorbereitet.

Die Steaks werden von jeder Seite ca. 1 Minute angebraten. Danach wird der Grill auf die kleinste Stufe gestellt und das Fleisch zum Nachgaren in die Soße gelegt bis die gewünschte Kerntemperatur erreicht ist.

Wir hatten das Fleisch Medium zubereitet bei ca. 54 / 55 Grad (laut dem Fleischthermometer). Das Lendensteak war dann Medium Rare und das Denver Cut Medium.

Das Steak noch mit etwas groben Meersalz und Pfeffer aus der Mühle bestreuen und fertig ist das perfekte Steak.

Einfacher als mit dem Oberhitzegrill geht es wirklich nicht 🙂

Outlook-Synchronisierung und fehlende Erinnerungen

Nachdem ich die Outlook-Synchronisation mit ownCloud eingerichtet habe, musste ich feststellen das Erinnerungen in Outlook 2019 nicht möglich waren.

In der Microsoft-Community habe ich dazu eine Antwort gefunden.

Ich konnte für mich das Fehlverhalten mit den fehlenden Erinnerungen wie folgt lösen:

  • Outlook schließen
  • Systemsteuerung – Mail (Microsoft Outlook 2016) (32-Bit) – Addin öffnen
  • Datendateien auswählen
  • Die Datei in der die synchronisierten Daten abgelegt werden muss „Als Standard festlegen“ hinterlegt sein
  • Outlook starten

Optional habe ich mir noch eine eigene Daten-Datei für den ownCloud-Sync erstellt. Danach konnte ich auch in Outlook ganz normal Erinnerungen hinzufügen. Danach muss man nur noch die entsprechenden Kalender in Outlook in den richtigen Ordner verschieben.

Scheinbar kann man den Ordner „Internetkalender“ nicht direkt für eine Synchronisierung komplett verwenden.

Hattet Ihr schon einmal ein ähnliches Problem?

Kalender und Kontakte zwischen ownCloud und Outlook synchronisieren

Für unsere Kontakt- und Kalenderdaten verwenden ich das System ownCloud mit den zugehörigen Plugins. Bis jetzt habe ich immer von unseren Android-Systemen per CalDAV (Kalender) und CardDAV (Kontakte) synchronisiert. Am stationären PC und am Surface habe ich immer nur einen lesenden Zugriff auf die Daten verwendet. Ich wollte die Konfiguration jetzt auf eine Zwei-Wege-Synchronisierung erweitern.

Ich habe die OpenSource Software Outlook CalDav Synchronizer im Internet dazu gefunden. Laut der „Feature-Liste“ enthält es meine gewünschten Funktionen. Die gesamte Dokumentation findet Ihr hier.

Ich habe die Software wie folgt in Outlook 2019 (aus meinem Office 365 Abo) eingebunden:

  • Download der Software und Installation (dazu vorher Outlook beenden)
  • Einen neuen leeren Kalender- oder Kontakt-Ordner erstellen
  • Im Outlook-Ribbon „CalDav Synchronizer“ über die „Syncrhonization Profiles“ und dem grünen Plus ein neues Profil erstellen
  • Als Typ habe ich „Generic CalDAV/CardDAV“ verwendet
  • Danach das Profil mit dem Namen, dem Outlook folder, der DAV Url, Username und Password parametrieren
  • Über den Verbindungstest kann die Konfiguration geprüft werden
  • Mit der Schaltfläche „Synchronize now“ kann die Synchronisierung gestartet werden

Jetzt hat man schon eine lauffähige Zwei-Wege-Synchronisation zwischen Outlook und ownCloud eingerichtet.

Wie synchronisiert Ihr eure „PIM-Daten“ zwischen den verschiedenen Systemen? Habt Ihr noch andere Anwendungsfälle?

Integration Sonoff S20 mit Tasmota in openHAB

In diesem Beitrag habe ich beschrieben wie eine MQTT-Infrastruktur mit openHAB 2.4 aussehen kann. Jetzt sind Sonoff S20 Steckdosen als Geräte vorhanden und wurden mit Tasmota MQTT-fähig gemacht.

Jetzt müssen natürlich die Steckdosen vorbereitend für Weihnachten 2019 auch in openHAB integriert werden 🙂

Weiterführende Informationen

Ein Beispiel für die Anbindung an MQTT mit openHAB 2.4 findet man im  Tasmota-Wiki. Dort wird der alte Weg und die neue Variante mit openHAB 2.4 grob beschrieben.

Die generelle MQTT-Architektur in openHAB 1 / 2 könnt Ihr hier nachlesen. Damit hat man schon einmal etwas Basiswissen über die Systemarchitektur.

Ein kleines Beispiel für die Integration von Sonoff S20 mit Tasmota-Firmware habe ich im openHAB-Forum gefunden. Recht ähnlich habe ich dann meine Konfiguration aufgebaut.

Genereller Aufbau

Da ich bereits openHAB 2.4 verwende, benutze ich MQTT v2 als „Binding“. Ich gehe nicht mehr auf die Unterschiede der beiden Versionen ein.

Jedes physikalische vorhandene Sonoff-Gerät wird als ein Thing definiert. Am Thing wird auch die Verbindung zum MQTT-Broker hinterelegt. Außerdem werden am Thing die notwendigen Channels z.B. POWER zum schalten parametriert.

Anschließend wird am Item definiert das auf den Channel zugreift. Am Schluss wird alle in der Sitemap visualisiert und optional in Regeln automatisiert.

things-Datei

In der Things-Datei wird nun die Bridge zum MQTT-Broker und die Things incl. Channels wie folgt definiert:

Bridge mqtt:broker:myMQTTBroker [
host="xxx.xxx.xxx.xxx",
secure=false,
username="xxx",
password="xxx" ,
clientID="myMQTTClient"
]
{
Thing topic Sonoff_xxx_xxx "Sonoff - xxx-5778" @ "MQTT" {
Channels:
Type switch : PowerSwitch "Power Switch 01" [ stateTopic="stat/sonoff-xxx/POWER", commandTopic="cmnd/sonoff-xxx/POWER", on="ON", off="OFF" ]
Type switch : PowerSwitchRes "Switch State 01" [ stateTopic="stat/sonoff-xxx/RESULT", transformationPattern="JSONPATH:$.POWER",on="ON",off="OFF"]
Type string : Version "Version 01" [ stateTopic="tele/sonoff-xxx/INFO1", transformationPattern="JSONPATH:$.Version"]
Type string : fallback "fallback topic" [ stateTopic="tele/sonoff-xxx/INFO1", transformationPattern="JSONPATH:$.FallbackTopic"]
Type string : hostname "hostname " [ stateTopic="tele/sonoff-xxx/INFO2", transformationPattern="JSONPATH:$.Hostname"]
Type string : IP "IP " [ stateTopic="tele/sonoff-xxx/INFO2", transformationPattern="JSONPATH:$.IPAddress"]
Type string : time "Time" [ stateTopic="tele/sonoff-xxx/STATE", transformationPattern="JSONPATH:$.Time" ]
Type string : uptime "Uptime" [ stateTopic="tele/sonoff-xxx/STATE", transformationPattern="JSONPATH:$.Uptime" ]
Type number : vcc "VCC" [ stateTopic="tele/sonoff-xxx/STATE", transformationPattern="JSONPATH:$.Vcc" ]
Type string : wifi-ap "Wifi AP" [ stateTopic="tele/sonoff-xxx/STATE", transformationPattern="JSONPATH:$.Wifi.AP" ]
Type string : wifi-ssid "Wifi SSID" [ stateTopic="tele/sonoff-xxx/STATE", transformationPattern="JSONPATH:$.Wifi.SSId" ]
Type string : wifi-channel "Wifi Channel" [ stateTopic="tele/sonoff-xxx/STATE", transformationPattern="JSONPATH:$.Wifi.Channel" ]
Type string : wifi-rssi "Wifi RSSI" [ stateTopic="tele/sonoff-xxx/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI" ]
Type string : devicestate "Device State" [ stateTopic="tele/sonoff-xxx/LWT" ]
}

items-Datei

Die Items werden wie folgt aufgebaut:

/************************************************** Gruppen ********************************************/
Group gSonoffSw1 "Sonoff S20 01"
Group gSonoffSw1Info "Info 01"
Group gSonoffSw2 "Sonoff S20 02"
Group gSonoffSw2Info "Info 02"
/************************************************** Items ********************************************/
/*
Sonoff_xxx_xxx
*/
Switch SonoffPs01Switch_Switch       "Switch 01"      (gSonoffSw1) { channel="mqtt:topic:myMQTTBroker:Sonoff_xxx_xxx:PowerSwitch" }
Switch SonoffPs01Switch_State        "State 01" (gSonoffSw1) { channel="mqtt:topic:myMQTTBroker:Sonoff_xxx_xxx:PowerSwitchRes"}
Number SonoffPs01Switch_Vcc          "VCC [%s]"          (gSonoffSw1Info) { channel="mqtt:topic:myMQTTBroker:Sonoff_xxx_xxx:vcc" }
String SonoffPs01Switch_WifiAp       "Wifi AP [%s]"      (gSonoffSw1Info) { channel="mqtt:topic:myMQTTBroker:Sonoff_xxx_xxx:wifi-ap" }
String SonoffPs01Switch_WifiSsid     "Wifi SSID [%s]"    (gSonoffSw1Info) { channel="mqtt:topic:myMQTTBroker:Sonoff_xxx_xxx:wifi-ssid" }
String SonoffPs01Switch_WifiChannel "Wifi Channel [%s]" (gSonoffSw1Info) { channel="mqtt:topic:myMQTTBroker:Sonoff_xxx_xxx:wifi-channel" }
String SonoffPs01Switch_WifiRssi     "Wifi RSSI [%s]"    (gSonoffSw1Info) { channel="mqtt:topic:myMQTTBroker:Sonoff_xxx_xxx:wifi-rssi" }
String SonoffPs01Switch_Uptime       "Uptime"         (gSonoffSw1Info) { channel="mqtt:topic:myMQTTBroker:Sonoff_xxx_xxx:uptime" }
String SonoffPs01Switch_Time         "Time"       (gSonoffSw1Info) { channel="mqtt:topic:myMQTTBroker:Sonoff_xxx_xxx:time" }
String SonoffPs01Switch_Version         "Version [%s]" (gSonoffSw1Info) { channel="mqtt:topic:myMQTTBroker:Sonoff_xxx_xxx:Version" }
String SonoffPs01Switch_Hostname     "Hostname [%s]"     (gSonoffSw1Info) { channel="mqtt:topic:myMQTTBroker:Sonoff_xxx_xxx:hostname" }
String SonoffPs01Switch_IP       "IP [%s]"   (gSonoffSw1Info) { channel="mqtt:topic:myMQTTBroker:Sonoff_xxx_xxx:IP" }
String SonoffPs01Switch_DeviceState "Device State" (gSonoffSw1Info) { channel="mqtt:topic:myMQTTBroker:Sonoff_xxx_xxx:devicestate" }

Falls gewünscht kann das Tag [„Lighting“] für die Alexa-Anbindung noch entsprechend integriert werden.

Nach der Änderung der Things und Items einmal die openHAB-Dienste neu starten.

Test der Konfiguration

Den Test der Konfiguration habe ich mit mqtt-spy vorgenommen.

Ich habe folgende Topics verwenden:

  • +/sonoff-xxx/+

Damit sehe ich alle Nachrichten zu dem Gerät. Es können folgende Wildcards verwendet werden:

  • + = Single Level
  • # = Multi Level

rules-Datei

Im nächsten Schritt möchte ich das Schalten der Steckdosen per Regel automatisieren:

rule "MQTT_TEST"
when
Time cron "0 */1 * ? * *" //every 1 Minute
then
logInfo("INFO","MQTT.rules - MQTT Test every minute")
val actions = getActions("mqtt","mqtt:systemBroker:embedded-mqtt-broker")
actions.publishMQTT("cmnd/sonoff-xxx/POWER","OFF")
end

Mit dieser Regel wird jede Minuten das Sonoff-Gerät ausgeschalten. Für einen einfachen Test ist das ausreichen.d

sitemap-Datei

Im letzten Schritt wird noch die Visualisierung in der Sitemap für die Web-Oberfläche und die App vorgenommen:

    Text label="Tasmota" icon="movecontrol" {
        Frame label="Sonoff S20 (B0B692 - 5778)" {
            Switch  item=SonoffPs01Switch_Switch
            Switch  item=SonoffPs01Switch_State
            Group item=gSonoffSw1Info
        }
    }

Fazit und nächste Schritte

Mit den oben genannten Dokumentationen und Beispielen ist ein sehr einfacher Einstieg in MQTT, den Sonoff-Endgeräte und der Tasmota-Firmware möglich. Ich muss mir jetzt noch eine bessere Struktur für meine  Topics und Messages erstellen. Im ersten Test habe ich die hinterlegten Nachrichten genommen, ich erst einmal die Funktionsfähigkeit testen wollte.

Nun kann ich auch die restlichen „Tasmoten“ bestellen und damit die Weihnachtsbeleuchtung 2019 vorbereiten 🙂

Wie sind eure Erfahrungen allgemein mit MQTT und mit der Integration in openHAB? Welche Szenarien lassen sich damit noch abbilden?