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. Hardware
  4. Windanzeige mit Ventus W132 & Wemos D1 Mini

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    477

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.6k

Windanzeige mit Ventus W132 & Wemos D1 Mini

Geplant Angeheftet Gesperrt Verschoben Hardware
45 Beiträge 14 Kommentatoren 11.2k Aufrufe 17 Watching
  • Ä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.
  • C Offline
    C Offline
    claus1993
    schrieb am zuletzt editiert von
    #25

    @hugo1215

    sorry dann kann ich leider nicht weiterhelfen. Sollte mir etwas einfallen würde ich mich melden.

    H 1 Antwort Letzte Antwort
    0
    • premoP Online
      premoP Online
      premo
      schrieb am zuletzt editiert von premo
      #26

      Falls Interesse besteht dann könnte ich mal ein einfaches Ansteuern der Markise anbieten.

      Bei mir ist ein Eltako WS Windsensor mit Wemos D1 mini im Einsatz.
      Mit dem Skript wird über MQTT die Windstärke in km/h in IOBroker
      angezeigt.
      Der Eltako WS erzeugt pro Umdrehung 2 Impulse, beim W132 wird nur 1 Impuls erzeugt.
      Dieses muss im Skript noch eingestellt werden.
      Anbei die Beschreibung mit Skript

      esp8266-anemometer-master.zip Beschreibung.zip

      Gerade noch was Intressantes gefunden.
      https://gist.github.com/micw/098709efc83a9d9ebf16d14cea4ca38e

      1 Antwort Letzte Antwort
      0
      • H Offline
        H Offline
        hugo1215
        schrieb am zuletzt editiert von hugo1215
        #27

        hallo @premo
        danke das du dein Script zur verfügung stellst. Werde es mal ausprobieren. WO stelle ich die Impulse in deinem Script ein. Ein bisschen erfahrung habe ich aber nicht genug.
        Denn Link von Github kenne ich schon leider klappt es damit nicht.

        Gruß

        premoP 1 Antwort Letzte Antwort
        0
        • C claus1993

          @hugo1215

          sorry dann kann ich leider nicht weiterhelfen. Sollte mir etwas einfallen würde ich mich melden.

          H Offline
          H Offline
          hugo1215
          schrieb am zuletzt editiert von
          #28

          @claus1993 sagte in Windanzeige mit Ventus W132 & Wemos D1 Mini:

          @hugo1215

          sorry dann kann ich leider nicht weiterhelfen. Sollte mir etwas einfallen würde ich mich melden.

          Hallo @claus1993,
          habe den Fehler gefunden. Bei den Board Verwaltung im Arduino Programm muss die Version 2.4.1 installiert sein. Dann klappt es.
          Bekomme jetzt auch die Daten in Iobroker. Soweit so gut. Kann man die Daten auch schneller Abrufen und nicht nur alle 30 sek??
          Gruß

          C ? 2 Antworten Letzte Antwort
          0
          • H hugo1215

            @claus1993 sagte in Windanzeige mit Ventus W132 & Wemos D1 Mini:

            @hugo1215

            sorry dann kann ich leider nicht weiterhelfen. Sollte mir etwas einfallen würde ich mich melden.

            Hallo @claus1993,
            habe den Fehler gefunden. Bei den Board Verwaltung im Arduino Programm muss die Version 2.4.1 installiert sein. Dann klappt es.
            Bekomme jetzt auch die Daten in Iobroker. Soweit so gut. Kann man die Daten auch schneller Abrufen und nicht nur alle 30 sek??
            Gruß

            C Offline
            C Offline
            claus1993
            schrieb am zuletzt editiert von
            #29

            @hugo1215 freut mich das es jetzt läuft. Was eine Verkürzung der Abfragezeit betrifft meine ich gelesen zu haben das der Skript Vergleichswerte zur Berechnung benötigt. Wenn dem so ist müsste man den Skript und die Berechnung anpassen.

            H 1 Antwort Letzte Antwort
            0
            • C claus1993

              @hugo1215 freut mich das es jetzt läuft. Was eine Verkürzung der Abfragezeit betrifft meine ich gelesen zu haben das der Skript Vergleichswerte zur Berechnung benötigt. Wenn dem so ist müsste man den Skript und die Berechnung anpassen.

              H Offline
              H Offline
              hugo1215
              schrieb am zuletzt editiert von
              #30

              @claus1993 hast du einen Tip wo ich schauen kann??
              Gruß

              1 Antwort Letzte Antwort
              0
              • H hugo1215

                hallo @premo
                danke das du dein Script zur verfügung stellst. Werde es mal ausprobieren. WO stelle ich die Impulse in deinem Script ein. Ein bisschen erfahrung habe ich aber nicht genug.
                Denn Link von Github kenne ich schon leider klappt es damit nicht.

                Gruß

                premoP Online
                premoP Online
                premo
                schrieb am zuletzt editiert von
                #31

                @hugo1215 sagte in Windanzeige mit Ventus W132 & Wemos D1 Mini:

                WO stelle ich die Impulse in deinem Script ein.

                In der "myconfig_samples.h"
                In der Zeile 16
                const float number_reed = 1

                1 Antwort Letzte Antwort
                0
                • C claus1993

                  @mwyraz

                  Habe mal alles in einen Sketch kopiert und ihn dann überprüfen lassen.

                  Beim kopieren habe ich die define und include untereinander geschrieben. Den Rest der einzelnen Sketche habe ich dann darunter kopiert. Zusätzlich habe ich die define für die Userberechtigungen in den Sketch kopiert. Im Endeffekt habe ich aus 4 einzelnen Sketchen einen einzigen erstellt.

                  /**
                   * Ein ESP8622 NodeMCU Develompent Board, welches Sensorwerte via MQTT verschickt
                   * http://frightanic.com/iot/comparison-of-esp8266-nodemcu-development-boards/
                   * 
                   * Umbau eines W132 Windsensors von ELV
                   * 
                   * - Abtrennen des 433 MHZ-Senders, welcher mit 3 Leitungen (Schwarz, Rot, Blau) an der Logik-Platine angeschlossen ist
                   * - Anschließen des ESP-8266
                   *   - Schwarz -> GND
                   *   - Rot -> 3.3V
                   *   - Blau -> D2
                   * 
                   * Eine Beschreibung des Protokoll ist unter http://www.tfd.hu/tfdhu/files/wsprotocol/auriol_protocol_v20.pdf zu finden, hilfreich ist auch https://sourceforge.net/p/wmrx00/discussion/855158/thread/b3a47730/
                   * - Bits und Sync-Signale werden über die Abstände der fallenden Flanke codiert
                   * - diese Implementierung nutzt dazu einen Interrupt auf der fallenden Flanke
                   */
                  
                  
                  #define MQTT_ALIVE_TOPIC "sensor/%s/alive"
                  #define MQTT_DATA_TOPIC "sensor/%s/%s"
                  #define MQTT_KEEPALIVE 10
                  
                  #define WIFI_SSID "mywifi"
                  #define WIFI_PASSWORD "topsecret"
                  #define MQTT_HOST "10.10.10.1"
                  #define MQTT_PORT 1883
                  #define MQTT_USERNAME "sensor"
                  #define MQTT_PASSWORD "secret"
                  
                  #include <common_wifi.h>
                  #include <common_mqtt.h>
                  #include <esp_pins.h>
                  #include <ESP8266WiFi.h>
                  #include <WiFiUdp.h>
                  #include <private_wifi.h>
                  #include <PubSubClient.h>
                  
                  #define PIN_ANEMOMETER D2
                  
                  void setup_wifi() {
                    delay(10);
                    // We start by connecting to a WiFi network
                    Serial.println();
                    Serial.print("Connecting to ");
                    Serial.println(WIFI_SSID);
                  
                    WiFi.mode(WIFI_STA); // disable hotspot
                    WiFi.begin(WIFI_SSID,WIFI_PASSWORD);
                    wdt_reset(); // Watchdock resetten
                  
                    while (WiFi.status() != WL_CONNECTED) {
                      delay(500);
                      Serial.print(".");
                    }
                  
                    Serial.println("");
                    Serial.println("WiFi connected");
                    Serial.println("IP address: ");
                    Serial.println(WiFi.localIP());
                  }
                  
                  extern const char* MQTT_FALSE = "0";
                  
                  extern const char* MQTT_TRUE = "1";
                  
                  
                  
                  WiFiClient wifiClient;
                  
                  PubSubClient mqttClient(wifiClient);
                  
                  
                  
                  char MQTT_CLIENT_ID[15];
                  
                  
                  
                  void setup_mqtt() {
                  
                    mqttClient.setServer(MQTT_HOST, MQTT_PORT);
                  
                    byte mac[6];
                  
                    WiFi.macAddress(mac);
                  
                    sprintf(MQTT_CLIENT_ID, "ESP8266_%02X%02X%02X", mac[3], mac[4], mac[5]);
                  
                  }
                  
                  
                  
                  void connect_mqtt(char* MQTT_TOPIC) {
                  
                    // Loop until we're reconnected
                  
                    while (!mqttClient.connected()) {
                  
                      Serial.print("Attempting MQTT connection...");
                  
                      // Attempt to connect
                  
                  #if defined(MQTT_ALIVE_TOPIC)
                  
                      byte mac[6];
                  
                      WiFi.macAddress(mac);
                  
                      char aliveTopicId[7];
                  
                      sprintf(aliveTopicId, "%02X%02X%02X", mac[3], mac[4], mac[5]);
                  
                      char aliveTopic[255];
                  
                      sprintf(aliveTopic, MQTT_ALIVE_TOPIC, aliveTopicId);
                  
                      if (mqttClient.connect(MQTT_CLIENT_ID, MQTT_USERNAME, MQTT_PASSWORD, aliveTopic, 1, 1, MQTT_FALSE)) {
                  
                        Serial.println("connected with last will and testament enabled");
                  
                        mqttClient.publish(aliveTopic,MQTT_TRUE,1);
                  
                        Serial.print("Sent alive message to ");
                  
                        Serial.println(aliveTopic);
                  
                  #else
                  
                      if (mqttClient.connect(MQTT_CLIENT_ID, MQTT_USERNAME, MQTT_PASSWORD)) {
                  
                        Serial.println("connected");
                  
                  #endif
                  
                        if (MQTT_TOPIC && mqttClient.subscribe(MQTT_TOPIC,1)) {
                  
                          Serial.print("Subscribed to ");
                  
                          Serial.println(MQTT_TOPIC);
                  
                        }
                  
                      } else {
                  
                        Serial.print("failed, rc=");
                  
                        Serial.print(mqttClient.state());
                  
                        Serial.println(" try again in 5 seconds");
                  
                        // Wait 5 seconds before retrying
                  
                        delay(5000);
                  
                        wdt_reset();
                  
                      }
                  
                    }
                  
                  }
                  
                  volatile unsigned long lastTrigger;
                  
                  byte mac[6];
                  char sensorId[7];
                  char topicBuffer[255];
                  char messageBuffer[255];
                  
                  byte bitPos=-1;
                  byte messageNum=-1;
                  // there are always sent 6 messages. For temperature/humidity, the message is repeatet 6 times. For wind, 2 messages are repeatet 3 times each
                  int message1Bits[36];
                  int message2Bits[36];
                  
                  bool verifyChecksum(int bits[]) {
                    int checksum=0xf;
                    for (int i=0;i<8;i++) {
                      checksum-=bits[i*4]|bits[i*4+1]<<1|bits[i*4+2]<<2|bits[i*4+3]<<3;
                    }
                    checksum&=0xf;
                    int expectedChecksum=bits[32]|bits[33]<<1|bits[34]<<2|bits[35]<<3;
                    return checksum==expectedChecksum;
                  }
                  
                  void decodeMessages() {
                    if (!verifyChecksum(message1Bits)) {
                      Serial.println("Checksum mismatch in message #1");
                      return;
                    }
                    
                  /*  
                    Serial.println("---");
                    for (int i=0;i<36;i++) {
                      Serial.print(message1Bits[i]);
                      Serial.print(" ");
                    }
                    Serial.println();
                    for (int i=0;i<36;i++) {
                      Serial.print(message2Bits[i]);
                      Serial.print(" ");
                    }
                    Serial.println();
                    */
                    
                    if (message1Bits[9]==1 && message1Bits[10]==1) { // wind data (2 messages)
                  
                      if (!verifyChecksum(message2Bits)) {
                        Serial.println("Checksum mismatch in message #1");
                        return;
                      }
                      
                      float windSpeed=(message1Bits[24]    | message1Bits[25]<<1 | message1Bits[26]<<2 | message1Bits[27]<<3 |
                                       message1Bits[28]<<4 | message1Bits[29]<<5 | message1Bits[30]<<6 | message1Bits[31]<<7)*0.2f;
                      Serial.print("Average wind speed: ");
                      Serial.print(windSpeed);
                      Serial.println(" m/s");
                  
                      sprintf(topicBuffer, MQTT_DATA_TOPIC, sensorId, "wind_speed");
                      String value = String(windSpeed,1);
                      value.toCharArray(messageBuffer,255);
                      mqttClient.publish(topicBuffer,(byte*)messageBuffer,strlen(messageBuffer));
                  
                  
                      float windGust=(message2Bits[24]    | message2Bits[25]<<1 | message2Bits[26]<<2 | message2Bits[27]<<3 |
                                      message2Bits[28]<<4 | message2Bits[29]<<5 | message2Bits[30]<<6 | message2Bits[31]<<7)*0.2f;
                      Serial.print("Max wind speed: ");
                      Serial.print(windGust);
                      Serial.println(" m/s");
                  
                      sprintf(topicBuffer, MQTT_DATA_TOPIC, sensorId, "wind_gust");
                      value = String(windGust,1);
                      value.toCharArray(messageBuffer,255);
                      mqttClient.publish(topicBuffer,(byte*)messageBuffer,strlen(messageBuffer));
                  
                      int windDirection=(message2Bits[15]    | message2Bits[16]<<1 | message2Bits[17]<<2 | message2Bits[18]<<3 |
                                         message2Bits[19]<<4 | message2Bits[20]<<5 | message2Bits[21]<<6 | message2Bits[22]<<7 |
                                         message2Bits[23]<<8);
                      Serial.print("Wind direction: ");
                      Serial.print(windDirection);
                      Serial.println(" °");
                  
                      sprintf(topicBuffer, MQTT_DATA_TOPIC, sensorId, "wind_direction");
                      value = String(windDirection);
                      value.toCharArray(messageBuffer,255);
                      mqttClient.publish(topicBuffer,(byte*)messageBuffer,strlen(messageBuffer));
                      
                    } else {  // temperature/humidity in both messages
                      int temperatureRaw=(message1Bits[12]    | message1Bits[13]<<1 | message1Bits[14]<<2 | message1Bits[15]<<3 |
                                          message1Bits[16]<<4 | message1Bits[17]<<5 | message1Bits[18]<<6 | message1Bits[19]<<7 | 
                                          message1Bits[20]<<8 | message1Bits[21]<<9 | message1Bits[22]<<10| message1Bits[23]<<11);
                      if (temperatureRaw& 0x800) temperatureRaw+=0xF000; // negative number, 12 to 16 bit
                      float temperature=temperatureRaw*0.1f;
                      Serial.print("Temperature: ");
                      Serial.print(temperature);
                      Serial.println(" °C");
                  
                      sprintf(topicBuffer, MQTT_DATA_TOPIC, sensorId, "temp");
                      String value = String(temperature,1);
                      value.toCharArray(messageBuffer,255);
                      mqttClient.publish(topicBuffer,(byte*)messageBuffer,strlen(messageBuffer));
                      
                      int humidity=(message1Bits[24] | message1Bits[25]<<1 | message1Bits[26]<<2 | message1Bits[27]<<3 )+
                                   (message1Bits[28] | message1Bits[29]<<1 | message1Bits[30]<<2 | message1Bits[31]<<3 )*10;
                      Serial.print("Humidity: ");
                      Serial.print(humidity);
                      Serial.println(" %");
                  
                      sprintf(topicBuffer, MQTT_DATA_TOPIC, sensorId, "humi");
                      value = String(humidity);
                      value.toCharArray(messageBuffer,255);
                      mqttClient.publish(topicBuffer,(byte*)messageBuffer,strlen(messageBuffer));
                      
                    }
                    
                  }
                  
                  void dataTrigger() {
                    unsigned long now=micros();
                    unsigned long duration=now-lastTrigger;
                    lastTrigger=now;
                  
                    if (duration>30000) { // a news block of messages begins
                      messageNum=0;
                    }
                  
                    if (duration>7000) { // ~9 ms = sync signal
                      if (bitPos==36) { // we got a full message
                        if (messageNum==0) { // 1st message completed
                          messageNum=1;
                        } else if (messageNum==1) { // 2nd message completed
                          decodeMessages();
                          messageNum=-1;
                        }
                      }
                      bitPos=0; // Nachricht begonnen
                      return;
                    }
                  
                    if (messageNum<0) return; // ignore repeated messages
                    if (bitPos<0) return; // invalid message, ignored
                  
                    if (messageNum==0) {
                      message1Bits[bitPos]=(duration>3300); // 2.2ms=LOW, 4.4ms = HIGH bits
                    } else {
                      message2Bits[bitPos]=(duration>3300); // 2.2ms=LOW, 4.4ms = HIGH bits
                    }
                    bitPos++;
                    if (bitPos>36) bitPos=-1; // message too long -> invalid
                  }
                  
                  void setup() {
                    wdt_enable(WDTO_8S); // Watchdog muss alle 8 Sekunden resettet werden
                    Serial.begin(115200);
                    Serial.println("Initializing");
                  
                    WiFi.macAddress(mac);
                    sprintf(sensorId, "%02X%02X%02X", mac[3], mac[4], mac[5]);
                  
                    setup_wifi();
                    wdt_reset(); // Watchdog resetten
                    setup_mqtt();
                    wdt_reset(); // Watchdog resetten
                    
                    pinMode(PIN_ANEMOMETER,INPUT);
                    attachInterrupt(digitalPinToInterrupt(PIN_ANEMOMETER), dataTrigger, FALLING);
                  
                    wdt_reset(); // Watchdog resetten
                  
                    Serial.println("Starting");
                  }
                  
                  void loop() {
                    wdt_reset(); // Watchdog resetten
                    connect_mqtt(0);
                    wdt_reset(); // Watchdog resetten
                    mqttClient.loop();
                  }
                  

                  Beim Prüfen bekomme ich folgende Fehlerantwort; "common_wifi.h: No such file or Directory"

                  Woran kann das liegen?

                  Danke für deine Unterstützung!

                  M Offline
                  M Offline
                  Meldb
                  schrieb am zuletzt editiert von
                  #32

                  @claus1993 Hallo ich habe auch dein Skipt verwendet. Super danke erstmal das du es hier zu verfügung gestellt hat. Jetzt habe ich noch eine Frage weiter oben habt ihr über den Regensensor W174 geschrieben habt ihr das auch an dem Wemo mit dem Skript? Oder wie habt ihr das gemacht?

                  C 1 Antwort Letzte Antwort
                  0
                  • M Meldb

                    @claus1993 Hallo ich habe auch dein Skipt verwendet. Super danke erstmal das du es hier zu verfügung gestellt hat. Jetzt habe ich noch eine Frage weiter oben habt ihr über den Regensensor W174 geschrieben habt ihr das auch an dem Wemo mit dem Skript? Oder wie habt ihr das gemacht?

                    C Offline
                    C Offline
                    claus1993
                    schrieb am zuletzt editiert von
                    #33

                    @Meldb
                    Jepp der läuft mit einem Wemos D1 Mini.

                    M 1 Antwort Letzte Antwort
                    0
                    • C claus1993

                      @Meldb
                      Jepp der läuft mit einem Wemos D1 Mini.

                      M Offline
                      M Offline
                      Meldb
                      schrieb am zuletzt editiert von
                      #34

                      @claus1993 Hallo ich habe heute mein Sensor W132 bekommen ich bekomme immer den gleichen Temperatur u. Luftfeuchte Wert ist das bei dir auch so?

                      C 1 Antwort Letzte Antwort
                      0
                      • M Meldb

                        @claus1993 Hallo ich habe heute mein Sensor W132 bekommen ich bekomme immer den gleichen Temperatur u. Luftfeuchte Wert ist das bei dir auch so?

                        C Offline
                        C Offline
                        claus1993
                        schrieb am zuletzt editiert von claus1993
                        #35

                        @Meldb
                        Habe den Sensor mal angeklemmt und sehe das sich nur die Werte für den Wind ändern. Bei Temperatur und Humity ist schon weit längeren unverändert und wird bei einem Update auch nicht kurz grün. Kann die leider nicht sagen woran das liegt. Vielleicht gibt es den ein oder anderen Experten der den Code lesen kann und dort einen Fehler findet.

                        1 Antwort Letzte Antwort
                        0
                        • H hugo1215

                          @claus1993 sagte in Windanzeige mit Ventus W132 & Wemos D1 Mini:

                          @hugo1215

                          sorry dann kann ich leider nicht weiterhelfen. Sollte mir etwas einfallen würde ich mich melden.

                          Hallo @claus1993,
                          habe den Fehler gefunden. Bei den Board Verwaltung im Arduino Programm muss die Version 2.4.1 installiert sein. Dann klappt es.
                          Bekomme jetzt auch die Daten in Iobroker. Soweit so gut. Kann man die Daten auch schneller Abrufen und nicht nur alle 30 sek??
                          Gruß

                          ? Offline
                          ? Offline
                          Ein ehemaliger Benutzer
                          schrieb am zuletzt editiert von Ein ehemaliger Benutzer
                          #36

                          @hugo1215 said in Windanzeige mit Ventus W132 & Wemos D1 Mini:

                          habe den Fehler gefunden. Bei den Board Verwaltung im Arduino Programm muss die Version 2.4.1 installiert sein. Dann klappt es.

                          @mwyraz
                          Vielleicht könnte man den Punkt mit der Version 2.4.1 auf GitHub hinzufügen?

                          1 Antwort Letzte Antwort
                          0
                          • ? Offline
                            ? Offline
                            Ein ehemaliger Benutzer
                            schrieb am zuletzt editiert von
                            #37

                            Wie versorgt ihr das Teil mit Strom? Die Batterien halten ja nicht allzulange.

                            C 1 Antwort Letzte Antwort
                            0
                            • ? Ein ehemaliger Benutzer

                              Wie versorgt ihr das Teil mit Strom? Die Batterien halten ja nicht allzulange.

                              C Offline
                              C Offline
                              claus1993
                              schrieb am zuletzt editiert von
                              #38

                              @Brainbug said in Windanzeige mit Ventus W132 & Wemos D1 Mini:

                              Wie versorgt ihr das Teil mit Strom? Die Batterien halten ja nicht allzulange.

                              Die Versorgung erfolgt über den D1 Mini und dort über ein USB Netzteil.

                              1 Antwort Letzte Antwort
                              0
                              • ? Offline
                                ? Offline
                                Ein ehemaliger Benutzer
                                schrieb am zuletzt editiert von
                                #39

                                Die Temperatur Messung ist seltsam, morgens um 10 kommen Daten bis Abends um kurz vor 20 Uhr dann nichts mehr bis am nächsten Tag. Wie wenn im Code eine Zeit definiert wäre...

                                1 Antwort Letzte Antwort
                                0
                                • C Offline
                                  C Offline
                                  cap
                                  schrieb am zuletzt editiert von
                                  #40

                                  Hallo zusammen,

                                  ich versuche mit dem Code wir im Post von @claus1993 mein W132 mit dem D1 mini zum Laufen zu bringen. Das Kompilieren und Flashen geht, das Ding verbindet sich auch mit dem WiFi, jedoch bekomme ich im Serial Monitor die Fehlermeldung

                                  ISR not in IRAM!
                                  

                                  Hier die komplette Fehlermeldung:

                                  18:08:30.418 -> ...
                                  18:08:31.404 -> WiFi connected
                                  18:08:31.404 -> IP address: 
                                  18:08:31.404 -> 192.168.---.---
                                  18:08:31.404 -> ISR not in IRAM!
                                  18:08:31.404 -> 
                                  18:08:31.404 -> User exception (panic/abort/assert)
                                  18:08:31.452 -> --------------- CUT HERE FOR EXCEPTION DECODER ---------------
                                  18:08:31.452 -> 
                                  18:08:31.452 -> Abort called
                                  18:08:31.452 -> 
                                  18:08:31.452 -> >>>stack>>>
                                  18:08:31.452 -> 
                                  18:08:31.452 -> ctx: cont
                                  18:08:31.452 -> sp: 3ffffef0 end: 3fffffc0 offset: 0000
                                  18:08:31.452 -> 3ffffef0:  00000009 0000002e 3ffef7d4 40205879  
                                  18:08:31.452 -> 3fffff00:  000000fe 00000000 00000000 00000000  
                                  18:08:31.452 -> 3fffff10:  00000000 00000000 00000000 00ff0000  
                                  18:08:31.452 -> 3fffff20:  5ffffe00 5ffffe00 00000000 00000000  
                                  18:08:31.452 -> 3fffff30:  00000002 00000004 3ffee970 40204e16  
                                  18:08:31.452 -> 3fffff40:  40100476 3ffee990 3ffe8844 40204e28  
                                  18:08:31.452 -> 3fffff50:  40232ddd 0000000e 3ffee970 40205335  
                                  18:08:31.452 -> 3fffff60:  00000000 000000d6 3ffee85d 40203c68  
                                  18:08:31.498 -> 3fffff70:  3ffe862b 3ffee954 3ffee970 3ffeeabc  
                                  18:08:31.498 -> 3fffff80:  3ffee990 3ffee85d 3ffee970 402053e4  
                                  18:08:31.498 -> 3fffff90:  3ffee990 3ffee85d 3ffee970 4020181f  
                                  18:08:31.498 -> 3fffffa0:  3fffdad0 00000000 3ffeea7c 40204798  
                                  18:08:31.498 -> 3fffffb0:  feefeffe feefeffe 3ffe84f0 40100d71  
                                  18:08:31.498 -> <<<stack<<<
                                  18:08:31.498 -> 
                                  18:08:31.498 -> --------------- CUT HERE FOR EXCEPTION DECODER ---------------
                                  18:08:31.498 -> 
                                  18:08:31.498 ->  ets Jan  8 2013,rst cause:2, boot mode:(3,6)
                                  18:08:31.498 -> 
                                  18:08:31.498 -> load 0x4010f000, len 3584, room 16 
                                  18:08:31.546 -> tail 0
                                  18:08:31.546 -> chksum 0xb0
                                  18:08:31.546 -> csum 0xb0
                                  18:08:31.546 -> v2843a5ac
                                  18:08:31.546 -> ~ld
                                  18:08:31.594 -> Initializing
                                  18:08:31.594 -> 
                                  18:08:31.594 -> Connecting to CONTACT-wifi
                                  18:08:32.117 -> .
                                  

                                  Das läuft dann so in Dauerschleife unendlich weiter.

                                  Hat jemand vielleicht eine Idee woran es liegen kann? Würde mich auf eure Hilfe sehr freuen.

                                  Danke und Gruß
                                  Christo

                                  R 1 Antwort Letzte Antwort
                                  0
                                  • C cap

                                    Hallo zusammen,

                                    ich versuche mit dem Code wir im Post von @claus1993 mein W132 mit dem D1 mini zum Laufen zu bringen. Das Kompilieren und Flashen geht, das Ding verbindet sich auch mit dem WiFi, jedoch bekomme ich im Serial Monitor die Fehlermeldung

                                    ISR not in IRAM!
                                    

                                    Hier die komplette Fehlermeldung:

                                    18:08:30.418 -> ...
                                    18:08:31.404 -> WiFi connected
                                    18:08:31.404 -> IP address: 
                                    18:08:31.404 -> 192.168.---.---
                                    18:08:31.404 -> ISR not in IRAM!
                                    18:08:31.404 -> 
                                    18:08:31.404 -> User exception (panic/abort/assert)
                                    18:08:31.452 -> --------------- CUT HERE FOR EXCEPTION DECODER ---------------
                                    18:08:31.452 -> 
                                    18:08:31.452 -> Abort called
                                    18:08:31.452 -> 
                                    18:08:31.452 -> >>>stack>>>
                                    18:08:31.452 -> 
                                    18:08:31.452 -> ctx: cont
                                    18:08:31.452 -> sp: 3ffffef0 end: 3fffffc0 offset: 0000
                                    18:08:31.452 -> 3ffffef0:  00000009 0000002e 3ffef7d4 40205879  
                                    18:08:31.452 -> 3fffff00:  000000fe 00000000 00000000 00000000  
                                    18:08:31.452 -> 3fffff10:  00000000 00000000 00000000 00ff0000  
                                    18:08:31.452 -> 3fffff20:  5ffffe00 5ffffe00 00000000 00000000  
                                    18:08:31.452 -> 3fffff30:  00000002 00000004 3ffee970 40204e16  
                                    18:08:31.452 -> 3fffff40:  40100476 3ffee990 3ffe8844 40204e28  
                                    18:08:31.452 -> 3fffff50:  40232ddd 0000000e 3ffee970 40205335  
                                    18:08:31.452 -> 3fffff60:  00000000 000000d6 3ffee85d 40203c68  
                                    18:08:31.498 -> 3fffff70:  3ffe862b 3ffee954 3ffee970 3ffeeabc  
                                    18:08:31.498 -> 3fffff80:  3ffee990 3ffee85d 3ffee970 402053e4  
                                    18:08:31.498 -> 3fffff90:  3ffee990 3ffee85d 3ffee970 4020181f  
                                    18:08:31.498 -> 3fffffa0:  3fffdad0 00000000 3ffeea7c 40204798  
                                    18:08:31.498 -> 3fffffb0:  feefeffe feefeffe 3ffe84f0 40100d71  
                                    18:08:31.498 -> <<<stack<<<
                                    18:08:31.498 -> 
                                    18:08:31.498 -> --------------- CUT HERE FOR EXCEPTION DECODER ---------------
                                    18:08:31.498 -> 
                                    18:08:31.498 ->  ets Jan  8 2013,rst cause:2, boot mode:(3,6)
                                    18:08:31.498 -> 
                                    18:08:31.498 -> load 0x4010f000, len 3584, room 16 
                                    18:08:31.546 -> tail 0
                                    18:08:31.546 -> chksum 0xb0
                                    18:08:31.546 -> csum 0xb0
                                    18:08:31.546 -> v2843a5ac
                                    18:08:31.546 -> ~ld
                                    18:08:31.594 -> Initializing
                                    18:08:31.594 -> 
                                    18:08:31.594 -> Connecting to CONTACT-wifi
                                    18:08:32.117 -> .
                                    

                                    Das läuft dann so in Dauerschleife unendlich weiter.

                                    Hat jemand vielleicht eine Idee woran es liegen kann? Würde mich auf eure Hilfe sehr freuen.

                                    Danke und Gruß
                                    Christo

                                    R Offline
                                    R Offline
                                    RalfB
                                    schrieb am zuletzt editiert von
                                    #41

                                    @cap Hallo Cristo,

                                    ich hatte das gleiche Problem und so gelöst:

                                    Du must in der Funktionsdefinition von dataTrigger ICACHE_RAM_ATTR voran stellen:

                                    void ICACHE_RAM_ATTR dataTrigger(){

                                    Jetzt gibt es die Fehlermeldung nicht mehr und er sendet fleißig Daten. Bitte frage mich nicht, was die Ergänzung bewirkt - ich weiß es nicht. Ich habe das nur irgendwo gegoogelt und getestet.....

                                    Gruß

                                    Ralf

                                    Viele Grüße

                                    Ralf

                                    1 Antwort Letzte Antwort
                                    0
                                    • M mwyraz

                                      Ich habe den Sketch fertig, funktioniert prima. Es verwendet noch eine Wifi/Mqtt Wrapper-Bibliothek von mir aber sollte ohne großen Aufwand mit den Original-MQTT+Wifi-Bibliotheken laufen.

                                      Das Gist habe ich aktualisiert: https://gist.github.com/micw/098709efc83a9d9ebf16d14cea4ca38e

                                      Die Libs sind ansosten auch hier zu finden:
                                      https://github.com/micw/ArduinoProjekte/tree/master/libraries/common
                                      https://github.com/micw/ArduinoProjekte/tree/master/libraries/private
                                      esp_pins.h braucht man denke ich inzwischen nicht mehr.

                                      K Offline
                                      K Offline
                                      kodibrain
                                      schrieb am zuletzt editiert von
                                      #42

                                      @mwyraz Vielen Dank für den Sketch! Du hast nicht zufällig Interesse daran noch den W174 Regenmesser darin zu integrieren? Eigentlich würde ein Counter ja schon reichen :)

                                      Fred FreundF 1 Antwort Letzte Antwort
                                      0
                                      • K kodibrain

                                        @mwyraz Vielen Dank für den Sketch! Du hast nicht zufällig Interesse daran noch den W174 Regenmesser darin zu integrieren? Eigentlich würde ein Counter ja schon reichen :)

                                        Fred FreundF Offline
                                        Fred FreundF Offline
                                        Fred Freund
                                        schrieb am zuletzt editiert von
                                        #43

                                        Hallo,
                                        ich weiss dieses Topic ist sehr alt, aber ich denke es waere nicht schlecht wenn es hier weitergeht.

                                        Also den wemos direkt an den W132 anzuschliessen und MQTT, bzw. mit einem ESP32 das funktioniert.

                                        Habe jetzt eine andere Loesung gefunden die ich einmal probieren moechte:

                                        Sie funktioniert auch mit einem wemos und einem 433Mhz Empfaenger welches gleichzeitig den Regensensor auch ausliest und die Werte zur Verfuegung stellt. Das auf der Seite gezeigte Example funktioniert ganz gut.

                                        SensorID 236
                                        Wind direction: 90°
                                        Wind gust: 0.00m/s
                                        0.00km/h
                                        ------------
                                        SensorID 65
                                        Rain volume: 3.00mm
                                        ------------
                                        SensorID 65
                                        Rain volume: 3.00mm
                                        
                                        

                                        Hier der Zwer2k WeatherStationDataRx (wird auch direkt im Arduino Library search vorgeschlagen)

                                        Das Ziel ist es diese Daten als MQTT im IOBROKER zur Verfuegung zu haben. Fuer mich ist der Vorteil das Regen und Windmesser einfach mit Batterien versorgt werden koennen und Daten dh. Regemenge zur Verfuegung stellen.

                                        Wenn ich das Example laufen lasse scheint es das die Void Setup oft durchlaufen wird und ich weiss nicht wieso.
                                        im Serial Monitor finde ich viele WeatherStationDataRx Test , habe den text schon geaendert dh. void setup wird oft durchlaufen und stammt von dieser.

                                        WeatherStationDataRx Test
                                        WeatherStationDataRx Test
                                        WeatherStationDataRx Test
                                        WeatherStationDataRx Test
                                        WeatherStationDataRx Test
                                        WeatherStationDataRx Test
                                        WeatherStationDataRx Test
                                        WeatherStationDataRx Test
                                        WeatherStationDataRx Test
                                        WeatherStationDataRx Test
                                        WeatherStationDataRx Test
                                        WeatherStationDataRx Test
                                        WeatherStationDataRx Test
                                        
                                        

                                        Weiters schaffe ich die sofortige Verbindung bei bekannten IDs nicht.

                                        WeatherStationDataRx wsdr(DATA_PIN, false, ARMUseAsConfirmation, false);
                                        
                                        void PairedDeviceAdded(byte newID)
                                        {
                                        #if defined(ESP8266) || defined(ESP32)
                                            Serial.printf("New device paired %d\r\n", newID);
                                        #else
                                            Serial.print("New device paired ");
                                            Serial.println(newID, DEC);
                                        #endif
                                        
                                            wsdr.pair(PairedDeviceAdded);
                                        
                                            // If you already have a sensor ID for your device, you can set it as follows.
                                            //byte myDeviceIDs[] = {236, 65};
                                            //wsdr.pair(myDeviceIDs, sizeof(myDeviceIDs));
                                            byte myDeviceIDs[] = {236, 65};
                                            wsdr.pair(myDeviceIDs, sizeof(myDeviceIDs));
                                        }
                                        

                                        Ich hoffe jemand findet dies hier nuetzlich und ich finde hier Hilfe bei euch!

                                        many Thx for your support,
                                        Vielen Dank!

                                        Fred FreundF 1 Antwort Letzte Antwort
                                        0
                                        • Fred FreundF Fred Freund

                                          Hallo,
                                          ich weiss dieses Topic ist sehr alt, aber ich denke es waere nicht schlecht wenn es hier weitergeht.

                                          Also den wemos direkt an den W132 anzuschliessen und MQTT, bzw. mit einem ESP32 das funktioniert.

                                          Habe jetzt eine andere Loesung gefunden die ich einmal probieren moechte:

                                          Sie funktioniert auch mit einem wemos und einem 433Mhz Empfaenger welches gleichzeitig den Regensensor auch ausliest und die Werte zur Verfuegung stellt. Das auf der Seite gezeigte Example funktioniert ganz gut.

                                          SensorID 236
                                          Wind direction: 90°
                                          Wind gust: 0.00m/s
                                          0.00km/h
                                          ------------
                                          SensorID 65
                                          Rain volume: 3.00mm
                                          ------------
                                          SensorID 65
                                          Rain volume: 3.00mm
                                          
                                          

                                          Hier der Zwer2k WeatherStationDataRx (wird auch direkt im Arduino Library search vorgeschlagen)

                                          Das Ziel ist es diese Daten als MQTT im IOBROKER zur Verfuegung zu haben. Fuer mich ist der Vorteil das Regen und Windmesser einfach mit Batterien versorgt werden koennen und Daten dh. Regemenge zur Verfuegung stellen.

                                          Wenn ich das Example laufen lasse scheint es das die Void Setup oft durchlaufen wird und ich weiss nicht wieso.
                                          im Serial Monitor finde ich viele WeatherStationDataRx Test , habe den text schon geaendert dh. void setup wird oft durchlaufen und stammt von dieser.

                                          WeatherStationDataRx Test
                                          WeatherStationDataRx Test
                                          WeatherStationDataRx Test
                                          WeatherStationDataRx Test
                                          WeatherStationDataRx Test
                                          WeatherStationDataRx Test
                                          WeatherStationDataRx Test
                                          WeatherStationDataRx Test
                                          WeatherStationDataRx Test
                                          WeatherStationDataRx Test
                                          WeatherStationDataRx Test
                                          WeatherStationDataRx Test
                                          WeatherStationDataRx Test
                                          
                                          

                                          Weiters schaffe ich die sofortige Verbindung bei bekannten IDs nicht.

                                          WeatherStationDataRx wsdr(DATA_PIN, false, ARMUseAsConfirmation, false);
                                          
                                          void PairedDeviceAdded(byte newID)
                                          {
                                          #if defined(ESP8266) || defined(ESP32)
                                              Serial.printf("New device paired %d\r\n", newID);
                                          #else
                                              Serial.print("New device paired ");
                                              Serial.println(newID, DEC);
                                          #endif
                                          
                                              wsdr.pair(PairedDeviceAdded);
                                          
                                              // If you already have a sensor ID for your device, you can set it as follows.
                                              //byte myDeviceIDs[] = {236, 65};
                                              //wsdr.pair(myDeviceIDs, sizeof(myDeviceIDs));
                                              byte myDeviceIDs[] = {236, 65};
                                              wsdr.pair(myDeviceIDs, sizeof(myDeviceIDs));
                                          }
                                          

                                          Ich hoffe jemand findet dies hier nuetzlich und ich finde hier Hilfe bei euch!

                                          Fred FreundF Offline
                                          Fred FreundF Offline
                                          Fred Freund
                                          schrieb am zuletzt editiert von
                                          #44

                                          Wollte nur mitteilen das ich es hinbekommen habe , also mit einem WEMOS die Daten per 433Mhz abfragen fuer Wind und Regensensor.

                                          Wenn es wer braucht gebt bescheid.
                                          LG

                                          many Thx for your support,
                                          Vielen Dank!

                                          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

                                          461

                                          Online

                                          32.5k

                                          Benutzer

                                          81.8k

                                          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