Hauptmenü

Neueste Beiträge

#11
Anfängerfragen / Aw: USB RS485 Adapter richtig ...
Letzter Beitrag von Beta-User - 29 November 2025, 15:59:32
Nimm fhem in "plugdev" [edit: das war ja schon als slave definiert... und wirf auch einen Blick auf ModbusAttr].

Ad ModbusAttr: zumindest bei Netzwerkdevices kann man das auch direkt ohne IO-Modul (Modbus) definieren.
#12
Anfängerfragen / Aw: USB RS485 Adapter richtig ...
Letzter Beitrag von HerbertG - 29 November 2025, 15:57:10
Hallo Markus,

Danke,
+ konnte mit sudo chown usb_FTDI.. nicht ändern (geht nur mit root?, leider finde ich da das pw grad nicht)
+ werde später mal das mit verbose probieren wird ja wahrscheinlich eh nicht gespeichert sein falls was passiert.

lese mir gerade mal zwischendurch die Help der Modbus Attribute durch, bevor es dann am Abend weitergeht.
Ich persönlich fand das 48 Kanal Inputmodul mit RS485 halt super für Kontaktüberwachung (und fand €35 dafür OK, statt herumbasteln), kannst den status über 6 Byte auslesen oder im Intervall (glaub 1-255 Sek) schicken lassen: Einzig fad, dass es nicht einen Art Interrupt bei einer Änderung gibt.

Frage an Erfahrene: Kann man in/über FHEM so alle 300mS pollen wobei weitere Aktionen nur bei Änderung oder wenn nicht erfolgreich erfolgen sollen (Performancethema?)? Oder wäre eine Zwischenlösung mit einem Singlechip, der eben das polling übernimmt und nur bei Datenänderung bzw keep alives Daten schickt?

Danke, lieben Gruß, Herbert

Würde dann wieder FHEM für Auswertung und Darstellung nutzen (hab zwar davon keine Ahnung, aber zukünftiger Plan wäre Darstellung in Raumplan bzw Weiterleitung an Android, push Meldungen und so halt )

#13
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von DS_Starter - 29 November 2025, 15:28:42
Hallo zusammen,

kurze Info.
Nach anfänglichen Erfolgen hat sich mein NN als untauglich erwiesen. Meine bisherige Legacy Lösung bringt bessere und stabilere Prognosen für den Standardverbrauch auf kurzer Distanz. Ich werde einen neuen Anlauf mit dem Modul AI::FANN nehmen. Aber auch dieses Modell ist als FeedForeward eher ungeeignet langfristige Muster und saisonale Abhängigkeiten zu erkennen. Dafür braucht man ein LSTM Netz. Diese Architektur ist mit AI::MXNET gegeben. Allerdings braucht man dazu noch einen Python Server um damit MXNET einfach zu installieren. Alles machbar, aber das Gesamtkonstrukt wird natürlich komplexer. Um weitere Lernerfolge und Erfahrungen zu generieren, werde ich zunächst auf AI::FANN setzen.
Komme ich damit voran, würde ich dafür einen separaten Thread aufmachen damit interessierte Mitstreiter mitarbeiten können ohne diesen Thread zu sehr abdriften zu lassen.

LG,
Heiko
#14
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von grappa24 - 29 November 2025, 15:25:13
@300P: Sehr sehr cooles Dashboard 8)
#15
Heizungssteuerung/Raumklima / Aw: Inbetriebnahme eBus Schalt...
Letzter Beitrag von TomLee - 29 November 2025, 15:19:52
Ich musste doch nochmal ran, war wohl zu spät/früh, das Auskommentieren hatte doch nicht wie erst gedacht funktioniert.

Jetzt habe ich es doch hinbekommen.

Wie es gemacht werden muss, steht hier

Ich habe das Repository geklont:
git clone https://github.com/eBUS/ebus.github.io

Dann in der Datei /etc/default/ebusd den Pfad eingetragen:
--configpath=/home/pi/ebus.github.io/de/

Jetzt läuft alles wie gewünscht.

#16
Anfängerfragen / Aw: USB RS485 Adapter richtig ...
Letzter Beitrag von KölnSolar - 29 November 2025, 15:13:03
na prima.

das ist ja der Clou
ZitatWie geht das bei /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A5069RR4-if00-port0
ändert sich nie. Ist die eindeutige Adresse des serial2USB chips.
hingegen ändert sich
ZitatttyUSB1
je nachdem, wo er eingesteckt wird.
Zitat@Markus: hab mich mal auf verbose=5 nicht getraut
Trau Dich ! Natürlich nur das Modbusdevice. Da wird es kaum was im Log geben.
#18
DOIF / Aw: aktuelle Zeit in dummy sch...
Letzter Beitrag von rabehd - 29 November 2025, 14:46:35
Zitat von: matkoh am 29 November 2025, 14:34:53Hat jemand eine Idee?
ja, endlich mal ein LIST posten.
#19
DOIF / Aw: aktuelle Zeit in dummy sch...
Letzter Beitrag von Damian - 29 November 2025, 14:45:38
Wo soll denn im 5. Zweig eine Verzögerung sein. Von einem Wait-Attribut sehe ich nichts. Wie kommst du auf [+0:15]? Ist das evtl. ein KI-Vorschlag?
#20
DOIF / Aw: aktuelle Zeit in dummy sch...
Letzter Beitrag von matkoh - 29 November 2025, 14:34:53
Ich hatte erwartet, dass jemand aufschreit: Die Bedingung kann so nicht funktionieren, weil...
Aber scheinbar ist sie nicht so offensichtlich falsch.

Ich habe versucht, meine Beschreibung auf die relevanten Fakten zu beschränken, vielleicht war ich da zu restriktiv. Meine FHEM-Installation ist wirklich sehr umfangreich und für Aussenstehende sicherlich verwirrend.

Dann werde ich mal ausführlicher:

Hier ist ein List meines 2. DOIFs, dass das Sonos-Radio steuert:
Internals:
   DEF        ## 1
 (([StatusAnwesenheitRuth] eq "Buero" or [StatusAnwesenheitRuth] eq "Buero7") and [StatusAnwesenheitNiclas] eq "nein" and [Fruehstueck] eq "Kueche" and [([du_RolloZeit_hoch_Buero7] -600)])
  (set Sonos_Kueche Volume 13, set Sonos_Kueche PlayURI https://wdr-wdr2-aachenundregion.icecastssl.wdr.de/wdr/wdr2/aachenundregion/mp3/128/stream.mp3)
## 2
 DOELSEIF ([StatusAnwesenheitRuth] eq "Buero8" and [StatusAnwesenheitNiclas] eq "nein" and [Fruehstueck] eq "Kueche" and [([du_RolloZeit_hoch_Buero8] - 600)])
  (set Sonos_Kueche Volume 13, set Sonos_Kueche PlayURI https://wdr-wdr2-aachenundregion.icecastssl.wdr.de/wdr/wdr2/aachenundregion/mp3/128/stream.mp3)
## 3
 DOELSEIF ([StatusAnwesenheitRuth] eq "Buero9" and [StatusAnwesenheitNiclas] eq "nein" and [Fruehstueck] eq "Kueche" and [([du_RolloZeit_hoch_Buero9] - 600)])
  (set Sonos_Kueche Volume 13, set Sonos_Kueche PlayURI https://wdr-wdr2-aachenundregion.icecastssl.wdr.de/wdr/wdr2/aachenundregion/mp3/128/stream.mp3)
## 4
 DOELSEIF ([StatusAnwesenheitRuth] eq "Heimarbeit" and [StatusAnwesenheitNiclas] eq "nein" and [Fruehstueck] eq "Kueche" and [([du_RolloZeit_hoch_Heimarbeit] - 600)])
  (set Sonos_Kueche Volume 13, set Sonos_Kueche PlayURI https://wdr-wdr2-aachenundregion.icecastssl.wdr.de/wdr/wdr2/aachenundregion/mp3/128/stream.mp3)
## 5
 DOELSEIF ([StatusAnwesenheitRuth] eq "ZuHause" and [StatusAnwesenheitNiclas] eq "nein" and [Fruehstueck] eq "Kueche" and [Matthias.Status_2:?SHORT] and [+0:15])
  (set Sonos_Kueche Volume 13, set Sonos_Kueche PlayURI https://wdr-wdr2-aachenundregion.icecastssl.wdr.de/wdr/wdr2/aachenundregion/mp3/128/stream.mp3)
## 6
 DOELSEIF ([10:00])
  ()
## 7
 DOELSEIF ([Sonos] eq "disconnected" and [Sonos:set_disabled] ne "1")
  (attr Sonos disable 1, setreading Sonos set_disabled 1, msg FHEM - Sonos im Status disconnected - disabled)
## 8
 DOELSEIF ([Sonos] eq "disconnected" and [Sonos:set_disabled] eq "1")
  (attr Sonos disable 0, setreading Sonos set_disabled 0, msg FHEM - Sonos im Status disconnected - enabled)
## 9
 DOELSEIF ([Sonos] eq "opened")
  (msg FHEM - Sonos wieder im Status opened)
   FUUID      5c4f14f8-f33f-dbcf-2a19-30745839adc7c140
   MODEL      FHEM
   NAME       D_Sonos
   NOTIFYDEV  StatusAnwesenheitRuth,Matthias.Status_2,StatusAnwesenheitNiclas,du_RolloZeit_hoch_Heimarbeit,du_RolloZeit_hoch_Buero8,Sonos,global,Fruehstueck,du_RolloZeit_hoch_Buero9,du_RolloZeit_hoch_Buero7
   NR         192
   NTFY_ORDER 50-D_Sonos
   STATE      cmd_9
   TYPE       DOIF
   VERSION    30377 2025-10-12 09:46:59
   eventCount 7
   .attraggr:
   .attrminint:
   READINGS:
     2025-11-29 14:23:45   Device          Sonos
     2025-11-29 10:00:15   cmd             9
     2025-11-29 10:00:15   cmd_event       Sonos
     2025-11-29 10:00:15   cmd_nr          9
     2025-11-29 14:15:47   e_Matthias.Status_2_events control: pressed,pressed,PRESS_SHORT: pressed,pressed: pressed,INSTALL_TEST: 1,devstate: ok,hmstate: pressed
     2025-11-29 14:23:45   e_Sonos_STATE   opened
     2025-11-29 11:00:57   e_StatusAnwesenheitNiclas_STATE nein
     2025-11-28 11:44:46   mode            enabled
     2025-11-29 10:00:15   state           cmd_9
     2025-11-29 06:20:00   timer_01_c01    30.11.2025 06:20:00
     2025-11-29 06:50:00   timer_02_c02    30.11.2025 06:50:00
     2025-11-29 08:00:00   timer_03_c03    30.11.2025 08:00:00
     2025-11-29 06:20:00   timer_04_c04    30.11.2025 06:20:00
     2025-11-29 14:14:59   timer_05_c05    29.11.2025 14:29:59
     2025-11-29 10:00:00   timer_06_c06    30.11.2025 10:00:00
     2025-11-28 15:52:27   wait_timer      no timer
   Regex:
     accu:
     bar:
     barAvg:
     collect:
     cond:
       Fruehstueck:
         0:
           &STATE     ^Fruehstueck$
         1:
           &STATE     ^Fruehstueck$
         2:
           &STATE     ^Fruehstueck$
         3:
           &STATE     ^Fruehstueck$
         4:
           &STATE     ^Fruehstueck$
       Matthias.Status_2:
         0:
         1:
         2:
         3:
         4:
           &STATE     ^Matthias.Status_2$
         5:
         6:
         7:
         8:
       Sonos:
         0:
         1:
         2:
         3:
         4:
         5:
         6:
           &STATE     ^Sonos$
           set_disabled ^Sonos$:^set_disabled:
         7:
           &STATE     ^Sonos$
           set_disabled ^Sonos$:^set_disabled:
         8:
           &STATE     ^Sonos$
       StatusAnwesenheitNiclas:
         0:
           &STATE     ^StatusAnwesenheitNiclas$
         1:
           &STATE     ^StatusAnwesenheitNiclas$
         2:
           &STATE     ^StatusAnwesenheitNiclas$
         3:
           &STATE     ^StatusAnwesenheitNiclas$
         4:
           &STATE     ^StatusAnwesenheitNiclas$
         5:
         6:
         7:
         8:
       StatusAnwesenheitRuth:
         0:
           &STATE     ^StatusAnwesenheitRuth$
         1:
           &STATE     ^StatusAnwesenheitRuth$
         2:
           &STATE     ^StatusAnwesenheitRuth$
         3:
           &STATE     ^StatusAnwesenheitRuth$
         4:
           &STATE     ^StatusAnwesenheitRuth$
     itimer:
       du_RolloZeit_hoch_Buero7:
         itimer:
           &STATE     ^du_RolloZeit_hoch_Buero7$
       du_RolloZeit_hoch_Buero8:
         itimer:
           &STATE     ^du_RolloZeit_hoch_Buero8$
       du_RolloZeit_hoch_Buero9:
         itimer:
           &STATE     ^du_RolloZeit_hoch_Buero9$
       du_RolloZeit_hoch_Heimarbeit:
         itimer:
           &STATE     ^du_RolloZeit_hoch_Heimarbeit$
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          (::InternalDoIf($hash,'StatusAnwesenheitRuth','STATE') eq "Buero" or ::InternalDoIf($hash,'StatusAnwesenheitRuth','STATE') eq "Buero7") and ::InternalDoIf($hash,'StatusAnwesenheitNiclas','STATE') eq "nein" and ::InternalDoIf($hash,'Fruehstueck','STATE') eq "Kueche" and ::DOIF_time_once($hash,0,$wday)
     1          ::InternalDoIf($hash,'StatusAnwesenheitRuth','STATE') eq "Buero8" and ::InternalDoIf($hash,'StatusAnwesenheitNiclas','STATE') eq "nein" and ::InternalDoIf($hash,'Fruehstueck','STATE') eq "Kueche" and ::DOIF_time_once($hash,1,$wday)
     2          ::InternalDoIf($hash,'StatusAnwesenheitRuth','STATE') eq "Buero9" and ::InternalDoIf($hash,'StatusAnwesenheitNiclas','STATE') eq "nein" and ::InternalDoIf($hash,'Fruehstueck','STATE') eq "Kueche" and ::DOIF_time_once($hash,2,$wday)
     3          ::InternalDoIf($hash,'StatusAnwesenheitRuth','STATE') eq "Heimarbeit" and ::InternalDoIf($hash,'StatusAnwesenheitNiclas','STATE') eq "nein" and ::InternalDoIf($hash,'Fruehstueck','STATE') eq "Kueche" and ::DOIF_time_once($hash,3,$wday)
     4          ::InternalDoIf($hash,'StatusAnwesenheitRuth','STATE') eq "ZuHause" and ::InternalDoIf($hash,'StatusAnwesenheitNiclas','STATE') eq "nein" and ::InternalDoIf($hash,'Fruehstueck','STATE') eq "Kueche" and ::EventDoIf('Matthias.Status_2',$hash,'SHORT',1) and ::DOIF_time_once($hash,4,$wday)
     5          ::DOIF_time_once($hash,5,$wday)
     6          ::InternalDoIf($hash,'Sonos','STATE') eq "disconnected" and ::ReadingValDoIf($hash,'Sonos','set_disabled') ne "1"
     7          ::InternalDoIf($hash,'Sonos','STATE') eq "disconnected" and ::ReadingValDoIf($hash,'Sonos','set_disabled') eq "1"
     8          ::InternalDoIf($hash,'Sonos','STATE') eq "opened"
   days:
   do:
     0:
       0          set Sonos_Kueche Volume 13, set Sonos_Kueche PlayURI https://wdr-wdr2-aachenundregion.icecastssl.wdr.de/wdr/wdr2/aachenundregion/mp3/128/stream.mp3
     1:
       0          set Sonos_Kueche Volume 13, set Sonos_Kueche PlayURI https://wdr-wdr2-aachenundregion.icecastssl.wdr.de/wdr/wdr2/aachenundregion/mp3/128/stream.mp3
     2:
       0          set Sonos_Kueche Volume 13, set Sonos_Kueche PlayURI https://wdr-wdr2-aachenundregion.icecastssl.wdr.de/wdr/wdr2/aachenundregion/mp3/128/stream.mp3
     3:
       0          set Sonos_Kueche Volume 13, set Sonos_Kueche PlayURI https://wdr-wdr2-aachenundregion.icecastssl.wdr.de/wdr/wdr2/aachenundregion/mp3/128/stream.mp3
     4:
       0          set Sonos_Kueche Volume 13, set Sonos_Kueche PlayURI https://wdr-wdr2-aachenundregion.icecastssl.wdr.de/wdr/wdr2/aachenundregion/mp3/128/stream.mp3
     5:
       0         
     6:
       0          attr Sonos disable 1, setreading Sonos set_disabled 1, msg FHEM - Sonos im Status disconnected - disabled
     7:
       0          attr Sonos disable 0, setreading Sonos set_disabled 0, msg FHEM - Sonos im Status disconnected - enabled
     8:
       0          msg FHEM - Sonos wieder im Status opened
     9:
   helper:
     NOTIFYDEV  StatusAnwesenheitRuth,Matthias.Status_2,StatusAnwesenheitNiclas,du_RolloZeit_hoch_Heimarbeit,du_RolloZeit_hoch_Buero8,Sonos,global,Fruehstueck,du_RolloZeit_hoch_Buero9,du_RolloZeit_hoch_Buero7
     event      LastProcessAnswer: 1764422625.23922
     globalinit 1
     last_timer 6
     sleeptimer -1
     timerdev   Sonos
     timerevent LastProcessAnswer: 1764422625.23922
     triggerDev Sonos
     timerevents:
       LastProcessAnswer: 1764422625.23922
     timereventsState:
       LastProcessAnswer: 1764422625.23922
     triggerEvents:
       LastProcessAnswer: 1764422625.23922
     triggerEventsState:
       LastProcessAnswer: 1764422625.23922
   hmccu:
   internals:
     all         StatusAnwesenheitRuth:STATE StatusAnwesenheitNiclas:STATE Fruehstueck:STATE Sonos:STATE
   interval:
   intervalfunc:
   localtime:
     0          1764480000
     1          1764481800
     2          1764486000
     3          1764480000
     4          1764422999
     5          1764493200
   readings:
     all         Sonos:set_disabled
   realtime:
     0          06:20:00
     1          06:50:00
     2          08:00:00
     3          06:20:00
     4          14:29:59
     5          10:00:00
   time:
     0          ([du_RolloZeit_hoch_Buero7]-600)
     1          ([du_RolloZeit_hoch_Buero8]-600)
     2          ([du_RolloZeit_hoch_Buero9]-600)
     3          ([du_RolloZeit_hoch_Heimarbeit]-600)
     4          +0:15
     5          10:00:00
   timeCond:
     0          0
     1          1
     2          2
     3          3
     4          4
     5          5
   timer:
     0          0
     1          0
     2          0
     3          0
     4          0
     5          0
   timers:
     0           0
     1           1
     2           2
     3           3
     4           4
     5           5
   trigger:
     all         Matthias.Status_2
   triggertime:
     1764422999:
       localtime  1764422999
       hash:
     1764480000:
       localtime  1764480000
       hash:
     1764481800:
       localtime  1764481800
       hash:
     1764486000:
       localtime  1764486000
       hash:
     1764493200:
       localtime  1764493200
       hash:
   uiState:
   uiTable:
Attributes:
   room       Zentral
   verbose    5

Ich habe den Taster zuletzt testweise heute um 14:15 Uhr betätigt. Das sieht man auch an diesem Reading:
2025-11-29 14:15:47   e_Matthias.Status_2_events control: pressed,pressed,PRESS_SHORT: pressed,pressed: pressed,INSTALL_TEST: 1,devstate: ok,hmstate: pressedTrotzdem wird nicht der Zweig 5 getriggert. Das DOIF bleibt beim Zweig 9 stehen, der heute morgen aktiviert wurde.

Ich habe auch mal ein Filelog erstellt, dass das DOIF und alle beteiligten Dummys beinhaltet und Verbose für das DOIF D_Sonos auf 5 gesetzt. Das Filelog sieht beim Auslösen des Tasters dann so aus:
2025-11-29_14:15:47 Matthias.Status_2 control: pressed
2025-11-29_14:15:47 Matthias.Status_2 pressed
2025-11-29_14:15:47 Matthias.Status_2 PRESS_SHORT: pressed
2025-11-29_14:15:47 Matthias.Status_2 pressed: pressed
2025-11-29_14:15:47 Matthias.Status_2 INSTALL_TEST: 1
2025-11-29_14:15:47 Matthias.Status_2 devstate: ok
2025-11-29_14:15:47 Matthias.Status_2 hmstate: pressed
Also kein Eintrag vom DOIF.

Hat jemand eine Idee?

Matthias