Hauptmenü

Neueste Beiträge

#11
FHEMWEB / Aw: Keine Aktualisierung Statu...
Letzter Beitrag von vniklas - 07 April 2026, 08:06:40
Update
Wie es der Zufall will, bin ich darauf gestoßen, dass der Grund für das Problem nicht an ,,longpoll" liegt sondern am Hilfsmodul ,,Dashboard". Im Device Overwiew funktioniert der Icon Update problemlos. Ich hatte tatsächlich einige Änderungen am Dashboard vorgenommen, und seitdem muss der Fehler existieren. Interessant ist dann nur, dass die Anzeige auf dem Dashboard auf allen anderen Geräten funktioniert aber nicht auf dem IPad...


#12
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von peterboeckmann - 07 April 2026, 07:18:22
Hallo Heiko,

Zitat von: DS_Starter am 06 April 2026, 23:32:31Bis dahin ist wichtig, dass ihr ein wenig darauf achtet ob die Aktivierung des Consumers mit "evid" gut funktioniert.

was heißt das? Bzw.: An welcher Stelle kann ich die Auswirkung des Readings "evid" am besten prüfen?

Viele Grüße,
Peter
#13
FHEMWEB / Aw: [Voicecontrol] Button für ...
Letzter Beitrag von Beta-User - 07 April 2026, 06:26:36
Zitat von: rudolfkoenig am 06 April 2026, 12:02:47Wieso oeffnet das gezeigte Code-Stueck das Micro wieder?
Der Code wirft jetzt "nur" einen "bin fertig mit sprechen" Event, damit man auf der FHEM-Seite den Zeitpunkt kennt, ab wann man das Mikro wieder aufmachen kann, WENN man weitere Infos vom Sprecher haben möchte.
ZitatUnd warum will man das ueberhaupt? :)
Das scheine ich nicht gut erklärt zu haben. "Man" will das nicht zwangsläufig immer, sondern nur in gewissen Fällen. Wenn es auf der js-Seite sicher klappen würde, hätte ich dementsprechend versucht, das mit der Übergabe eines weiteren Parameters zu steuern, ob danach das Mikro wieder aktiviert werden soll :) .
So ist jetzt der "AMAD-Weg" der Plan; das wirft auch einen Event, wenn die jeweilige Anweisung "durch" ist.

Nachtrag: die eben eingecheckte Version von RHASSPY enthält eine erste funktionsfähige Event-Verarbeitung in diesem Sinne, so dass wir uns jetzt dann (optionalen) optischen und funktionalen Fragen zu wenden könnten (und ich die in CustomIntent mit Dialog (https://forum.fhem.de/index.php?topic=139337.0) begonnenen Erweiterungen fortsetzen kann).

ZitatPush ist seit 28.3 in f18.js eingebaut (siehe https://forum.fhem.de/index.php?topic=143778.msg1360637#msg1360637),
Mit den Neuerungen bzgl. push und additionalInform muss ich mich erst mal befassen, wie das in dem Zusammenhang zweckmäßigerweise einzubauen ist.

Zitatund fuer TTS siehe meinen Beitrag hier von vorgestern.
Wenn ich das richtig verstanden habe, geht es pah nicht darum, die TTS-Fähigeit des Endgeräts direkt zu nutzen, sondern "Jeannie" (?) sprechen zu lassen, damit die Sprachausgabe aus FHEM auf allen Endgeräten gleich klingt.
Dazu wird vorab Audio generiert (und zwischengespeichert) und dann das passende Audio abgespielt.
Da will ich (zumindest als Option) letztlich auch hinkommen, nur dass meine Audios nirgends gespeichert werden, sondern via piper-tts-Server on the fly generiert werden sollen.

Dementsprechend sollte die Push-Anweisung dahin gehen, das Audio (ggf. unter Angabe der Stimme für unterschiedliche Sprachen, je nach "Gesprächspartner") abzuholen, abzuspielen, und danach den Event "bin fertig mit Sprechen" zu generieren (oder eben das Mikro bei entsprechendem flag wieder direkt aufzumachen).
#14
Sonstiges / Aw: regex101 findet 12 Treffer...
Letzter Beitrag von Marko1976 - 07 April 2026, 02:11:23
Mache ich natürlich gerne, hier erst mal das komplette List:
Internals:
   BUSY       0
   DEF        https://www.penny-del.org/spiele 18060
   FUUID      69c92e07-f33f-7706-0d6e-fa5ceffc3a8a1ca5
   FVERSION   98_HTTPMOD.pm:0.291590/2024-09-23
   Interval   18060
   MainURL    https://www.penny-del.org/spiele
   ModuleVersion 4.2.0 - 11.8.2023
   NAME       hockey_playoff
   NOTIFYDEV  global
   NR         578
   NTFY_ORDER 50-hockey_playoff
   STATE      Kölner Haie
   TYPE       HTTPMOD
   eventCount 8
   value     
   CompiledRegexes:
   HttpUtils:
     NAME       
     addr       https://www.penny-del.org:443
     auth       0
     buf       
     code       200
     compress   1
     conn       
     data       
     displayurl https://www.penny-del.org/spiele
     header     
     host       www.penny-del.org
     httpheader HTTP/1.1 200 OK
date: Mon, 06 Apr 2026 22:17:04 GMT
server: Apache/2.4.52 (Ubuntu)
content-language: de-DE
cache-control: max-age=0
expires: Mon, 06 Apr 2026 22:17:04 GMT
vary: Accept-Encoding
content-encoding: gzip
x-ua-compatible: IE=edge
x-content-type-options: nosniff
content-length: 8955
keep-alive: timeout=5, max=100
content-type: text/html; charset=utf-8
connection: close
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    443
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /spiele
     protocol   https
     redirects  0
     timeout    30
     url        https://www.penny-del.org/spiele
     sslargs:
   QUEUE:
   READINGS:
     2026-04-07 00:17:04   name-1          Kölner Haie
     2026-04-07 00:17:04   name-10         Eisbären Berlin
     2026-04-07 00:17:04   name-11         EHC Red Bull München
     2026-04-07 00:17:04   name-12         ERC Ingolstadt
     2026-04-07 00:17:04   name-13         Pinguins Bremerhaven
     2026-04-07 00:17:04   name-14         Nürnberg Ice Tigers
     2026-04-07 00:17:04   name-15         Grizzlys Wolfsburg
     2026-04-07 00:17:04   name-16         Schwenninger Wild Wings
     2026-04-07 00:17:04   name-2          Eisbären Berlin
     2026-04-07 00:17:04   name-3          Adler Mannheim
     2026-04-07 00:17:04   name-4          EHC Red Bull München
     2026-04-07 00:17:04   name-5          Kölner Haie
     2026-04-07 00:17:04   name-6          Schwenninger Wild Wings
     2026-04-07 00:17:04   name-7          Adler Mannheim
     2026-04-07 00:17:04   name-8          Pinguins Bremerhaven
     2026-04-07 00:17:04   name-9          Straubing Tigers
     2026-04-07 00:17:04   nameHF-1        Kölner Haie
     2026-04-07 00:17:04   nameHF-2        Eisbären Berlin
     2026-04-07 00:17:04   nameHF-3        Adler Mannheim
     2026-04-07 00:17:04   nameHF-4        EHC Red Bull München
     2026-04-07 00:17:04   nameHF-5        Viertelfinale
     2026-04-07 00:17:04   namePPO-1       Pinguins Bremerhaven
     2026-04-07 00:17:04   namePPO-2       Nürnberg Ice Tigers
     2026-04-07 00:17:04   namePPO-3       Grizzlys Wolfsburg
     2026-04-07 00:17:04   namePPO-4       Schwenninger Wild Wings
     2026-04-07 00:17:04   nameVF-1        Kölner Haie
     2026-04-07 00:17:04   nameVF-2        Schwenninger Wild Wings
     2026-04-07 00:17:04   nameVF-3        Adler Mannheim
     2026-04-07 00:17:04   nameVF-4        Pinguins Bremerhaven
     2026-04-07 00:17:04   nameVF-5        Straubing Tigers
     2026-04-07 00:17:04   nameVF-6        Eisbären Berlin
     2026-04-07 00:17:04   nameVF-7        EHC Red Bull München
     2026-04-07 00:17:04   nameVF-8        ERC Ingolstadt
     2026-04-07 00:17:04   seriesF-1       0
     2026-04-07 00:17:04   seriesHF-1      0
     2026-04-07 00:17:04   seriesHF-2      0
     2026-04-07 00:17:04   seriesPPO-1     1
     2026-04-07 00:17:04   seriesPPO-2     2
     2026-04-07 00:17:04   seriesVF-1      1
     2026-04-07 00:17:04   seriesVF-2      1
     2026-04-07 00:17:04   seriesVF-3      2
     2026-04-07 00:17:04   seriesVF-4      1
     2026-04-07 00:17:04   standing-1      0:0
     2026-04-07 00:17:04   standing-2      0:0
     2026-04-07 00:17:04   standing-3      4:0
     2026-04-07 00:17:04   standing-4      4:1
     2026-04-07 00:17:04   standing-5      2:4
     2026-04-07 00:17:04   standing-6      4:2
     2026-04-07 00:17:04   standing-7      2:0
     2026-04-07 00:17:04   standing-8      1:2
     2026-04-07 00:17:04   standingHF-1    0:0
     2026-04-07 00:17:04   standingHF-2    0:0
     2026-04-07 00:17:04   standingPPO-1   2:0
     2026-04-07 00:17:04   standingPPO-2   1:2
     2026-04-07 00:17:04   standingVF-1    4:0
     2026-04-07 00:17:04   standingVF-2    4:1
     2026-04-07 00:17:04   standingVF-3    2:4
     2026-04-07 00:17:04   standingVF-4    4:2
     2026-04-07 00:17:04   winnerF-1       0
     2026-04-07 00:17:04   winnerHF-1      0
     2026-04-07 00:17:04   winnerHF-2      0
     2026-04-07 00:17:04   winnerPPO-1     1
     2026-04-07 00:17:04   winnerPPO-2     2
     2026-04-07 00:17:04   winnerVF-1      1
     2026-04-07 00:17:04   winnerVF-2      1
     2026-04-07 00:17:04   winnerVF-3      2
     2026-04-07 00:17:04   winnerVF-4      1
   REQUEST:
     context    reading
     data       
     header     
     ignoreredirects 0
     num        unknown
     retryCount 0
     type       update
     url        https://www.penny-del.org/spiele
   defptr:
     readingBase:
       name-1     reading
       name-10    reading
       name-11    reading
       name-12    reading
       name-13    reading
       name-14    reading
       name-15    reading
       name-16    reading
       name-2     reading
       name-3     reading
       name-4     reading
       name-5     reading
       name-6     reading
       name-7     reading
       name-8     reading
       name-9     reading
       nameHF-1   reading
       nameHF-2   reading
       nameHF-3   reading
       nameHF-4   reading
       nameHF-5   reading
       namePPO-1  reading
       namePPO-2  reading
       namePPO-3  reading
       namePPO-4  reading
       nameVF-1   reading
       nameVF-2   reading
       nameVF-3   reading
       nameVF-4   reading
       nameVF-5   reading
       nameVF-6   reading
       nameVF-7   reading
       nameVF-8   reading
       standing-1 reading
       standing-2 reading
       standing-3 reading
       standing-4 reading
       standing-5 reading
       standing-6 reading
       standing-7 reading
       standing-8 reading
       standingHF-1 reading
       standingHF-2 reading
       standingPPO-1 reading
       standingPPO-2 reading
       standingVF-1 reading
       standingVF-2 reading
       standingVF-3 reading
       standingVF-4 reading
     readingNum:
       name-1     01
       name-10    01
       name-11    01
       name-12    01
       name-13    01
       name-14    01
       name-15    01
       name-16    01
       name-2     01
       name-3     01
       name-4     01
       name-5     01
       name-6     01
       name-7     01
       name-8     01
       name-9     01
       nameHF-1   07
       nameHF-2   07
       nameHF-3   07
       nameHF-4   07
       nameHF-5   07
       namePPO-1  03
       namePPO-2  03
       namePPO-3  03
       namePPO-4  03
       nameVF-1   05
       nameVF-2   05
       nameVF-3   05
       nameVF-4   05
       nameVF-5   05
       nameVF-6   05
       nameVF-7   05
       nameVF-8   05
       standing-1 02
       standing-2 02
       standing-3 02
       standing-4 02
       standing-5 02
       standing-6 02
       standing-7 02
       standing-8 02
       standingHF-1 08
       standingHF-2 08
       standingPPO-1 04
       standingPPO-2 04
       standingVF-1 06
       standingVF-2 06
       standingVF-3 06
       standingVF-4 06
     readingOutdated:
     readingSubNum:
       name-1     -1
       name-10    -10
       name-11    -11
       name-12    -12
       name-13    -13
       name-14    -14
       name-15    -15
       name-16    -16
       name-2     -2
       name-3     -3
       name-4     -4
       name-5     -5
       name-6     -6
       name-7     -7
       name-8     -8
       name-9     -9
       nameHF-1   -1
       nameHF-2   -2
       nameHF-3   -3
       nameHF-4   -4
       nameHF-5   -5
       namePPO-1  -1
       namePPO-2  -2
       namePPO-3  -3
       namePPO-4  -4
       nameVF-1   -1
       nameVF-2   -2
       nameVF-3   -3
       nameVF-4   -4
       nameVF-5   -5
       nameVF-6   -6
       nameVF-7   -7
       nameVF-8   -8
       standing-1 -1
       standing-2 -2
       standing-3 -3
       standing-4 -4
       standing-5 -5
       standing-6 -6
       standing-7 -7
       standing-8 -8
       standingHF-1 -1
       standingHF-2 -2
       standingPPO-1 -1
       standingPPO-2 -2
       standingVF-1 -1
       standingVF-2 -2
       standingVF-3 -3
       standingVF-4 -4
     requestReadings:
       update:
         name-1     reading 01-1
         name-10    reading 01-10
         name-11    reading 01-11
         name-12    reading 01-12
         name-13    reading 01-13
         name-14    reading 01-14
         name-15    reading 01-15
         name-16    reading 01-16
         name-2     reading 01-2
         name-3     reading 01-3
         name-4     reading 01-4
         name-5     reading 01-5
         name-6     reading 01-6
         name-7     reading 01-7
         name-8     reading 01-8
         name-9     reading 01-9
         nameHF-1   reading 07-1
         nameHF-2   reading 07-2
         nameHF-3   reading 07-3
         nameHF-4   reading 07-4
         nameHF-5   reading 07-5
         namePPO-1  reading 03-1
         namePPO-2  reading 03-2
         namePPO-3  reading 03-3
         namePPO-4  reading 03-4
         nameVF-1   reading 05-1
         nameVF-2   reading 05-2
         nameVF-3   reading 05-3
         nameVF-4   reading 05-4
         nameVF-5   reading 05-5
         nameVF-6   reading 05-6
         nameVF-7   reading 05-7
         nameVF-8   reading 05-8
         standing-1 reading 02-1
         standing-2 reading 02-2
         standing-3 reading 02-3
         standing-4 reading 02-4
         standing-5 reading 02-5
         standing-6 reading 02-6
         standing-7 reading 02-7
         standing-8 reading 02-8
         standingHF-1 reading 08-1
         standingHF-2 reading 08-2
         standingPPO-1 reading 04-1
         standingPPO-2 reading 04-2
         standingVF-1 reading 06-1
         standingVF-2 reading 06-2
         standingVF-3 reading 06-3
         standingVF-4 reading 06-4
Attributes:
   alias      DEL Play-Off's
   enableControlSet 1
   group      Eishockey
   icon       Wunderlist
   reading01Name name
   reading01RegOpt g
   reading01Regex <\/div>\s*([\w+öäüÖÄÜ][ \wöäüÖÄÜ]+)\s*<\/div>
   reading02Decode utf-8
   reading02Name standing
   reading02RegOpt g
   reading02Regex <h3>(.*)<\/h3>
   reading03Name namePPO
   reading03RegOpt g
   reading03Regex (?:1. Playoff-Runde|(?!\A)\G)[\s\S]*?alt="([^"]+)"(?=[\s\S]*?footer)
   reading04Name standingPPO
   reading04RegOpt g
   reading04Regex (?:1. Playoff-Runde|(?!\A)\G)[\s\S]*?<h3>(.*)<\/h3>(?=[\s\S]*?footer)
   reading05Name nameVF
   reading05RegOpt g
   reading05Regex (?:alt="Viertelfinale"|(?!\A)\G)[\s\S]*?alt="([^"]+)"(?=[\s\S]*?1. Playoff-Runde)
   reading06Name standingVF
   reading06RegOpt g
   reading06Regex (?:Viertelfinale|(?!\A)\G)[\s\S]*?<h3>(.*)<\/h3>(?=[\s\S]*?1. Playoff-Runde)
   reading07Name nameHF
   reading07RegOpt g
   reading07Regex (?:Halbfinale|(?!\A)\G)[\s\S]*?alt="([^"]+)"(?=[\s\S]*?Viertelfinale)
   reading08Name standingHF
   reading08RegOpt g
   reading08Regex (?:Halbfinale|(?!\A)\G)[\s\S]*?<h3>(.*)<\/h3>(?=[\s\S]*?Viertelfinale)
   reading09Name nameF
   reading09RegOpt g
   reading09Regex (?:Finale|(?!\A)\G)[\s\S]*?alt="([^"]+)"(?=[\s\S]*?Halbfinale)
   reading10Name standingF
   reading10RegOpt g
   reading10Regex (?:Finale|(?!\A)\G)[\s\S]*?<h3>(.*)<\/h3>(?=[\s\S]*?Halbfinale)
   room       Information->Sport
   stateFormat name-1
   timeout    30
   userReadings winnerPPO-1 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingPPO-1","0:0")); return "0" if ($val1 == $val2); return "0" if ($val1 < 2 && $val2 < 2); return ($val1 > $val2) ? "1" : "2"; }, winnerPPO-2 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingPPO-2","0:0")); return "0" if ($val1 == $val2); return "0" if ($val1 < 2 && $val2 < 2); return ($val1 > $val2) ? "1" : "2"; },  winnerVF-1 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingVF-1","0:0")); return "0" if ($val1 == $val2); return "0" if ($val1 < 4 && $val2 < 4); return ($val1 > $val2) ? "1" : "2"; }, winnerVF-2 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingVF-2","0:0")); return "0" if ($val1 == $val2); return "0" if ($val1 < 4 && $val2 < 4); return ($val1 > $val2) ? "1" : "2"; }, winnerVF-3 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingVF-3","0:0")); return "0" if ($val1 == $val2); return "0" if ($val1 < 4 && $val2 < 4); return ($val1 > $val2) ? "1" : "2"; }, winnerVF-4 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingVF-4","0:0")); return "0" if ($val1 == $val2); return "0" if ($val1 < 4 && $val2 < 4); return ($val1 > $val2) ? "1" : "2"; },  winnerHF-1 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingHF-1","0:0")); return "0" if ($val1 == $val2); return "0" if ($val1 < 4 && $val2 < 4); return ($val1 > $val2) ? "1" : "2"; }, winnerHF-2 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingHF-2","0:0")); return "0" if ($val1 == $val2); return "0" if ($val1 < 4 && $val2 < 4); return ($val1 > $val2) ? "1" : "2"; },  winnerF-1 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingF-1","0:0")); return "0" if ($val1 == $val2); return "0" if ($val1 < 4 && $val2 < 4); return ($val1 > $val2) ? "1" : "2"; },  seriesPPO-1 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingPPO-1","0:0")); return "0" if ($val1 == $val2); return ($val1 > $val2) ? "1" : "2"; }, seriesPPO-2 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingPPO-2","0:0")); return "0" if ($val1 == $val2); return ($val1 > $val2) ? "1" : "2"; },  seriesVF-1 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingVF-1","0:0")); return "0" if ($val1 == $val2); return ($val1 > $val2) ? "1" : "2"; }, seriesVF-2 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingVF-2","0:0")); return "0" if ($val1 == $val2); return ($val1 > $val2) ? "1" : "2"; }, seriesVF-3 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingVF-3","0:0")); return "0" if ($val1 == $val2); return ($val1 > $val2) ? "1" : "2"; }, seriesVF-4 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingVF-4","0:0")); return "0" if ($val1 == $val2); return ($val1 > $val2) ? "1" : "2"; },  seriesHF-1 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingHF-1","0:0")); return "0" if ($val1 == $val2); return ($val1 > $val2) ? "1" : "2"; }, seriesHF-2 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingHF-2","0:0")); return "0" if ($val1 == $val2); return ($val1 > $val2) ? "1" : "2"; },  seriesF-1 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingF-1","0:0")); return "0" if ($val1 == $val2); return ($val1 > $val2) ? "1" : "2"; },
   userattr   .*
   verbose    3

Das Ganze war ja eine Entwicklungsarbeit die immer weiter - auch der dank der Hilfe hier - voran gekommen ist. Zuerst bekoam ich mit regex101.com Treffer angezeigt, aber die Readings im Device blieben leer, so dass ich keine Lösung hatte weshalb ich die Überschrift so gewählt habe. Im Zuge der Entwicklung ist mir dann aufgefallen, dass die Readings nicht leer waren sondern mit den Leerzeichen gefüllt wurden und in der Weboberfläche von Fhem nur leer aussahen.
Zu deiner konkreten Frage und damit man nicht das ganze List durchgehen muss hier die Regex für die einzelnen Readings als Bildschirmfoto (ist schneller als alle einzelnd in Codeblöcke zu schreiben).:
Du darfst diesen Dateianhang nicht ansehen.

Die Readings lauten damit nun "name" bzw. "standing", jeweils gefolgt von der Rundenbezeichnung, also namePPO, nameVF, nameHF und nameF bzw. das Ganze eben auch beim standing.

Das ergibt für jede Runde eine separate Ausgabe der Mannschaftsnamen udn Serienergebnisse, so dass die erste Mannschaft im Virtelfinale auch die 1. Mannschaft im Viertelfinale bleibt wenn das Halbfinale hinzugefügrt wird/wurde. So kann ich sicherstellen, dass sich die Namen der einelnen Readings eben nicht ändern und auch in meiner grafischen Auswertung im FTUI3 darauf zugreifen ohne Angst haben zu müssen, dass es mir alles zerschießt wenn der Seite die nächste Runde hinzugefügt wird.

Ich hoffe damit sind deine Fragen beantwortet, ansonsten musst du noch mal genauer sagen was du gerne sehen möchtest.
#15
FHEM Code changes / Revision 31087: 76_SolarForeca...
Letzter Beitrag von System - 07 April 2026, 01:20:27
Revision 31087: 76_SolarForecast: Version 2.5.1

76_SolarForecast: Version 2.5.1

Source: Revision 31087: 76_SolarForecast: Version 2.5.1
#16
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von DS_Starter - 06 April 2026, 23:32:31
Für EV-Besitzer kommt nun erstmal die Zeit der Datensammlung. Nach einer gewissen Zeit schauen wir uns gemeinsam die gespeicherten Werte in pvHistory bzw. aiRawData an. Bis dahin ist wichtig, dass ihr ein wenig darauf achtet ob die Aktivierung des Consumers mit "evid" gut funktioniert.
Ihr könnt dafür ja alles mögliche verwenden, also irgendwelche Readingwerte die einen angeschlossenen EV identifizieren.

Zu gegebener Zeit werden dann KI EV Features mit einem Profil für die Verbrauchsprognose erstellt. Bezüglich der Profile wird es eine Änderung geben. Das bisherige System der auswählbaren Profile ist zu unflexibel kombinierbar. Ich werde eine automatische Kombinatorik implementieren. Der Nutzer braucht dann in aiControl nur seine Komponenten anzugeben, z.B.:

aiConProfile=common,pv,bev,hp,[active],...
Das System wählt dann automatisch das passende Profil aus.

Weitere Ziele werden sein:

- weitere Optimierungen der Consumersteuerung
- Einbindung der neuen PV-Prognoseberechnung (Legacy) von pah (hier im Solaranlagen-Thread zu lesen)
- Implementierung der KI AI::FANN für die PV-Prognose
- später ... Möglichkeit der Definition mehr als einer WP und Aufwertung des KI WP-Profils

Besonders die Umstellung der KI Unterstützung der PV-Prognose auf AI::FANN ist ein Schwerpunkt. Je genauer wir PV und Verbrauchsprognose realisieren können, desto effektiver lassen sich alle darauf aufbauende Steuerungen, wie Batteriesteuerung, Consumersteuerung, Netzdienlichkeit oder Optimierungen hinsichtlich dynamischer Netztarife in Realität umsetzen. Die Consumersteuerung wird jetzt im Sommerhalbjahr auch wieder interessanter und wichtiger wenn ordentlich Energie vom Dach kommt.

Viel zu tun ... mal schauen wie sich alles so umsetzen lässt.  ;)

LG,
Heiko
#17
FHEMWEB / Aw: Keine Aktualisierung Statu...
Letzter Beitrag von vniklas - 06 April 2026, 22:42:37
Hallo Rudolf,
mein Stand ist iPadOS 26.4. und ich verwende tatsächlich f18.
Aber mit anderen Styles habe ich dasselbe Problem.
#18
FHEM Code changes / Revision 31086: 76_SolarForeca...
Letzter Beitrag von System - 06 April 2026, 22:01:03
Revision 31086: 76_SolarForecast: Version 2.5.1

76_SolarForecast: Version 2.5.1

Source: Revision 31086: 76_SolarForecast: Version 2.5.1
#19
Sonstiges / Aw: Update VBUS klappt nicht
Letzter Beitrag von Bronze - 06 April 2026, 21:51:12
Vielen Dank, Otto, hat funktioniert, ich konnte das richtige Modell auswählen!
VG!
#20
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von DS_Starter - 06 April 2026, 21:03:35
Hallo @all,

ich habe mir die Mühe gemacht und alles zusammengestellt was bis jetzt in die aktuelle contrib Version 2.5.1 eingeflossen ist.
Es ist schon wieder eine ganze Menge geworden und es sind auch recht bedeutende Dinge dabei. Ich halte es für sinnvoll die Version einzuchecken, sie enthält:

- neuer Schlüssel plantControl->consForecastBase
- Einbindung des String Inverter Mapping check in den Konfigurationscheck
- Konfigurationscheck prüft con in aiRawData
- veränderte Berechnung und Darstellung von weiteren KI Drift Parametern
- comforttemp wird automatisch in plantControl verschoben
- BugFix in reductionState  -> Forum https://forum.fhem.de/index.php?msg=1360810
- neuer Schlüssel aiControl->aiConAbsOversample
- Einbindung von BEV-Consumern (aktuell NUR Datensammlung und Speicherung)
- Härtung der Anzeigefunktion von pvHistory
- Speicherung neuer BEV-Werte in pvHistory & aiRawData
- Bugfix in Legacy Vorhersage für den kommenden Tag -> Forum: https://forum.fhem.de/index.php?msg=1361272
- Bearbeitung der CommandReferenz
- kleine Änderungen im Grafikheader (Benennung CON und Verwendung von aktuellen Umgebungswerten statt gegättete Werte) 

Edit: Ist eingecheckt und morgen früh ab ca. 8:00 (300P! ;) ) verfügbar.

LG,
Heiko