1...8fach Temperatursensor DS18B20

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

controller2016
Beiträge: 71
Registriert: 30.07.2016, 18:47

Re: 1...8fach Temperatursensor DS18B20

Beitrag von controller2016 » 03.01.2020, 15:32

Ok sorry war blind :roll: habs gefunden Danke :D

controller2016
Beiträge: 71
Registriert: 30.07.2016, 18:47

Re: 1...8fach Temperatursensor DS18B20

Beitrag von controller2016 » 04.01.2020, 10:53

Morgen,
habe alles so weit verstanden und getestet,vielen Dank an die Macher!.

Ich hatte aber ein Problem mit dem LCD am Anfang,und zwar hier im Code:
Hier:

Code: Alles auswählen

#ifdef USE_LCD
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(LCD_ADDRESS, 20, 4);
#endif
Und hier:

Code: Alles auswählen

#ifdef USE_LCD
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("UNI-Sen-TEMP-DS18B20");
  lcd.setCursor(5, 1);
  lcd.print((char*)serial);
  HMID temp;
  sdev.getDeviceID(temp);
  lcd.setCursor(7, 2);
  lcd.print(temp, HEX);
#endif
So funktionierte bei mir nicht,aber damit:

Code: Alles auswählen

#ifdef USE_LCD
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
#endif
Und damit:

Code: Alles auswählen

#ifdef USE_LCD
  lcd.begin(20, 4);
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("UNI-Sen-TEMP-DS18B20");
  lcd.setCursor(5, 1);
  lcd.print((char*)serial);
  HMID temp;
  sdev.getDeviceID(temp);
  lcd.setCursor(7, 2);
  lcd.print(temp, HEX);
#endif
Liegt vermutlich an einer anderen I2C Lib von mir.
Vielleicht hilft es auch jemandem der die gleichen Probleme hat.

harvey
Beiträge: 136
Registriert: 01.12.2013, 13:19
Danksagung erhalten: 3 Mal

Re: 1...8fach Temperatursensor DS18B20

Beitrag von harvey » 05.01.2020, 12:49

Hi,
bei der festen Zuordnung der Sensoren kann man zwei Wege gehen:
- man liest die eingebrannten uniq serials des DS18X20 aus und schreibt sie manuell in den Sketch rein
- man beschreibt vorher in einem extra Schritt manuel die "userdata" Bits mit einem individuellen Wert (z.B. lfd Nummer) und liest den in erweitertem Sketch aus und sortiert den Sensor an seinem Index in das gesendete Ergebnis ein.

Das erste Verfahren geht gut, wenn man zum Austausch gut an das Modul kommt, da der neue, an das Ersatz-DS18x20 angepasste Sketch noch neu geflasht werden muss. Entsprechend schlecht, wenn Modul nicht/schlecht erreichbar (Dach, wasserdicht verklebt ...). Das könnte man auch noch durch OTA-Flash und geänderte Firmwareversion lösen.

Das zweite Verfahren bedeutet, dass man den neuen Sensor z.B. mit der lfd Nummer in der Senosorkette beschreiben muss: also wenn Sensor "3" ausfällt wird der Sensor vor Tausch ebenfalls mit "3" beschrieben (siehe Beispiele für userdata in den Dallas-Libs) und nur der Sensor wird getauscht. Der Sketch wird nicht angefasst, das Modul läuft einfach weiter.

Jeder wähle also das für den eigenen Zweck passende Verfahren.
cu
Harvey

PS: Verfahren zwei habe ich vor langer Zeit mal gemacht, ist aber viel Umbau, da die Ds18x20.h nicht mehr passt. Und man muss einen Aufbau haben zum Flashen der userdata Bits. Wäre vielleicht eine Überlegung wert, die serial und die userdata immer in ein array mit einzulesen ...
Homematic raspberrymatic, iobroker, Asksinpp und Arduinos - rund 50 Geräte

jp112sdl
Beiträge: 12085
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 847 Mal
Danksagung erhalten: 2139 Mal
Kontaktdaten:

Re: 1...8fach Temperatursensor DS18B20

Beitrag von jp112sdl » 05.01.2020, 13:22

Ich hätte es auch irgendwie lieber User-freundlicher.
Du beschreibst hier 2 Wege, dann gibt es noch den Ur-Sketch von mir ohne jegliche Zuordnung.
Allesamt sind untereinander mehr oder weniger inkompatibel. Zumindest ist es nicht mit ein paar #defines mal eben abgetan.

Es wäre wohl am sinnvollsten, dass ich meine Ur-Variante in meinem Repository so belasse und wolwin und du (harvey) ladet eure Varianten in euer eigenes Repo (die Sketche können wir dann auch auf asksinpp.de verlinken, bzw. wir können gegenseitig auf die anderen Varianten hinweisen)?

Ich weiß, ihr habt euch damit tief auseinandergesetzt und viel Zeit darin investiert.
Das Problem für mich ist, dass ich die komplexen Änderungen nicht supporten kann.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

wolwin
Beiträge: 272
Registriert: 06.06.2018, 12:27
Hat sich bedankt: 11 Mal
Danksagung erhalten: 47 Mal

Re: 1...8fach Temperatursensor DS18B20

Beitrag von wolwin » 14.01.2020, 18:23

Hi,
haben wir ja schon mal an anderer Stelle diskutiert …
jp112sdl hat geschrieben:
05.01.2020, 13:22
IEs wäre wohl am sinnvollsten, dass ich meine Ur-Variante in meinem Repository so belasse und wolwin und du (harvey) ladet eure Varianten in euer eigenes Repo (die Sketche können wir dann auch auf asksinpp.de verlinken, bzw. wir können gegenseitig auf die anderen Varianten hinweisen)?
@Jérôme
Finde ich eigentlich nicht so toll: drei Versionen an drei Stellen … außer uns drei versteht dann keiner den Unterschied …

@Alle
Eigentlich hatte ich die Arbeit in den Original-Code SO investiert, dass der ursprüngliche Code quasi 'gleich geblieben' ist - lediglich die Konfiguration ist in eine Definitionsdatei ausgelagert worden - wie harvey beschrieben hat, ist deshalb die Original-Version bzw. meine Erweiterung zum Original nur für einen lokalen Einsatzzweck gedacht (man kommt einfach an die Schaltung heran … ) - wenn ein Sensor ausfällt, steht ein 'Neuaufspielen' an …
Wollte man alles frei indizieren, bleibt in der Tat nur die vorgestellte zweite Lösung - wäre nett, aber dann würde ich persönlich den Code 'komplett' umstellen - ganz zu schweigen von dem Aufwand …

Daher wäre mein Vorschlag das Repo wie folgt umzugestalten:
1. Urversion umbenennen und so belassen (v1)
2. meine Github Änderungen in den Code übernehmen = v2 ... (der User controller2016 hat den Code ja schon erfolgreich benutzt)
3. Hinweis mit Erläuterung und Verlinkung auf den Code von harvey (oder ebenfalls im Repo als unsuporteter Code abgelegt und gekennzeichnet als v3)

VG
Wolfram

wolwin
Beiträge: 272
Registriert: 06.06.2018, 12:27
Hat sich bedankt: 11 Mal
Danksagung erhalten: 47 Mal

Re: 1...8fach Temperatursensor DS18B20

Beitrag von wolwin » 03.02.2020, 20:28

jp112sdl hat geschrieben:
05.01.2020, 13:22
Es wäre wohl am sinnvollsten, dass ich meine Ur-Variante in meinem Repository so belasse und wolwin und du (harvey) ladet eure Varianten in euer eigenes Repo (die Sketche können wir dann auch auf asksinpp.de verlinken, bzw. wir können gegenseitig auf die anderen Varianten hinweisen)?
Hallo zusammen,
habe jetzt die Änderungen / Erweiterung der Ur-Variante bei mir abgelegt:

https://github.com/wolwin/WW-mySHP/blob ... /README.md

Gruss
Wolfram

Juergen_W02
Beiträge: 55
Registriert: 03.07.2019, 23:02
Hat sich bedankt: 20 Mal

Re: 1...8fach Temperatursensor DS18B20

Beitrag von Juergen_W02 » 25.02.2020, 04:43

Hallo zusammen,
ich habe eine Frage, gibt es schon ein Script wie ich die Daten der Temperatursensor mit Telegramm versenden kann?

Ich krieg das selber nicht hin.

Mit freundlichen Grüßen
Jürgen

jp112sdl
Beiträge: 12085
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 847 Mal
Danksagung erhalten: 2139 Mal
Kontaktdaten:

Re: 1...8fach Temperatursensor DS18B20

Beitrag von jp112sdl » 25.02.2020, 06:15

Hi,
Telegram-Skripte gibts hier im Forum einige.
Du brauchst sie dir nur anpassen.

Der HB-UNI-Sen-TEMP-DS18B20 hat je Kanal einen TEMPERATURE Datenpunkt.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Juergen_W02
Beiträge: 55
Registriert: 03.07.2019, 23:02
Hat sich bedankt: 20 Mal

Re: 1...8fach Temperatursensor DS18B20

Beitrag von Juergen_W02 » 25.02.2020, 16:52

Hi,

vielen dank für die Antwort.

ich hab zwar ein Script was funktioniert, aber anpassen kriege ich nicht hin, da brauche ich Hilfe.

Das ist ein Script der bei mir läuft.
string stderr;
string stdout;
string url="\"https://api.telegram.org/bot1234:123456 ... chmaschine ist fertig\"";
system.Exec("wget --no-check-certificate -q -O - "#url, &stdout, &stderr);

Das sind ein Screenshot meines Temperatursensor:
Bildschirmfoto 2020-02-25 um 16.44.49.png

Wie bekomme ich die Werte in Telegramm?

Wer kann mir da helfen

Gruß
Jürgen

cmjay
Beiträge: 2373
Registriert: 19.09.2012, 10:53
System: CCU
Wohnort: Jottweedee
Hat sich bedankt: 250 Mal
Danksagung erhalten: 348 Mal

Re: 1...8fach Temperatursensor DS18B20

Beitrag von cmjay » 25.02.2020, 17:10

@Jürgen
Ich melde mich mal im Hinblick auf die "Forenhygiene" und würde in diesem Sinne vorschlagen, dass du dich bzgl. deines Telegram-Skript-Problems an einen der vielen Threads zu dem Thema dranhängst oder einen neuen unter "Homematic Allgemein" aufmachst. Das hat ja nicht spezifisch etwas mit dem AskSinPP Temperatursensor zu tun, sondern ist allgemeiner Natur. Dieser Thread hier ist mit 26 Seiten wirklich schon lang und unübersichtlich genug.
Bzgl. des zu verarbeitenden Datenpunktes hat Jerome dir ja schon die notwendige Info geliefert:
Der HB-UNI-Sen-TEMP-DS18B20 hat je Kanal einen TEMPERATURE Datenpunkt.
Es kann leider nicht ganz ausgeschlossen werden, dass ich mich irre.
HmIP muss leider draussen bleiben. in Ausnahmefällen erlaubt
ACHTUNG! Per Portweiterleitung aus dem Internet erreichbare CCU-WebUI ist unsicher! AUCH MIT PASSWORTSCHUTZ! Daher: Portweiterleitung deaktivieren!

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“