Neueste Beiträge

#91
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
#92
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é
#93
Server - Linux / Aw: [Docker / Container] echod...
Letzter Beitrag von FlatTV - 09 Juni 2026, 20:50:24
Ich habe gerade auf die aktuelle Version umgestellt.

Login -> funktioniert
Refresh -> funktioniert
[2026-06-09T20:41:24,053 Europe/Berlin] [INFO] Refresh finished (api) in 3424 ms
[2026-06-09T20:41:24,066 Europe/Berlin] [INFO] Refresh request handled in 3438 ms (saveTarget=44result.json)
fhem Log:
2026.06.09 20:41:24.613 3: [AlexaAccount] [echodevice_NPMWaitForCookie] [unbekannt] write new refreshtokenHier irritiert mich nur das ,,unbekannt", ist das gewollt?

Edit:
Das habe ich auch noch
fhem  | 2026.06.09 21:07:24.576 3: at_AlexaCookieExport: Unknown argument exportCookie, choose one of loginUrl:noArgDas liegt am notify:
define n_AlexaCookieServiceInit notify global:(INITIALIZED|REREADCFG) {\
  my $nr = $defs{"AlexaAccount"}{NR};;\
  setKeyValue("alexa_cookie_service_export_name", "${nr}result.json");;\
  fhem("define -temporary at_AlexaCookieExport at +00:00:10 get AlexaCookieService exportCookie");;\
  fhem(q[define -temporary at_AlexaCookieImport at +00:00:12 { $main::NPMLoginTyp = "NPM Login Refresh external";;;; echodevice_NPMWaitForCookie($defs{"AlexaAccount"});;;; }]);;;;\
}
attr n_AlexaCookieServiceInit room Amazon

get AlexaCookieService exportCookieGibt es nicht, was sollte denn da hin?

#94
1Wire / Aw: RPI_1Wire und DHT22 --> No...
Letzter Beitrag von TomLee - 09 Juni 2026, 20:46:16
Hallo,

sorry, zur eigentlichen Einbindung mit RPI_1Wire kann ich leider nichts beitragen.

Ich würde den DHT22 eher über einen Arduino (Nano) und KeyValueProtocol anbinden. Einen passenden Sketch suchen und anpassen, sodass er die benötigten Key/Value-Paare liefert, und fertig.

Damit bist du nicht von den GPIOs des Rechners abhängig und ein späterer Hardwarewechsel wird deutlich einfacher.

GrußThomas
#95
Anfängerfragen / Aw: Mqtt fhem
Letzter Beitrag von Sebastian84 - 09 Juni 2026, 20:28:03
Ja 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
#96
DOIF / Aw: Im DOIF einen *-for-timer ...
Letzter Beitrag von Damian - 09 Juni 2026, 20:07:07
Ich würde den off-for-timer über einen Zweig im DOIF-Device mit wait realisieren, wenn eine andere Bedingung des DOIF-Devices zuschlägt, wird der wartende Zweig automatisch abgebrochen.
#97
DOIF / Aw: Im DOIF einen *-for-timer ...
Letzter Beitrag von rabehd - 09 Juni 2026, 19:26:27
Wie wäre es mit einem List des DOIF und aller Devices, die beteiligt sind?
Screenshots helfen nicht und werden ungern gesehen.
#98
Anfängerfragen / Aw: Mqtt fhem
Letzter Beitrag von rabehd - 09 Juni 2026, 19:23:21
In der Übersicht Deiner Devices gibt es einen Abschnitt MQTT2_SERVER. Dort solltest Du Deinen schon vorhandenen Broker finden und Dich erinnern.

Was Du willst, keine Ahnung. Ich 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. 
#99
1Wire / RPI_1Wire und DHT22 --> No 1-W...
Letzter Beitrag von wibi_ - 09 Juni 2026, 19:08:16
Hallo Kollegen,

lt. dem Wiki zu RPI_1Wire sollten DHT11 und DHT22 Sensoren auch über dieses Modul abrufbar sein. Ich versuche nun seit Tagen einen DHT22 mit integriertem 4k7 Pullup auf einem Raspi3 mit Trixie ans Laufen zu bringen.

Dazu habe ich die  /boot/firmware/config.txt  erweitert um  "dtoverlay=dht11,gpiopin=5,pullup=off".
Ebenso habe ich mittels  dpkg -i RPi-DHT-perl_2.0-1_armhf.deb  installiert und auch das Paket  wiringpi_3.18_armhf.deb.
Danach kann ich auch per "cat /sys/devices/platform/dht11@5/iio:device0/in_temp_input" auf die gemessene Temperatur*1000 zugreifen (analog auch auf die Feuchtigkeit).

Das "define mydht22 RPI_1Wire DHT22-5" bringt mir allerdingsals Rückmeldung im state immer "No 1-Wire bus found".
Ich habe nun die Befürchtung, dass die DHTs gar nicht in diesem Modul implementiert sind, obwohl im Wiki beschrieben. Kann das sein?
Im Modul selbst steht die Pfaddefinition $dht_path zwar (so wie auch bei dem cat oben) drin, diese wird aber nirgendwo sonst mehr in diesem Modul verwendet...

Das Modul selbst ist folgendes  #$Id: 58_RPI_1Wire.pm 28388 2024-01-16 21:41:43Z Adimarantis $

Das Log wirft mir folgende Fehlermeldungen:
2026.06.09 18:44:24.535 1:     main::CallFn                        called by fhem.pl (788)
2026.06.09 18:44:24.534 1:     main::FW_Read                       called by fhem.pl (4002)
2026.06.09 18:44:24.534 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (616)
2026.06.09 18:44:24.534 1:     main::FW_initInform                 called by ./FHEM/01_FHEMWEB.pm (978)
2026.06.09 18:44:24.534 1:     main::FW_roomStatesForInform        called by ./FHEM/01_FHEMWEB.pm (711)
2026.06.09 18:44:24.533 1:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (3239)
2026.06.09 18:44:24.533 1:     main::getAllSets                    called by ./FHEM/01_FHEMWEB.pm (3431)
2026.06.09 18:44:24.533 1:     main::CommandSet                    called by fhem.pl (2924)
2026.06.09 18:44:24.533 1:     main::DoSet                         called by fhem.pl (2020)
2026.06.09 18:44:24.532 1:     main::CallFn                        called by fhem.pl (1978)
2026.06.09 18:44:24.532 1:     main::RPI_1Wire_Set                 called by fhem.pl (4002)
2026.06.09 18:44:24.532 1:     main::__ANON__                      called by ./FHEM/58_RPI_1Wire.pm (353)
2026.06.09 18:44:24.532 1: stacktrace:
2026.06.09 18:44:24.531 1: PERL WARNING: Use of uninitialized value $type in string eq at ./FHEM/58_RPI_1Wire.pm line 353.
2026.06.09 18:44:24.531 1:     main::CallFn                        called by fhem.pl (788)
2026.06.09 18:44:24.531 1:     main::FW_Read                       called by fhem.pl (4002)
2026.06.09 18:44:24.530 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (616)
2026.06.09 18:44:24.530 1:     main::FW_initInform                 called by ./FHEM/01_FHEMWEB.pm (978)
2026.06.09 18:44:24.530 1:     main::FW_roomStatesForInform        called by ./FHEM/01_FHEMWEB.pm (711)
2026.06.09 18:44:24.530 1:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (3239)
2026.06.09 18:44:24.529 1:     main::getAllSets                    called by ./FHEM/01_FHEMWEB.pm (3431)
2026.06.09 18:44:24.529 1:     main::CommandSet                    called by fhem.pl (2924)
2026.06.09 18:44:24.529 1:     main::DoSet                         called by fhem.pl (2020)
2026.06.09 18:44:24.529 1:     main::CallFn                        called by fhem.pl (1978)
2026.06.09 18:44:24.528 1:     main::RPI_1Wire_Set                 called by fhem.pl (4002)
2026.06.09 18:44:24.528 1:     main::__ANON__                      called by ./FHEM/58_RPI_1Wire.pm (350)
2026.06.09 18:44:24.528 1: stacktrace:
2026.06.09 18:44:24.528 1: PERL WARNING: Use of uninitialized value $type in string eq at ./FHEM/58_RPI_1Wire.pm line 350.
2026.06.09 18:44:24.527 1:     main::CallFn                        called by fhem.pl (788)
2026.06.09 18:44:24.527 1:     main::FW_Read                       called by fhem.pl (4002)
2026.06.09 18:44:24.527 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (616)
2026.06.09 18:44:24.526 1:     main::FW_initInform                 called by ./FHEM/01_FHEMWEB.pm (978)
2026.06.09 18:44:24.526 1:     main::FW_roomStatesForInform        called by ./FHEM/01_FHEMWEB.pm (711)
2026.06.09 18:44:24.526 1:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (3239)
2026.06.09 18:44:24.526 1:     main::getAllSets                    called by ./FHEM/01_FHEMWEB.pm (3431)
2026.06.09 18:44:24.525 1:     main::CommandSet                    called by fhem.pl (2924)
2026.06.09 18:44:24.525 1:     main::DoSet                         called by fhem.pl (2020)
2026.06.09 18:44:24.525 1:     main::CallFn                        called by fhem.pl (1978)
2026.06.09 18:44:24.525 1:     main::RPI_1Wire_Set                 called by fhem.pl (4002)
2026.06.09 18:44:24.524 1:     main::__ANON__                      called by ./FHEM/58_RPI_1Wire.pm (350)
2026.06.09 18:44:24.524 1: stacktrace:
2026.06.09 18:44:24.524 1: PERL WARNING: Use of uninitialized value $type in string eq at ./FHEM/58_RPI_1Wire.pm line 350.
2026.06.09 18:44:24.524 1:     main::CallFn                        called by fhem.pl (788)
2026.06.09 18:44:24.523 1:     main::FW_Read                       called by fhem.pl (4002)
2026.06.09 18:44:24.523 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (616)
2026.06.09 18:44:24.523 1:     main::FW_initInform                 called by ./FHEM/01_FHEMWEB.pm (978)
2026.06.09 18:44:24.522 1:     main::FW_roomStatesForInform        called by ./FHEM/01_FHEMWEB.pm (711)
2026.06.09 18:44:24.522 1:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (3239)
2026.06.09 18:44:24.522 1:     main::getAllSets                    called by ./FHEM/01_FHEMWEB.pm (3431)
2026.06.09 18:44:24.522 1:     main::CommandSet                    called by fhem.pl (2924)
2026.06.09 18:44:24.521 1:     main::DoSet                         called by fhem.pl (2020)
2026.06.09 18:44:24.521 1:     main::CallFn                        called by fhem.pl (1978)
2026.06.09 18:44:24.521 1:     main::RPI_1Wire_Set                 called by fhem.pl (4002)
2026.06.09 18:44:24.521 1:     main::__ANON__                      called by ./FHEM/58_RPI_1Wire.pm (342)
2026.06.09 18:44:24.520 1: stacktrace:
2026.06.09 18:44:24.520 1: PERL WARNING: Use of uninitialized value $type in string eq at ./FHEM/58_RPI_1Wire.pm line 342.
2026.06.09 18:44:24.520 1:     main::CallFn                        called by fhem.pl (788)
2026.06.09 18:44:24.520 1:     main::FW_Read                       called by fhem.pl (4002)
2026.06.09 18:44:24.519 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (616)
2026.06.09 18:44:24.519 1:     main::FW_initInform                 called by ./FHEM/01_FHEMWEB.pm (978)
2026.06.09 18:44:24.519 1:     main::FW_roomStatesForInform        called by ./FHEM/01_FHEMWEB.pm (711)
2026.06.09 18:44:24.518 1:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (3239)
2026.06.09 18:44:24.518 1:     main::getAllSets                    called by ./FHEM/01_FHEMWEB.pm (3431)
2026.06.09 18:44:24.518 1:     main::CommandSet                    called by fhem.pl (2924)
2026.06.09 18:44:24.518 1:     main::DoSet                         called by fhem.pl (2020)
2026.06.09 18:44:24.517 1:     main::CallFn                        called by fhem.pl (1978)
2026.06.09 18:44:24.517 1:     main::RPI_1Wire_Set                 called by fhem.pl (4002)
2026.06.09 18:44:24.517 1:     main::__ANON__                      called by ./FHEM/58_RPI_1Wire.pm (338)
2026.06.09 18:44:24.517 1: stacktrace:
2026.06.09 18:44:24.516 1: PERL WARNING: Use of uninitialized value $family in hash element at ./FHEM/58_RPI_1Wire.pm line 338.


und so sieht die rudimentäre Devicedefinition aus:

define mydht22 RPI_1Wire DHT22-5
attr mydht22 pollingInterval 5
attr mydht22 room DHT
#   CFGFN      /opt/fhem/FHEM/DHTonPI.cfg
#   DEF        DHT22-5
#   FUUID      6a2842e6-f33f-16fb-ca8a-8f3615f6fd240fbc
#   NAME       mydht22
#   NOTIFYDEV  global
#   NR         219
#   NTFY_ORDER 50-mydht22
#   STATE      No 1-Wire Bus found
#   TYPE       RPI_1Wire
#   .attraggr:
#   .attrminint:
#   READINGS:
#     2026-06-09 16:15:41   failreason      cleared
#     2026-06-09 16:15:41   failures        0
#     2026-06-08 22:47:18   humidity        0
#     2026-06-09 18:44:22   state           No 1-Wire Bus found
#     2026-06-09 17:26:55   temperature     0
#
setstate mydht22 No 1-Wire Bus found
setstate mydht22 2026-06-09 16:15:41 failreason cleared
setstate mydht22 2026-06-09 16:15:41 failures 0
setstate mydht22 2026-06-08 22:47:18 humidity 0
setstate mydht22 2026-06-09 18:44:22 state No 1-Wire Bus found
setstate mydht22 2026-06-09 17:26:55 temperature 0


Kann mir da bitte weitergeholfen werden - wahrscheinlich habe ich irgendwo einen entscheidenden Hinweis überlesen.

LG Harry
#100
Anfängerfragen / Aw: Mqtt fhem
Letzter Beitrag von Sebastian84 - 09 Juni 2026, 18:22:57
Müsste. Habe 2 esp32 für wasseruhr und Stromzähler über mqtt am laufen. Ich finde nur nicht den esp für die espresense obwohl da schon der Server für mqtt angeben ist wie bei den andern beiden