Hauptmenü

Neueste Beiträge

#1
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von 300P - 21 April 2026, 19:37:50
...und nochmals der Status von 19.35 Uhr


Ja - leider nochmals suchen......

#2
MQTT / Aw: MQTT2-Device Heizkörperven...
Letzter Beitrag von TomLee - 21 April 2026, 19:29:54
Wenn Du das on off in setStateList wieder ergänzt, desired-temp änderst und danach die FTUI Seite händisch aktualisiert, steht dann der Wert im Widget?
#3
Wettermodule / Aw: Was genau sind die Calls b...
Letzter Beitrag von Invers - 21 April 2026, 19:27:34
Ich habe mal mit Gemini ein Device erstellt.
Eigentlich kann man die Bilder mit runterladen, aber das ist mir nicht gelungen.
Damit das funktioniert, braucht ihr den kostenlosen API Key. Ein kompletter Datenblock besteht aus über !14.000! Zeilen!!!
Bitte zeigt mal,falls es euch gelingt die Bilder zu laden. 

defmod Wetter_Meteo HTTPMOD https://forecast.meteonomiqs.com/v4_0/forecast/lat/long 28800
attr Wetter_Meteo alias Außenwetter (3 Tage)
attr Wetter_Meteo extractAllJSON 0
attr Wetter_Meteo reading01JSON hourly_06_temperature
attr Wetter_Meteo reading01Name h06_T
attr Wetter_Meteo reading02JSON hourly_06_weather_icon
attr Wetter_Meteo reading02Name h06_I
attr Wetter_Meteo reading03JSON summary_0_temperature_min
attr Wetter_Meteo reading03Name heute_temp_min
attr Wetter_Meteo reading04JSON summary_0_prec_probability
attr Wetter_Meteo reading04Name heute_regen_prob
attr Wetter_Meteo reading05JSON summary_1_weather_text
attr Wetter_Meteo reading05Name morgen_text
attr Wetter_Meteo reading06JSON summary_1_temperature_max
attr Wetter_Meteo reading06Name morgen_temp_max
attr Wetter_Meteo reading07JSON summary_1_temperature_min
attr Wetter_Meteo reading07Name morgen_temp_min
attr Wetter_Meteo reading08JSON summary_2_weather_text
attr Wetter_Meteo reading08Name uebermorgen_text
attr Wetter_Meteo reading09JSON summary_2_temperature_max
attr Wetter_Meteo reading09Name uebermorgen_temp_max
attr Wetter_Meteo reading10JSON hourly_06_temperature
attr Wetter_Meteo reading10Name h06_T
attr Wetter_Meteo reading11JSON hourly_12_temperature
attr Wetter_Meteo reading11Name h12_T
attr Wetter_Meteo reading12JSON hourly_18_temperature
attr Wetter_Meteo reading12Name h18_T
attr Wetter_Meteo reading13JSON hourly_24_temperature
attr Wetter_Meteo reading13Name h24_T
attr Wetter_Meteo reading14JSON hourly_30_temperature
attr Wetter_Meteo reading14Name h30_T
attr Wetter_Meteo reading15JSON hourly_36_temperature
attr Wetter_Meteo reading15Name h36_T
attr Wetter_Meteo reading16JSON hourly_42_temperature
attr Wetter_Meteo reading16Name h42_T
attr Wetter_Meteo reading17JSON hourly_48_temperature
attr Wetter_Meteo reading17Name h48_T
attr Wetter_Meteo reading18JSON hourly_54_temperature
attr Wetter_Meteo reading18Name h54_T
attr Wetter_Meteo reading19JSON hourly_60_temperature
attr Wetter_Meteo reading19Name h60_T
attr Wetter_Meteo reading20JSON hourly_66_temperature
attr Wetter_Meteo reading20Name h66_T
attr Wetter_Meteo reading21JSON hourly_72_temperature
attr Wetter_Meteo reading21Name h72_T
attr Wetter_Meteo reading22JSON hourly_06_weather_icon
attr Wetter_Meteo reading22Name h06_I
attr Wetter_Meteo reading23JSON hourly_12_weather_icon
attr Wetter_Meteo reading23Name h12_I
attr Wetter_Meteo reading24JSON hourly_18_weather_icon
attr Wetter_Meteo reading24Name h18_I
attr Wetter_Meteo reading25JSON hourly_24_weather_icon
attr Wetter_Meteo reading25Name h24_I
attr Wetter_Meteo reading26JSON hourly_30_weather_icon
attr Wetter_Meteo reading26Name h30_I
attr Wetter_Meteo reading27JSON hourly_36_weather_icon
attr Wetter_Meteo reading27Name h36_I
attr Wetter_Meteo reading28JSON hourly_42_weather_icon
attr Wetter_Meteo reading28Name h42_I
attr Wetter_Meteo reading29JSON hourly_48_weather_icon
attr Wetter_Meteo reading29Name h48_I
attr Wetter_Meteo reading30JSON hourly_54_weather_icon
attr Wetter_Meteo reading30Name h54_I
attr Wetter_Meteo reading31JSON hourly_60_weather_icon
attr Wetter_Meteo reading31Name h60_I
attr Wetter_Meteo reading32JSON hourly_66_weather_icon
attr Wetter_Meteo reading32Name h66_I
attr Wetter_Meteo reading33JSON hourly_72_weather_icon
attr Wetter_Meteo reading33Name h72_I
attr Wetter_Meteo reading34JSON hourly_66_temperature
attr Wetter_Meteo reading34Name h66_T
attr Wetter_Meteo reading35JSON hourly_66_weather_icon
attr Wetter_Meteo reading35Name h66_I
attr Wetter_Meteo reading36JSON hourly_72_temperature
attr Wetter_Meteo reading36Name h72_T
attr Wetter_Meteo reading37JSON hourly_72_weather_icon
attr Wetter_Meteo reading37Name h72_I
attr Wetter_Meteo reading40JSON summary_0_wind_avg
attr Wetter_Meteo reading40Name tag0_wind
attr Wetter_Meteo reading41JSON summary_0_prec_sum
attr Wetter_Meteo reading41Name tag0_regen
attr Wetter_Meteo reading42JSON summary_0_weather_text
attr Wetter_Meteo reading42Name heute_text
attr Wetter_Meteo reading43JSON hourly_72_temperature
attr Wetter_Meteo reading43Name h72_temp
attr Wetter_Meteo reading50JSON hourly_12_wind_avg
attr Wetter_Meteo reading50Name h12_wind
attr Wetter_Meteo reading51JSON hourly_12_prec_sum
attr Wetter_Meteo reading51Name h12_regen
attr Wetter_Meteo reading52JSON hourly_12_weather_text
attr Wetter_Meteo reading52Name heute_text
attr Wetter_Meteo reading53JSON hourly_12_wind_dir
attr Wetter_Meteo reading53Name h12_wind_dir
attr Wetter_Meteo requestHeader1 x-api-key: r8r8r8r8r8r8r8r8r8usw
attr Wetter_Meteo room WETTER
attr Wetter_Meteo stateFormat { \
 # Mapping der Meteo-Icons auf Emojis \
 my %i = ( \
  "d_0.svg"=>"☀️","d_1.svg"=>"🌤�","d_2.svg"=>"🌥�","d_3.svg"=>"☁️","d_4.svg"=>"🌫�", \
  "n_0.svg"=>"🌙","n_1.svg"=>"🌤�","n_2.svg"=>"☁️","n_3.svg"=>"☁️","n_4.svg"=>"🌫�", \
  "d_e_0.svg"=>"☀️","n_e_0.svg"=>"🌙" \
 );; \
 \
 # Funktion zur Umrechnung von Grad in Himmelsrichtung \
 my $getDir = sub { \
  my $d = ReadingsVal($name,"h12_wind_dir",0);; \
  my @r = qw(N NO O SO S SW W NW N);; \
  return $r[int(($d + 22.5) / 45)];; \
 };; \
 \
 # Hilfsfunktion für die Zellen \
 my $cell = sub { \
  my ($icon, $temp) = @_;; \
  my $symbol = $i{ReadingsVal($name,$icon,"d_0.svg")} || "☀️";; \
  return "<td><span style='font-size:22px;; line-height:1;;'>$symbol</span><br>".ReadingsVal($name,$temp,"?")."°</td>";; \
 };; \
 \
 my $t = "<table style='width:100%;; text-align:center;; color:white;; border-collapse:collapse;; font-family:sans-serif;;'>";; \
 $t .= "<tr style='color:#777;; font-size:10px;;'><td></td><td>06:00</td><td>12:00</td><td>18:00</td><td>00:00</td></tr>";; \
 \
 $t .= "<tr><td style='text-align:left;; padding:8px 0;; font-size:16px;;'>Heute</td>".&$cell("h06_I","h06_T").&$cell("h12_I","h12_T").&$cell("h18_I","h18_T").&$cell("h24_I","h24_T")."</tr>";; \
 $t .= "<tr><td style='text-align:left;; padding:8px 0;; font-size:16px;;'>Morgen</td>".&$cell("h30_I","h30_T").&$cell("h36_I","h36_T").&$cell("h42_I","h42_T").&$cell("h48_I","h48_T")."</tr>";; \
 $t .= "<tr><td style='text-align:left;; padding:8px 0;; font-size:16px;;'>Überm.</td>".&$cell("h54_I","h54_T").&$cell("h60_I","h60_T").&$cell("h66_I","h66_T").&$cell("h72_I","h72_T")."</tr>";; \
 \
 $t .= "</table>";; \
 $t .= "<div style='margin-top:10px;; padding-top:5px;; border-top:1px solid #444;; font-size:13px;; text-align:left;;'>";; \
 $t .= "Trend: ".ReadingsVal($name,"heute_text","klar")." | Wind: ".ReadingsVal($name,"h12_wind","0")." km/h (".&$getDir().") | Regen: ".ReadingsVal($name,"h12_regen","0")." mm";; \
 $t .= "</div>";; \
 return "<html>$t</html>";; \
}

 
#4
Sonstige Systeme / Aw: Velux KLF200 mit Firmware ...
Letzter Beitrag von SparcWolf - 21 April 2026, 19:10:43
Hallo debru,
schon die Hinweise aus #1011 gesehen?
#5
Sonstige Systeme / VERSCHOBEN: Davis WeatherLink ...
Letzter Beitrag von Burny4600 - 21 April 2026, 19:03:36
#6
DOIF / Aw: Energy-Card
Letzter Beitrag von Damian - 21 April 2026, 18:24:31
Die Aufrufe der jeweiligen Funktionen entsprechen denen aus dem ersten Post:

grid([Netz:Leistung_Einspeisung_Bezug],[Netz:Energie_des_Tages_Einspeisung],[Netz:Energie_des_Tages_Bezug]).\
solar([PV:Leistung],[PV:Energie_des_Tages]).\
home ([Haus:Leistung_Bezug],[Haus:Energie_des_Tages_Bezug]).\
battery([Speicher:Leistung_Laden_Entladen],[Speicher:Kapazität]).\
## Visualisierung von Autarkie und Eigenverbrauchsquote als Ring\
self([Energie:Autarkie],[Energie:Eigenverbrauchsquote]).\
## Visualisierung der Energieflüsse, der zweiter Parameter ist die maximale Leistung\
grid_power([Netz:Leistung_Einspeisung_Bezug],3.6).\
solar_power([PV:Leistung_PV],3.6).\
battery_power([Speicher:Leistung_Bat],1).\
home_power([Haus:Leistung_Bezug],3.6)

Jede Funktion bildet ein Element ab. Die mit "_power" am Ende sind für die Animation zuständig (zweiter Parameter ist die maximale Leistung). Die Animationen (bis auf home) sind für beide Richtungen ausgelegt, abhängig davon, ob der Leistungswert positiv oder negativ ist. Möchte man z. B. keine Batterie haben, löscht man die beiden Zeilen, die mit "battery" beginnen.

Ich bastle an eine Version, wo man nur seine Readings und seine maximalen Werte zentral definiert, ohne den Code anpacken zu müssen.
#7
Sonstige Systeme / Aw: Steuerung von Rollläden mi...
Letzter Beitrag von phys1 - 21 April 2026, 18:14:05
Jörg, danke für den Test. Bist du auf Bookworm oder Trixie unterwegs?

Schritt 3. homekit_python mit dem KIG 300 paaren

Zunächst die virtuelle Umgebung aktivieren (sofern man sie verlassen hat) und discover aufrufen:
sudo su - fhem
pyenv activate homekit
python3 -m homekit.discover
Die Antwort sollte so aussehen:
Name: VELUX Gateway._hap._tcp.local.
Url: http_impl://192.168.xxx.xx:5001
Configuration number (c#): 6
Feature Flags (ff): Supports HAP Pairing (Flag: 1)
Device ID (id): XX:XX:XX:XX:XX:XX
Model Name (md): VELUX Gateway
Protocol Version (pv): 1.1
State Number (s#): 1
Status Flags (sf): Accessory has not been paired with any controllers. (Flag: 1)


Die Device ID (hier mit XX... überschrieben) kopiert man sich raus.
Der (Software-)Controller benötigt eine (zunächst leere) Konfigurationsdatei:
python3 -m homekit.init_controller_storage -f Pfad/zu/fhem/Velux300Der Pfad/zu/fhem/ muss zum Home-Verzeichnis von fhem zeigen, bei mir /opt/fhem/. Der Dateiname muss Velux300 sein, da ich das fest "verdrahtet" habe.
Jetzt erfolgt das Paaren. Am Gateway selbst muss nichts gedrückt werden, aber der 8-stellige Homekit Code (befindet sich im Homekit Logo auf der Rückseite) muss notiert werden, etwa 12345678.
python3 -m homekit.pair -d XX:XX:XX:XX:XX:XX -p 123-45-678 -f /Pfad/zu/fhem/Velux300 -a veluxBeim -d Parameter natürlich die eigene Device Id eintragen. Beim -p Parameter sind die beiden Bindestriche wie oben einzufügen (und natürlich der eigene Code), auch wenn das im Homekit Code anders ist. Die Antwort sollte lauten:
Pairing for "velux" was established

Dann folgt die Integration in fhem...
#8
Solaranlagen / Aw: Zendure HEMS Modul
Letzter Beitrag von Mitch - 21 April 2026, 18:12:43
Wenn du kein HEMS nutzt, brauchst du das Modul ja gar nicht, kannst alles schön über MQTT lokal machen.
#9
Sprachsteuerung / Aw: (WIP) FHEMWEB interaktiv (...
Letzter Beitrag von Beta-User - 21 April 2026, 17:59:35
Zitat von: Prof. Dr. Peter Henning am 21 April 2026, 09:11:24Klingt schon mal halb gut.
Imo ist es bis auf Kleinigkeiten schon derzeit besser als die bisherige AMAD-Option.

ZitatEs müsste auch je eine Möglichkeit bestehen, den Abbruch der Spracheingabe a.)von FHEM aus durchzuführen und b.)ein Timeout mitzugeben.
Ich würde das ergänzen mit: Die Sprache zu  bestimmen, die erkannt werden soll. Wobei, hmm, s.u..

Zitat von: Prof. Dr. Peter Henning am 21 April 2026, 09:11:24Ich würde außerdem präferieren, wenn man den gesamten Sprachkram in eine eigene Javascript-Datei auslagert.
Das war auch mein erster Gedanke, ABER:
1. Für Einsteiger in die Materie finde ich einen einfach zugänglichen, standardisierten Weg hilfreich. Das Feld ist insgesamt so oder so ziemlich unübersichtlich, und Dinge nach und nach anzupassen, wenn man die Grundfunktionalität mal verstanden hat, finde ich persönlich den leichter vermittelbaren Weg. Kann natürlich sein, dass der erfahrene Didaktiker das anders sieht.

2. Die eigentlichen Funktionen, die man braucht, kann man ja auch parallel in seperaten .js anbieten bzw. das kann der fortgeschrittene User dann ggf. auch selbst nach Gusto zusammenstellen. Er kann dann z.B. auch die Funktion doppeln, und für die französischsprachige "Sie" beim passenden wakeword auch einfach die "doppelte" stt-Funktion in der passenden Sprache aufrufen (ich unterstelle mal, dass sowas realisierbar sein müßte), und dann das (andere) Event eben selbst abgreifen.
(OT-Nachtrag noch: Meine eigene "Ziel-UI" ist eigentlich auch nicht f18 pur, sondern FHEMapp... Da muss auch noch ein Weg her, ein passendes Overlay zu generieren und das Ganze funktional mit FHEM zu verbinden...)

Dementsprechend plädiere ich jedenfalls für den Moment dafür, die Funktionen weiter in f18 zu belassen und lieber über die Standards (oder besser vielleicht: Empfehlungen) zu sprechen, die man als "Kopierer" einhalten sollte, also wann man wo man welche Events generiert usw..
#10
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von DS_Starter - 21 April 2026, 17:44:52
Schade ... muß ich halt weitersuchen.  ;)