Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
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.0k

  • 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.

Scheduled Pinned Locked Moved Praktische Anwendungen (Showcase)
8 Posts 4 Posters 4.3k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • N Offline
    N Offline
    nsession
    wrote on last edited by
    #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 Reply Last reply
    0
    • S Offline
      S Offline
      starfish
      wrote on last edited by
      #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 Reply Last reply
      0
      • N Offline
        N Offline
        nsession
        wrote on last edited by
        #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 Reply Last reply
        0
        • A Offline
          A Offline
          andyb
          wrote on last edited by
          #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 Reply Last reply
          0
          • S Offline
            S Offline
            starfish
            wrote on last edited by
            #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 Reply Last reply
            0
            • N Offline
              N Offline
              nsession
              wrote on last edited by
              #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 Reply Last reply
              0
              • S Offline
                S Offline
                starfish
                wrote on last edited by
                #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 Reply Last reply
                0
                • M Offline
                  M Offline
                  meifi2017
                  wrote on last edited by
                  #8

                  Moin,

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

                  LG

                  1 Reply Last reply
                  0
                  Reply
                  • Reply as topic
                  Log in to reply
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes


                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  330

                  Online

                  32.7k

                  Users

                  82.3k

                  Topics

                  1.3m

                  Posts
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                  ioBroker Community 2014-2025
                  logo
                  • Login

                  • Don't have an account? Register

                  • Login or register to search.
                  • First post
                    Last post
                  0
                  • Home
                  • Recent
                  • Tags
                  • Unread 0
                  • Categories
                  • Unreplied
                  • Popular
                  • GitHub
                  • Docu
                  • Hilfe