Neueste Beiträge

#91
DOIF / Aw: DOIF reagiert verzögert au...
Letzter Beitrag von Damian - 28 Mai 2026, 08:17:22
Man kann sehen, dass wait-timer aktiv war und um 23:19:16 beendet wurde:

2026-05-27 23:19:16   wait_timer      no timer
Wäre wait nicht im Einsatz, gäbe es dieses Reading nicht.

Der erste Befehl von cmd2 wird um 5 Sekunden verzögert, der zweite - nach deiner aktuellen Definition - nicht.

Ebenfalls sind keine Events zu sehen, die mit der Schaltzeit übereinstimmen:

     2026-05-27 23:19:19   cmd_nr          2
     2026-05-27 23:19:24   e_Bewohner_STATE present
     2026-05-27 23:19:12   e_Quadbox_STATE off
     2026-05-27 23:18:32   e_VSX1131_stateAV off

Fünf Sekunden Verzögerung sind eine kurze Zeitspanne. Du kannst sie zum testen erhöhen, den Auslöser für cmd2 provozieren und schauen, ob das Reading für den waittimer korrekt gesetzt wird.

Edit:

Wenn du mehrere Sequenzen haben willst, die du einzeln verzögern willst, dann musst du auch die korrekte Syntax befolgen:

statt: DOELSE (({anwesend_off}) , (set tuya_smartlife_bfb727311ed41a0cc8ycsq countdown_usb1 300))
DOELSE ({anwesend_off})(set tuya_smartlife_bfb727311ed41a0cc8ycsq countdown_usb1 300)
#92
FHEM Code changes / Revision 31305: controls_fhem....
Letzter Beitrag von System - 28 Mai 2026, 07:50:17
Revision 31305: controls_fhem.txt: fhemupdate checkin

controls_fhem.txt: fhemupdate checkin

Source: Revision 31305: controls_fhem.txt: fhemupdate checkin
#93
DOIF / Aw: DOIF reagiert verzögert au...
Letzter Beitrag von Per - 28 Mai 2026, 07:45:18
Ob das eine Ursache ist, kann ich nicht beurteilen, aber du hast im wait für cmd2 zwei Zeiten vorgesehen, hast aber durch die Klammer nur einen Part. Nimm mal das ",0" weg
#94
FHEM Development / Aw: Zukunft von subversion?
Letzter Beitrag von Sidey - 28 Mai 2026, 07:33:44
Zitat von: rudolfkoenig am 26 Mai 2026, 13:25:22Was ich vergessen habe, und bei git echt nerwig ist: fortlaufende Versionsnummer gibt es nicht, nur Ellenlange commit-ids.
Ich habe es noch nicht geschafft sowas mit git sauber nachzubauen.

Moin,

Was ist die Anforderung die hinter fortlaufend steht?

Vielleicht wäre dafür folgendes eine Alternative:

Man markiert einen Release-Stand mit einem Tag wie v6.4.0, und kann danach mit git describe etwas wie v6.4.0-3-gabc1234 bekommen, also ,,3 Commits nach Tag X".

Sie SHA256 Quersumme bekommt man bei Wunsch auch noch von der Ausgabe entfernt.

Alternativ setzt man eine Pipeline auf, die bei jedem commit ein Tag setzt und dies hochzählen lässt.
Ob das jetzt nach semVer Schema oder einfach ein counter ist, kann ausgestaltet werden.

Grüße Sidey
#95
DOIF / Aw: DOIF reagiert verzögert au...
Letzter Beitrag von satprofi - 27 Mai 2026, 23:21:37
hier noch das list von cmd2
DEF        (([Bewohner] eq "present" and ([08:00-21:00] or [20:00])) or (([Quadbox] eq "on" or [VSX1131:stateAV] eq "on") and [19:00-08:00]) or [FS20_7010f0] eq "on") (set tuya_smartlife_bffee61d5656c19f0e6zas on)
DOELSE (({anwesend_off}) , (set tuya_smartlife_bfb727311ed41a0cc8ycsq countdown_usb1 300))
   FUUID      65cf39e1-f33f-3579-8889-597fdac1da3b48f3
   FVERSION   98_DOIF.pm:0.277400/2023-07-10
   MODEL      FHEM
   NAME       Anwesend
   NOTIFYDEV  global,Bewohner,Quadbox,FS20_7010f0,VSX1131
   NR         489
   NTFY_ORDER 50-Anwesend
   STATE      cmd_2
   TYPE       DOIF
   VERSION    27740 2023-07-10 09:31:11
   eventCount 89
   READINGS:
     2026-05-27 23:19:24   Device          Bewohner
     2026-05-27 23:19:19   cmd             2
     2026-05-27 23:19:19   cmd_event       Quadbox
     2026-05-27 23:19:19   cmd_nr          2
     2026-05-27 23:19:24   e_Bewohner_STATE present
     2026-05-27 23:19:12   e_Quadbox_STATE off
     2026-05-27 23:18:32   e_VSX1131_stateAV off
     2026-05-27 10:44:48   mode            enabled
     2026-05-27 23:19:19   state           cmd_2
     2026-05-27 21:00:00   timer_01_c01    28.05.2026 08:00:00
     2026-05-27 21:00:00   timer_02_c01    28.05.2026 21:00:00
     2026-05-27 20:00:05   timer_03_c01    28.05.2026 20:00:00
     2026-05-27 10:44:48   timer_04_c01    27.05.2026 19:00:00
     2026-05-27 10:44:48   timer_05_c01    28.05.2026 08:00:00
     2026-05-27 23:19:16   wait_timer      no timer
   Regex:
     accu:
     bar:
     barAvg:
     collect:
     cond:
       Bewohner:
         0:
           &STATE     ^Bewohner$
       FS20_7010f0:
         0:
           &STATE     ^FS20_7010f0$
       Quadbox:
         0:
           &STATE     ^Quadbox$
       VSX1131:
         0:
           stateAV    ^VSX1131$:^stateAV:
   attr:
     cmdState:
     wait:
       0:
         0
       1:
         5
         0
     waitdel:
   condition:
     0          (::InternalDoIf($hash,'Bewohner','STATE') eq "present" and (::DOIF_time($hash,0,1,$wday,$hms) or ::DOIF_time_once($hash,2,$wday))) or ((::InternalDoIf($hash,'Quadbox','STATE') eq "on" or ::ReadingValDoIf($hash,'VSX1131','stateAV') eq "on") and ::DOIF_time($hash,3,4,$wday,$hms)) or ::InternalDoIf($hash,'FS20_7010f0','STATE') eq "on"
   days:
   devices:
   do:
     0:
       0          set tuya_smartlife_bffee61d5656c19f0e6zas on
     1:
       0          ({anwesend_off}) , (set tuya_smartlife_bfb727311ed41a0cc8ycsq countdown_usb1 300)
   helper:
     NOTIFYDEV  global,Bewohner,Quadbox,FS20_7010f0,VSX1131
     event      present
     globalinit 1
     last_timer 5
     sleepdevice Quadbox
     sleepsubtimer -1
     sleeptimer -1
     timerdev   Bewohner
     timerevent present
     triggerDev Bewohner
     timerevents:
       present
     timereventsState:
       state: present
     triggerEvents:
       present
     triggerEventsState:
       state: present
   internals:
     all         Bewohner:STATE Quadbox:STATE FS20_7010f0:STATE
   interval:
     0          -1
     1          0
     3          -1
     4          3
   intervalfunc:
   intervaltimer:
   localtime:
     0          1779948000
     1          1779994800
     2          1779991200
     3          1779901200
     4          1779948000
   readings:
     all         VSX1131:stateAV
   realtime:
     0          08:00:00
     1          21:00:00
     2          20:00:00
     3          19:00:00
     4          08:00:00
   time:
     0          08:00:00
     1          21:00:00
     2          20:00:00
     3          19:00:00
     4          08:00:00
   timeCond:
     0          0
     1          0
     2          0
     3          0
     4          0
   timer:
     0          0
     1          0
     2          0
     3          0
     4          0
   timers:
     0           0  1  2  3  4
   trigger:
   triggertime:
     1779948000:
       localtime  1779948000
       hash:
     1779991200:
       localtime  1779991200
       hash:
     1779994800:
       localtime  1779994800
       hash:
   uiState:
   uiTable:
Attributes:
   group      Beleuchtung
   room       DOIF
   wait       0:5,0

kann keine Verzögerung erkennen, kein waittimer
#96
ESP Familie / Aw: BoseFix32 — lokaler SoundT...
Letzter Beitrag von tostmann - 27 Mai 2026, 22:09:54
SixBack v0.8.0 — DLNA-Browse landet

Hi Fred,

gerade rausgegangen: in der WebUI gibt es jetzt einen eigenen DLNA-Tab. Speaker auswählen, dann den DLNA-Server (alles was der Bose über /listMediaServers meldet — MiniDLNA, Twonky, Fritz!Mediaserver...), durch die Ordner klicken und Track oder Container per Drag&Drop auf einen Preset-Slot ziehen. Der ESP schaltet im Hintergrund die Quelle um, hält den Slot-Knopf "gedrückt" und liest das OPAQUE-ContentItem zurück in den Store.

Webflasher wie immer:  https://sixback.io/  (manifest.json v0.8.0, gebaut für S3 + C3 + C6 // ESP32-classic ist leider zu klein)

Bonus oben drauf: Migrate und Reboot haben jetzt einen Schritt-für-Schritt-Fortschrittsdialog statt nur einem Toast, mit Status-Polling und sauberem Timeout-Hinweis falls der Bose mal nicht zurückkommt.

Wichtige Einschränkung: das hilft Speakern die den DLNA-Server bereits kennen. Für Boxen die "STORED_MUSIC" noch nie registriert hatten, ist das Bootstrap-Problem noch nicht gelöst — das ist Phase (a) und steht für eine der nächsten Versionen an. Wenn du eine Box hast wo DLNA grundsätzlich schon spielt, probier es bitte aus und schreib was rauskommt — besonders ob das Drag-on-Slot bei deinem Setup (Twonky, Synology, NAS, was-auch-immer) durchgeht.

Issues + Code: https://github.com/tostmann/SixBack/releases/tag/v0.8.0
#97
FHEM Code changes / Revision 31304: 10_EnOcean.pm:...
Letzter Beitrag von System - 27 Mai 2026, 21:40:57
Revision 31304: 10_EnOcean.pm: EEP A5-20-01 summerMode wakeUpCycle = 14400 for manufID ...

10_EnOcean.pm: EEP A5-20-01 summerMode wakeUpCycle = 14400 for manufID = 034; EEP A5-20-04 changed setpointTemp reading round function, changed default setpointSummerMode = 0

Source: Revision 31304: 10_EnOcean.pm: EEP A5-20-01 summerMode wakeUpCycle = 14400 for manufID ...
#98
Sonstiges / Aw: SIP Server in FHEM - Bitte...
Letzter Beitrag von betateilchen - 27 Mai 2026, 21:25:53
#99
Sonstiges / Aw: Neu: 55_MiniSIP.pm - ein S...
Letzter Beitrag von betateilchen - 27 Mai 2026, 21:24:08
Wer das mal selbst testen möchte, kann sich in FHEM einen SIP Endpunkt anlegen.

Voraussetzung:
das Modul Net::SIP muss installiert sein.
Debian kennt das Paket als libnet-sip-perl und es lässt sich per apt installieren.

define minisip MiniSIP port=5060 from=minisip@<ip von FHEM>
Der SIP Client braucht in der Regel 3 Parameter:

  • ip oder hostname des Registrars: <ip von FHEM>
  • user: beliebig
  • passwort: beliebig

Der SIP Endpunkt führt keinerlei Authorisierung der registrierenden Clients durch.

Finde ich grundsätzlich nicht schlimm, denn mehr als eine Nummer in ein reading zu schreiben, passiert ja nicht. Vielleicht baue ich irgendwann mal noch eine Benutzerprüfung ein, aber im Moment funktioniert es erstmal ohne. Denn es braucht dann ja auch noch eine Benutzerverwaltung in irgendeiner Form.

Damit sollte sich ein SIP Client schon mit FHEM verbinden können.

Das funktioniert übrigens auch mit einer FritzBox als Client!
Die Einrichtung erfolgt unter "Eigene Rufnummern" wie im angehängten Screenshot.
Die Nummern im oberen Bereich (12345) sind wieder beliebig.

Noch ein paar Tips:

  • Logging erfolgt im Loglevel 4.
  • die Attribute showFullMessage und logFullMessage steuern den Umfang der Datenanzeige

Ansonsten habe ich mir sehr viel Mühe gegeben, eine umfangreiche commandref zu verfassen.



Weitere Funktionen und Anwendungsbeispiele beschreibe ich irgendwann später.

Viel Spaß beim Rumspielen!


--
#100
Sonstiges / Neu: 55_MiniSIP.pm - ein SIP E...
Letzter Beitrag von betateilchen - 27 Mai 2026, 21:07:49
Seit dem Pfingstwochenende gibt es das neue Modul 55_MiniSIP.pm, mit dem es möglich ist, einen SIP-Endpunkt in FHEM bereitzustellen. Ganz bewusst nenne ich das nicht "SIP Server", denn dazu ist der Funktionsumfang viel zu reduziert. Und genau das war der Sinn und Zweck, warum ich das Modul gebaut habe.

Primäre Aufgabenstellung:

Die primäre Aufgabenstellung war, von einem SIP-Client (z.B. VoIP-Telefon) aus "Nachrichten" an FHEM zu schicken, die dort irgendwelche Funktionen auslösen.

Früher hatte ich sowas schonmal mit dem schon lange bekannten Modul 96_SIP.pm umgesetzt, aber so richtig zuverlässig hat das mit "Nummer wählen und dann DTMF eintippen" nie funktioniert und seit einem der letzten Fritzbox-Updates funktionierte das mit DTMF bei mir gar nicht mehr.

Dann habe ich mir überlegt: kann ich das so umsetzen, dass ich den Spieß einfach umdrehe? Also so, dass sich ein Endgerät direkt an FHEM anmeldet und dann die gewählte "Nummer" als reading erzeugt wird und per notify, DOIF oder wie auch immer in FHEM reagiert wird.

Auf das SIP-Protokoll selbst will ich nicht weiter eingehen, dazu gibt es genug Dokumentationen im Internet. Nur den prinzipiellen Ablauf will ich hier kurz beschreiben. Das Ganze ist ähnlich wie bei HTML ein ping-pong zwischen Client und "Server". Sogar die HTML Fehlercodes mit ihren Nummern haben bei SIP die gleiche Bedeutung, z.B. 200 = OK und 404 = Not Found

  • Telefon registriert sich an FHEM mittels einer REGISTER message
  • Server antwort mit einer "200 Ok" message

Damit ist die Verbindung grundsätzlich schon hergestellt.
Jetzt kann mit dem "Telefon" eine Nummer gewählt werden, dann passiert folgendes:

  • Telefon schickt eine message vom Typ INVITE sip:852@192.168.123.219 SIP/2.0
  • Server antwort mit einer "200 Ok" message

Wer ein bisschen Ahnung von SIP hat, wird jetzt sagen: Stop, so einfach ist das nicht. Ja, ich weiß...

Der eigentliche Ablauf wäre:
  • Server prüft, ob der Teilnehmer 852 existiert und erreichbar ist
  • Server schickt eine TRYING message zurück
  • Server schickt selbst ein INVITE an den Teilnehmer 852
  • sobald es dort klingelt, bekommt der Anrufer eine RINGING message, damit das Telefon weiß, welchen Rufton es abspielen muss
  • dann wird die Verbindung zwischen den Teilnehmern hergestellt
  • am Ende gibt es wieder genau so ein Verabschiedungs-PingPong.

Aber das brauchen wir für den angedachten Zweck alles nicht!

Die eigentlich relevante Information, die wir in FHEM brauchen, steckt schon in der INVITE Message:

sip:852@192.168.123.219
852 ist die Nummer, die gewählt wurde und diese landet in einem reading namens 'input'

setstate sipdev 2026-05-27 20:38:08 input 852