Entwicklung einer 1wire-zu-WLAN-Bridge

Begonnen von hexenmeister, 18 Dezember 2015, 01:03:45

Vorheriges Thema - Nächstes Thema

ergerd

Ich habe jetzt auch den DS18B20 dran, aber bei den Countern kommt nur deren Kennung:


bus #1: request batteries  (6.49 ms)
bus #1: alarm search  (67.69 ms)
bus #1: alarm search  (67.72 ms)
bus #1: alarm search  (67.72 ms)
bus #1: alarm search  (67.67 ms)
bus #1: alarm search  (67.70 ms)
bus #1: alarm search  (67.70 ms)
1d.2bd20d000000.cd
1d.404c0f000000.e4

bus #1: request temperatures  (606.12 ms)
OK VALUES Esp1wire 28.18f9fe050000.e0 1=22.06,30=DS18B20, (36.49 ms)
FHEM auf RasPi 4, CUNO, ZigBee, 1Wire2WLAN, DS2423, C-Control II, Buderus KM200, LaCrosseGateway, PCA301, ConBee II, LuftdatenInfo, OneWireGW, Div. ESPs u. Shellys

habeIchVergessen

es sind die devices von locutus? dann brauchen die eine separate Stromversorgung (5V pin nicht über den USB vom WeMos speisen).

ergerd

Das sind zwar keine locutus, aber meine werden auch eine eigene Versorgung brauchen.

Da ich z.Z. in Hotels unterwegs bin kann ich das erst am Freitag wieder in Angriff nehmen.

Aber an dieser Stelle ein herzliches Dankeschön für die tolle Arbeit und die guten Nerven beim Support!
Das gilt natürlich für alle Beteiligten!  :)

Grüße
ergerd
FHEM auf RasPi 4, CUNO, ZigBee, 1Wire2WLAN, DS2423, C-Control II, Buderus KM200, LaCrosseGateway, PCA301, ConBee II, LuftdatenInfo, OneWireGW, Div. ESPs u. Shellys

Pf@nne

Moin,

ich habe den MQTT-Client in der EspWifi.ino ergänzt.
Wo soll den jetzt was per MQTT übertragen werden?

Ich habe ein Beispiel publish nach dem Connect eingefügt.
Ich kann dir einen PullRequest senden....

Gruß
Pf@nne
FHEM auf: DS415+ (Master), Raspberry Pi 2

habeIchVergessen

#484
gerne den Pull-Request

übertragen werden sollen die gelesenen Werte.
sendMessage in ESP-1wire-WLAN-Gateway.ino

Pf@nne

Ich blicke noch nicht ganz durch deine Struktur durch....
Wie komme ich den in der ESP-1wire-WLAN-Gateway.ino
an Objekte in der EspWifi.ino?
FHEM auf: DS415+ (Master), Raspberry Pi 2

habeIchVergessen

dann wäre es gut, MQTT in eine .h und .ino zu packen.

Im Header-File die Klassen-Definition (z.B. EspMqtt) + extern EspMqtt espMqtt;
Im ino-File dann die Implementierung.

dann steht dem Zurgiff von aussen Nichts im Wege.

HotteFred

#487
Mit deiner letzten Anpassung sieht es wesentlich besser aus bei mir:


bus #1: request temperatures  (751.76 ms)
OK VALUES Esp1wire 26.e42171010000.2d 30=DS2438, (11.20 ms)
OK VALUES Esp1wire 28.c60ce1040000.4a 1=21.00,30=DS18B20, (12.86 ms)

bus #1: request batteries  (751.24 ms)
26.e42171010000.2d
httpHandleRoot: 10 ms
bus #1: alarm search  (15.99 ms)
httpHandleNotFound: 6 ms
bus #1: alarm search  (15.98 ms)
bus #1: alarm search  (15.96 ms)
bus #1: alarm search  (15.96 ms)
bus #1: alarm search  (15.96 ms)
bus #1: alarm search  (15.96 ms)

bus #1: request batteries  (751.83 ms)
26.e42171010000.2d
bus #1: alarm search  (15.97 ms)
bus #1: alarm search  (15.96 ms)
bus #1: alarm search  (15.96 ms)
bus #1: alarm search  (15.97 ms)
bus #1: alarm search  (15.97 ms)
bus #1: alarm search  (15.99 ms)

bus #1: request temperatures  (751.83 ms)
OK VALUES Esp1wire 26.e42171010000.2d 30=DS2438, (11.19 ms)
OK VALUES Esp1wire 28.c60ce1040000.4a 1=21.00,30=DS18B20, (12.82 ms)

bus #1: request batteries  (751.85 ms)
26.e42171010000.2d
bus #1: alarm search  (15.96 ms)


Die Temperatur vom 18B20 passt.

VG
BananaPi mit FHEM, KM50, Velux Raumluftsensor, jede Menge HM-CC-RT-DN, jede Menge 1Wire Zeugs

habeIchVergessen

#488
sehr schön. werde abends mal schauen, ob dem DS2438 mehr Details zu entlocken sind (ggf. sind da noch CRC-Fehler oder so).

Was mich wundert, das requestTemperatures und requestBatteries immer die vollen 750ms ausschöpfen. Eigentlich melden die Temperature-Sensoren, das sie fertig sind (nach ca. 650ms bei 12-bit Genauigkeit; ist Default).

nach dem scannen vom Bus wird eine Liste aller Devices ausgegeben (list all devices). Was steht da bei dir?

Nachtrag:
Anpassungen sind auf github (branch master)

Pf@nne

#489
Moin,

Zitat von: habeIchVergessen am 06 März 2017, 22:17:17
dann wäre es gut, MQTT in eine .h und .ino zu packen.

Im Header-File die Klassen-Definition (z.B. EspMqtt) + extern EspMqtt espMqtt;
Im ino-File dann die Implementierung.

dann steht dem Zurgiff von aussen Nichts im Wege.

Ich habe jetzt eine eigene Class für MQTT eingerichtet.....
Jetzt kannst du von überall ein MQTT-publish absetzen.

MQTT-subscribe mit Callback ist noch nicht implementiert.

Ich habe einen Pull-Request gesendet.

Gruß
Pf@nne

EDIT:
Ich habe gerade gesehen, dass du ja schon voll aktiv warst......
FHEM auf: DS415+ (Master), Raspberry Pi 2

habeIchVergessen

habe aus meiner Sicht etwas umstrukturiert.
Hab mal kurz mit Mosquitto getestet. Wahrscheinlich wollt ihr nicht "OK VALUES ..." schreiben.

Doch eher so was wie /Esp1wire/<ESP ChipID>/<1-wire DeviceID>/latch.A usw.

Können die 6 Werte von einem DS2406 mit einem publish geschrieben werden?
Wie geht's weiter?

Pf@nne

Der Topic ist ja frei wählbar....
Ich fange immer mit dem Devicenamen an dann vielleicht den Typ und dann die Messwerte.
DeviceName/DSxx/ID/value
Aber das ist ja Geschmackssache. ...

Der Payload des Topics ist ja nur ein String, von daher kannst du alles in einen Publish packen.
Einfacher ist es aber wenn jeder Value einen eigenen Topic bekommt.
Dann hat man auf der FHEM-Seite gleich ein eigenes Reading und muss nicht noch erst den String zerlegen.

Ist aber auch Geschmackssache.....

Gruß
Pf@nne
FHEM auf: DS415+ (Master), Raspberry Pi 2

HotteFred

Zitat von: habeIchVergessen am 07 März 2017, 11:59:47
nach dem scannen vom Bus wird eine Liste aller Devices ausgegeben (list all devices). Was steht da bei dir?

Du meinst das hier, oder?

bus #1: scanning .+ (51.58 ms)
list all devices
device: 26.e42171010000.2d -> DS2438
device: 28.c60ce1040000.4a -> DS18B20 res: 12 bit alarm low: 70 high: 75
bus #1: alarm search  (16.01 ms)


VG
BananaPi mit FHEM, KM50, Velux Raumluftsensor, jede Menge HM-CC-RT-DN, jede Menge 1Wire Zeugs

habeIchVergessen

Zitat von: HotteFred am 08 März 2017, 07:46:16
Du meinst das hier, oder?

Ja. Danke

Kannst du bitte mit dem Debug für DS2438 testen.

HotteFred

Zitat von: habeIchVergessen am 08 März 2017, 09:19:12
Kannst du bitte mit dem Debug für DS2438 testen.

D.h.: Im Quellcode das // von dieser Zeile Entfernen? #define _DEBUG

scanning i2c bus:
done (0.67 ms)

probe gpio #0: ok

bus #1: scanning Device::Device: temp res: c para: 0
.+Device::Device: battery
(51.75 ms)
list all devices
device: 26.e42171010000.2d -> DS2438
device: 28.c60ce1040000.4a -> DS18B20 res: 12 bit alarm low: 70 high: 75
bus #1: alarm search  (16.09 ms)
bus #1: alarm search  (16.06 ms)
bus #1: alarm search  (16.06 ms)
bus #1: alarm search  (16.06 ms)
bus #1: alarm search  (16.06 ms)

bus #1: request batteries  (751.88 ms)
26.e42171010000.2dHelperBatteryDevice::readScratch: page 1, data: 0000-00-00-crc 0 0HelperBatteryDevice::readScratch: page 0, data: 0f00-00-00-crc 9a 0
bus #1: alarm search  (16.03 ms)


Ich sehe da bis auf das .+Device keinen Unterschied zu vorher.

VG
BananaPi mit FHEM, KM50, Velux Raumluftsensor, jede Menge HM-CC-RT-DN, jede Menge 1Wire Zeugs