Hauptmenü

Neueste Beiträge

#1
Sprachsteuerung / Alexa Listen (Shopping, Todo, ...
Letzter Beitrag von Tompsg - 15 März 2026, 23:28:49
Hallo Zusammen,

ich habe ein Modul für die Alexa Listen gebaut, welches auf echodevice aufbaut und die Zugangsdaten des Amazon Account nutzt. Also erst echodevice zum Laufen bringen und dort anmelden. Vielleicht hat jemand Interesse.

# Define:  define <n> myAlexaShopping [Listenname]
#
# Attribute:
#   IODev         - Alexa Account Device (wird automatisch erkannt)
#   interval      - Polling-Intervall in Sekunden (default: 60)
#   disable       - 1 deaktiviert das Polling
#
# Readings:
#   state         - Kommaliste aktiver Items | error | updating | initialized
#   item_01..XX   - Einzelne Items
#   item_count    - Anzahl aktiver Items
#   last_update   - Letzter erfolgreicher Sync
#   last_error    - Letzter Fehler
#
# Set:
#   update              - Liste sofort neu laden
#   addItem <text>      - Item hinzufügen
#   deleteItem <text>   - Item per Name löschen (case-insensitiv)
#   deleteItemById <id> - Item per Alexa-ID löschen
#   deleteItemByNr      - Item per Dropdown löschen
#   clearList           - Alle Items löschen
#
# Get:
#   list                - Lesbare Textliste
#   items               - JSON-Array
#   showLists           - Alle verfügbaren Alexa-Listen

#2
Sprachsteuerung / Aw: [37_echodevice] Amazon Ech...
Letzter Beitrag von locodriver - 15 März 2026, 23:20:02
Ja, war etwas zäh...

Werde ich bei Gelegenheit probieren.

Dankeschön nochmals.
#3
Sonstiges / Aw: Mein FHEM "hängt" sich bei...
Letzter Beitrag von hasselh - 15 März 2026, 23:14:35
Danke @rudolfkoenig,

ZitatFolgendes gibt die Liste aller vom select ueberwachten Filedescriptoren aus, und danach entweder den Namen der dazugehoerigen FHEM Definition, oder die URL, wenn es ein HttpUtils_NonblockingGet ist.
{ join("\n", map { my $p=$selectlist{$_};; $p->{FD}.":".($p->{url} ? $p->{url}:$p->{NAME}) }  keys %selectlist) }

damit konnte ich jetzt NonblockingGet schon mal ausschließen. Die Liste ist kurz (15-20 Einträge), bevor FHEM einfriert, wenn ich den tc filter setze.

Zitatattr global dnsServer 127.0.0.1
Damit verwendet FHEM bei HttpUtils_NonblockingGet die eigene, nicht blockierende DNS "Bibliothek"

Wenn ich dich richtig interpretiere, sollte DNS in der Konfiguration mit dnsServer 127.0.0.1 eigentlich kein Problem sein, oder ? Lokal verwende ich sowieso nur IPV4 Adressen. Und Telegram und Co. gehen ja über den Proxy (FHEM löst die Adressen nicht lokal auf).

OK, eine Frage habe ich noch: Wenn attr global proxy gesetzt ist, verwendet die Kommunikation von FHEM mit dem Proxy auch keine blockierenden Operationen, oder ? Hintergrund: Wenn ich testweise nicht über den Proxy gehe (den Proxy habe ich aus Sicherheitsgründen mit einer Whitelist drin und direkte Kommunikation mit dem Internet ist bei mir blockiert) scheint es bei der Drosselung keine Freezes mehr zu geben.

Vielleicht gibt es ja jemanden, der seinen TelegramBot auch über einen Proxy betreibt und die oben beschriebene Drosselung ausprobieren mag ? tc ist auf Debian vorinstalliert und die Drosselung wird mit tc qdisc del dev eth0 root 2 jederzeit wieder aufgehoben. dst und dport sind natürlich individuell anzupassen:

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
#4
Unterstützende Dienste / [Modul-Vorstellung] Matrix-Bri...
Letzter Beitrag von Basti-K - 15 März 2026, 23:08:37
Hallo zusammen,

da ich mein Smart Home gerne über einen sicheren und dezentralen Messenger steuern möchte, habe ich eine Bridge für den Matrix-Messenger geschrieben und möchte diese hier mit euch teilen.

Das Modul ermöglicht es, Nachrichten aus FHEM heraus an Matrix-Räume zu senden und (über Readings) auch auf eingehende Nachrichten zu reagieren.

Was ist das Ziel?
Die Bridge dient als Bindeglied zwischen FHEM und dem Matrix-Netzwerk. Sie basiert auf der matrix-js-sdk und wird als kleiner Node.js-Service betrieben, mit dem FHEM kommuniziert.

Features
Senden von Nachrichten: Statusmeldungen, Alarme oder Bilder direkt in Matrix-Räume pushen.

Empfangen von Nachrichten: Befehle via Chat an FHEM senden.

Sicherheit: Läuft im eigenen Netzwerk, unterstützt Ende-zu-Ende-Verschlüsselung (E2EE) je nach Konfiguration des genutzten Clients.

Installation & Repository
Die genaue Anleitung zur Installation der Abhängigkeiten und die Einrichtung in FHEM findet ihr hier:

👉 https://github.com/Basti77/fhem-matrix-bridge

Kurzanleitung (Beispiel)
Nachdem der Node-Service läuft, wird das Device in FHEM wie folgt definiert:

define MatrixBridge Matrix 127.0.0.1:3000

Anschließend könnt ihr Nachrichten absetzen:
set MatrixBridge send @user:matrix.org Hallo aus dem Wohnzimmer!

Feedback willkommen!
Das Projekt ist noch in der Entwicklung. Schaut es euch gerne an, testet es und gebt mir hier oder via GitHub Issues Feedback. Wenn ihr Verbesserungsvorschläge für die Einbindung in FHEM habt – immer her damit!

Viel Spaß beim Ausprobieren!
#5
FHEM Code changes / Revision 30961: 76_SolarForeca...
Letzter Beitrag von System - 15 März 2026, 22:50:55
Revision 30961: 76_SolarForecast: contrib Version 2.4.0

76_SolarForecast: contrib Version 2.4.0

Source: Revision 30961: 76_SolarForecast: contrib Version 2.4.0
#6
Codeschnipsel / Modbus abfragen von SMA z.B. S...
Letzter Beitrag von Moli - 15 März 2026, 22:33:39
Moin.

Da das alte Modul 76_SMAInverter.pm mir andauernd Timeouts brachte, was nicht nur im Log nervig war, habe ich auf Modbus umgestellt.

Obwohl ich schon Wallbe Ladestation, Marstek Venus E und anderes via Modbus Geräte eingebunden habe, wollte das nicht so wie ich wollte.

Lag wahrscheinlich an mir, jetzt wo es fertig ist, sieht es gar nicht schwer aus *g

Da die Werte ausgiebig weiterverarbeitet werden, möchte ich alle Werte wieder genau so haben, wie bei dem Modul vorher.

Ich dachte, ich poste es mal, falls noch jemand die Probleme hat und das hilfreich findet, der auch so nen altes Ding herumstehen hat.

Grüsse!




defmod SunnyBoy30 ModbusAttr 3 60 SMA-IP:502 TCP
attr SunnyBoy30 group Inverter
attr SunnyBoy30 obj-h30513-len 4
attr SunnyBoy30 obj-h30513-poll 1
attr SunnyBoy30 obj-h30513-reading SPOT_ETOTAL
attr SunnyBoy30 obj-h30513-type U64
attr SunnyBoy30 obj-h30513-unpack Q>
attr SunnyBoy30 obj-h30517-len 4
attr SunnyBoy30 obj-h30517-poll 1
attr SunnyBoy30 obj-h30517-reading SPOT_ETODAY
attr SunnyBoy30 obj-h30517-type U64
attr SunnyBoy30 obj-h30517-unpack Q>
attr SunnyBoy30 obj-h30771-expr ($val > 65534 ? 0 : $val / 100)
attr SunnyBoy30 obj-h30773-expr ($val > 2147483647 ? 0 : $val)
attr SunnyBoy30 obj-h30773-len 2
attr SunnyBoy30 obj-h30773-poll 1
attr SunnyBoy30 obj-h30773-reading SPOT_PDC1
attr SunnyBoy30 obj-h30773-type S32
attr SunnyBoy30 obj-h30773-unpack N
attr SunnyBoy30 obj-h30775-expr ($val > 2147483647 ? 0 : $val)
attr SunnyBoy30 obj-h30775-len 2
attr SunnyBoy30 obj-h30775-poll 1
attr SunnyBoy30 obj-h30775-reading SPOT_PACTOT
attr SunnyBoy30 obj-h30775-type S32
attr SunnyBoy30 obj-h30775-unpack N
attr SunnyBoy30 obj-h30961-expr ($val > 2147483647 ? 0 : $val)
attr SunnyBoy30 obj-h30961-len 2
attr SunnyBoy30 obj-h30961-poll 1
attr SunnyBoy30 obj-h30961-reading SPOT_PDC2
attr SunnyBoy30 obj-h30961-type S32
attr SunnyBoy30 obj-h30961-unpack N
attr SunnyBoy30 room Inverter
attr SunnyBoy30 stateFormat { my $m = ReadingsVal($name,"ModeNum",0);; my $p = ReadingsVal($name,"SPOT_PACTOT",0);; return "Schläft" if($m == 303);; return "W: $p - OK" if($m == 307);; return "Status: $m";; }
attr SunnyBoy30 userReadings Power1 {ReadingsVal($name,"SPOT_PACTOT",0)>10000 ? 0 : ReadingsVal($name,"SPOT_PDC1",0)},
Power2 {ReadingsVal($name,"SPOT_PACTOT",0)>10000 ? 0 : ReadingsVal($name,"SPOT_PDC2",0)},
SPOT_ETODAY1 {int((ReadingsNum("$name","SPOT_ETODAY","")*2/6))},
SPOT_ETODAY2 {int((ReadingsNum("$name","SPOT_ETODAY","")*4/6))}

#7
FHEMWEB / Aw: VoiceButton für Fhemweb
Letzter Beitrag von schwatter - 15 März 2026, 22:09:59
Update im ersten Post voicecontrol_jarvis.js
- Antippen und dauerhaft zuhören klappt jetzt auch bei Mobile.
- Das Hotword ist James bzw james. Muss klein.

Wer selber mal auf Mobile remote debuggen will, bzw von Chrome Desktop auf AndroidMobileChrome.
1. Im Handy unter Entwicklertools USB-Debugging an.
2. Handy per Kabel Pc
3. adb devices
4. adb forward tcp:9222 localabstract:chrome_devtools_remote
5. Chrome Desktop öffnen
6. chrome://inspect/#devices in der Adresszeile eingeben.
7. Da taucht dann euer Chromedesktop sowie das Mobiledevice auf.
8. Den richtigen Tab mit inspect aufrufen. Und zack Remoteconsole.

Gruß schwatter
#8
FRITZ!Box / Aw: 72_FRITZBOX.pm wird zu 72_...
Letzter Beitrag von elektron-bbs - 15 März 2026, 21:41:04
Nun ja, passt noch nicht ganz :-(
Ein erstes "boost 1440" ergab, das nur 144 Minuten verwendet wurden. In Zeile 2544 müsste das Regex noch angepasst werden auf "/(\d{1,4})/":
           } elsif ( $action =~ /boost/      && $actionVal >= 0 && $actionVal <= 1440 && $actionVal =~ /(\d{1,4})/ ) {
Nach der Anpassung und "boost 1440" kam dann:
ERROR: boost for FRITZ!DECT 301 Bad with ID: 18 not applied
2026.03.15 21:10:44 3: [FritzBox_7590 | 7590 | 154.08.21 | Set_Modul.2142] - BASIC:set FritzBox_7590 smartHome - 18 boost:1440
2026.03.15 21:10:44 3: [FritzBox_7590 | 7590 | 154.08.21 | Set_Modul.2550] - BASIC:para luaFunction: webservices/homeautoswitch.lua?ain=139790920949&switchcmd=sethkrboost&endtimestamp=1773691844.3944
2026.03.15 21:10:45 2: [FritzBox_7590 | 7590 | 154.08.21 | Helper_retMsg.2113] - SIGNIFICANT:location: 2559 | Msg: ERROR: boost for FRITZ!DECT 301 Bad with ID: 18 not applied
Eine Minute weniger geht:
boost for FRITZ!DECT 301 Bad with ID: 18 applied
2026.03.15 21:13:39 3: [FritzBox_7590 | 7590 | 154.08.21 | Set_Modul.2142] - BASIC:set FritzBox_7590 smartHome - 18 boost:1439
2026.03.15 21:13:39 3: [FritzBox_7590 | 7590 | 154.08.21 | Set_Modul.2550] - BASIC:para luaFunction: webservices/homeautoswitch.lua?ain=139790920949&switchcmd=sethkrboost&endtimestamp=1773691959.63814
Vielleicht das "<= 1440" einfach ersetzen durch "< 1440".

Das Abschalten des boost erfordert allerdings eine Besonderheit. Da soll kein timestamp übergeben werden, sondern nur 0.
#9
Solaranlagen / Aw: Modul für Ecoflow-Komponen...
Letzter Beitrag von dergolem - 15 März 2026, 21:15:28
Hallo Markus,

so habe mich gerade mal hingesetzt und getestet. Hat alles funktioniert.

Gruß Denis
#10
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von DS_Starter - 15 März 2026, 20:49:11
Ich habe die Drift-Korrekturlogik weiter optimiert.

2026.03.15 20:00:04.944 1: SolCast DEBUG> DRIFT [con]: Flag=mild | Block=0 | SlopeLive=0.305 | DriftSlope=1.061 | BiasLive=462.46 | DriftBias=-39.54 | RMSErelLive=56.2 | RMSErelRatio=3.31 | BiasVarNorm=0.21 |DriftScore=2.32 | Zone3Hours=1 | Hist=[mild,mild,mild,mild,mild,mild,mild,mild,mild,mild,mild,mild,mild,mild,mild,mild,mild,mild,mild,mild]

Die Logik sollte recht aktiv Rekalibrierungen vornehmen und nicht mehr so lange durchgehend blockieren (Block=xxxxx).

Update liegt als 2.4.0 im contrib.

LB,
Heiko