Hauptmenü

Neueste Beiträge

#1
Anfängerfragen / Aw: ESP32 Cam notify Schleife
Letzter Beitrag von fz55 - 27 Februar 2024, 23:55:49
Vielleicht hilft imageWithCallback hier doch:

ESP32CAM_Ausloeser:push {
fhem "get ESP32CAM imageWithCallback set teleBot sendImage ./www/snapshots/ESP32CAM_snapshot.jpg";
fhem "defmod temp_at1 at +00:00:04 get ESP32CAM imageWithCallback set teleBot sendImage ./www/snapshots/ESP32CAM_snapshot.jpg";
fhem "defmod temp_at2 at +00:00:08 get ESP32CAM imageWithCallback set teleBot sendImage ./www/snapshots/ESP32CAM_snapshot.jpg";
}

Grüße
fz55
#2
Wettermodule / Aw: Modul für DWD Open Data
Letzter Beitrag von jensb - 27 Februar 2024, 23:54:36
Hallo Heiko,

bin dran, möchte aber meine aktuelle Version noch eine Nacht laufen lassen.

Der Header-Check für den Forecast ist jetzt robust und vor allem auch die interne Rückgabewert-Auswertung kann jetzt auch mit dem Zustand "geprüft aber es gibt keine Änderungen" umgehen. Der Header-Check für die Alerts steht noch aus.

Anbei ein Screenshot mit den 3 neuen Readings fc_url und fc_kmzDoc*. Der Vergleich der Readings fc_time (Ausgabezeit DWD) und fc_kmzDocTime (Datei-Zeitstempel auf DWD Webserver) ist auch interessant, beide in UTC. Es dauert erwartungsgemäß etwas bis aus einer Prognose eine Datei wird, aber die Datei wird scheinbar vor der "Ausgabezeit" abgelegt.

Die Timersteuerung habe ich noch einmal analysiert, mit dem ursprünglichen Ansatz verglichen und eine neue Zwischenlösung implementiert, die weder Forecasts noch Alerts sporadisch vernachlässigt.

Grüße,
Jens
#3
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von DS_Starter - 27 Februar 2024, 23:37:29
Hallo Stefan,

kurze Info.
Das DWD Modul hat eine "RotateForecast" Funktion die bei einem Zyklus den aktuellen Zeitstempel mit fc0_date vergleicht und alle Readings bei Bedarf von fc1 nach fc0 verschiebt, d.h. das Modul hat einen Tagesverschieber.

LG
#4
Anfängerfragen / Aw: ESP32 Cam notify Schleife
Letzter Beitrag von urseigner - 27 Februar 2024, 23:11:49
Das hier in der Definition des notify funktioniert:
ESP32CAM_Ausloeser:push define temp_at1 at +*00:00:02 get ESP32CAM image; set teleBot sendImage ./www/snapshots/ESP32CAM_snapshot.jpg

Wenn ich nun ein weiteres notify anlege und das hier reinschreibe:

ESP32CAM_Ausloeser:push define temp_at2 at +*00:00:06 get ESP32CAM image; set teleBot sendImage ./www/snapshots/ESP32CAM_snapshot.jpg

funktioniert das zwar, dass ich zwei Bilder bekomme. Der zeitliche Verzug scheint aber nicht zu passen. Selbst wenn ich auf 20 Sekunden stelle, kommen die Bilder fast zeitgleich. Deine Version sah eleganter aus. Dafür drei notifies anzulegen wäre dagegen echt unschön. Bzgl. Verzögerung funktioniert es damit dann nicht einmal.
#5
Sonstiges / Aw: Neue Versionen und Support...
Letzter Beitrag von Aurel_B - 27 Februar 2024, 23:09:30
Zitat von: WW am 27 Februar 2024, 21:47:12Ich stehe immer noch auf dem Schlauch: Im Reading "Bat1_Config" habe ich ja meine 16 Register als Hex-String. Wie kann ich denn hieraus Teile extrahieren (z.B. Register 1-8 bzw. 10-15)? DIe normalen String-Operationen scheinen hier nicht zu funktionieren. Mir ist nicht klar, was ein Hex-String überhaupt ist.


Ein Hex-String würde ich mal einfach als einen String voller Hex-Werten betrachten :-) Im Prinzip müsste irgendwo in der Dokus deines Wechselrichters stehen, was denn genau für Werte in diesem String stecken. Wenn z.B. immer 4 Hex-Werte für einen Wert stehen, so hast du 4x4bit == 16bit, könnte z.B. ein signed short sein. Schau dir z.B. Bitoperationen an, damit kannst du jeweils 16bit aus deinem String extrahieren und dann mit der unpack Funktion in einen vernünftigen Wert umwandeln.

Vielleicht wäre es hilfreich, wenn du uns einen Link zur Modbus Beschreibung deines Wechselrichters posten könntest damit wir mehr verstehen. Generell scheint es mir schade, dass scheinbar alles in ein übergrosses Register gepackt wurde. Dieser riesige Hex-Wert gehört IMHO eigentlich alles in separate Register, das ist ja Sinn und Zweck der Register! Und für einzelne Bits gibt/gäbe es Coils!
#6
Homematic / Aw: AskSin++ Library
Letzter Beitrag von efyzz - 27 Februar 2024, 23:06:10
OK, danke.

Ich muss jetzt erstmal weiter beobachten, warum die Geräte immer mal wieder nicht erreichbar sind. Ich bin wie gesagt von HM-Sec-SD-Sketch umgestiegen und da hatte ich keine Probleme mit nahezu leeren Batterien (ca. 2,4V unbelastet). Mit diesen schwachen Batterien waren die nun auf HB-UNI-SenAct-4-4-SC geflashten Geräte immer nach ein paar Tagen nicht mehr erreichbar. Also haben alle betroffenen Geräte nun erstmal neue Batterien bekommen. Aktuell laufen 7 von 8 stabil, einer zickt noch gelegentlich, trotz voller Batterien. Bin gespannt, wie lange die Batterien halten und ob die "low" Meldung kommt, bevor sie wieder unerreichbar sind.
#7
Sonstiges / Aw: Neue Versionen und Support...
Letzter Beitrag von Aurel_B - 27 Februar 2024, 23:00:04
Hmmmm, das tönt in der Tat nicht ganz einfach. Was ich machen würde: die ganze Logik in ein separates DOIF auslagen (im Perl Modus) und mir dort Stück für Stück das ganze Register zusammenbauen, so à la

defmod RegisterKonstruieren DOIF {
my $register = unpack("H4", pack("n", ReadingsVal("Foo", "Register1", undef)));
$register .= unpack("H4", pack("n", ReadingsVal("Bar", "Register2", undef)));
}

etc. etc. Macht das so Sinn?
#8
FHEMapp / Aw: FHEMApp4 - Beta Version
Letzter Beitrag von juemuc - 27 Februar 2024, 23:00:01
Hallo Jens,

super. Danke für die Vorlage und den Tipp. Ich werde mir das morgen in Ruhe ansehen.

Viele Grüße
Jürgen
#9
FHEMapp / Aw: FHEMApp4 - Beta Version
Letzter Beitrag von jemu75 - 27 Februar 2024, 22:27:04
Hallo Jürgen,

das gewünschte Format kannst du wie folgt einstellen.
%d({ "day"\: "2-digit", "month"\: "2-digit", "year"\: "2-digit", "hour"\: "2-digit", "minute"\: "2-digit" })
siehe auch unter "options"

Derzeit ist das mdi-Iconset (siehe Material Design Icons) implementiert.
Ich habe das Thema in die Wünsche aufgenommen und würde mir das nach der Betaphase mal ansehen.

Ich habe dir als Anregung mal mein aktuelles Thermostat Template (auf Basis von Homematic HM-TC-IT-WM-W-EU) angefügt. Dieses nutze ich in Verbindung mit einem Schaltaktor, der den Heizkreis für eine Fußbodenheizung öffnet bzw. schließt. Die Raumtemperaturabhängige Steuerung des Heizkreises löse ich in FHEM über ein doif. Mein Template wird jeweils mit 3 FHEM Devices verbunden.
1. dem Homematic Wandthermostat (thermo)
2. dem Homematic Schaltaktor (valve)
3. einem weiteren "Funkkanal" vom Homematic Wandthermostat (receiver) zur Anzeige von Batteriezustand und Funkverbindung
Das Template hat zwei Ebenen. Die erste Ebene dient zur Steuerung der Raumtemperatur. Die zweite Ebene zeigt visuell nochmal Soll und Ist-Temperatur über ein Chart an.

Beste Grüße
Jens  :)
#10
TabletUI / Aw: [FTUI3] Beispiele, Anregun...
Letzter Beitrag von Mucki - 27 Februar 2024, 22:10:17
Hallo Matthias,

hier noch ein Ergänzungsvorschlag, der dafür sorgt, dass die Anzeige auch dann geändert wird, wenn von Proplanta neue Daten geholt werden. Das sind nur zwei Schritte.

1. Im Proplanta-Modul (das heißt bei mir Wetter) habe ich ein userReadings ergänzt. Dieses setzt im DOIF das Reading update = 1.

attr Wetter userReadings update_di_weter24h {fhem("setreading di_wetter24h update 1");}
2. im DOIF die if-Bedingung so erweitern, dass neue Werte geholt werden.
my $windDir_result="";
    if ([00:00-21:00,+03:00] or [$SELF:update]==1){
       fhem("setreading $SELF update 0");
       $recenttime=strftime("%H",localtime); 

Bei jedem Proplanta-Update werden auch die Readings im DOIF neu geschrieben und damit dann im ftui.
Ein Update kann auch ausgelöst werden durch
setreading di_wetter24h update 1
Ich habe noch ein paar andere Änderungen vorgenommen.

ZitatWas für Probleme sind das mit dem Slider?
Die Swiper-Lösung verfolge ich gar nicht mehr, weil mir Dein Vorschlag noch besser gefällt.
Ich habe es nicht hinbekommen, Spaltenbreiten und Zeilenhöhen im Swiper so einzustellen, wie in der Darstellung ohne swiper. Vielleicht war die Abgrenzung der einzelnen Spalten durch <div> nicht richtig.

<!-- Wetter ohne swiper -->
    <ftui-grid-tile row="5" col="8" height="3" width="7" @click="popup_wetter7d.open()" shape="round">
          <ftui-row>
         <ftui-content file="content/content_wetter_hh.html" Std="00" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="03" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="06" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="09" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="12" Tag="fc0"></ftui-content>
        </ftui-row>
    </ftui-grid>

    <!-- Wetter mit swiper -->
    <ftui-grid-tile row="9" col="8" height="3" width="7" @click="popup_wetter7d.open()" shape="round">

        <ftui-swiper id="Wetter1" [value]="Wetter:ftui_spalte" scrollbar>
       
        <div id="Spalte0"><ftui-row style="height:auto;">
         <ftui-content file="content/content_wetter_hh.html" Std="00" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="03" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="06" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="09" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="12" Tag="fc0"></ftui-content>
        </ftui-row></div>
       
        <div id="Spalte1">
        <ftui-row height="auto">
         <ftui-content file="content/content_wetter_hh.html" Std="03" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="06" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="09" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="12" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="15" Tag="fc0"></ftui-content>
        </ftui-row>
        </div>
           
        <!-- <div id="Spalte2"> -->
        <ftui-row id="Spalte2">
         <ftui-content file="content/content_wetter_hh.html" Std="06" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="09" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="12" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="15" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="18" Tag="fc0"></ftui-content>
        </ftui-row>
        <!-- </div> -->
       
        <ftui-row id="Spalte3" height="auto"><div>
         <ftui-content file="content/content_wetter_hh.html" Std="09" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="12" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="15" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="18" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="21" Tag="fc0"></ftui-content>
        </div></ftui-row>

        <span id="Spalte4"><ftui-row>
         <ftui-content file="content/content_wetter_hh.html" Std="12" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="15" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="18" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="21" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="00" Tag="fc1"></ftui-content>
        </ftui-row></span>
            
        <div id="Spalte5"><ftui-row>
         <ftui-content file="content/content_wetter_hh.html" Std="15" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="18" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="21" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="00" Tag="fc1"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="03" Tag="fc1"></ftui-content>
        </ftui-row></div>           

        <ftui-cell id="Spalte6">
        <ftui-row>
       
         <ftui-content file="content/content_wetter_hh.html" Std="18" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="21" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="00" Tag="fc1"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="03" Tag="fc1"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="06" Tag="fc1"></ftui-content>
        </ftui-row>   
        </ftui-cell>
       
        <div id="Spalte7"><ftui-row>
         <ftui-content file="content/content_wetter_hh.html" Std="21" Tag="fc0"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="00" Tag="fc1"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="03" Tag="fc1"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="06" Tag="fc1"></ftui-content>
         <ftui-content file="content/content_wetter_hh.html" Std="09" Tag="fc1"></ftui-content>
        </ftui-row></div>   
   
        </ftui-swiper>

        <ftui-label size="1" [text]="Wetter:fc0_uv | step ('0:``, 3:`UV `')" [unit]="Wetter:fc0_uv | map ('0:``, 1:``,2:``')" [color]="Wetter:fc0_uv | step ('3:yellow, 6:orange, 8:red, 11:violet')" [hidden]="Wetter:fc0_uv | step('0:1, 3:0')"></ftui-label>   
      
    </ftui-grid-tile>

Ich hänge mal Screenshots und meine Definitionsdateien dran. (Das obere ist mit Swiper, das untere ohne).