Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. [Anleitung] Katze per PIR und ESP8266 erkennen und Melden.

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

[Anleitung] Katze per PIR und ESP8266 erkennen und Melden.

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
8 Beiträge 4 Kommentatoren 4.3k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • N Offline
    N Offline
    nsession
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    da ich iobroker echt klasse finden und sen support hier auch will cih meinen Teil dazu beitragen.

    Ich habe mir einen "Katzen sensor" gebaut mit einem ESP8266 welcher per mqtt iobroker einen wert setzt und mich dann per Pushbullet benachrichtigt.

    Hier mal alles was man dazu braucht.

    Schaltplan gibt es leider nicht mehr.

    ich habe einen 470micro Farad Elko zur spannungsstabilisierung

    Eine micro USB anschluß und einen 5v auf 3.3 V Stepdown

    Wer fragen hat oder noch etwas braucht gerne anfragen.

    Ist alles noch nicht 100% fertig und wird momentan nur sporadisch eingesetzt.

    Muss das ganze noch etwas kleiner machen und den 3d-Drucker anschmeißen für ein Schönes gehäuse.

    Strom nutze ich ein USB-Ladegerät von einem handy mit 500mA und 5V.

    der taster und die 2 Pins sowie die obere Steckleiste benötigt man nur zum Flashen des ESP.

    das iobroker script sieht so aus

    on({id: "mqtt.0.ESP-PIR-01.Motion"/*ESP-PIR-01/Motion*/, val: true}, function (obj) {
    
            sendTo("pushbullet", {
                message: "Momo will rein", //Text der Nachricht
                title: "Katzenalarm", //Titel der Nachricht
                type: "note" //Der Typ
            }
       );
    });
    

    Arduino IDE

    `/*
     ESP8266 MQTT With PIR and DHT22
     Based on ESP8266 Arduino Sample and some other scripts
    
    */
    
    #include <esp8266wifi.h>#include <pubsubclient.h>#include "DHT.h"
    
    #define DHTPIN 12     // what digital pin we're connected to
    // Uncomment whatever type you're using!
    //#define DHTTYPE DHT11   // DHT 11
    #define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
    //#define DHTTYPE DHT21   // DHT 21 (AM2301)
    DHT dht(DHTPIN, DHTTYPE);
    float humidity, temp_f; // Values read from sensor
    
    // Update these with values suitable for your network.
    
    const char* ssid = "YOURSSID";
    const char* password = "WIFI PSK";
    const char* mqtt_server = "SERVER IP";
    int counter = 0;
    int previousReading = LOW;
    String message = "DHT";
    String messaget = "DHT";
    String messageh = "DHT";
    String topicTemp = "ESP-PIR-01/temp";
    String topicHumid = "ESP-PIR-01/humid";
    String topicMotion = "ESP-PIR-01/Motion";
    
    WiFiClient espClient;
    PubSubClient client(espClient);
    long lastMsg = 0;
    char msg[50];
    int value = 0;
    
    void setup_wifi() {
    
      delay(10);
      // We start by connecting to a WiFi network18
      Serial.println();
      Serial.print("Connecting");
      Serial.println(ssid);
    
      WiFi.begin(ssid, password);
    
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
      }
    
      Serial.println("");
      Serial.println("WiFi connected");
      Serial.println("IP address: ");
      Serial.println(WiFi.localIP());
    }
    
    void callback(char* topic, byte* payload, unsigned int length) {
      Serial.print("Messageved [");
      Serial.print(topic);
      Serial.print("] ");
      for (int i = 0; i < length; i++) {
        Serial.print((char)payload[i]);
      }
      Serial.println();
    
      // Switch on the LED if an 1 was received as first character
      if ((char)payload[0] == '1') {
        digitalWrite(BUILTIN_LED, LOW);   // Turn the LED on (Note that LOW is the voltage level
        // but actually the LED is on; this is because
        // it is acive low on the ESP-01)
      } else {
        digitalWrite(BUILTIN_LED, HIGH);  // Turn the LED off by making the voltage HIGH
      }
    
    }
    
    void reconnect() {
      // Loop until we're reconnected
      while (!client.connected()) {
        Serial.print("Attempting connection...");
        // Attempt to connect
        if (client.connect("ESP8266Client")) {
          Serial.println("connected");
          // Once connected, publish an announcement...
          client.publish("ESP-PIR-01", "hello world");
          // ... and resubscribe
          client.subscribe("inTopic");
        } else {
          Serial.print("failed");
          Serial.print(client.state());
          Serial.println(" try again in 5 seconds");
          // Wait 5 seconds before retrying
          delay(5000);
        }
      }
    }
    
    void setup() {
      pinMode(BUILTIN_LED, OUTPUT);     // Initialize the BUILTIN_LED pin as an output
      Serial.begin(115200);
      setup_wifi();
      client.setServer(mqtt_server, 1883);
      client.setCallback(callback);
      pinMode(13, INPUT);
      dht.begin();
    }
    
    void loop() {
    
        if (!client.connected()) {
          reconnect();
        }
        client.loop();
    
        long now = millis();
        if (now - lastMsg > 60000) {
          lastMsg = now;
          float h = dht.readHumidity();
          // Read temperature as Celsius (the default)
          float t = dht.readTemperature();
    
          // Check if any reads failed and exit early (to try again).
          if (isnan(h) || isnan(t)) {
            Serial.println("Failed to read from DHT sensor!");
            return;
          }
    
          // Compute heat index in Celsius (isFahreheit = false)
          //float hic = dht.computeHeatIndex(t, h, false);
          char t2[50];
          char h2[50];
          dtostrf(t, 5, 2, t2);
          dtostrf(h, 5, 2, h2);
    
          //message = "{\"idx\":37,\"svalue\":\""+String(t2)+";"+String((int)h)+";0\"}";
          messaget = String(t2);
          messageh = String(h2);
          client.publish(topicTemp.c_str(), messaget.c_str());
          client.publish(topicHumid.c_str(), messageh.c_str());
          //client.publish("/sensor/temp", t2 );  
          //client.publish("/sensor/humidity", h2 );
        }
    
        int reading = digitalRead(13);
    
        Serial.println(reading);
        if (previousReading == LOW && reading == HIGH) {
        //if (reading == HIGH) {
        counter++;
        message = String("true");
        client.publish(topicMotion.c_str(), message.c_str());
        //client.publish("/sensor/movement", "Motion!");  
        delay(1000);
    
        } else if (previousReading == HIGH && reading == LOW) {
        message = String("false");
        client.publish(topicMotion.c_str(), message.c_str());
        //client.publish("/sensor/movement", "Motion!");  
        delay(1000);
        }
        previousReading = reading;
    
    }</pubsubclient.h></esp8266wifi.h>` 
      [2344_blackboard.png](/assets/uploads/files/2344_blackboard.png)  
      [2344_board1.png](/assets/uploads/files/2344_board1.png)  
      [2344_board2.png](/assets/uploads/files/2344_board2.png)  
      [2344_pir.png](/assets/uploads/files/2344_pir.png)  [/i]
    
    1 Antwort Letzte Antwort
    0
    • S Offline
      S Offline
      starfish
      schrieb am zuletzt editiert von
      #2

      wie erkennst Du, wenn sich eine fremde Katze anmeldet ? Das Problem hatte ich hier schon ohne ESP8266 - mit einer einfachen Katzenklappe mit entsprechenden Kämpfen im Keller :lol: Aktuell habe ich das mit einer chip-gesteuerten Klappe gelöst - zumindest teilweise, denn die Nachbarskatze hat nämlich erkannt, dass, wenn sie schnell genug hintennachspringt, ist die Klappe noch freigeschaltet. Katzen sind schlau ….

      1 Antwort Letzte Antwort
      0
      • N Offline
        N Offline
        nsession
        schrieb am zuletzt editiert von
        #3

        Hi,

        ich hab keine klappe die steht bei mir dann vor der Terassentür im Esszimmer.

        Ich muss die Manuell reinlassen, aber da ich das nicht mitbekomme wenn ich aufem sofa liege hab mir einen schalter im VIS eingabeut mit dem ich daen versand der pushnachricht aktiviere oder deaktiviere.

        1 Antwort Letzte Antwort
        0
        • A Offline
          A Offline
          andyb
          schrieb am zuletzt editiert von
          #4

          Ich hab mal irgendwo ne Luxus Lösung gelesen mit so ne Chipklappe aber die Klappe öffnet und schließt mit einem Dachfenstermotor.

          Ich hab mir sowys schon für meine Terassentüre überlegt wenn der Hund im Garten ist, diese per Bewegungsmelder und einem solchen Motor zu öffnen. Geht halt dann nur wenn ich Zuhause bin und die Türe nicht verschlossen, würde mir aber reichen.

          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            starfish
            schrieb am zuletzt editiert von
            #5

            :lol: das problem bei den klappen ist wohl , dass die alle nicht dicht sind. das spricht für eine motorlösung oder eben für die luxuslösung mit dem gut erzogenen herrchen

            1 Antwort Letzte Antwort
            0
            • N Offline
              N Offline
              nsession
              schrieb am zuletzt editiert von
              #6

              Die Lösung von mir mit dem PIR is ja nicht nur für Hund / Katze einsetzbar.

              Im Prinzip kann man damit ja auch lichter schalten oder sich seine eigene Alarmanlage bauen.

              Genug von den Melden verteilen im Haus und im Away Modus darf sich im Haus nix bewegen sonst alarm / Pushnachricht oder was auch immer. :D

              Ich mach mir mal nach meinem Urlaub die Mühe und zeichen nich einen besseren schaltplan.

              Zudem muss ich noch ein Gehäuse aus dem 3d Drucker lassen.

              1 Antwort Letzte Antwort
              0
              • S Offline
                S Offline
                starfish
                schrieb am zuletzt editiert von
                #7

                @nsession nichts gegen Deine Anleitung (danke), ich wollte als Katzennarr nur meine Erfahrungen kundtun. Die ESP8266 sind Super-Module. Ich hab ja auch schon darüber geschrieben. Aber Du hast mich auf eine Idee gebracht, ich werde meine Chip-Katzenklappe auch mit so einem ESP8266 ins iobroker-system integrieren ev. noch mit einer Richtungserkennung (rein-raus). Übrigens, solange die Katze sich frei im Haus bewegt, ist nichts mit Einbruchalarm per Innenbewegungsmelder - oder aber man justiert die sorgfältigst, so dass die Katze nie in den Erfassungsbereich kommen kann.

                1 Antwort Letzte Antwort
                0
                • M Offline
                  M Offline
                  meifi2017
                  schrieb am zuletzt editiert von
                  #8

                  Moin,

                  gibt es hier schon was neues zum Thema ESP / Katzenklappe / Integration iobroker?

                  LG

                  1 Antwort Letzte Antwort
                  0
                  Antworten
                  • In einem neuen Thema antworten
                  Anmelden zum Antworten
                  • Älteste zuerst
                  • Neuste zuerst
                  • Meiste Stimmen


                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  723

                  Online

                  32.6k

                  Benutzer

                  82.3k

                  Themen

                  1.3m

                  Beiträge
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                  ioBroker Community 2014-2025
                  logo
                  • Anmelden

                  • Du hast noch kein Konto? Registrieren

                  • Anmelden oder registrieren, um zu suchen
                  • Erster Beitrag
                    Letzter Beitrag
                  0
                  • Home
                  • Aktuell
                  • Tags
                  • Ungelesen 0
                  • Kategorien
                  • Unreplied
                  • Beliebt
                  • GitHub
                  • Docu
                  • Hilfe