Neueste Beiträge

#91
Anfängerfragen / Aw: Mqtt fhem
Letzter Beitrag von Sebastian84 - 09 Juni 2026, 22:48:14
Internals:
   CONNECTS   2
   Clients    :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
   ClientsKeepOrder 1
   DEF        1883 global
   FD         76
   FUUID      66b3eed6-f33f-cdd4-2371-31fc56511eee860b
   NAME       Wasseruhr
   NR         499
   PORT       1883
   STATE      Initialized
   TYPE       MQTT2_SERVER
   eventCount 3
   MatchList:
     1:MQTT2_DEVICE ^.
     2:MQTT_GENERIC_BRIDGE ^.
   READINGS:
     2026-06-09 22:07:32   nrclients       2
     2026-06-09 22:07:02   state           Initialized
   clients:
     Wasseruhr_192.168.0.129_54107 1
     Wasseruhr_192.168.0.130_63359 1
Attributes:
   room       Wasseruhr

Hier ist die Liste
#92
Solaranlagen / Aw: [23_BYDBox] - Modul für BY...
Letzter Beitrag von Hadl - 09 Juni 2026, 22:47:45
Ich hab mir mit deinen Hinweisen alles nochmal genauer angeschaut.
Aufgefallen ist mir das 9 Tage vor dem leerwerden kein Ballincing mehr stattgefunden hat. Sonst gab es jeden Tag mindestens einen kurzen und teilweise noch ein langes Ballancing.

Zitat von: Parallix am 08 Juni 2026, 09:49:31Was Dein Akku bräuchte, ist eine Ladung, mit der wirklich alle (!) Zellen auf ca. 3450mV gebracht werden. Danach sollten die von Dir beobachteten SOC-Sprünge nicht mehr vorkommen oder aber wesentlich kleiner ausfallen.

Ja, das verstehe ich, die 3450mV sind ja wirklich sehr kurz vor dem Ladeschluss. Da steigt die Spannung steil an und die Zellunterschiede sind deutlich.
Ich hab nun mehrere Tage den Akku bis 100% mit 300W vollgeladen. Dabei hat das BMS am ersten Tag 2,5 Stunden den SOC bei 99% gehalten, die Tage drauf etwas kürzer, aber er gleicht die Abweichung wieder aus.
Von 3450mV bis Ladeschluss waren es dabei immer meistens 2 Minuten.
Dabei hat er jeden Tag für ca. 40 Minuten ein ballancing gestartet.

Ich glaub ich weis schon wie ich den Ballancer helfen kann die Zellen obenrum gleich zu bekommen. Sehr langsam laden und möglichst lange beim laden bei den 3450 zu bleiben.
Wobei ich es echt schade finde das dies notwendig ist...

Die Frage die ich mir stelle ist eher, wie ist es zu der Situation gekommen, das so große Abweichungen vorhanden sind.
#93
Anfängerfragen / Aw: Mqtt fhem
Letzter Beitrag von rabehd - 09 Juni 2026, 22:45:58
Wie wäre es mit einem List der Wasseruhr?
Bilder helfen nicht.
#94
Marktplatz - Güter / Aw: Verkaufe 4 + 1 ELV PCA301 ...
Letzter Beitrag von Stefan# - 09 Juni 2026, 22:42:55
Hi,

Preisupdate jetzt 12€ plus Versand.

Grüße

Stefan
#95
Anfängerfragen / Aw: Mqtt fhem
Letzter Beitrag von Sebastian84 - 09 Juni 2026, 22:28:02
Im ersten Bild ist der esp mit mqtt von fhem Server. Und im 2 Bild sieht man meine 2 esp Aber der neue wird nicht angezeigt. Wo soll ich den
Attribut autocreate [no|simple|complex] eintragen?
#96
FRITZ!Box / Aw: FritzSmart ab Modul-Versio...
Letzter Beitrag von Sidey - 09 Juni 2026, 22:23:36
Zitat von: JoWiemann am 09 Juni 2026, 12:39:57warum per CPAN, wenn es ein Debian deb gibt? Mal abgesehen davon, das xml::Simple im Fhem deb dabei ist.

Dazu gibt es mehrere Gründe.

1. Ich nutze ein Perl Basis Image. Das für FHEM verwendete Perl wird nicht über Debian Pakete installiert.
Daher scheidet auch das Debian Packet aus.

2. Debian Paketen sind für das vom OS verwendetr Perl. Damit wird keine andere Perl Distribution verwaltet. Ist aber aufgrund Punkt #1 relevant.

3.Manche Modulauthoren geben in einem META.json die benötigten Abhängigkeiten an, bei 98% stehen dort die Packagenamen wie sie von CPAN installiert werden können.

4. Etliche Module haben keine META.json. Dort kann ich Abhängigkeiten auch nur über die Packagenamen im Modulcode herstellen.

5. Manche Perl Packages gibt es nicht als debian Package.

Letztlich bleibt halt das Problem, dass XML:SAX initialisiert werden muss. Man könnte natürlich auch einen schnelleren c Parser installieren, aber auch der muss registriert werden.

Du könntest zum Beispiel diese Idee umsetzen:
# Source - https://stackoverflow.com/a/26737317
# Posted by Borodin, modified by community. See post 'Timeline' for change history
# Retrieved 2026-06-09, License - CC BY-SA 3.0

$XML::Simple::PREFERRED_PARSER = 'XML::Parser';

Dann würde man SAX XML nicht verwenden.

Das Peoblem bei SAX XML ist, dass es bei der Installation fragt ob die parser Datei angelegt werden soll. Das kann aber niemand beantworten, da es in einer Pipeline läuft.

Grüße Sidey
#97
Anfängerfragen / Aw: Mqtt fhem
Letzter Beitrag von rabehd - 09 Juni 2026, 22:02:24
Zitat von: Sebastian84 am 09 Juni 2026, 20:28:03Ja zwei vorhandene habe ich da gefunden. Nur weiss ich nicht wie ich da den neuen esp mit der IP 192.168.0.118 mit port 1883 einbinden soll

Mußt Du nicht. Nochmal:
ZitatIch würde im ESP als MQTT-Broker die IP (oder den Namen) deines FHEM eintragen. Port ist ja wohl 1883. Somit kommen die Infos in FHEM an.
Falls FHEM das Device nicht anglegt wird, schau Dir mal das Attribut autocreate [no|simple|complex] an.
#98
DOIF / Aw: Im DOIF einen *-for-timer ...
Letzter Beitrag von rabehd - 09 Juni 2026, 21:58:19
Macht das alles Sinn?

Du fragst jeden Morgen ab ob es geregnet hat und wenn ja pausierst Du auf komischem Weg.

Warum fragst Du nicht jeden Morgen ob es in letzter Zeit NICHT geregnet hat (ich frage noch ob es heute regnen soll) und starte dann die Bewässerung.
Da brauchst Du keinen Dummy und keine KI.
Natürlich kann man das Grenzwerte einbauen.
Zitat von: fireball am 09 Juni 2026, 21:40:44Dadurch wird aber der Abschaltvorgang für 1 oder 2 Tage unterbrochen und auf 3h reduziert.
Verstehe ich nicht. Das Abschalten wird nicht durchgeführt und auf nur 3 Stunden reduziert?
(Arbeiten wir im gleichen Konzern, da kommt mir sowas oft unter?)
Bei mir läuft das ohne Probleme.
([04:21] and [TTN_Wetterstation_Klima:temperature] > 13 and [Bodenfeuchtesensor_01:soil_moisture] < 80 and [TTN_Wetterstation_Regenmesser:regen_lasttime] < 0.4 and [Regenradar:Prognose] < 0.8 ) (set Gartenbewaesserung_3 on-for-timer 500,setreading $SELF count {([$SELF:count]+1)})
#99
Wallboxen und E-Fahrzeuge / Aw: Integration von Tronity
Letzter Beitrag von satprofi - 09 Juni 2026, 21:43:22
60.- mittlerweile? ich hatte damals noch 35.- bezahlen müssen, aber dann stieg ich auf Teslalogger um
#100
DOIF / Aw: Im DOIF einen *-for-timer ...
Letzter Beitrag von fireball - 09 Juni 2026, 21:40:44
Hi,

gern hier ein list des DOIFs, wobei ich denke, dass das nicht hilfreich ist... das DOIF funzt ja.

Internals:
   DEF        ([04:45] && ([Wetterstation:rain_yesterday:d] + [Wetterstation:rain_day:d]) > 20) (
    set Gartenbewaesserung off-for-timer 172750,
    set Meine_TGBot message "Es hat die letzten 24h genug geregnet, ich stelle die Gartenbewässerung für 2 Tage aus."
)
DOELSEIF([04:45] && ([Wetterstation:rain_yesterday:d] + [Wetterstation:rain_day:d]) >= 10) (
    set Gartenbewaesserung off,
    set Meine_TGBot message "Es hat die letzten 24h genug geregnet, ich stelle die Gartenbewässerung für 1 Tag aus."
)
DOELSEIF([04:45] && [Gartenbewaesserung] eq "off-for-timer" ) (
    set Gartenbewaesserung off,
    set Meine_TGBot message "Die Gartenbewässerung ist noch für einen Tag deaktiviert."
)
DOELSEIF([04:45] && ([Wetterstation:rain_yesterday:d] + [Wetterstation:rain_day:d]) < 10)
(
    set Gartenbewaesserung on
)
DOELSEIF([Wetterstation:israining:d] == 1 && [Gartenbewaesserung:wait_timer] > 0)
(
    set Gartenbewaesserung off-for-timer 10800,
    set Meine_TGBot message "Es regnet, ich stelle die Bewässerung für 3 Stunden aus."
)
   FUUID      64a18203-f33f-0804-0228-9ed30d9ef74133a1
   MODEL      FHEM
   NAME       Bewaesserung_Steuerung
   NOTIFYDEV  Gartenbewaesserung,Wetterstation,global
   NR         637
   NTFY_ORDER 50-Bewaesserung_Steuerung
   STATE      initialized
   TYPE       DOIF
   VERSION    30659 2025-12-25 12:37:16
   eventCount 56
   READINGS:
     2026-06-09 17:22:41   Device          Gartenbewaesserung
     2026-06-09 14:44:01   cmd             0
     2026-06-09 17:22:41   e_Gartenbewaesserung_STATE on
     2026-06-09 14:44:01   mode            enabled
     2026-06-09 14:44:01   state           initialized
     2026-06-09 14:44:01   timer_01_c01    10.06.2026 04:45:00
     2026-06-09 14:44:01   timer_02_c02    10.06.2026 04:45:00
     2026-06-09 14:44:01   timer_03_c03    10.06.2026 04:45:00
     2026-06-09 14:44:01   timer_04_c04    10.06.2026 04:45:00
   Regex:
     accu:
     bar:
     barAvg:
     collect:
     cond:
       Gartenbewaesserung:
         0:
         1:
         2:
           &STATE     ^Gartenbewaesserung$
         3:
         4:
           wait_timer ^Gartenbewaesserung$:^wait_timer:
       Wetterstation:
         0:
           rain_day   ^Wetterstation$:^rain_day:
           rain_yesterday ^Wetterstation$:^rain_yesterday:
         1:
           rain_day   ^Wetterstation$:^rain_day:
           rain_yesterday ^Wetterstation$:^rain_yesterday:
         3:
           rain_day   ^Wetterstation$:^rain_day:
           rain_yesterday ^Wetterstation$:^rain_yesterday:
         4:
           israining  ^Wetterstation$:^israining:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::DOIF_time_once($hash,0,$wday) && (::ReadingValDoIf($hash,'Wetterstation','rain_yesterday','','d') + ::ReadingValDoIf($hash,'Wetterstation','rain_day','','d')) > 20
     1          ::DOIF_time_once($hash,1,$wday) && (::ReadingValDoIf($hash,'Wetterstation','rain_yesterday','','d') + ::ReadingValDoIf($hash,'Wetterstation','rain_day','','d')) >= 10
     2          ::DOIF_time_once($hash,2,$wday) && ::InternalDoIf($hash,'Gartenbewaesserung','STATE') eq "off-for-timer"
     3          ::DOIF_time_once($hash,3,$wday) && (::ReadingValDoIf($hash,'Wetterstation','rain_yesterday','','d') + ::ReadingValDoIf($hash,'Wetterstation','rain_day','','d')) < 10
     4          ::ReadingValDoIf($hash,'Wetterstation','israining','','d') == 1 && ::ReadingValDoIf($hash,'Gartenbewaesserung','wait_timer') > 0
   days:
   do:
     0:
       0               set Gartenbewaesserung off-for-timer 172750,     set Meine_TGBot message "Es hat die letzten 24h genug geregnet, ich stelle die Gartenbewässerung für 2 Tage aus."
     1:
       0               set Gartenbewaesserung off,     set Meine_TGBot message "Es hat die letzten 24h genug geregnet, ich stelle die Gartenbewässerung für 1 Tag aus."
     2:
       0               set Gartenbewaesserung off,     set Meine_TGBot message "Die Gartenbewässerung ist noch für einen Tag deaktiviert."
     3:
       0               set Gartenbewaesserung on
     4:
       0               set Gartenbewaesserung off-for-timer 10800,     set Meine_TGBot message "Es regnet, ich stelle die Bewässerung für 3 Stunden aus."
     5:
   helper:
     NOTIFYDEV  Gartenbewaesserung,Wetterstation,global
     event      on
     globalinit 1
     last_timer 4
     sleeptimer -1
     triggerDev Gartenbewaesserung
     triggerEvents:
       on
     triggerEventsState:
       state: on
   internals:
     all         Gartenbewaesserung:STATE
   intervalfunc:
   localtime:
     0          1781059500
     1          1781059500
     2          1781059500
     3          1781059500
   readings:
     all         Wetterstation:rain_yesterday Wetterstation:rain_day Wetterstation:israining Gartenbewaesserung:wait_timer
   realtime:
     0          04:45:00
     1          04:45:00
     2          04:45:00
     3          04:45:00
   time:
     0          04:45:00
     1          04:45:00
     2          04:45:00
     3          04:45:00
   timeCond:
     0          0
     1          1
     2          2
     3          3
   timer:
     0          0
     1          0
     2          0
     3          0
   timers:
     0           0
     1           1
     2           2
     3           3
   trigger:
   triggertime:
     1781059500:
       localtime  1781059500
       hash:
   uiState:
   uiTable:
Attributes:
   icon       helper_doif
   room       GARTEN
   verbose    0

Aber dann kurz zur Erklärung... das DOIF entscheidet, die ersten beiden Bedingungen, wieviel es am Vortag geregnet hat und setzt die Bewässerung aus, in dem es dem Dummy Gartenbewaesserung verschieden lange off-for-timer setzt.

Wenn jetzt zwischendurch aber ein Regenschauer kommt, dann sprang bisher die letzte Bedingung an, die nur geprüft hat [Wetterstation:israining:d] == 1.
Dadurch wird aber der Abschaltvorgang für 1 oder 2 Tage unterbrochen und auf 3h reduziert.

Jetzt möchte ich die letzte Bedingung um den 2. Wert erweitern, der fragt, ob schon ein off-for-timer aktiv ist, also && [Gartenbewaesserung] ne "off-for-timer"

Aber nur "off-for-timer" reich nicht, da hinter dem ja noch die Anzahl der Sekunden kommt.
Jetzt wäre ein RegEx sicherlich möglich, aber meine Frage ging ja auch dahin, ob es die Überprüfung auf wait_timer gibt.

Die KI sagte mir
Die richtige Lösung: Prüfen über wait_timer oder next_timer
Wenn du im DOIF einen off-for-timer benutzt, setzt DOIF intern ein Reading:

wait_timer
→ enthält die Restzeit in Sekunden
→ ist > 0, solange der Timer läuft

Wobei es hier ja nicht um das DOIF geht, sondern um ein Dummy-Device, welches als set ein off-for-timer hat"

VG+Danke
René