Füllstandsensor mit Druck- statt US-Sensor

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

Moderator: Co-Administratoren

jp112sdl
Beiträge: 3029
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 7 Mal
Danksagung erhalten: 31 Mal
Kontaktdaten:

Re: Füllstandsensor mit Druck- statt US-Sensor

Beitrag von jp112sdl » 13.03.2019, 11:57

DocMarten hat geschrieben:
13.03.2019, 11:33
pressure
allein ist z.B. 19,6 wenn ContentLiters 1960 ist.
Das kann nicht sein, da pressure ein uint16_t ist.

Oder willst du Liter * 100 rechnen ?
1960 Liter * 100 = 196000 und das ist größer als ein uint16_t werden kann (65536).

Hab deinen Code nur flüchtig überflogen :roll:
Zuletzt geändert von jp112sdl am 13.03.2019, 11:57, insgesamt 1-mal geändert.

VG,
Jérôme

DocMarten
Beiträge: 122
Registriert: 12.11.2006, 23:33

Re: Füllstandsensor mit Druck- statt US-Sensor

Beitrag von DocMarten » 13.03.2019, 11:57

Danke - schon wieder was gelernt...
Ausgabe vom letzten Test heute früh war BTW (bei pressure = ContentLiters *100):

Code: Alles auswählen

+Pressure  (#1) Analogwert: 251
09:54:02.222 -> +Pressure  (#1)       Fuellstand in Prozent: 23.3666706085
09:54:02.222 -> +Pressure  (#1)       Fuellstand in Litern: 1964.8845214843
09:54:02.222 -> +Pressure  (#1)       Messung: 6.0753340721
09:54:02.222 -> +Pressure  (#1)       sens_val: 251
09:54:02.222 -> +Pressure  (#1)       ContentTotal: 8.4089193344
09:54:02.222 -> +Pressure  (#1)       Pressure: 19648
<- 0E 01 84 53 E90101 424242 00 C1 01 C0 C0  - 3180
ignore 0C CD 86 5A 391C84 000000 78 BF 28  - 3194
...
Angekommen ist:

Code: Alles auswählen

Readings
pressure 493.44 2019-03-13 09:54:04
state 493.44 2019-03-13 09:54:04

jp112sdl
Beiträge: 3029
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 7 Mal
Danksagung erhalten: 31 Mal
Kontaktdaten:

Re: Füllstandsensor mit Druck- statt US-Sensor

Beitrag von jp112sdl » 13.03.2019, 12:02

Man sieht hier schön im Telegramm, was gesendet wird:

Code: Alles auswählen

<- 0E 01 84 53 E90101 424242 00 C1 01 C0 C0  - 3180
Die pressure-Payload ist C0 C0 (hex)-> b1100000011000000 -> 49344

VG,
Jérôme

jp112sdl
Beiträge: 3029
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 7 Mal
Danksagung erhalten: 31 Mal
Kontaktdaten:

Re: Füllstandsensor mit Druck- statt US-Sensor

Beitrag von jp112sdl » 13.03.2019, 12:02

DocMarten hat geschrieben:
13.03.2019, 11:57
BTW (bei pressure = ContentLiters *100):
Ok, das erklärt es dann wohl...
jp112sdl hat geschrieben:
13.03.2019, 11:57
1960 Liter * 100 = 196000 und das ist größer als ein uint16_t werden kann (65536).

VG,
Jérôme

DocMarten
Beiträge: 122
Registriert: 12.11.2006, 23:33

Re: Füllstandsensor mit Druck- statt US-Sensor

Beitrag von DocMarten » 13.03.2019, 12:20

Das versehe ich aber immer noch nicht.
Zum einen kommt bei bei pressure = ContentLiters *10 ja 196 an, d.h. der Wert wird ja irgendwo schon "gestutzt", wobei mir auch nicht klar ist, warum nicht direkt der Wert von ContentLiters (der ja seriell der korrekte ist) genommen werden kann.
Zum anderen habe ich es ja auch mit uint32_t statt uint16_t versucht, und das hat auch nicht geklappt (oder "passt" das nicht ins Telegramm)?

jp112sdl
Beiträge: 3029
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 7 Mal
Danksagung erhalten: 31 Mal
Kontaktdaten:

Re: Füllstandsensor mit Druck- statt US-Sensor

Beitrag von jp112sdl » 13.03.2019, 12:25

DocMarten hat geschrieben:
13.03.2019, 12:20
(oder "passt" das nicht ins Telegramm)?
Korrekt.
Dazu müsstest du noch 2 Bytes an die Payload anhängen und auch die Telegrammlänge erweitern.

Code: Alles auswählen

class WeatherEventMsg : public Message {
  public:
    void init(uint8_t msgcnt, uint8_t channel, uint32_t pressure) {
      DPRINT("XXX ");DDECLN(pressure); 
      Message::init(0x10, msgcnt, 0x53, BCAST , 0x00, 0xc1);
      pload[0] = channel  & 0xff;
      pload[1] = (pressure >> 24) & 0xff;
      pload[2] = (pressure >> 16) & 0xff;
      pload[3] = (pressure >> 8) & 0xff;
      pload[4] = pressure & 0xff;
    }
};
Das passt dann aber auch nicht mehr zur CCU-XML Gerätedatei... aber die verwendest du eh nicht, weil du FHEM nutzt und ohne CCU arbeitest? Oder hast du das JP-HB-Devices-Addon in Verwendung?
Falls ja, müsstest du hier: https://github.com/jp112sdl/JP-HB-Devic ... ss.xml#L81

noch

Code: Alles auswählen

 <parameter type="integer" index="12.0" size="4.0" param="UNI_PRESSURE" />
 
ädnern

VG,
Jérôme

DocMarten
Beiträge: 122
Registriert: 12.11.2006, 23:33

Re: Füllstandsensor mit Druck- statt US-Sensor

Beitrag von DocMarten » 13.03.2019, 12:31

Vielen Dank Jerome,
ich nutze hier fhem (und habe nur eine alte CCU1, auf der sich Dein Addon aber nicht installieren lässt) und im Ferienhaus CCU2 + fhem (vccu).
Ich werde mich heute Abend dran machen. Immer noch nicht klar ist mir, warum ich nicht einfach den korrekten Wert (hier 1960) direkt ans Telegramm übergeben kann, ohne es verlängern zu müssen? Der wird ja w.o. korrekt ermittelt/berechnet.
Wahrscheinlich muss ich auch Papas Modul anpassen?

jp112sdl
Beiträge: 3029
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 7 Mal
Danksagung erhalten: 31 Mal
Kontaktdaten:

Re: Füllstandsensor mit Druck- statt US-Sensor

Beitrag von jp112sdl » 13.03.2019, 12:33

Schau erstmal, was die zusätzliche Ausgabe DPRINT("XXX ");DDECLN(pressure); in der Message Klasse ausgibt.

VG,
Jérôme

DocMarten
Beiträge: 122
Registriert: 12.11.2006, 23:33

Re: Füllstandsensor mit Druck- statt US-Sensor

Beitrag von DocMarten » 13.03.2019, 13:16

ok, mach ich.
Wahrscheinlich (wenn ich mich traue) versuche ich im Lauf der Zeit auch, doch ein eigenes Modul daraus zu machen. Da sind ja z.B. noch die ganzen Funktionen zur Energieeinsparung, Batteriecheck usw. zu integrieren, wenn ich es wirklich mit einer Solar-Powerbank oder eben Batterien laufen lassen will.
Was BTW auch bei diesem Modul (ebenso wie beim US-Füllstandmesser) nicht tut ist die LED - ich solche aus igrnedeinem Arduino-Bastelkit genommen. Gibt es da unterschiedliche Typen?

jp112sdl
Beiträge: 3029
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 7 Mal
Danksagung erhalten: 31 Mal
Kontaktdaten:

Re: Füllstandsensor mit Druck- statt US-Sensor

Beitrag von jp112sdl » 13.03.2019, 13:21

DocMarten hat geschrieben:
13.03.2019, 13:16
Gibt es da unterschiedliche Typen?
möglicherweise hat sie einen zu großen Vorwiderstand weil sie für höhere Spannung ausgelegt ist

VG,
Jérôme

Antworten

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