Batteriemessung via AskSinPP / Externer Divider

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

Moderator: Co-Administratoren

J.C.
Beiträge: 15
Registriert: 13.08.2020, 19:11
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 2 Mal
Danksagung erhalten: 1 Mal

Batteriemessung via AskSinPP / Externer Divider

Beitrag von J.C. » 19.08.2020, 21:13

Guten Abend,

ich habe jetzt die Methodik der Batteriespannungsmessung via AskSin-Lib nachvollzogen und wollte mich erkundigen, ob ich es richtig verstehe, dass bei Messung über einen Spannungsteiler (Vraw -> R1 -> (zB) Pin 14 -> R2 -> Pin 9) mit Verwendung der Klasse

Code: Alles auswählen

template <uint8_t SENSPIN,uint8_t ACTIVATIONPIN,uint16_t VCC=3300>
class BatterySensorUni : public BattSensor<SyncMeter<ExternalVCC<SENSPIN,ACTIVATIONPIN,LOW,VCC,57> > > {
public:
  BatterySensorUni () {}
  virtual ~BatterySensorUni () {}
};
die "57" im Klassentemplate der Faktor, welcher sich aus dem Spannungsteiler ergibt, ist?
Wenn ja, dann wäre die zweite Frage, ob ich es richtig sehe, dass dieser hardcoded ist?
Mein Widerstandsverhältnis liegt anders, so dass ich mir bis jetzt geholfen haben, den Faktor zur Kompilierung in der BatterySensor.h zu überschreiben, ist aber ja keine zukunftsfähige Lösung - vergesse nach spätestens ein paar Wochen immer wieder alle Details zu den abgeschlossenen Projekten :shock: ...

Wünsche einen angenehmen Abend,

Joost

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: Batteriemessung via AskSinPP / Externer Divider

Beitrag von jp112sdl » 19.08.2020, 21:24

Hi,
J.C. hat geschrieben:
19.08.2020, 21:13
die "57" im Klassentemplate der Faktor, welcher sich aus dem Spannungsteiler ergibt, ist?
ja.
J.C. hat geschrieben:
19.08.2020, 21:13
Wenn ja, dann wäre die zweite Frage, ob ich es richtig sehe, dass dieser hardcoded ist?
Nein. Nur für die BatterySensorUni Klasse. Die ist da eigentlich nur aus historischen Kompatibilitätsgründen.
Du kannst im Sketch z.B.
BattSensor<SyncMeter<ExternalVCC<SENSPIN,ACTIVATION_PIN,LOW,3300,57>>> nutzen und dort dann deine 57 anpassen.

VG,
Jérôme ☕️

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

J.C.
Beiträge: 15
Registriert: 13.08.2020, 19:11
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 2 Mal
Danksagung erhalten: 1 Mal

Re: Batteriemessung via AskSinPP / Externer Divider

Beitrag von J.C. » 19.08.2020, 22:47

Ah, vielen Dank, schon getestet, funktioniert bestens!

Falls es andere Unbedarfte wie mich interessiert, die Initialisierung sieht bei mir jetzt folgendermaßen aus:

Code: Alles auswählen

/**
 * Configure the used hardware
 */
typedef AvrSPI<10,11,12,13> SPIType;
typedef Radio<SPIType,2> RadioType;
typedef DualStatusLed<5,4> LedType;
//typedef BatterySensorUni<14,9,3360> BatterySensorType; 
typedef BattSensor<SyncMeter<ExternalVCC<14,9,LOW,3300,76>>> BatterySensorType; //76: angepasster Divider-Faktor
typedef AskSin<LedType,BatterySensorType,RadioType> HalType;
class Hal : public HalType {
  // extra clock to count button press events
  AlarmClock btncounter;
public:
  void init (const HMID& id) {
    HalType::init(id);
Hoffe so ist es gedacht, Grüße

Joost

benoti
Beiträge: 7
Registriert: 24.05.2020, 19:29
System: keine Zentrale (nur Pairing, FHEM etc.)

Re: Batteriemessung via AskSinPP / Externer Divider

Beitrag von benoti » 19.09.2020, 11:31

Ja, das interessiert mich auch.
Ich habe mir einige der tmStamp Platinen von TomMajor nachgebaut und möchte gerne den HM-Sen-LI-O Sketch von Jerome so modifizieren, dass ich die Batteriemessung unter Last nutzen kann und mir zusätzlich zum Batteriestatus auch die Batteriespannung angezeigt wird in FHEM.
Bisher ist mir nur das unter Nutzung des originalen HB-UNI-Sensor1 Sketch von TomMajor gelungen. Wie kann ich diese Funktion auch in die anderen Sketches übernehmen?
Über Tipps wäre ich sehr dankbar.

Ben

TomMajor
Beiträge: 1793
Registriert: 30.08.2017, 23:25
Hat sich bedankt: 175 Mal
Danksagung erhalten: 399 Mal
Kontaktdaten:

Re: Batteriemessung via AskSinPP / Externer Divider

Beitrag von TomMajor » 19.09.2020, 14:33

benoti hat geschrieben:
19.09.2020, 11:31
Ja, das interessiert mich auch.
Ich habe mir einige der tmStamp Platinen von TomMajor nachgebaut und möchte gerne den HM-Sen-LI-O Sketch von Jerome so modifizieren, dass ich die Batteriemessung unter Last nutzen kann und mir zusätzlich zum Batteriestatus auch die Batteriespannung angezeigt wird in FHEM.
Bisher ist mir nur das unter Nutzung des originalen HB-UNI-Sensor1 Sketch von TomMajor gelungen. Wie kann ich diese Funktion auch in die anderen Sketches übernehmen?
Über Tipps wäre ich sehr dankbar.

Ben
Der erste Teil, Lastschaltung nutzen, sollte einfach sein.
Mein tmBattery.h zu deinem Sketch dazukopieren und im Sketch inkludieren.
Dann sowas wie

Code: Alles auswählen

#define BAT_SENSOR tmBatteryLoad<A1, A0, 4000, 200>
definieren und BAT_SENSOR so verwenden wie im UniSensor Bsp.
Damit hättest du einen besseren Batt. low Status.

Für die Anzeige im WebUI müsstest du die payload und das xml für HM-Sen-LI-O modifizieren (vermute ich, habe nicht reingeschaut).
Das ist der kompliziertere Teil, dazu gabs hier schon einige Threads zum Thema xml Modifikationen.
Viele Grüße,
Tom

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: Batteriemessung via AskSinPP / Externer Divider

Beitrag von jp112sdl » 19.09.2020, 16:26

Zusammen mit pa-pa habe ich vor einigen Tagen die IrqExternalBatt<SENSPIN, ACTIVATIONPIN, FACTOR> gebaut. Letzter Parameter ist Default 57.

Dann braucht es eigentlich keine zyklische Messung mehr mit "künstlicher" Last.
Es wird kontinuierlich unter der tatsächlichen Last gemessen, so lange der AVR wach ist.
Also wie IrqInternalBatt, nur halt für externe Messung am definierten SENSPIN

VG,
Jérôme ☕️

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

TomMajor
Beiträge: 1793
Registriert: 30.08.2017, 23:25
Hat sich bedankt: 175 Mal
Danksagung erhalten: 399 Mal
Kontaktdaten:

Re: Batteriemessung via AskSinPP / Externer Divider

Beitrag von TomMajor » 19.09.2020, 17:09

jp112sdl hat geschrieben:
19.09.2020, 16:26
Zusammen mit pa-pa habe ich vor einigen Tagen die IrqExternalBatt<SENSPIN, ACTIVATIONPIN, FACTOR> gebaut. Letzter Parameter ist Default 57.

Dann braucht es eigentlich keine zyklische Messung mehr mit "künstlicher" Last.
Es wird kontinuierlich unter der tatsächlichen Last gemessen, so lange der AVR wach ist.
Also wie IrqInternalBatt, nur halt für externe Messung am definierten SENSPIN
Für z.B. CR2032 sicher ok.
Für eine kräftige Batterie mit z.B. 2500mAh ist mir die tatsächlichen Last eines Sensors/CC1101 usw. zu gering für eine vernünftige Beurteilung des Batteriezustandes - nur meine persönliche Meinung und bitte um Vergebung dem Meister widersprochen zu haben :roll:
Viele Grüße,
Tom

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: Batteriemessung via AskSinPP / Externer Divider

Beitrag von jp112sdl » 19.09.2020, 18:18

TomMajor hat geschrieben:
19.09.2020, 17:09
und bitte um Vergebung dem Meister widersprochen zu haben
Mir persönlich ist es ja egal. Ich habe bisher nie unter Last gemessen und noch keine Nachteile erlebt. :wink:
Inwieweit es sinnvoll ist, zum Messen extra aufzuwachen und eine Last zu erzeugen, (die sogar höher ist als die tatsächlich anfallende?), ist mir dahingehend nicht ganz klar.

Die IrqExternalBatt bietet jetzt halt die Möglichkeit - ohne zusätzlichen Hardwareaufwand.

VG,
Jérôme ☕️

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

TomMajor
Beiträge: 1793
Registriert: 30.08.2017, 23:25
Hat sich bedankt: 175 Mal
Danksagung erhalten: 399 Mal
Kontaktdaten:

Re: Batteriemessung via AskSinPP / Externer Divider

Beitrag von TomMajor » 19.09.2020, 23:33

jp112sdl hat geschrieben:
19.09.2020, 18:18
TomMajor hat geschrieben:
19.09.2020, 17:09
und bitte um Vergebung dem Meister widersprochen zu haben
Mir persönlich ist es ja egal. Ich habe bisher nie unter Last gemessen und noch keine Nachteile erlebt. :wink:
Inwieweit es sinnvoll ist, zum Messen extra aufzuwachen und eine Last zu erzeugen, (die sogar höher ist als die tatsächlich anfallende?), ist mir dahingehend nicht ganz klar.

Die IrqExternalBatt bietet jetzt halt die Möglichkeit - ohne zusätzlichen Hardwareaufwand.
ich wollte nur darauf hinaus das man bei Batt. mit größeren Kapazitäten auch einen größeren Laststrom braucht um den Zustand zu beurteilen. Sonst wirkt es wie eine unbelastete Messung die normal wenig Aussagekraft hat.
Wenn dann noch der Sensor nur kurz sendet/belastet verstärkt das den Effekt der wenigen Aussagekraft.
Viele Grüße,
Tom

benoti
Beiträge: 7
Registriert: 24.05.2020, 19:29
System: keine Zentrale (nur Pairing, FHEM etc.)

Re: Batteriemessung via AskSinPP / Externer Divider

Beitrag von benoti » 27.09.2020, 20:15

Hallo zusammen,

ich habe jetzt mal den Rat von TomMajor befolgt und Teile aus seinem Code des UniSensor zur Messung der Spannung unter Last und dem Übermitteln des "batteryVoltage" in den originären Sketch des HM-Sen-LI-O von Jerome eingebaut und in HB-UNI-Sen-LI-O umbenannt mit Model 0xF2, 0x3F (siehe Anhang). Kompiliert kriege ich das Ganze und das Gerät läuft, allerdings scheitere ich jetzt daran die Daten von "batteryVoltage" ins FHEM zu übertragen.
Was muss ich denn in der HMConfig_AskSinPPCustom.pm von pa-pa modifizieren, damit das Gerät erkannt wird und den Wert von "batteryVoltage" in den Readings anzeigt?
Bin leider ziemlicher Programmier-Laie und habe ich mich bisher durch den Code gekämpft und versucht Elemente zu übertragen. Allerdings komme ich jetzt nicht mehr weiter und bin um jeden Tipp sehr dankbar.

Grüße,
Ben
Dateianhänge
HB-UNI-Sen-LI-O.txt
(8.31 KiB) 69-mal heruntergeladen

Antworten

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