Problem mit MySensors und DHT22

Begonnen von MarvinLu, 27 November 2018, 19:14:42

Vorheriges Thema - Nächstes Thema

Markus.

Zitat von: Beta-User am 28 November 2018, 08:26:13
Eine Bitte aber noch: Da die jeweils aktuelle Version der libs auf Github zur Verfügung steht, sollte man es bei dem link belassen und nicht hier wieder eine zip anbieten. Sowas hat dann nämlich leider häufig zur Folge, dass dann in ferner Zukunft, wenn diese hier veraltet ist, wieder jemand hier drüber stolpert, der die Zusammenhänge nicht versteht, weil er den kompletten Thread nicht gelesen hat...
Außerdem kostet Serverspeicher Geld (den Verein...)

Danke für den Hinweis...hast recht...habs rausgeschmissen ;-)


Beta-User

Zitat von: MarvinLu am 28 November 2018, 08:28:07
Ah, jetzt verstehe ich. Entschuldigt, wissen Wissensstand ist noch ziemlich begrenzt. Ich habe vor einigen Wochen erst mit dem Thema smarthome angefangen..
Dann viel Spaß beim Einarbeiten!

Für später würde ich empfehlen, statt eines DHT22 einen anderen Sensor zu verwenden, (ungeprüft) eilt den DHT's der Ruf voraus, unzuverlässig zu sein... (z.B. BME280 oder Si7021 sind besser, erfordern aber andere libs)

ZitatZur Frage: Ich verwende einen nRF24L01+ (siehe https://waschto.eu/mysensors-wlan-gateway/).
Bei den nRF sind leider eine Menge fakes im Umlauf. Jedenfalls für das GW und Repeater sollte man entweder die 2.300m-pa+lna-Variante (geschirmt) verwenden oder gleich auf RFMxx setzen (letzteres ist aber etwas schwieriger, da nur 3.3V).
Ich persönlich mag serielle GW's lieber und empfehle auch, ein Repeater-Node zur Verfügung zu halten, um den Funkverkehr mitzuhören.

Ansonsten zum Thema Blog: https://wiki.fhem.de/wiki/Dokumentationsstruktur

ZitatIch werde gleich alle Bibliotheken einmal löschen und dann die von euch genannten einbinden und dann weitersehen.
Sollte ggf. sogar direkt über die IDE gehen, die aktuellen runterzuladen (mind. bei den "normalen" MySensors-Sketchen ist es so, dass die im Library-Manager verfügbar ist (für die mit externen Abhängigkeiten habe ich es nicht getestet).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Beta-User

@MarvinLu, für den Fall, dass du das noch testen kannst, ob die Arduino-Examples ohne weitere Vorarbeiten in der IDE/Lib Manager verfügbar ist bzw. heruntergeladen werden kann:

Wäre nett, wenn du Rückmeldung geben könntest, ob das so einfach geht, dann pflege ich das im Wiki (https://wiki.fhem.de/wiki/MySensors_Starter_Guide) nach...

Hinweise zu dem Repo habe ich eben schon aufgenommen.

Danke!
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

MarvinLu

#18
Zitat von: Beta-User am 28 November 2018, 09:39:56
Für später würde ich empfehlen, statt eines DHT22 einen anderen Sensor zu verwenden, (ungeprüft) eilt den DHT's der Ruf voraus, unzuverlässig zu sein... (z.B. BME280 oder Si7021 sind besser, erfordern aber andere libs)

Ja, das habe ich ich im Zuge meiner Recherche auch schon festgestellt. Die Anleitung von Waschto erschien mir jedoch so "einfach" zu rekonstruieren, dass ich gedacht habe, dies könnte ein gutes Projekt für den Anfang sein. Ich habe auch schon gelesen, dass man wohl besser einen ProMini nehmen sollte für den Sensor, sollte man den Sensor mit einer Batterie o.ä. betreiben wollen.

Zitat von: Beta-User am 28 November 2018, 09:39:56
Bei den nRF sind leider eine Menge fakes im Umlauf. Jedenfalls für das GW und Repeater sollte man entweder die 2.300m-pa+lna-Variante (geschirmt) verwenden oder gleich auf RFMxx setzen (letzteres ist aber etwas schwieriger, da nur 3.3V).
Ich persönlich mag serielle GW's lieber und empfehle auch, ein Repeater-Node zur Verfügung zu halten, um den Funkverkehr mitzuhören.

Dann hoffe ich mal, dass es jetzt so mit meinem funktioniert, wie ich den eingerichtet habe.. Leider verstehe ich nicht besonders viel von deiner Aussage  :D

Ich habe jetzt folgendes gemacht:

  • Einmal alles deinstalliert, was ich bisher installiert hatte
  • Arduino-Software installiert
  • MySensors by MySensorTeam Version 2.3.0 installiert
  • MySensorsArduinoExamples-master.zip von https://www.mysensors.org/build/humidity heruntergeladen und entpackt
  • \MySensorsArduinoExamples-master\examples nach \Documents\Arduino\libraries\MySensors\examples kopiert
  • Arduino neugestartet
  • Über Datei -> Beispiele -> MySensors -> DhtTemperatureAndHumiditySensor ausgewählt
  • Nano eingesteckt
  • Über "Werkzeuge" die Parameter Board und Port eingestellt (siehe Anhang)
  • Kompilieren kann noch nicht funktionieren, der Ordner \MySensorsArduinoExamples-master\examples fehlt ja noch. Nur wo kopiere ich den hin?
    Lege ich einen neuen Ordner in \Documents\Arduino\libraries\MySensors (\libraries) an? Oder nehme ich den \Documents\Arduino\libraries bzw den C:\Program Files (x86)\Arduino\libraries?

Zitat von: Beta-User am 28 November 2018, 10:55:59
@MarvinLu, für den Fall, dass du das noch testen kannst, ob die Arduino-Examples ohne weitere Vorarbeiten in der IDE/Lib Manager verfügbar ist bzw. heruntergeladen werden kann: [...]

Du meinst sicher das hier, oder
/**
* The MySensors Arduino library handles the wireless radio link and protocol
* between your home built sensors/actuators and HA controller of choice.
* The sensors forms a self healing radio network with optional repeaters. Each
* repeater and gateway builds a routing tables in EEPROM which keeps track of the
* network topology allowing messages to be routed to nodes.
*
* Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
* Copyright (C) 2013-2015 Sensnology AB
* Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
*
* Documentation: http://www.mysensors.org
* Support Forum: http://forum.mysensors.org
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation.
*
*******************************
*
* REVISION HISTORY
* Version 1.0: Henrik EKblad
* Version 1.1 - 2016-07-20: Converted to MySensors v2.0 and added various improvements - Torben Woltjen (mozzbozz)
*
* DESCRIPTION
* This sketch provides an example of how to implement a humidity/temperature
* sensor using a DHT11/DHT-22.

* For more information, please visit:
* http://www.mysensors.org/build/humidity
*
*/

// Enable debug prints
#define MY_DEBUG

// Enable and select radio type attached
#define MY_RADIO_NRF24
//#define MY_RADIO_RFM69
//#define MY_RS485

#include <SPI.h>
#include <MySensors.h> 
#include <DHT.h>

// Set this to the pin you connected the DHT's data pin to
#define DHT_DATA_PIN 3

// Set this offset if the sensor has a permanent small offset to the real temperatures.
// In Celsius degrees (as measured by the device)
#define SENSOR_TEMP_OFFSET 0

// Sleep time between sensor updates (in milliseconds)
// Must be >1000ms for DHT22 and >2000ms for DHT11
static const uint64_t UPDATE_INTERVAL = 60000;

// Force sending an update of the temperature after n sensor reads, so a controller showing the
// timestamp of the last update doesn't show something like 3 hours in the unlikely case, that
// the value didn't change since;
// i.e. the sensor would force sending an update every UPDATE_INTERVAL*FORCE_UPDATE_N_READS [ms]
static const uint8_t FORCE_UPDATE_N_READS = 10;

#define CHILD_ID_HUM 0
#define CHILD_ID_TEMP 1

float lastTemp;
float lastHum;
uint8_t nNoUpdatesTemp;
uint8_t nNoUpdatesHum;
bool metric = true;

MyMessage msgHum(CHILD_ID_HUM, V_HUM);
MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);
DHT dht;


void presentation() 
{
  // Send the sketch version information to the gateway
  sendSketchInfo("TemperatureAndHumidity", "1.1");
 
  // Register all sensors to gw (they will be created as child devices)
  present(CHILD_ID_HUM, S_HUM);
  present(CHILD_ID_TEMP, S_TEMP);
 
  metric = getControllerConfig().isMetric;
}


void setup()
{
  dht.setup(DHT_DATA_PIN); // set data pin of DHT sensor
  if (UPDATE_INTERVAL <= dht.getMinimumSamplingPeriod()) {
    Serial.println("Warning: UPDATE_INTERVAL is smaller than supported by the sensor!");
  }
  // Sleep for the time of the minimum sampling period to give the sensor time to power up
  // (otherwise, timeout errors might occure for the first reading)
  sleep(dht.getMinimumSamplingPeriod());
}


void loop()     

  // Force reading sensor, so it works also after sleep()
  dht.readSensor(true);
 
  // Get temperature from DHT library
  float temperature = dht.getTemperature();
  if (isnan(temperature)) {
    Serial.println("Failed reading temperature from DHT!");
  } else if (temperature != lastTemp || nNoUpdatesTemp == FORCE_UPDATE_N_READS) {
    // Only send temperature if it changed since the last measurement or if we didn't send an update for n times
    lastTemp = temperature;

    // apply the offset before converting to something different than Celsius degrees
    temperature += SENSOR_TEMP_OFFSET;

    if (!metric) {
      temperature = dht.toFahrenheit(temperature);
    }
    // Reset no updates counter
    nNoUpdatesTemp = 0;
    send(msgTemp.set(temperature, 1));

    #ifdef MY_DEBUG
    Serial.print("T: ");
    Serial.println(temperature);
    #endif
  } else {
    // Increase no update counter if the temperature stayed the same
    nNoUpdatesTemp++;
  }

  // Get humidity from DHT library
  float humidity = dht.getHumidity();
  if (isnan(humidity)) {
    Serial.println("Failed reading humidity from DHT");
  } else if (humidity != lastHum || nNoUpdatesHum == FORCE_UPDATE_N_READS) {
    // Only send humidity if it changed since the last measurement or if we didn't send an update for n times
    lastHum = humidity;
    // Reset no updates counter
    nNoUpdatesHum = 0;
    send(msgHum.set(humidity, 1));
   
    #ifdef MY_DEBUG
    Serial.print("H: ");
    Serial.println(humidity);
    #endif
  } else {
    // Increase no update counter if the humidity stayed the same
    nNoUpdatesHum++;
  }

  // Sleep for a while to save energy
  sleep(UPDATE_INTERVAL);
}


Das war nach den o.g. Schritten verfügbar.

Gruß, Marvin

Markus.

das zip musst du nirgendswo hin kopieren sondern über "Bibliothek einbinden" "Zip Bibliothek hinzufügen" dann das zip auswählen und okay......

Gruß

Markus

Beta-User

Das mit den ArduinoExamples habe ich zwischenzeitlich auch recherchiert.

Am einfachsten die ZIP über die IDE importieren wie hier beschrieben: https://www.arduino.cc/en/Guide/Libraries
Danach sollte eigentlich alles am rechten Fleck sein...

(den Rest kann ich nicht so richtig verifizieren, da ich einen Linux-Rechner nutze und ein schlichtes "git clone" ausführe. Damit dürften aber die libs auch einfach in einem Unterordner unter den Examples sein.)

(Markus war schneller...)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

MarvinLu

#21
Ja das habe ich als erstes versucht.
Daraufhin dann folgende Fehlermeldung:
Angegebener Ordner/ZIP-Datei enthält keine gültige Bibliothek


Und wenn ich den gesamten Ordner kopiere, wie in deinem Link weiter unten beschrieben erhalte ich diese Fehlermeldung:
D:\Users\Marvin\Documents\Arduino\libraries\MySensorsArduinoExamples-master in keine Header-Dateien (.h) in D:\Users\Marvin\Documents\Arduino\libraries\MySensorsArduinoExamples-master gefunden gefunden

Gruß, Marvin

Markus.

hast du das zip voher entpackt? Das Zip nicht irgendwie entpacken. Auf Git einfach downloas als Zip und das dann so in der IDE verwenden.
Also ich nutze windoof 10 mit der 1.8er IDE und da hat er das Master zip geschlcukt ohne Fehlermeldung....

Gruß

Markus

MarvinLu

Nein, habe ich nicht entpackt.
Ich habe die Datei auch schon neu runtergeladen, kürzere Pfade genommen, alles nochmal neu installiert,...
Die Fehlermeldungen bleiben leider.


Beta-User

Hast du die IDE dazwischen dann nochmal neu gestartet?

(Jedenfalls die älteren Versionen sammeln alle Infos beim Start, spätere Änderungen werden nicht unbedingt registriert...)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

MarvinLu

Zitat von: Beta-User am 28 November 2018, 11:41:08
Hast du die IDE dazwischen dann nochmal neu gestartet?

(Jedenfalls die älteren Versionen sammeln alle Infos beim Start, spätere Änderungen werden nicht unbedingt registriert...)

Ja, ich habe mehrmals neu gestartet, sowohl das Programm als auch den ganzen Rechner.
Ich hab das Programm mal mit Administratorrechten gestartet und mal ohne, keine Änderung der o.g. Fehlermeldungen.

Beta-User

Jetzt wird's spekulativ:
Benenne das zip mal um (ohne "-Master"). Meine mich entsinnen zu können, damit (mit der Art des Dateinamens) auch ganz früher mal ein Problem gehabt zu haben...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

MarvinLu

#27
    Zitat von: Beta-User am 28 November 2018, 11:53:05
    Jetzt wird's spekulativ:
    Benenne das zip mal um (ohne "-Master"). Meine mich entsinnen zu können, damit (mit der Art des Dateinamens) auch ganz früher mal ein Problem gehabt zu haben...

    Keine Veränderung. Ich versuche mal etwas.

    EDIT: Keine Fehler mehr beim kompilieren jetzt!

    Ich habe jetzt folgendes gemacht:

    • Einmal alles deinstalliert, was ich bisher installiert hatte
    • Arduino-Software installiert
    • "http://arduino.esp8266.com/stable/package_esp8266com_index.json" in Voreinstellungen unter "zusätzl. Boardverwalter-URLs" eingefügt
      (siehe https://waschto.eu/mysensors-wlan-gateway/)
    • esp8266 bei ESP8266 Community Version 2.4.0 installiert
    • MySensors by MySensorTeam Version 2.3.0 installiert
    • MySensorsArduinoExamples-master.zip von https://www.mysensors.org/build/humidity heruntergeladen und entpackt
    • \MySensorsArduinoExamples-master\examples nach \Documents\Arduino\libraries\MySensors\examples kopiert
    • Arduino neugestartet
    • Über Datei -> Beispiele -> MySensors -> DhtTemperatureAndHumiditySensor ausgewählt
    • Nano eingesteckt
    • Über "Werkzeuge" die Parameter Board und Port eingestellt (siehe Anhang)

      • Arduino Nano, ATMega 328P (Old Bootloader)
    • Den Ordner \MySensorsArduinoExamples-master\libraries in C:\Program Files (x86)\Arduino\libraries kopiert
    • Überprüfen -> keine Fehler beim Kompilieren
    • Hochladen -> keine Fehler beim Hochladen

    [/list]Der Sketch verwendet 15796 Bytes (51%) des Programmspeicherplatzes. Das Maximum sind 30720 Bytes.
    Globale Variablen verwenden 602 Bytes (29%) des dynamischen Speichers, 1446 Bytes für lokale Variablen verbleiben. Das Maximum sind 2048 Bytes.
    Ungültige Version '1.04' für Bibliothek in: C:\Program Files (x86)\Arduino\libraries\UIPEthernet


    Gruß, Marvin

    Beta-User

    Vermutung: Falsches Board.

    Standardmäßig sind die neuen Bootloader der default, wenn du einen älteren Arduino oder einen China-Clon hast, muß es aber der alte sein.

    (Im Board-Manager kann man beide Varianten für den Nano auswählen; geht/ist die richtige Wahl auch für den pro mini)
    Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
    svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

    MarvinLu

    #29
    Oh man.. Ich muss statt dem NodeMCU generell erstmal den Nano auswählen..  ::)

    Ich habe jetzt das komplette Vorgehen nochmal überarbeitet, sollte jetzt vollständig und reproduzierbar sein..

    Beantwortet das deine Frage auch?
    Zitat von: Beta-User am 28 November 2018, 10:55:59
    @MarvinLu, für den Fall, dass du das noch testen kannst, ob die Arduino-Examples ohne weitere Vorarbeiten in der IDE/Lib Manager verfügbar ist bzw. heruntergeladen werden kann:

    Wäre nett, wenn du Rückmeldung geben könntest, ob das so einfach geht, dann pflege ich das im Wiki (https://wiki.fhem.de/wiki/MySensors_Starter_Guide) nach...

    Mit diesem Fehler beschäftige ich mich dann ein anderes Mal  :D

    Ungültige Version '1.04' für Bibliothek in: C:\Program Files (x86)\Arduino\libraries\UIPEthernet



    EDIT: Habe einfach hier die aktuelle Version heruntergeladen und in den Ordner eingefügt -> Fehler behoben!
    https://github.com/UIPEthernet/UIPEthernet

    Vielen lieben Dank für den super Support!!

    Liebe Grüße, Marvin