Hauptmenü

Neueste Beiträge

#11
Sonstiges / Mein FHEM "hängt" sich bei ins...
Letzter Beitrag von hasselh - 15 März 2026, 13:25:24
Hallo @rudolfkoenig,

ich monitore die Antwortzeit meiner FHEM Instanz über den Telnet Port. Diese liegt normalerweis unter 5 Millisekunden. Ein Watchdog startet die Instanz dann automatisch neu, wenn die Instanz für 60 Sekunden nicht antwortet. Und ich beobachte schon seit Jahren, dass diese Neustarts immer genau dann passieren, wenn auch mein Internet Aussetzer hat. Also wollte ich dem mal auf den Grund gehen...

Die Kommunikation ins Internet ist bei mir in FHEM wie folgt definiert:
attr global proxy 192.169.0.100:8118
attr global proxyExclude 127.0.0.1|192.168.*|192.169.*
attr global blockingCallMax 128

Den ausgehenden Port testweise zu blockieren hat bei mir nicht geholfen das Verhalten zu reproduzieren. Aber die ausgehende Kommunikation testweise gaanz langsam zu machen schon. Dazu führe ich den folgenden Code auf dem Rechner aus, auf dem auch FHEM läuft:
tc qdisc del dev eth0 root 2>/dev/null
tc qdisc add dev eth0 root handle 1: htb default 99
tc class add dev eth0 parent 1: classid 1:1 htb rate 20bps ceil 20bps burst 20 cburst 20
tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 \
  match ip dst 192.169.0.100/32 \
  match ip dport 8118 0xffff \
  flowid 1:1

Was jetzt passiert, ist, dass nach einiger Zeit - speziell, wenn mein TelegramBot pollt oder wenn ich eine Nachricht über Telegram verschicke - quasi jegliche (auch lokale !) Kommunikation von FHEM anfängt "einzufrieren". Das betrifft bei mir telnet, mqtt, FHEMWEB und noch weitere Module. Da es zumindest in einem meiner Tests auch vorkam, dass FHEM auch mit deaktivierten TelegramBot einfriert, scheint es m.E. eher ein allgemeines Problem zu sein und nicht ausschließlich an dem TelegramBot zu liegen.

Hierzu ein paar Fragen:
- ist die Anzahl der parallel laufenden NonBlockingGet Aufrufe in FHEM irgendwie limitiert ?
- gibt es irgendeine Konfiguration, mit der ich das Verhalten von FHEM hierzu beeinflussen kann ?
- kann ich irgendwie die Anzahl der aktuell gleichzeitig laufenden "Kommunikations Threads" in FHEM herausfinden ?

Danke im Voraus, Hayo
#12
Automatisierung / Aw: Readings von anderen Gerät...
Letzter Beitrag von PatrickR - 15 März 2026, 13:17:07
Zitat von: Damian am 15 März 2026, 13:05:50
Zitat von: PatrickR am 14 März 2026, 22:15:02Ich nehme in solchen Fällen immer ein leeres DOIF (Def nur ##) und event_readings.

Patrick

Damit kann man nicht nur eigene Readings mit Berechnung definieren, sondern auch Aggregationsfunktionen nutzen, die z. B. andere Readings aufsummieren oder sonstige Berechnungen anstellen. Diese kann man auch im gleichen Device visualisieren oder in anderen Devices nutzen.


Da es so schön zu Boris' Anwendungsfall passt hier mal mein "Photovoltaik"-Device:
defmod D_R_Photovoltaik DOIF ##
attr D_R_Photovoltaik DbLogInclude totalpvpower,totalacenergy,totaldcenergy,totalpvenergy,totalbatenergy,availablepower,surpluspower,multiplusmaxpower
attr D_R_Photovoltaik alias Photovoltaik
attr D_R_Photovoltaik event-on-change-reading totalpvenergy:0.25,.*
attr D_R_Photovoltaik event_Readings totalpvpower:(([XX.XX.Cerbo:system_dcpvpower]>=0 ? [XX.XX.Cerbo:system_dcpvpower] : 0)+[XX.XX.FroniusModbus:acpower]),\
totaldcenergy:([XX.XX.MPPT1:energy_system]+[XX.XX.MPPT2:energy_system]+[XX.XX.MPPTRS:energy_system]),\
totalacenergy:([XX.XX.FroniusModbus:energytotal]/1000),\
totalpvenergy:([$SELF:totaldcenergy]+[$SELF:totalacenergy:d1]),\
totalbatenergy:([XX.XX.Multiplus:energy_invertertoacin1_fhem:d1]+[XX.XX.Multiplus:energy_invertertoacout_fhem:d1]),\
gridpower:[UG.KE.Energiezaehler:power_consumption_total:d0]+[AU.GR.Energiezaehler:power_consumption_total:d0]-[AU.GR.Energiezaehler:power_production_total:d0],\
multiplusmaxpower:(\
    [AU.GR.Temperatursensoren:temp_garage:d] >= 40 ? 3000 :\
    [AU.GR.Temperatursensoren:temp_garage:d] >= 25 ? 3700 :\
    4000\
),\
surpluspower:(\
    [XX.XX.Cerbo:ess_state] == 10\
        ? ::minNum(\
            [$SELF:availablepower],\
            ([XX.XX.Pylontech:power:d0] - ([$SELF:gridpower:d0]-[XX.XX.Cerbo:ess_gridsetpoint])\
        ))\
        : 0\
),\
availablepower:(\
    [XX.XX.Cerbo:ess_state] == 10\
        ? ([$SELF:multiplusmaxpower]+[XX.XX.Multiplus:activein_power:d0]) - ([$SELF:gridpower:d0]-[XX.XX.Cerbo:ess_gridsetpoint])\
        : 0\
),\
radtoday:(\
    (\
        [DWD_PV:fc0_0_Rad1h]+[DWD_PV:fc0_0_Rad1h]+[DWD_PV:fc0_2_Rad1h]+[DWD_PV:fc0_3_Rad1h]+[DWD_PV:fc0_4_Rad1h]+\
        [DWD_PV:fc0_5_Rad1h]+[DWD_PV:fc0_6_Rad1h]+[DWD_PV:fc0_7_Rad1h]+[DWD_PV:fc0_8_Rad1h]+[DWD_PV:fc0_9_Rad1h]+\
        [DWD_PV:fc0_10_Rad1h]+[DWD_PV:fc0_11_Rad1h]+[DWD_PV:fc0_12_Rad1h]+[DWD_PV:fc0_13_Rad1h]+[DWD_PV:fc0_14_Rad1h]+\
        [DWD_PV:fc0_15_Rad1h]+[DWD_PV:fc0_16_Rad1h]+[DWD_PV:fc0_17_Rad1h]+[DWD_PV:fc0_18_Rad1h]+[DWD_PV:fc0_19_Rad1h]+\
        [DWD_PV:fc0_20_Rad1h]+[DWD_PV:fc0_21_Rad1h]+[DWD_PV:fc0_22_Rad1h]+[DWD_PV:fc0_23_Rad1h]\
    )/1000\
),\
radtomorrow:(\
    (\
        [DWD_PV:fc1_0_Rad1h]+[DWD_PV:fc1_0_Rad1h]+[DWD_PV:fc1_2_Rad1h]+[DWD_PV:fc1_3_Rad1h]+[DWD_PV:fc1_4_Rad1h]+\
        [DWD_PV:fc1_5_Rad1h]+[DWD_PV:fc1_6_Rad1h]+[DWD_PV:fc1_7_Rad1h]+[DWD_PV:fc1_8_Rad1h]+[DWD_PV:fc1_9_Rad1h]+\
        [DWD_PV:fc1_10_Rad1h]+[DWD_PV:fc1_11_Rad1h]+[DWD_PV:fc1_12_Rad1h]+[DWD_PV:fc1_13_Rad1h]+[DWD_PV:fc1_14_Rad1h]+\
        [DWD_PV:fc1_15_Rad1h]+[DWD_PV:fc1_16_Rad1h]+[DWD_PV:fc1_17_Rad1h]+[DWD_PV:fc1_18_Rad1h]+[DWD_PV:fc1_19_Rad1h]+\
        [DWD_PV:fc1_20_Rad1h]+[DWD_PV:fc1_21_Rad1h]+[DWD_PV:fc1_22_Rad1h]+[DWD_PV:fc1_23_Rad1h]\
    )/1000\
),\
forecasttoday:(sprintf('%.1f', [$SELF:radtoday]*2.9)),\
forecasttomorrow:(sprintf('%.1f', [$SELF:radtomorrow]*2.9)),\
forecasttodaymin:(sprintf('%.1f', [$SELF:radtoday]*1.3)),\
forecasttomorrowmin:(sprintf('%.1f', [$SELF:radtomorrow]*1.3)),\
forecasttodaymax:(sprintf('%.1f', [$SELF:radtoday]*4.2)),\
forecasttomorrowmax:(sprintf('%.1f', [$SELF:radtomorrow]*4.2))\

attr D_R_Photovoltaik group Verbrauch
attr D_R_Photovoltaik icon measure_photovoltaic_inst
attr D_R_Photovoltaik room Energiemanagement,Start
attr D_R_Photovoltaik sortby 10
attr D_R_Photovoltaik stateFormat {sprintf(\
    'Gesamtleistung: %.0fW, Verfügbare Leistung: %.0fW, Überschussleistung: %.0fW, Gesamtenergie: %.0fkWh (AC: %.0fkWh, DC: %.0fkWh), Prognose heute/morgen: %.0f kWh/%.0f kWh',\
    ReadingsVal($name, 'totalpvpower', ''),\
    ReadingsVal($name, 'availablepower', ''),\
    ReadingsVal($name, 'surpluspower', ''),\
    ReadingsVal($name, 'totalpvenergy', ''),\
    ReadingsVal($name, 'totalacenergy', ''),\
    ReadingsVal($name, 'totaldcenergy', ''),\
    ReadingsVal($name, 'forecasttoday', ''),\
    ReadingsVal($name, 'forecasttomorrow', '')\
    \
)}
Das dient nicht nur der Anzeige aller relevanten Daten an einer Stelle sondern aggregiert sie auch stufenweise, um z. B. die Prognose zu berechnen. Diese und auch die Berechnung des aktuellen Überschusses benutze ich dann in anderen Devices, um z. B. die Wallboxeinspeisung zu steuern.
#13
Codeschnipsel / Aw: Modul für den Kostal PIKO ...
Letzter Beitrag von Moli - 15 März 2026, 13:09:27
Hi,

ich habe mithilfe der KI, 23_KOSTALPIKO.pm auf den neuesten stand gebracht, bei läuft es nun ohne Fehler.

Gruß

#14
Automatisierung / Aw: Readings von anderen Gerät...
Letzter Beitrag von Damian - 15 März 2026, 13:05:50
Zitat von: PatrickR am 14 März 2026, 22:15:02Ich nehme in solchen Fällen immer ein leeres DOIF (Def nur ##) und event_readings.

Patrick

Damit kann man nicht nur eigene Readings mit Berechnung definieren, sondern auch Aggregationsfunktionen nutzen, die z. B. andere Readings aufsummieren oder sonstige Berechnungen anstellen. Diese kann man auch im gleichen Device visualisieren oder in anderen Devices nutzen.

 
#15
FHEMWEB / Aw: VoiceButton für Fhemweb
Letzter Beitrag von schwatter - 15 März 2026, 12:45:23
@rudolf

Besser, jetzt habe ich keine Doppelung mehr.

@Beta-User
Fully zickt bei mir noch. Egal ob mein JS oder von Rudolf, ich bekomme "SpeechRecognition Interface missing".
Ist ein FireHD10...mmhh. Habe in den Settings in Fully "Enable Microphone Access" an. Noch ein Tip von dir?

edit:
Mist, auf dem Handy mit Fully funktioniert es sofort :(

edit2:
Irgend eine Voicerecorder app funktioniert aucu aus dem Store....

edit3:
Das ist wohl ein FireOS Problem....egal

Gruß schwatter
#16
Solaranlagen / Aw: APSystems EZ-1
Letzter Beitrag von loetmeister - 15 März 2026, 12:36:24
Moin.
Die Leistungsgrenze 415 W kann ich nicht bestätigen... Habe v1.9.2 mit zwei 450 W Modulen, und sehe:
p1 443
p2 365
Wenn das stimmt und die Messungenauigkeit nicht zu groß ist.  ::)
#17
FRITZ!Box / Aw: 72_FRITZBOX.pm wird zu 72_...
Letzter Beitrag von erdnar - 15 März 2026, 12:35:39
fkt. bei mir mit FB6660, FR1200, FR2400 u. FR3000
Danke für die Arbeit  :)
#18
FHEMWEB / Aw: VoiceButton für Fhemweb
Letzter Beitrag von Beta-User - 15 März 2026, 12:16:00
Zitat von: rudolfkoenig am 15 März 2026, 11:03:52Die Doppelung der Texte lag vielleicht an stt.interimResults=true, das habe ich jetzt entfernt.
Zumindest unter fully funktioniert das damit erwartungsgemäß :) .

Zitat von: rudolfkoenig am 15 März 2026, 11:03:52Das Firefox Problem habe ich jetzt in Prinzip (s.u.) gefixt.
Zum Aktivieren muss in about:config media.webspeech.recognition.enable auf true gesetzt werden.
Jetzt erscheint zumindest sowohl auf dem Androiden wie unter Linux das Dialogfeld. Das unter Android hinzubiegen war was größeres, auf about:config kommt man da nur über einen Umweg, ich hab's mit dem Weg aus https://discuss.techlore.tech/t/i-found-a-way-to-enable-about-config-on-regular-firefox-for-android/14584 gemacht, chrome://geckoview/content/config.xhtml aufgerufen und dort den entsprechenden Punkt direkt aktiviert.
Es wird allerdings trotzdem nichts aufgenommen, die Berechtigung zum Zugriff auf das Mikro wird auch nicht angefragt. Vielleicht fehlt noch was anderes, was in about:config aktiviert werden muss?

Zitat von: rudolfkoenig am 15 März 2026, 11:03:52- eine eindeutige Zuordnung des Clients ist kein Problem, will aber (mit dem Rest auch) abwarten, welchen Weg wir gehen wollen
Danke, ich hatte mir schon gedacht, dass der Punkt mit dem Rückweg dann einer der Folgeschritte sein soll.

Zitat von: rudolfkoenig am 15 März 2026, 11:03:52- Sprachausgabe ist laut Doku moeglich, habs aber nicht getestet
fully kann das, von daher _glaube_ ich, dass es von der technischen Seite her kein Hexenwerk sein wird, "irgendeinen" Browser dazu zu bewegen, entweder eine Audio-File abzuspielen oder das am Endgerät verfügbare TTS-System anzusteuern (allgemeine Berechtigung dazu vorausgesetzt). Die Frage wäre, wie man das aus FHEM heraus testen würde?

Zitat von: rudolfkoenig am 15 März 2026, 11:03:52- Dialog veraltet: ich habe gerne ein Feedback, solange die Erkennung nicht perfekt ist. Was schwebt Dir vor?
Das kann ich grade nicht so recht einordnen:

"Bisher" (AMAD-Weg) war es so, dass nach einer gewissen silence-Phase der bis dahin erkannte Text an AMADCommBridge weitergegeben wurde und das Mikrofon dann zu war. Also - übertragen auf die jetzige Fassung - dem "Audio stopped" direkt ein automatisches "submit" folgen würde. 
Während des Sprechens zu sehen, was gerade "getippt wird", ist dabei allerdings in der Tat hilfreich, und das war zumindest in meiner Erinnerung auch so - manchmal mit "rückwirkender Änderung" bereits erkannter Worte - vermutlich wegen des besser erkannten Kontextes des einzelnen Bruchstücks.
Wäre klasse, wenn wir was in die Richtung hin bekämen, alternativ würde es m.E. auch eine kürzere Wartezeit auch tun, nach der ein (optionales?) "submit" erfolgt? Insbesondere, wenn man das Mikro auch auf andere Weise als den Button aktivieren kann (Reaktion auf einen Näherungssensor, z.B.), kann der User durchaus auch etwas entfernter sein, so dass er uU. gar nicht lesen kann, was erkannt wird.

RHASSPY hat dann diesen Inhalt an Rhasspy geschickt zur Intent-Erkennung. Da kam "irgendein" Ergebnis raus zwischen "nichts passendes gefunden" bis "Es wurde der Satz 'Mach lauter' mit 100% Wahrscheinlichkeit erkannt, die Bausteinchen sind ....". Je nach Treffgenauigkeit wird dann entweder die Aktion ausgelöst, eine Rückfrage gestellt ("soll wirklich das Licht im Wohnzimmer an geschaltet werden?") oder eben zurück gemeldet, dass nichts ermittelt werden konnte (optional: mit weiterer Eingabemöglichkeit = Mikro wieder offen).

Es ist daher in der Regel kein allzu großes Problem, wenn "Müll" erkannt wird, weil darauf keine Reaktion erfolgt ist - was im Übrigen deutlich angenehmer ist wie die Audio-Dekodierung mit den Rhasspy-defaults, die immer einen zwingenden match mit irgendeinem der hinterlegten Anweisungssätze ergeben hat, mit 100% Wahrscheinlichkeit ::) ...

Was HTTP/HTTPS angeht: Das STT/TTS-Thema direkt mit Browser-Bordmitteln lösen zu können, ohne extra irgendeine spezielle App zu benötigen, ist imo ein Aspekt, der die f18.js-Variante deutlich attraktiv macht! Selbst wenn man dann erst mal diverse Berechtigungen für den FHEM-Server freischalten muss, wenn man nur HTTP verwenden will.
#19
Homematic / Aw: HM-SEC-SCO nach Exclude ne...
Letzter Beitrag von DeeSPe - 15 März 2026, 11:54:17
Moin Otto,

ich habe:
5sec Knöpfchen gedrückt bis LED rot blinkt, dann losgelassen und
5sec Knöpfchen gedrückt bis LED schnell rot blinkt, dann
noch kurz gewartet und Knöpfchen losgelassen, dann rotes Leuchten für ca. 2-3sec.
Das sollte doch die richtige Prozedur sein oder?

Gruß
Dan
#20
FHEM Code changes / Revision 30959: 76_SolarForeca...
Letzter Beitrag von System - 15 März 2026, 11:51:03
Revision 30959: 76_SolarForecast: contrib Version 2.4.0

76_SolarForecast: contrib Version 2.4.0

Source: Revision 30959: 76_SolarForecast: contrib Version 2.4.0