Hauptmenü

Neueste Beiträge

#1
FHEM Development / Aw: glob/Wildcards in CommandI...
Letzter Beitrag von jw2013 - 14 Dezember 2025, 16:33:31
Abgesehen davon, dass meine Wand schon voll hängt, gehe ich gerne ohne weiteren Sarkasmus auf Deine Punkte ein ;-)

Ich mag den Begriff "OpenWrt Phantasien" nicht sonderlich, denn er suggeriert unrealistische Ziele.

Wie Du vielleicht auch bemerkt hast, komme ich nicht mit "Wünschen und Forderungen" zu Euch, in der Hoffnung, jemand möge das in seiner Freizeit für mich implementieren, sondern ich setze mich selbst daran, entwickle und teste. Und wenn ich denke, das macht für alle Sinn, dann melde ich mich. Natürlich in der Hoffnung, Dich und weitere Mitstreiter dafür zu gewinnen.

Und ich denke, dass FHEM auf OpenWrt mehr als eine Randerscheinung werden wird.

Es gibt für mich 2 Arten der Hausautomatisierung: 1. die zum Angeben, und 2. die, die unsichtbar im Hintergrund werkelt.

Die erste Sparte wird meines Erachtens zur Genüge von HomeAssistant abgedeckt. Neuerdings läuft das schon nicht mal mehr auf einem Raspberry 3, schaut dafür aber ganz toll aus. Wurde dennoch (oder gerade deswegen) wieder zum beliebtesten OpenSource Projekt gewählt.

Die zweite Sparte sind die Systeme, die im Hintergrund Aufgaben erledigen, für die man etwas mehr Flexibilität benötigt, als ein typischer Mikrocontroller bietet. Sei es das Einsammeln von Daten von Messstellen, die Verknüpfung von PV, Heizung und Wallboxen, generell die Verknüpfung von an sich inkompatiblen Systemen unterschiedlicher Hersteller. Hier könnte FHEM richtig dominieren.

So wenig, wie ich in FHEM nur einen kleinen HomeAssistant sehe, betrachte ich OpenWrt nur als WLAN Router. Vielmehr ist es das Betriebsystem mit der vielleicht umfangreichsten Liste an unterstützter Hardware, das zufällig für FHEM (und andere IoT Sachen) genau das mitbringt, was zur einfachen Einrichtung fehlt: Eine komfortable Oberfläche für Netzwerkeinstellungen, Firewall und VPN.

Wo ich Dir uneingeschränkt Recht gebe: Die Implementierung ist immer transparent umzusetzen, und in möglichst viele, unabhängige Häppchen aufzuteilen. Die Änderung oben besteht auch nur aus wenigen Zeilen, es schaut nur in einem Diff nach mehr aus, weil ich einen großen Block in eine Schleife genommen hab.
#2
Sonstige Systeme / [Heizkörperthermostat] MAX und...
Letzter Beitrag von cotecmania - 14 Dezember 2025, 16:10:43
Hallo,

habe seit vielen Jahren erfolgreich HM und MAX-Thermostate in Verwendung und möchte nun auf WLAN umsteigen.
Sollten natürlich von Fhem unterstützt werden.

Habt Ihr dafür eventuell 'ne Empfehlung ?

Gruss
Joe
#3
Codeschnipsel / Aw: Abfrage Heizölpreis HTTPMO...
Letzter Beitrag von TomLee - 14 Dezember 2025, 15:52:38
Oje...

Hier ist die Syntax von ReadingsNum() beschrieben.

In deinem Fall dann:
ReadingsNum("CN.Blaubrenner","Bestellmenge,0)
#4
Sonstige Systeme / [Energiemessung] PCA301 durch ...
Letzter Beitrag von cotecmania - 14 Dezember 2025, 15:47:26
Hallo,

bin gerade dabei alle meine PCA301-Steckdosen durch ShellyPlugs zu ersetzen um den JeeLink durch WLAN zu ersetzen und dadurch unabhängiger beim Umzug auf Proxmox zu sein und den zusätzlichen HardwareStick einzusparen.

Jetzt sind natürlich alle FileLogs bzw. SVGs auf die Syntax der PCA301 parametriert und nun folgen neue Logfiles mit neuen DeviceNamen.

Wie kann man das am sinnvollsten migrieren, um die alten und neuen Werte in einem Logfile bzw. SVG zu haben.

Klar kann ich die alten Logfiles bearbeiten und umbenennen, aber vielleicht gibts da ja schon was komfortableres.

PS : 1 x JeeLink und 7 funktionierende PCA301 stehen zum Verkauf. PM bei Interesse.

Danke und Gruss
Joe
#5
FHEM Development / Aw: glob/Wildcards in CommandI...
Letzter Beitrag von betateilchen - 14 Dezember 2025, 15:45:54
Deine OpenWRT Phantasien in allen Ehren, aber bitte übertreibe es nicht mit Deinen Wünschen/Forderungen zu einem kompletten Umbau von FHEM. Du wirst mit OpenWRT am Ende wahrscheinlich ein Randgebiet abdecken. Ähnlich war es 2014, als ich mich mit der Integration von configDB befasst habe. Genau aus dem Grund hatte ich damals allergrößten Wert darauf gelegt, die Implementierung weitestgehend transparent umzusetzen, damit sowohl andere Entwickler wie auch die Anwender sich möglichst keine Gedanken darüber machen brauchen.

Wenn ich irgendwas zu FHEM suchen muss, dann suche ich das unter /opt/fhem und nicht über das gesamte Dateisystem verteilt. Der Großteil der Anwender kommt mit dem derzeitigen Umfeld gut klar. Die Supporter hier im Forum übrigens eingeschlossen.

Und Deinen Sarkasmus kannst Du Dir gerne auf einen Zettel schreiben und an die Wand hängen. FHEM mit Apache oder den anderen von Dir genannten Projekten vergleichen zu wollen, ist für mich schon ziemlich schräg.

#6
FHEM Development / Aw: glob/Wildcards in CommandI...
Letzter Beitrag von jw2013 - 14 Dezember 2025, 15:25:45
Zitat von: betateilchen am 14 Dezember 2025, 14:01:24Sowas kann zu völlig unvorhergesehenen Effekten führen, wenn sich bei Anwendern in einem Verzeichnis bereits Dateien angesammelt haben, an die der Anwender nicht mehr denkt und er "der Einfachheit halber" ein Wildcard einsetzt.

Oh je, soweit habe ich gar nicht gedacht, das passiert ja ständig.

https://httpd.apache.org/docs/2.4/mod/core.html#include
https://nginx.org/en/docs/ngx_core_module.html#include
https://man.openbsd.org/sshd_config#Include
https://man.openbsd.org/ssh_config#Include

Nur gut, dass keines dieser Projekte weit verbreitet ist, die wären sonst schon in Support-Anfragen untergegangen.

</sarcasm>
 ;)

Zitat von: betateilchen am 14 Dezember 2025, 14:01:24Außerdem würden wir damit vom in FHEM weitverbreiteten Prinzip abweichen, dass wir bei der Verwendung von Wildcards auf regex setzen und nicht auf die alte DOS Nomenklatur.

Ich bin selbst ein Freund von regulären Ausdrücken, aber bitte nur dort, wo sie wirklich notwendig sind. Denn leider bringen die auch Probleme mit, wie z.B. ReDoS.
Bei include-Statements in Konfigurationen ist die glob-Syntax üblich, sicherlich nicht ohne Grund...
#7
Codeschnipsel / Aw: Abfrage Heizölpreis HTTPMO...
Letzter Beitrag von Bartimaus - 14 Dezember 2025, 15:25:17
Ich danke Dir.

Leider funktioniert es noch nicht.

Hier mal ein List des Devices

Internals:
   BUSY       0
   CFGFN     
   DEF        https://www.heizoel24.de/DailyPriceXml.ashx?zipcode=%%PLZ%%&litre=%%MENGE%%&unloadingpoints=%%ENTLADESTELLEN%%&oilgrade=standard 43200
   FUUID      693af639-f33f-7539-f121-98c0e83bffc3ec0b
   Interval   43200
   MainURL    https://www.heizoel24.de/DailyPriceXml.ashx?zipcode=%%PLZ%%&litre=%%MENGE%%&unloadingpoints=%%ENTLADESTELLEN%%&oilgrade=standard
   ModuleVersion 4.2.0 - 11.8.2023
   NAME       Heizoelpreis
   NOTIFYDEV  global
   NR         39797
   NTFY_ORDER 50-Heizoelpreis
   STATE      <div style="text-align: left;;">:&nbsp;<a href="https://www.heizoel24.de/heizoel/angebotsliste?zipCode=40477&amount=CN.Blaubrenner:Bestellmenge&stations=1&product=1" rel="noopener noreferrer" target="_blank" style="font-weight:bold;;">-&euro;</a>/100l&nbsp;(CN.Blaubrenner:Bestellmengel = 0.00&euro;)</div>
   TYPE       HTTPMOD
   eventCount 30
   value     
   CompiledRegexes:
   HttpUtils:
     NAME       
     addr       https://www.heizoel24.de:443
     auth       0
     buf       
     code       400
     compress   1
     conn       
     data       
     displayurl https://www.heizoel24.de/DailyPriceXml.ashx?zipcode=40477&litre=CN.Blaubrenner:Bestellmenge&unloadingpoints=1&oilgrade=standard
     header     
     host       www.heizoel24.de
     httpheader HTTP/1.1 400 Bad Request
Cache-Control: no-store, no-cache, must-revalidate, private
Pragma: no-cache
Content-Type: application/xml
Content-Encoding: gzip
Vary: Accept-Encoding
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
X-Powered-By:
X-Powered-By:
X-Content-Type-Options: nosniff
Date: Sun, 14 Dec 2025 14:35:16 GMT
Connection: close
Content-Length: 192
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    443
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /DailyPriceXml.ashx?zipcode=40477&litre=CN.Blaubrenner:Bestellmenge&unloadingpoints=1&oilgrade=standard
     protocol   https
     redirects  0
     timeout    10
     url        https://www.heizoel24.de/DailyPriceXml.ashx?zipcode=40477&litre=CN.Blaubrenner:Bestellmenge&unloadingpoints=1&oilgrade=standard
     sslargs:
   OLDREADINGS:
   QUEUE:
   READINGS:
     2025-12-14 15:35:17   Bestellmenge    26
     2025-12-14 15:35:17   Fuellkosten     0.00
     2025-12-14 15:35:17   Fuellstand      8174.00
     2025-12-13 13:19:17   Tankvolumen     8200
     2025-12-11 17:51:24   attrTemplateVersion 20210626
   REQUEST:
     context    reading
     data       
     header     
     ignoreredirects 0
     num        unknown
     retryCount 0
     type       update
     url        https://www.heizoel24.de/DailyPriceXml.ashx?zipcode=%%PLZ%%&litre=%%MENGE%%&unloadingpoints=%%ENTLADESTELLEN%%&oilgrade=standard
Attributes:
   enableControlSet 1
   model      fuel_oil_check_heizoel24_v2
   reading010Name Heizoelpreis
   reading010OExpr $val =~ s/,/\./; $val;
   reading010Regex ([\d\,]+)<\/price
   replacement01Mode text
   replacement01Regex %%PLZ%%
   replacement01Value 40477
   replacement02Mode text
   replacement02Regex %%MENGE%%
   replacement02Value CN.Blaubrenner:Bestellmenge
   replacement03Mode text
   replacement03Regex %%ENTLADESTELLEN%%
   replacement03Value 1
   room       HTTPMOD,Heizung
   stateFormat {   my $price = 0.0;
    $price = ("CN.Blaubrenner:Bestellmenge"*ReadingsNum($name,"Heizoelpreis",0))/100; # hier rechn
    my $lastCheck = ReadingsTimestamp($name,"Heizoelpreis","");
    my $ret = "<div style=\"text-align: left;;\">".$lastCheck.":";
    my $link = "https://www.heizoel24.de/heizoel/angebotsliste?";
        $link .= "zipCode=".AttrVal($name,"replacement01Value","");
        $link .= "&amount="."CN.Blaubrenner:Bestellmenge";
        $link .= "&stations=".AttrVal($name,"replacement03Value","");
        $link .= "&product=1";
    $ret .= "&nbsp;<a href=\"".$link."\" rel=\"noopener noreferrer\" target=\"_blank\" style=\"font-weight:bold;;\">";
    $ret .= ReadingsVal($name,"Heizoelpreis","-");
    $ret .= "&euro;</a>/100l";
    $ret .= "&nbsp;("."CN.Blaubrenner:Bestellmenge"."l = ";
    $ret .= sprintf("%.2f",$price);
    $ret .= "&euro;)</div>";
    return $ret;
}
   timeout    10
   userReadings Bestellmenge {ReadingsNum("Heizoelpreis","Tankvolumen",0)-ReadingsNum("CN.Blaubrenner","appTanklevel",0)},
Fuellkosten {sprintf("%.2f",ReadingsNum("Heizoelpreis","Bestellmenge",0)/100*ReadingsNum("Heizoelpreis","Heizoelpreis",0))},
Fuellstand {sprintf("%.2f", ReadingsNum("CN.Blaubrenner","appTanklevel",0))}
   userattr   replacement03Value:1,2,3,4,5,6,7,8,9,10
   webCmd     reread

Ein reread funktioniert noch nicht. Im Logfile wird noch bemängelt das ein kein numerischer Wert zum berechnen ist.
#8
Sonstige Systeme / Aw: Neues Modul: 00_ShellSwitc...
Letzter Beitrag von matt_muc - 14 Dezember 2025, 14:37:16
Damit hat es geklappt.
Vielen Dank für deine Hilfe!
#9
FHEM Development / Aw: glob/Wildcards in CommandI...
Letzter Beitrag von betateilchen - 14 Dezember 2025, 14:01:24
Sowas kann zu völlig unvorhergesehenen Effekten führen, wenn sich bei Anwendern in einem Verzeichnis bereits Dateien angesammelt haben, an die der Anwender nicht mehr denkt und er "der Einfachheit halber" ein Wildcard einsetzt.

Außerdem würden wir damit vom in FHEM weitverbreiteten Prinzip abweichen, dass wir bei der Verwendung von Wildcards auf regex setzen und nicht auf die alte DOS Nomenklatur.

Als Hilfeleister halte ich das hier im Forum für nicht mehr handlebar.

Deshalb: dagegen!
#10
Marktplatz - Güter / [V] 2 Stück Lenovo ThinkCentre...
Letzter Beitrag von betateilchen - 14 Dezember 2025, 13:55:43
Wegen entstandenem Überbestand muss ich mich von einigen meiner Geräte trennen.

Zum Verkauf stehen hier zwei Stück Lenovo ThinkCentre M720q.
Beide Geräte werden ohne RAM und ohne Festplatten angeboten.
Der Festplattenkäfig und das SATA Anschlusskabel sind vorhanden.
 
Eine Netzwerkkarte für 2.5GBit/s LAN, ist bei beiden Geräten in dem Steckplatz, der normalerweise die WLAN Karte aufnimmt, verbaut. Der Anschluss ist an der Rückseite an einer Öffnung für D-SUB Buchsen befestigt. (siehe zweites Foto)
Diese LAN Karte funktioniert selbstverständlich auch in einem 1Gbit-Netzwerk (vermutlich auch in 100MBit - ungetestet)

Beide Geräte sind voll funktionsfähig und waren hier zeitweise auch tatsächlich im Einsatz.
Lieferumfang: ThinkCentre + zugehöriges Netzteil.

  • Preis pro Stück: 99 Euro + Versandkosten.
  • Wer beide nimmt, bekommt sie versandkostenfrei.
  • Versand nur innerhalb Deutschland!
  • Zahlung per Überweisung, Paypal ist nicht vorhanden.
  • Privatverkauf ohne Garantie/Gewährleistung/Rücknahme

Kontakt bitte per PN hier über das Forum.