[KW 50 / 25] : Was habt ihr diese Woche im Smart Home geplant / umgesetzt?

Diese tabellarische Darstellung deiner Wetterdaten ist sehr interessant. Was fĂŒr eine Karte ist das?
Dankeschön!

1 „GefĂ€llt mir“

FĂŒr den EmpfĂ€nger braucht man Zugangsdaten. Aber die einzelnen GerĂ€te nutzen offensichtlich keine. Ob das so toll ist wenn man in einer Gegend wohnt in der viele die Sensoren benutzen, wage ich zu bezweifeln. Hier ist es aber ok.

1 „GefĂ€llt mir“

Die Daten werden ja nicht direkt aus den Stationen gezogen!
Wir greifen da ja per API auf die Datenbank der Webseite zu!

3 „GefĂ€llt mir“

Ich wusste das ich Wunderground schon mal irgendwo gelesen habe! Das ist im Webinterface von meinem Ecowitt. Ich kann also Datenspender sein. Nur glaube ich kaum, dass die Temperatur meines Gartenteich und die Feuchtigkeit eines Blumentopf so von Interesse sind, dass ich die Daten im Netz zur VerfĂŒgung stellen sollte.

Das die Daten von Ecowitt zwischen Sensor und Station anonym fĂŒr jeden in Funkreichweiten zu empfangen sind, halte ich fĂŒr weniger dramatisch.

1 „GefĂ€llt mir“

:man_raising_hand: Also mich wĂŒrde schon interessieren was in deinen Blumentöpfen so los ist! :wink:

Aber so funktioniert es, der Betreiber der Station entscheidet „ob“ und „was“ hochgeladen wird!

2 „GefĂ€llt mir“

Es ist nur ein Blumentopf. Eine Mandarine, die mein Sohn irgendwann als Kern in einen Topf gepflanzt hat. Könnte ja keiner ahnen das es funktioniert. Die ist schon mal ausgetrocknet und fast eingegangen
 jetzt wird sie getrackt.

1 „GefĂ€llt mir“

Aber nicht wenn er doch Das GerÀt weiter oben nutzt oder?

1 „GefĂ€llt mir“

Wenn du den Regensensor meinst der funkt nur local (Zigbee/WLan/etc.)!
Wunderground nutzt die Daten von „kommerziellen Wetterstationen“ !

Aber ĂŒber den Regensensor sind wir hier zu Wunderground gekommen!

2 „GefĂ€llt mir“

Zur tabellarischen Darstellung der Wetterdaten nutze ich multiple-entity-row aus dem HACS.

Zur Frage, was bei Ecowitt wie abgesichert ist:

  • Gateway: Das Gateway hĂ€ngt im lokalen LAN/WLAN und kann optional mit einem Passwort abgesichert werden.
  • Sensoren: Die Sensoren funken unverschlĂŒsselt. Das Gateway koppelt sich automatisch mit allen Sensoren in Funkreichweite. Man kann jedoch ĂŒber die GerĂ€teadresse explizit festlegen, welcher Sensor verwendet werden soll – hilfreich, wenn der Nachbar ebenfalls Ecowitt-Sensoren betreibt. Man kann also fĂŒr sein Gateway definieren, welche Sensoren es nutzen soll; verhindern, dass der Nachbar beispielsweise deinen Regensensor „mitbenutzt“, kann man allerdings nicht.
  • Wetterdienste: Es gibt verschiedene offene Wetterdienste, bei denen man seine Wetterstation optional registrieren und die Daten als „Datenspende“ bereitstellen kann. Dazu gehören Ecowitt selbst, Wunderground, Weathercloud und die WeatherObservationsWebsite. Auch Home Assistant wird als lokaler, benutzerdefinierter Wetterdienst eingetragen und erhĂ€lt darĂŒber seine Daten.
6 „GefĂ€llt mir“

Sag mir mal welche Woche das war auf deinem Diagramm, dann schaue ich bei mir auch mal.

1 „GefĂ€llt mir“


 nach nur 1 Woche Lieferzeit kam heute mein „neues Spielzeug“ aus dem Land der Morgenröte!

Hatte das beim Black Friday Gedöns entdeckt und einfach mal zugeschlagen!

Wird von einem ESP8266 befeuert und lÀsst sich easy per ESP Home zur Zusammenarbeit bewegen!

Mal schnell quick and dirty dazu ĂŒberredet mir Uhrzeit, SOC meiner PV-Batterie und die aktuelle Aussentemperatur anzuzeigen!

Das geht natĂŒrlich auch noch viel schicker aber mehr war jetzt in 30 Minuten nicht drin! :wink:

Wird definitiv eines meiner Winterprojekte! :innocent:

..etwas spĂ€ter, schon etwas schicker. Farbe geht je nach SOC von rot → grĂŒn.

Ein „kleiner“ PV-Monitor könnte dann fertig so aussehen! :wink:

6 „GefĂ€llt mir“

Gerne mehr davon..Also ESP auf dem HA und dann kann man das programmieren?

2 „GefĂ€llt mir“

ESPHome kannst du in HA oder auch extern laufen lassen!

3 „GefĂ€llt mir“

Der liegt bei mir auch schon ne Weile im Korb. Abgeschreckt vom Kauf hat mich die fehlende Info, ob die Uhrzeit und das Datum auch ohne Internet funktioniert. Brauche keine GerÀte die sich mit einer Chinesen- Cloud verbinden. Info wÀre cool.:blush:

1 „GefĂ€llt mir“

So wie ich das verstanden habe, kann der direkt per ESPHome angesteuert werden (was sehr cool ist!). Dadurch sollte eine Internetverbindung definitiv nicht notwendig sein, da du ihn ja lokal per ESPHome betreiben kannst :slight_smile:

1 „GefĂ€llt mir“

Richtig! Ich hole die Zeit von einem Zeitserver (ntp) das kann dein Router oder auch Home Assistant oder natĂŒrlich auch im Netz sein. Ansonsten kommen alle angezeigten Daten lokal von Home Assistant! Nix Cloud!

3 „GefĂ€llt mir“

Nuki Smart Lock Go (2025)

  • Schließzylinder gewechselt

    • beim alten Zylinder konnten nicht gleichzeitig innen und außen SchlĂŒssel stecken
  • Nuki installiert und mit der Handy-APP in Betrieb genommen.

  • Die Einrichtung bzw. MQTT-Integration in HA hat mir 2 Stolpersteine in den Weg gelegt.

    1. Da Matter bei mir (noch) keine Rolle spielt, wollte ich es mit MQTT einrichten. Ich bin es gewohnt, bei MQTT - Verbindungen die Port-Nummer :1883 anzugeben. Die wollte Nuki aber gar nicht wissen. Die Fehlermeldung der Handy-APP war zu allgemein, um es direkt zu erkennen.
    2. FĂŒr MQTT Benutzer und Passwort habe ich ein vorhandenes Konto verwendet. Das Passwort hat sehr viele Stellen. Nuki erlaubt aber nur 32. Da ich es mit Drag-and-Drop eingefĂŒgt habe, ist mir nicht aufgefallen, dass es abgeschnitten wird. Hat 'ne Weile gedauert, bis ich gemerkt habe was los ist. Ob es in der Anleitung steht, weiß ich nicht. Außer QR-Codes lese ich meistens nix. :innocent:
      In der App wird allerdings darauf hingewiesen, ein neues Konto zu verwenden, allerdings aus SicherheitsgrĂŒnden und nicht wegen der Stellenzahl.
  • Wie mein finales Setup mit Hilfe von Home Assistant und Node-RED aussehen wird, habe ich noch nicht zu Ende gedacht. Erstmal die Basics abklĂ€ren.

  • Das Geofencing mit dem Auto-Unlock habe ich nicht aktiviert, da ich (fast) immer durch die Garage ins Haus komme.

  • Was mit HA schon gut funkioniert:

    • NFC-Tag in HA konfiguriert, automatisiert und neben die HaustĂŒr geklebt.

      • das klappt erfreulich gut. Handy entsperren, dran halten - TĂŒr geht auf.
    • Morsetaster eingerichtet:

      • Das Keypad von Nuki war mir als Fallback-Lösung, falls man kein Handy in der Tasche hat, zu teuer.
      • DafĂŒr habe ich einen Aufputz-Installationstaster aus meiner Heimwerkerkiste mit einem Aqara-Fenstersensor (7,-€ im 10er-Pack bei ALI) ausgerĂŒstet und an unverfĂ€nglicher Stelle im Vorbau angebracht.
      • Mit diesem Taster kann man einen Morsecode eingeben.
      • zB. -
- (1 x lang, 3 x kurz, 1 x lang)
      • Da keiner weiß, wofĂŒr der Taster eigentlich da ist und auch den Code nicht kennt, halte ich die Sicherheit fĂŒr ausreichend.
      • Das Timing der Kurz- Langimpulse ist in weiten Bereichen anpassbar und eigentlich intuitiv erlernbar.
      • Die Automation wurde in Node-RED programmiert.
      • den Sequenz-PrĂŒfer fĂŒr den Morsecode habe ich von der „KĂŒnstlichen Inkontinenz“ entwickeln lassen.
/**
 * Konfigurationsparameter
 */
const TARGET_CODE = '-...-'; // Zielcode: 1x Lang, 3x Kurz, 1x Lang
const BASE_UNIT = 400; // Basiseinheit in ms
const MAX_DURATION_DOT = BASE_UNIT * 2; // = 800ms. Alles unter diesem Wert ist ein Punkt (.).
const MAX_INACTIVITY_TIME = 3000; // Code wird nach 3 Sekunden InaktivitÀt gelöscht

// --- Context-Variablen ---
let startTime = context.get('startTime') || 0;
let currentCode = context.get('currentCode') || '';
let resetTimer = context.get('resetTimer') || null;

// 1. Eingangsdaten prĂŒfen
if (typeof msg.payload !== 'string' || (msg.payload !== 'on' && msg.payload !== 'off')) {
    return null;
}

// HOLT DEN ZUSTAND DIREKT VOM PAYLOAD
const newState = msg.payload; 

// 2. Timer-Logik fĂŒr InaktivitĂ€t (Code-ZurĂŒcksetzung)
if (resetTimer) {
    clearTimeout(resetTimer);
}
resetTimer = setTimeout(() => {
    if (currentCode.length > 0) {
        node.warn(`Code ${currentCode} durch InaktivitĂ€t zurĂŒckgesetzt.`);
        context.set('currentCode', '');
    }
    context.set('resetTimer', null);
}, MAX_INACTIVITY_TIME);
context.set('resetTimer', resetTimer);

// --- TASTER GEDRÜCKT (START der Messung: Wechsel auf 'off') ---
if (newState === 'off') {
    startTime = Date.now();
    context.set('startTime', startTime);
    node.status({ fill: "green", shape: "dot", text: "Warte auf Loslassen... (OFF erkannt)" });
    return null;
}

// --- TASTER LOSGELASSEN (ENDE der Messung: Wechsel auf 'on') ---
else if (newState === 'on' && startTime > 0) {
    const duration = Date.now() - startTime;
    startTime = 0; // Messung abgeschlossen
    
    let symbol = '';
    
    // Klassifizierung:
    if (duration < MAX_DURATION_DOT) {
        symbol = '.'; // Kurz = Punkt
    } else {
        symbol = '-'; // Lang = Strich
    }

    // 3. SequenzprĂŒfung
    const nextCharIndex = currentCode.length;
    
    if (TARGET_CODE[nextCharIndex] === symbol) {
        // Das Symbol ist korrekt fĂŒr diese Position
        currentCode += symbol;
        
        if (currentCode === TARGET_CODE) {
            // **ERFOLG** - Gesamter Code eingegeben
            node.status({ fill: "blue", shape: "dot", text: `CODE ERKANNT: ${currentCode}` });
            currentCode = ''; // Code zurĂŒcksetzen fĂŒr nĂ€chste Eingabe
            context.set('currentCode', currentCode);
            context.set('startTime', startTime);
            msg.payload = "SUCCESS";
            return msg;
        }
        
        // Teil-Erfolg, weiter warten
        node.status({ fill: "yellow", shape: "dot", text: `Aktuell: ${currentCode}` });
        
    } else {
        // Falsches Symbol an dieser Stelle: Code zurĂŒcksetzen
        node.status({ fill: "red", shape: "dot", text: `FEHLER. Erwartet: ${TARGET_CODE[nextCharIndex]}, Erhalten: ${symbol}` });
        node.warn(`Code ${currentCode} fehlerhaft. Wird zurĂŒckgesetzt.`);
        currentCode = '';
    }
    
    // 4. Kontext speichern
    context.set('startTime', startTime);
    context.set('currentCode', currentCode);
    return null;
}

// Andere ZustÀnde ignorieren
return null;
1 „GefĂ€llt mir“

ist bei mir genauso :slight_smile:
allerdings erfordert die Apple-Welt einen kleinen Handstand :wink: :confused:

Als Fallback verwenden wir unsere Smart-Watches mit der Nuki-App :wink:

2 „GefĂ€llt mir“

Wenn du das ganze was du so umsetzt als Automationen ĂŒber Home Assistant machen wĂŒrdest, wĂ€ren da echt tolle Sachen bei die man gerne ĂŒbernehmen wĂŒrde :wink:

Hast gute Ideen :+1:t2:

1 „GefĂ€llt mir“

:+1:
Man und ich dachte noch „lass dir das mal lieber schĂŒtzen!“ :innocent:

Schön zu wissen das es noch andere mit dieser „Krankheit“ gibt!:scream:

1 „GefĂ€llt mir“