DHT22 -> ESP8266 (ESP-01) <=Wlan=> Mosquitto <- Fhem <- MQTT <- MQTT_Device

Begonnen von Papaloewe, 28 März 2015, 19:52:13

Vorheriges Thema - Nächstes Thema

Wzut

Zitat von: JoWiemann am 20 Januar 2016, 15:50:49
Damit wird der Code in der Form nicht laufen.
hmm , ich arbeite seit Monaten unter Linux mit der 1.6.5 ohne Probleme
( OK, die min & Max Fehlermeldung mal ausgenommen läuft der DHT22 Sketch eigentlich glatt durch) 
aber war bei der 1.6.5 unter Windoof nicht mal was mit 32 vs 64 Bit ? 
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

JoWiemann

Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

crememanfred

Hallo Jörg,

also mit Version 1.6.1 funktioniert das kompilieren wirklich einwandfrei! Danke für den Tipp!

Allerdings bin ich scheinbar wirklich zu doof den ESP8266 Core in der IDE zu integrieren. Der von dir geposte Link hilft mir leider auch nicht weiter! :/

Wärst du nochmal so freundlich mir auf die Sprünge zu helfen?

Besten Dank & Gruß
Manfred

crememanfred

Hallo Jörg,

aaalso, bin doch nicht zu doof, hab es nun endlich hinbekommen das Board unter 1.6.1 zu integrieren!  8)

Nun aber spuckt er doch wieder diverse Fehlermeldungen aus wenn ich das ESP8266 Board in der IDE angewählt habe und kompiliere! :/

Arduino: 1.6.1 (Windows 7), Platine: "Generic ESP8266 Module, Serial, 80 MHz, 40MHz, DIO, 115200, 512K (64K SPIFFS), ck, Disabled, None"

In file included from ESPDHT22FHEM_KIM1.ino:38:0:

C:\Users\kwalder\Documents\Arduino\libraries\PubSubClient/PubSubClient.h:68:46: error: section attribute not allowed for '<anonymous>'

    boolean publish_P(char *, uint8_t PROGMEM *, unsigned int, boolean);

                                              ^

ESPDHT22FHEM_KIM1.ino: In function 'void startSensors()':

ESPDHT22FHEM_KIM1.ino:304:7: error: expected unqualified-id before '.' token

ESPDHT22FHEM_KIM1.ino:307:14: error: 'I2C_SDA' was not declared in this scope

ESPDHT22FHEM_KIM1.ino:307:23: error: 'I2C_SCL' was not declared in this scope

In file included from C:\Program Files (x86)\Arduino\hardware\esp8266com\esp8266\libraries\ESP8266WiFi\src/WiFiClient.h:25:0,

                 from C:\Program Files (x86)\Arduino\hardware\esp8266com\esp8266\libraries\ESP8266WiFi\src/ESP8266WiFi.h:39,

                 from ESPDHT22FHEM_KIM1.ino:33:

ESPDHT22FHEM_KIM1.ino: In function 'void processDHT()':

ESPDHT22FHEM_KIM1.ino:454:58: error: expected primary-expression before '.' token

C:\Program Files (x86)\Arduino\hardware\esp8266com\esp8266\cores\esp8266/Arduino.h:254:24: note: in definition of macro 'max'

#define max(a,b) ((a)>(b)?(a):(b))

                        ^

ESPDHT22FHEM_KIM1.ino:454:58: error: expected primary-expression before '.' token

C:\Program Files (x86)\Arduino\hardware\esp8266com\esp8266\cores\esp8266/Arduino.h:254:32: note: in definition of macro 'max'

#define max(a,b) ((a)>(b)?(a):(b))

                                ^

ESPDHT22FHEM_KIM1.ino:464:6: error: expected unqualified-id before '.' token

ESPDHT22FHEM_KIM1.ino:465:10: error: expected primary-expression before '.' token

ESPDHT22FHEM_KIM1.ino:465:29: error: expected primary-expression before '.' token

ESPDHT22FHEM_KIM1.ino:468:40: error: expected primary-expression before '.' token

ESPDHT22FHEM_KIM1.ino:472:26: error: expected primary-expression before '.' token

ESPDHT22FHEM_KIM1.ino:484:23: error: expected primary-expression before '.' token

Fehler beim Kompilieren.

  Dieser Report hätte mehr Informationen mit
  "Ausführliche Ausgabe während der Kompilierung"
  aktiviert in Datei > Einstellungen



Jörg ne Idee wodran es liegen könnte?

Zitataber war bei der 1.6.5 unter Windoof nicht mal was mit 32 vs 64 Bit ?

Ich habe die 32bit Version am laufen...unter welcher gab es denn Probleme?

Besten Dank & Gruß
Manfred

JoWiemann

Zitat von: crememanfred am 21 Januar 2016, 14:01:54
Jörg ne Idee wodran es liegen könnte?

Hallo Manfred,

ich bin da auch total überfragt, da ich auf einer Umgebung aufsetze, die ich leider im Netz nicht mehr finde. Ich werde nächste Woche von einem schnelleren Anschluss aus mal meine Umgebung in die Cloud laden und Dir zur Verfügung stellen.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Familienpapi

Hallo, Zusammen,

ich arbeite ausschließlich mit der 1.6.5 in der Portable Edition (zuerst unter Win8.1 x64 und jetzt unter Win10 x64). Da kann man mehrere parallel mit verschiedenen Bibliotheken laufen lassen.

Unter https://github.com/Familienpapi/ESP8266RoomControl habe ich meinen ESP8266 Code gepostet. Dieser arbeitet jetzt seit min. 4 Monaten produktiv in zwei Räumen ohne Probleme. Per MQTT werden die Daten alle 60 Sekunden an FHEM übergeben und FHEM sendet Daten via GetHttpFile.

Mosquitto habe ich per Hand auf meinem RPi installiert. Die Version über apt-get install war bei mir viel zu alt.

Somit fällt es mir im Moment ein wenig schwer, die Problematiken nachvollziehen zu können. Gerne kann ich auch posten, welche Bibliotheken in welchen Versionen ich verwende. Vielleicht könnte das weiter helfen.
FHEM@RPi4, piVCCU3@RPi3 (nur Homematic IP), boot via USB NVME SSD, keine SDs,
FTUI 3, HMCCU, MQTT(Mosquitto), MobileAlerts, JeelinkV3c868 (LaCrosse), ZWAVE(+), TelegramBot, eigene Heizungssteuerung, Configurable Firmata
ESP8266 MQTT mit eigener Firmware / Framework

sbiermann

Ich hab gestern meinen ESP8266-12 bekommen und gleich mal ausprobiert mit dem DHT-22. Dabei bin ich auf das gleiche Problem mit dem PubSubClient gestoßen. Ich hab das Problem gelöst in dem ich wie hier in dem Beitrag https://gist.github.com/igrr/7f7e7973366fc01d6393 geschrieben die PubSubClient Version https://codeload.github.com/Imroy/pubsubclient/zip/master verwendet habe. Damit funktioniert es mit der Arduino 1.6.5 32 Bit unter Windows.

crememanfred

Hallo zusammen,

danke zunächst für all euer Feedback!

ZitatIch werde nächste Woche von einem schnelleren Anschluss aus mal meine Umgebung in die Cloud laden und Dir zur Verfügung stellen.

Das wäre wunderbar! Das Angebot nehme ich dankend an Jörg!

ZitatGerne kann ich auch posten, welche Bibliotheken in welchen Versionen ich verwende. Vielleicht könnte das weiter helfen.

Auch das Angebot nehme ich gerne an Familienpapi, greife gerade nach jedem Strohhalm. Ich denke das die Bibliothek ohnehin das Problem an der Sache ist...

ZitatDabei bin ich auf das gleiche Problem mit dem PubSubClient gestoßen. Ich hab das Problem gelöst in dem ich wie hier in dem Beitrag https://gist.github.com/igrr/7f7e7973366fc01d6393 geschrieben die PubSubClient Version https://codeload.github.com/Imroy/pubsubclient/zip/master verwendet habe. Damit funktioniert es mit der Arduino 1.6.5 32 Bit unter Windows.

Hatte ich bereits vorher schon versucht, leider ohne Erfolg...dennoch vielen Dank für den Tipp!

Gruß
Manfred

crememanfred

Zitat von: sbiermann am 21 Januar 2016, 15:01:50
Ich hab gestern meinen ESP8266-12 bekommen und gleich mal ausprobiert mit dem DHT-22. Dabei bin ich auf das gleiche Problem mit dem PubSubClient gestoßen. Ich hab das Problem gelöst in dem ich wie hier in dem Beitrag https://gist.github.com/igrr/7f7e7973366fc01d6393 geschrieben die PubSubClient Version https://codeload.github.com/Imroy/pubsubclient/zip/master verwendet habe. Damit funktioniert es mit der Arduino 1.6.5 32 Bit unter Windows.

Welchen Sketch hast du verwendet wenn ich fragen darf?

Gruß
Manfred

sbiermann

Den Sketch von Jörg (http://forum.fhem.de/index.php/topic,35572.msg342183.html#msg342183) habe ich verwendet, wobei ich sagen muss ich hab alles was nicht MQTT und DHT22 ist raus geworfen aus dem Sketch.

crememanfred

Den hab ich auch verwendet, irgendwas mach ich oder mein PC doch falsch...also ich   ::)

Da ich auch nur MQTT & DHT verwenden möchte, würde ich gerne mal deinen Sketch missbrauchen. Würdest du mir deinen Sketch zur Verfügung stellen?

Danke & Gruß
Manfred

JoWiemann

Hallo Manfred,

wie gesagt, nächste Woche mit einer schnelleren Leitung. Ich habe nur 400 MBit upload.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

crememanfred

Hallo Jörg,

habe ich volles Verständnis (bezüglich Upload Kapazität) für und bin dir zu Dank verpflichtet!

Melde dennoch Interesse an den Sketch von sbiermann, vielleicht erschlägt sich das eine oder andere Kompilierungs-Problem dadurch automatisch...ein versuch ist es allemal Wert...

Danke und Gruß
Manfred

Wzut

ich habe das eben mal durchgespielt :
Basis: Arduino IDE V 1.6.5 unter Win7 32 Bit
unter Additional Board Manager URLs :
http://arduino.esp8266.com/stable/package_esp8266com_index.json 
dann unter Board Manager das Paket ESP8266 angewält und installiert  ( siehe Screenshot)
Den DHT22 von Jo runtergeladen und entpackt , in der Arduino IDE geöffnet und Board auf Generic ESP8266 gestellt und los.
Kommt die alte bekannte min  und max Fehlermeldung.
am Ende vom Sketch eingefügt :
int min (int a , int b)
{if (a<b) return a; else return b;}
int max (int a , int b)
{if (a>b) return a; else return b;}

läuft nun ohne weitere Fehlermeldung durch :)
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Familienpapi

Also:
meine Arduino IDE ist die 1.6.5-r5 (32Bit). Mein System ist Win10 Pro x64, flashen über einen USB RS232 Wandler an COM3 (kann variieren).

Die ESP8266 Bibliothek: http://arduino.esp8266.com/stable/package_esp8266com_index.json (Additional Boards Manager URL)

Time.h:

Readme file for Arduino Time Library

Time is a library that provides timekeeping functionality for Arduino.

The code is derived from the Playground DateTime library but is updated
to provide an API that is more flexable and easier to use.

A primary goal was to enable date and time functionality that can be used with
a variety of external time sources with minimum differences required in sketch logic.

Example sketches illustrate how similar sketch code can be used with: a Real Time Clock,
internet NTP time service, GPS time data, and Serial time messages from a computer
for time synchronization.

The functions available in the library include:
...


IRremoteESP8266.h:

* IRremote for ESP8266
*
* Based on the IRremote library for Arduino by Ken Shirriff
* Version 0.11 August, 2009
* Copyright 2009 Ken Shirriff
* For details, see http://arcfn.com/2009/08/multi-protocol-infrared-remote-library.html
...


PubSubClient.h:

PubSubClient.h - A simple client for MQTT.
  Nick O'Leary
  http://knolleary.net

Mit einer Änderung des TimeOuts in Zeile 26:

#define MQTT_KEEPALIVE 120


DHT.h:

/* DHT library

MIT license
written by Adafruit Industries
*/


Der Rest sind die Standard Libraries aus dem 1.6.5 Menü "Manage Libraries", jeweils in der aktuellsten Version.

Wie bereits erwähnt, arbeite ich mit einer manuellen mosquitto Installation unter Debian auf Raspberry. FHEM und Raspberry sind up-to-date (erst letztes Wochenende durchgeführt).

Mein FHEM Code:

define MQTT1 MQTT 192.168.x.x:1883
attr MQTT1 room zConfig
attr MQTT1 group MQTT

und

define 14_RoomControl_IP_Port dummy
attr 14_RoomControl_IP_Port room zConfig
attr 14_RoomControl_IP_Port group 14
set 14_RoomControl_IP_Port 192.168.x.x:1883

define 14_MQTT MQTT_DEVICE 14_MQTT
attr 14_MQTT IODev MQTT1
attr 14_MQTT stateFormat transmission-state
attr 14_MQTT subscribeReading_connect /14/lwt
attr 14_MQTT subscribeReading_heater /14/heater
attr 14_MQTT subscribeReading_humidity /14/humi
attr 14_MQTT subscribeReading_ir /14/ir
attr 14_MQTT subscribeReading_light /14/light
attr 14_MQTT subscribeReading_lux /14/lux
attr 14_MQTT subscribeReading_motion /14/motion
attr 14_MQTT subscribeReading_temperature /14/temp
attr 14_MQTT room zConfig
attr 14_MQTT group 14

define 14_MQTT_notify_connect notify 14_MQTT:connect.* {\
  if (ReadingsVal("14_MQTT","connect"," ") eq "first_connect") {\
    GetHttpFile(Value("14_RoomControl_IP_Port"),"/heater?value=".ReadingsVal("14_Temp_Thermostat","state","-99"));;\
    GetHttpFile(Value("14_RoomControl_IP_Port"),"/alarm?value=".ReadingsVal("Global_Alarm","state","1"));;\
    GetHttpFile(Value("14_RoomControl_IP_Port"),"/window?value=".ReadingsVal("14_Tuere1","state","open"));;\
    GetHttpFile(Value("14_RoomControl_IP_Port"),"/weather1?value=".ReadingsVal("RoomControlWeather1","state","-1"));;\
    GetHttpFile(Value("14_RoomControl_IP_Port"),"/weather2?value=".ReadingsVal("RoomControlWeather2","state","-99"));;\
  }\
}
attr 14_MQTT_notify_connect room zConfig
attr 14_MQTT_notify_connect group 14


Hoffe, das hilft weiter. Ob ich die libraries hier mit dran hängen darf, weiß ich nicht. Wenn ja, gerne.
FHEM@RPi4, piVCCU3@RPi3 (nur Homematic IP), boot via USB NVME SSD, keine SDs,
FTUI 3, HMCCU, MQTT(Mosquitto), MobileAlerts, JeelinkV3c868 (LaCrosse), ZWAVE(+), TelegramBot, eigene Heizungssteuerung, Configurable Firmata
ESP8266 MQTT mit eigener Firmware / Framework