Batteriestatus und Speicherung des letzten Wechsel

Begonnen von Amenophis86, 12 Januar 2018, 19:23:20

Vorheriges Thema - Nächstes Thema

_fhemuser_

#435
Ich bin kein Programmierer und habe mir das selber beigebracht.

Der Codeschnipsel funktioniert bei mir. :)

Und mit dem Alias habe ich auch etwas gebastelt.

my $Alias = AttrVal($Device, "alias", "undef"); # get the corresponding alias name

my $text_now = "Die Batterien $BatteryTypeText von $Alias müssen JETZT gewechselt werden!"; #Text for changing battery now
my $text_soon = "Die Batterien $BatteryTypeText von $Alias sollten bald gewechselt werden!"; #Text for changing battery soon
fhem in der aktuellsten Version auf:
Raspberry 4 mit SSD | fhem2fhem | NanoCul433 Selbstbau | NanoCul868 Selbstbau | DbLog | MAX! | zigbee2MQTT | homebridge | alexa
inkl zigbee2MQTT Server, Unifi-Server

Raspberry 4 mit SD Karte | fhem2fhem | motioneye

MadMax-FHEM

#436
Zitat von: _fhemuser_ am 22 März 2024, 08:47:32Dieser Sensor wird mit 0 in der Readingsgroup angezeigt:
Hmm, eigenartig.
Du meinst schon die readingsGroup des "Sammel-Dummy"?

Zitatmy $BatteryStatus = "BatterieStatus"; #Name of the Dummy for status

Welcher Wert steht denn dort für das Device drin?

Weil das hier:
Zitat von: _fhemuser_ am 22 März 2024, 08:47:32setstate Fenster_Ess 2024-03-22 08:04:43 battery 100

Müsste ja hier
Zitat##############################################
# MQTT2_DEVICE that have battery Reading showing percentage!
##############################################

wegen

Zitat
Zitat von: _fhemuser_ am 22 März 2024, 08:47:32#  TYPE      MQTT2_DEVICE

ausgewertet werden und dann entsprechend (weil > 75) auf 100 stehen...



Zitat von: _fhemuser_ am 22 März 2024, 08:47:32Dieser Thermostat gar nicht.
Wohin gegen hier ist klar: weder ein Attribut model/type o.ä. oder ein vergleichbares Internal...
Damit rauscht dieses Device durch alle if/elsif durch :-\

Ja würde mit dem Attribut, das anzeigt, dass es beachtet werden soll, klappen...

Mal sehen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

MadMax-FHEM

Zitat von: _fhemuser_ am 22 März 2024, 11:52:58Ich bin kein Programmierer und habe mir das selber beigebracht.

Der Codeschnipsel funktioniert bei mir. :)

Und mit dem Alias habe ich auch etwas gebastelt.

my $Alias = AttrVal($Device, "alias", "undef"); # get the corresponding alias name

my $text_now = "Die Batterien $BatteryTypeText von $Alias müssen JETZT gewechselt werden!"; #Text for changing battery now
my $text_soon = "Die Batterien $BatteryTypeText von $Alias sollten bald gewechselt werden!"; #Text for changing battery soon

Ich auch nicht wirklich ;)

Ja so geht natürlich und auch der andere Schnipsel mag bei dir gehen...
...die "Kunst" ist allerdings, dass es eben bei allen anderen (weiterhin) funktioniert (wie gehabt)...

Drum ist das hier u.a. ja auch so gewachsen...

Weil: wenn es keinen alias gibt, dann steht bei Verwendung deines Codes nix drin 8)

Den alias baue ich noch ein, sodass er auch geht bzw. halt den Devicenamen anzeigt, wenn kein alias gesetzt ist...

Dann mache ich aber erst mal Pause :)

Die anderen Dinge schaue ich mir mal an, bin aber nicht sicher, ob das ohne weiteres für alle anderen (weiterhin) geht...

Ich tendiere ja eher zu Attribut, welches anzeigt, dass das Device beachtet werden soll und wenn wie...
...mal sehen.

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

MadMax-FHEM

#438
Zitat von: MadMax-FHEM am 22 März 2024, 12:09:01Den alias baue ich noch ein, sodass er auch geht bzw. halt den Devicenamen anzeigt, wenn kein alias gesetzt ist...

Hängt an UNGETESTET...

EDIT: also nur im Mitteilungstext steht dann der alias. In der readingsGroup bzw. dem "Sammel-dummy" steht weiterhin (vorerst) der Devicename drin...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

_fhemuser_

Wird dabei nicht der Wert auf "n.a." geprüft und nicht auf "nichtvorhanden" oder "ohneInhalt"?
 :-\

Und es würden alle Geräte neu angelegt?
fhem in der aktuellsten Version auf:
Raspberry 4 mit SSD | fhem2fhem | NanoCul433 Selbstbau | NanoCul868 Selbstbau | DbLog | MAX! | zigbee2MQTT | homebridge | alexa
inkl zigbee2MQTT Server, Unifi-Server

Raspberry 4 mit SD Karte | fhem2fhem | motioneye

MadMax-FHEM

#440
Zitat von: _fhemuser_ am 22 März 2024, 12:20:58Wird dabei nicht der Wert auf "n.a." geprüft und nicht auf "nichtvorhanden" oder "ohneInhalt"?
Ja ;)

Aber: wenn nicht vorhanden, dann Ersatzwert und der ist "n.a."

Wenn also nicht der Ersatzwert geliefert wird, dann ist der alias gesetzt und wird genommen...
...ansonsten bleibt es bei $Device.

Ja, verm. geht auch undef oder so?
Aber so weiß ich was passiert und dass es klappt, solange niemand sein Device per alias "n.a." nennt 8)


Zitat von: _fhemuser_ am 22 März 2024, 12:20:58Und es würden alle Geräte neu angelegt?
Verstehe ich nicht?

Aktuell wird ja weiterhin mit $Device gearbeitet, d.h. es hat sich NIRGENDS was geändert, nur im Message-Text.
Dort wird eben (so der Plan) der alias genommen, wenn gesetzt und wenn nicht (wie bisher) $Device (-> Devicename)...

EDIT: einen "generellen" Umbau von Devicename auf alias habe ich ja eben (noch) nicht vorgenommen...

Aber wie geschrieben: ungetestet...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

MadMax-FHEM

FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

TK67

Zitat von: MadMax-FHEM am 22 März 2024, 07:49:41
Zitat von: TK67 am 21 März 2024, 18:58:42Wäre nett wenn du das auch noch anhängen kannst.
Ich habe hier kein "Monopol" auf den Code ;)

Es darf jeder gerne mitarbeiten :)

Ist ja Code-Schnipsel und kein Modul mit Maintainer...

Aber falls du nicht willst (warum auch immer), kann ich die überschaubaren Änderungen auch einbauen... 8)

Gruß, Joachim


Hallo Joachim,
da die letzten Änderungen von dir gemacht wurden, dachte ich es macht Sinn es an dich weiter zu leiten.
Damit man einen einigermaßen gleichen Stand hat und nicht zig verschiedene Versionen.

Habe in deiner veröffentlichten Version eine Erweiterung mit CalculateBatteryLife laufen, die ich mir aus dem Topic 303 / 304 zusammen gebaut habe.
Entspricht somit auch nicht deiner Version und würde wahrscheinlich wieder zur Verwirrung führen, wenn ich die auch noch poste.

Wie gesagt es war jetzt keine Bequemlichkeit das nicht selber zu posten.
Grace Period und die letzten Erweiterungen mit skipped Device und Nachricht mit Batterietyp funktionieren bestens  :)


Gruß TK67
FHEM auf Raspberry Pi 3 Model B+

MadMax-FHEM

Zitat von: TK67 am 22 März 2024, 16:16:55Hallo Joachim,
da die letzten Änderungen von dir gemacht wurden, dachte ich es macht Sinn es an dich weiter zu leiten.
Damit man einen einigermaßen gleichen Stand hat und nicht zig verschiedene Versionen.

Zitat von: TK67 am 22 März 2024, 16:16:55Wie gesagt es war jetzt keine Bequemlichkeit das nicht selber zu posten.

;)

Alles gut!
Solche Änderungen einpflegen ist ja kein Ding und ja ein Durcheinander hätte schon passieren können, da aktuell wieder einiges los ist hier...
...und ich aktuell zwischendrin immer mal kurz Zeit hatte das zu machen, ist es so durchaus "besser" gewesen 8)

Zitat von: TK67 am 22 März 2024, 16:16:55Grace Period und die letzten Erweiterungen mit skipped Device und Nachricht mit Batterietyp funktionieren bestens  :)
Dann is ja gut. Danke :)

Zitat von: TK67 am 22 März 2024, 16:16:55Habe in deiner veröffentlichten Version eine Erweiterung mit CalculateBatteryLife laufen, die ich mir aus dem Topic 303 / 304 zusammen gebaut habe.
Entspricht somit auch nicht deiner Version und würde wahrscheinlich wieder zur Verwirrung führen, wenn ich die auch noch poste.

Weicht die (stark) von meiner geposteten Version ab?
https://forum.fhem.de/index.php?topic=82637.msg1042493#msg1042493

Naja, das kann man schon auch noch einbauen.
In der Startroutine dann noch einen dummy dafür (jaja: Schimpf und Schande ;)  ) und in der Sub dann prüfen, ob dummy da -> eintragen ansonsten eben lassen oder so...

Ich könnte auch noch eine BatteriesInStock beisteuern ;)

Ich habe einen dummy (jaja ;)  ), wo ich die Batterien, die ich aktuell zuhause habe eingepflegt habe und auch wenn ich welche kaufe oder anderweitig verwende aktualisiere.
Dann eben das Attribut BatteryType und mir darin eine "Strategie" überlegt, wie ich von dort zusammen mit meinem "InStock-dummy" dann rauskriege, ob ich noch genug Batterien habe.
Wenn nicht, bekomme ich auch eine Nachricht, dass ich nicht nur bald wechseln sollte, sondern auch Batterien kaufen sollte...

Der BatteriesInStock-Bestand wird nat. auch autom. aktualisiert, wenn ich die Batterien getauscht habe :)

Aber das würde verm. hier (aktuell) wirklich zu weit führen...
...wobei: wir sind ja in Code-Schnipsel ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Prof. Dr. Peter Henning

@TK67: Sorry, aber so läuft das bei FHEM nicht. Joachim ist hier nicht der Maintainer eines offiziell mit FHEM verteilten Moduls, man kann ihm also bitte nicht von außen die Verantwortung für die Pflege und Verteilung dieser Batteriesachen aufbürden. Das genau ist der Unterschied zwischen den "Codeschnipseln" in diesem Bereich des Forums, und den offiziell gewarteten Modulen.

Also bitte: Code genießen und mitwirken - aber nicht "ich leite das mal an Dich weiter, damit es eine Version gibt".

LG

pah

TK67

Zitat von: Prof. Dr. Peter Henning am 22 März 2024, 16:59:03@TK67: Sorry, aber so läuft das bei FHEM nicht. Joachim ist hier nicht der Maintainer eines offiziell mit FHEM verteilten Moduls, man kann ihm also bitte nicht von außen die Verantwortung für die Pflege und Verteilung dieser Batteriesachen aufbürden. Das genau ist der Unterschied zwischen den "Codeschnipseln" in diesem Bereich des Forums, und den offiziell gewarteten Modulen.

Also bitte: Code genießen und mitwirken - aber nicht "ich leite das mal an Dich weiter, damit es eine Version gibt".

LG

pah

@pah
Sorry aber irgendwie hast du mich da wohl missverstanden, es geht hier nicht darum zu delegieren, sondern ich habe Joachim lediglich freundlich darum gebeten, da er momentan sehr aktiv am Thema ist, meine von mir gefundenen Änderungen mit einzubinden.

Nichts anderes und nicht mehr, ich habe aktiv mitgewirkt und meine Lösungen gepostet.

Es ging mir darum das man nachher nicht auf über 30 Seiten irgendwelche Schnipsel zusammen suchen muss, damit man einen einheitliche Version hat.
Im übrigen bin ich dankbar dafür das sich Joachim die Mühe macht, diesen zusammen getragenen Code weiter zu entwickeln.

Gruß TK67 

FHEM auf Raspberry Pi 3 Model B+

Prof. Dr. Peter Henning

Nö, da war nichts zum "missverstehen".

Und bitte nicht jedesmal den "Zitieren"- Button-benutzen, das ist einfach nur nervig und müllt das Forum zu. Der Button "Antworten" ist oben.

pah

_fhemuser_

@pah

wie könnte man denn die Änderungen, die mehrere Personen durchführen am Code, vernünftig aktualisieren und dass jeder den gleichen Versionsstand hat ohne dass jeder seine Änderung als Anhang beifügt und jeder diese Version wieder nutzt um seine Änderung einzupflegen.?

Mir würde dazu git einfallen. Aber auch da sollte einer über den Code sehen bevor die Änderungen zusammen geführt werden.

Aber selbt in Programmierteams arbeiten nicht mehrere Personen im gleichen Bereich an dem Code, was hier aber durchaus passiert.

Daher finde ich die Vorgehensweise, dass man einen bittet die Änderungen zusammen zu fassen und diese "komplette" Version dann anfügt, im Hobbybereich, und um den geht es hier, vertretbar.

Gruß
_fhemuser_
fhem in der aktuellsten Version auf:
Raspberry 4 mit SSD | fhem2fhem | NanoCul433 Selbstbau | NanoCul868 Selbstbau | DbLog | MAX! | zigbee2MQTT | homebridge | alexa
inkl zigbee2MQTT Server, Unifi-Server

Raspberry 4 mit SD Karte | fhem2fhem | motioneye

Prof. Dr. Peter Henning

#448
Ich kann gar nicht so oft "Nein" schreiben, wie ich möchte ...
ZitatMir würde dazu git einfallen.
Wir pflegen denjenigen Code, der gepflegt wird, im zentralen SVN (nicht in git, das hat historische Gründe). Und wir warten ihn sehr intensiv.
ZitatAber auch da sollte einer über den Code sehen bevor die Änderungen zusammen geführt werden.
Das ist absoluter Unsinn. Das zentrale Programm fhem.pl wird von Rudi König gepflegt, wichtige Design-Entscheidungen von ihm und einer kleinen Gruppe getroffen. Aber für die allermeisten Module ist nur der jeweilige Maintainer zuständig. Und wenn sie nicht funktionieren, werden sie eben nicht verwendet.
ZitatAber selbt in Programmierteams arbeiten nicht mehrere Personen im gleichen Bereich an dem Code, was hier aber durchaus passiert.
Das ist doppelt unkorrekt. Selbstverständlich arbeiten in professionellen Teams durchaus verschiedene Entwickler an demselben Code. Hier in FHEM ist das wegen der verteilten Verantwortlichkeiten allerdings nicht die Regel.
ZitatDaher finde ich die Vorgehensweise, dass man einen bittet die Änderungen zusammen zu fassen und diese "komplette" Version dann anfügt, im Hobbybereich, und um den geht es hier, vertretbar.
Nein, ganz sicher nicht. Dieser Teil des Forums heißt "Codeschnipsel" und befasst sich nicht mit gewartetem Code. Sondern hier kann jeder etwas Kleineres einstellen, das anderen vielleicht nutzt. Und daraus ergibt sich keinerlei Vepflichtung, die sollte sich auch niemand aufbürden lassen.

Für größere Codebeispiele gibt es das Wiki. Und man kann solche längeren Beispiele durchaus über Updates verteilen, dafür gibt es den contrib-Ordner - aber auch dort gibt es keinerlei Wartung.

Nur in den Hauptverzeichnissen gibt es gewarteten Code. Und das soll auch so bleiben.

Mein Tipp: Sich einfach mal mit den Verzeichnisstrukturen befassen und einen Blick in die Datei MAINTAINER.txt werfen.

pah

LutzG

Hallo Herr Prof. Dr. Peter Henning
Zitat von: Prof. Dr. Peter Henning am 23 März 2024, 18:26:30Ich kann gar nicht so oft "Nein" schreiben, wie ich möchte ...
[...] Das ist absoluter Unsinn.
[...] Das ist doppelt unkorrekt. Selbstverständlich arbeiten in professionellen Teams
[...] Nein, ganz sicher nicht.
[...] Mein Tipp: Sich einfach mal mit den Verzeichnisstrukturen befassen und einen Blick in die Datei MAINTAINER.txt werfen.
mich macht ihre Antwort echt sauer! Ich kann keine Silbe finden, die irgend etwas mit dem Thema: "Batteriestatus und Speicherung des letzten Wechsel" zu tun hat! Wenn ich mich wie @Joachim mit dem Codeschnipsel befassen könnte / hätte, hätte ich spätestens jetzt keinen Bock mehr darauf! (Was ich hoffe, nicht passiert.)

Mit freundlichen Grüßen,

Lutz
DMZ: J5040 mit OpenMediaVault, in Docker: Portainer, Fhem, MariaDB, zigbee2mqtt, esphome, NextCloudPi, Jellyfin, Grocy.
Intranet: J5005 mit OpenMediaVault, in Docker: Portainer, Fhem-minimal, urbackup - läuft nur, wenn Rechner laufen.