Beiträge von Pilot188

    OK, dann werde ich die SW in Docker installieren. Die DS920 hat eh 20GB Ram und kann das nochj nebenbei mit laufen lassen
    Mein DHCP lund DNS werde ich dann aus der DS920 rausziehen. Da ist die Fritzbox schon lange nicht mehr involviert. Bin damit aber auch nicht zufrieden

    Danke Dir

    Ich muss mich auch mal wieder hier dran beteiligen.
    Einerseits muss das Geburtstagsgeld weg und daher hab ich mir bei Reichelt eine 8TB Festplatte Seagate BarraCuda - Desktop gegönnt, da mein NAS dezent voll ist.

    Und aus gegebenen Anlass hat meine FritzBox irgendwie aufgehört vernünftiges WLAN zu liefern, weswegen ich endlich einen Ubiquiti U6 In-Wall WiFi 6 Access Point holen konnte für das Erdgeschoss.
    Im Obergeschoss habe ich schon seit letztem Jahr nen U6-Lite AP hängen und nun wandert das komplette WLAN zu UniFi...endlich.

    Ich habe mir den Beitrag als Anlass genommen genau dieses UbiQuiti Teil auch zu bestellen. Mich nervt schon lange dass die AVM Repeater auch nicht das Gelbe vom Ei sind.
    Was ich mich jetzt frage, brauche ich für das Teil eine SW o.ä.?

    Nachtrag: Bei NBB steht "Verwaltet mit der UniFi Network-Anwendung: Version 6.4.52 und höher"
    was ist das und muss ich das zusätzlich erwerben?

    So, ich habe den Bot auch ein paar Fragen gestellt

    Frage Eins:
    Give me a recipe for Sauerbraten
    und seine Antwort

    Spoiler anzeigen


    Sauerbraten is a traditional German pot roast that is marinated in a mixture of vinegar, spices, and aromatics for several days before being slow-cooked until tender. Here is a recipe for Sauerbraten that serves 6-8 people:
    Ingredients:

    • 3-4 pounds beef roast (such as bottom round or chuck roast)
    • 1 cup red wine vinegar
    • 1 cup water
    • 1 onion, sliced
    • 1 carrot, sliced
    • 1 stalk celery, sliced
    • 2 bay leaves
    • 6 whole cloves
    • 6 whole peppercorns
    • 2 teaspoons salt
    • 1 tablespoon sugar
    • 1 tablespoon butter
    • 1 tablespoon all-purpose flour
    • 1/4 cup raisins
    • 1/4 cup chopped almonds
    • 1/2 cup sour cream

    Instructions:

    1. In a large non-reactive container, combine the red wine vinegar, water, sliced onion, carrot, celery, bay leaves, cloves, peppercorns, salt, and sugar. Add the beef roast to the marinade, making sure it is completely submerged. Cover and refrigerate for 3-5 days, turning the meat occasionally.
    2. After the meat has marinated, remove it from the marinade and pat it dry with paper towels. Reserve the marinade.
    3. In a large Dutch oven or heavy pot, heat the butter over medium-high heat. Add the beef roast and brown on all sides, about 8-10 minutes total.
    4. Add the reserved marinade to the pot, along with the raisins and chopped almonds. Bring to a simmer, then reduce the heat to low and cover the pot. Cook the Sauerbraten for 2-3 hours, or until the meat is tender and easily pulls apart with a fork.
    5. Remove the meat from the pot and cover it with foil to keep it warm. Strain the cooking liquid through a fine-mesh sieve, discarding the solids. In a small bowl, whisk together the flour and 1/4 cup cold water until smooth. Whisk the flour mixture into the cooking liquid and bring to a simmer, stirring constantly, until the sauce thickens.
    6. Remove the pot from the heat and stir in the sour cream. Adjust the seasoning with salt and pepper as needed.
    7. Slice the Sauerbraten and serve it with the sauce on top. Traditionally, Sauerbraten is served with potato dumplings or boiled potatoes and red cabbage or sauerkraut.

    Frage Zwei

    Give me some ideas for a recipe with a dutch oven


    Spoiler anzeigen


    A Dutch oven is a versatile and durable cooking pot that can be used for a wide range of recipes. Here are some ideas for recipes that you can make with a Dutch oven:

    1. Beef Stew - A classic recipe that is perfect for a Dutch oven. Brown cubed beef in the pot, then add onions, garlic, carrots, potatoes, and beef broth. Season with herbs like thyme and rosemary, and simmer on low heat until the beef is tender and the vegetables are cooked through.
    2. No-Knead Bread - The Dutch oven is an excellent tool for making artisan-style bread at home. Mix together flour, salt, yeast, and water to make a dough, then let it rise overnight. Place the dough into a preheated Dutch oven and bake until the bread is crusty and golden brown.
    3. Chicken and Rice Casserole - This recipe is a one-pot meal that is easy to make and delicious to eat. Brown chicken thighs in the Dutch oven, then remove and sauté onions, garlic, and rice until the rice is lightly browned. Add chicken broth and the browned chicken back to the pot, cover, and cook in the oven until the chicken is cooked through and the rice is tender.
    4. Chili - Another classic recipe that can be made in a Dutch oven. Brown ground beef or turkey in the pot, then add onions, garlic, canned tomatoes, kidney beans, and spices like chili powder and cumin. Simmer on low heat until the flavors are melded together and the chili is thick and hearty.
    5. Braised Short Ribs - Short ribs are a flavorful and tender cut of meat that are perfect for braising in a Dutch oven. Brown the short ribs in the pot, then add vegetables like onions, carrots, and celery, and beef broth. Braise in the oven until the meat is falling off the bone and the sauce is thick and flavorful.
    6. Vegetable Soup - This recipe is a great way to use up any leftover vegetables in your fridge. Sauté onions, garlic, and any chopped vegetables you have on hand, like carrots, celery, and potatoes. Add canned tomatoes and vegetable broth, and simmer until the vegetables are tender and the flavors are melded together.

    These are just a few ideas for recipes that you can make with a Dutch oven. The possibilities are endless, and you can use your Dutch oven to cook anything from stews and soups to casseroles and roasts.

    Jetzt fehlt mir nur noch der Anschluß an den Gasgrill

    Code
    var S1=ShellyPlugS1_Stromverbrauch.state as Number

    bei den Gesamtverbräuchen (oberes Quellcodebeispiel) aber nicht (Kanal: shelly:shellyplugs:XXXXXXXXXXXX:meter#totalKWH (Number:Energy))


    Vielleicht liegts an den Einheiten?
    In jedem Fall vielen Dank Euch!

    Ich wiederhole mich hier
    Du wirst mit dem Wert aus Number.Energy nicht wirklich rechnen können
    Also machen wir das so
    var S1=((ShellyPlugS1_Stromverbrauch.state as Number).floatValue)
    Dann klappt das auch mit der Mutti

    Ich würde mir an Seiner Stelle mmehr Gedanken machen dass das Ding die ganze Zeit im Pfosten steckt.

    Nee, Spaß beiseite
    Ich hätte auch Angst um die Antenne. Vor allen Dingen signalisiert die Antenne dass da was im Pfosten eingebaut ist was "funkt"

    Hi
    Schreibe Deine Variablenzuweisung einmal statt
    var S1=ShellyPlugS1_Stromverbrauch.state as Number
    nach diesem Schema
    var S1=(ShellyPlugS1_Stromverbrauch.state as Number).floatValue

    Dann kannst Du auch mit dem Wert rechnen

    Update:
    Oder Du machst Dir das Leben einfacher und legst ein Item vom Typ Gruppe an.
    Memberbasetype ist Number:Power
    Aggregationfunction ist SUM

    Dann hast Du alles zusammen und muss nicht rechnen

    Geil, keine Tränensäcke mehr, brauche ich.
    Jetzt muss ich mich nur noch daran gewöhnen immer einen Flatscreen vor mir her zu tragen.

    Nee, im Ernst, eigentlich ein klasse Programm. Aber: Das Beispielbild zeigt auch die Grenzen auf. Das ist nicht mehr das Gesicht aus dem Original. Mund, Augen etc. werden aufgehübscht und haben nicht wirklich was mit dem Original zu tun

    Hallo in die Runde
    unabhängig von meinem anderen Beitrag zum Thema Deye hier eine Möglichkeit die Werte der Deye WR auszulesen und in OH zu nutzen
    Dabei werden die Werte über ein JSON eingelesen. Nachts laufen die WR ja nicht, also werden die Things per Rule disabled bzw. enabled

    Teile der verwendeten Scripte wurden aus diversen Beiträgen in zwei Foren kopiert und für meine Bedürfnisse angepasst

    Fangen wir mit dem Auslesen des WR an.
    Genutzt wird ein Bash Script

    Spoiler anzeigen


    #!/bin/bash
    #
    # Einfaches script um die aktuelle Stromproduktion des Deye Wechselrichters über den internen Webserver auszulesen
    # Der Wert findet sich in der Webseite <deye_ip>/status.html und die Variable ist webdata_now_p
    # In der Webseite sind auch weitere Variablen, siehe Browser -> Seitenquelltext anzeigen
    # Das script nutzt curl, es ginge aber auch mit wget
    # IP Adresse und Zugangsdaten sind als Demo, bei Bedarf entsprechend ändern...


    host="<IP-DES-WECHSELRICHTERS>"
    user="<USERNAME>"
    password="<PASSWORD>"
    [definition='1','0']log[/definition]="/<ABLAGEPFAD>/deye.json"


    ping -c3 "$host" > /dev/null 2>&1
    if [ $? != 0 ]
    then
    echo "$host not available"
    exit 1
    fi


    # 3 Versuche Datenabfrage
    for i in 1 2 3
    do
    cp=$(curl -s -u "$user:$password" "$host"/status.html | grep "webdata_now_p = " | awk -F '"' '{print $2}')
    cpe=$(curl -s -u "$user:$password" "$host"/status.html | grep "webdata_today_e = " | awk -F '"' '{print $2}')
    cpt=$(curl -s -u "$user:$password" "$host"/status.html | grep "webdata_total_e = " | awk -F '"' '{print $2}')
    if [ "$cp" != "" ]
    then
    DATETIME=`date "+%d.%m.%Y %H:%M"`
    JSONInhalt="{\"name\": \"WECHSELRICHTER\",\"ablese\": \""$DATETIME"\",\"value\": "$cp",\"today\": "$cpe",\"total\": "$cpt"}"
    echo "$JSONInhalt" >"$[definition='1','0']log[/definition]"
    exit 0
    fi
    sleep 3
    done


    # Wenn Abfrage nicht erfolgreich war
    echo Datenabfrage nicht erfolgreich

    Das lassen wir per CRON-Job laufen.

    Nun zu OH:

    Wir benötigen das Binding HTTP und JSONPATH unfd richten uns ein Thing ein

    Spoiler anzeigen


    UID: http:url:Wechselrichter_auslesen
    label: Wechselrichter auslesen
    thingTypeUID: http:url
    configuration:
    authMode: BASIC
    ignoreSSLErrors: false
    baseURL: http://192.168.1.61/spike/deye3.json
    delay: 0
    stateMethod: GET
    refresh: 2
    commandMethod: GET
    timeout: 3000
    bufferSize: 2048
    channels:
    - id: Wechselrichter_Datum
    channelTypeUID: http:string
    label: Wechselrichter_Datum
    description: ""
    configuration:
    mode: READONLY
    stateTransformation: jsonpath:$.ablese
    - id: Wechselrichter_value
    channelTypeUID: http:string
    label: Wechselrichter_value
    description: null
    configuration:
    mode: READONLY
    stateTransformation: jsonpath:$.value
    - id: Wechselrichter_today
    channelTypeUID: http:string
    label: Wechselrichter_today
    description: null
    configuration:
    mode: READONLY
    stateTransformation: jsonpath:$.today
    - id: Wechselrichter_total
    channelTypeUID: http:string
    label: Wechselrichter_total
    description: null
    configuration:
    mode: READONLY
    stateTransformation: jsonpath:$.total

    Damit im Fehlerlog nicht unnützt Fehler auflaufen nach Sonnenuntergang disable ich dasThing mit dem Sonnenuntergang und schalte es nach Sonnenaufgang wieder ein
    Benötigt wird das Astro Binding

    Spoiler anzeigen


    rule "wechselrichter Abfrage aus"


    when
    //Hier das richtige Item eintragen
    Channel "astro:sun:527fd26ba9:set#event" triggered START

    then


    var headers = new java.util.HashMap();
    headers.put("Authorization", "<NAME bei der TOKENERSTELLUNG>" + "<TOKEN>");
    sendHttpPutRequest("http://<IP-VON-OPENHAB>:8080/rest/things/http:url:Wechselrichter1_auslesen/enable", "text/plain", 'false', headers, 5000);


    end


    rule "wechselrichter Abfrage an"


    when

    //Hier das richtige Item eintragen
    Channel "astro:sun:527fd26ba9:rise#event" triggered START

    then


    var headers = new java.util.HashMap();
    headers.put("Authorization", "<NAME bei der TOKENERSTELLUNG>" + "<TOKEN>");
    sendHttpPutRequest("http://<IP-VON-OPENHAB>:8080/rest/things/http:url:Wechselrichter1_auslesen/enable", "text/plain", 'true', headers, 5000);
    end


    Jetzt kann man die Werte des Wechselrichters weiter verarbeiten

    Viel Spaß beim nachbauen

    Meine Frage in die Runde:
    Wir haben beim ersten Haus ein BKW mit 2 Paneelen (Südrichtung). Hier würde sicher ein Wechselrichter reichen.
    Beim zweiten Haus haben wir je ein Paneel Ost und West auf dem Dach.
    Hier macht es sicher Sinn je einen separaten Wechselrichter zu nehmen.
    Ich will, wenn es kein Sicherheitsupdate gibt, die Deye loswerden und dafür Hoymiles einkaufen. Daher die Frage.

    Die Sicherheitslücke im logger meiner Solaranlage wurde gerade per chatanfrage in der solarman App geschlossen durch ein fw Update.

    Hast Du einen Deye oder baugleich?
    Dann schau Dir das mal an. Ich bin vom Glauben abgefallen
    https://www.photovoltaikforum.com/thread/187077-…175#post3000175

    Lade das Programm runter und setze dann mal den dort aufgeführten Befehl ab

    Update:
    Das Programm kannst Du auch gleich hier runterladen
    https://github.com/s10l/deye-logger-at-cmd/releases

    Und die nächste Version
    Man kann ja auch den kumulierten Tages- und Gesamtertrag abgreifen

    Spoiler anzeigen

    #!/bin/bash
    #
    # Einfaches script um die aktuelle Stromproduktion des Deye Wechselrichters über den internen Webserver auszulesen
    # Der Wert findet sich in der Webseite <deye_ip>/status.html und die Variable ist webdata_now_p
    # In der Webseite sind auch weitere Variablen, siehe Browser -> Seitenquelltext anzeigen
    # Das script nutzt curl, es ginge aber auch mit wget
    # IP Adresse und Zugangsdaten sind als Demo, bei Bedarf entsprechend ändern...


    host="192.168.68.31"
    user="USER"
    password="PWD"
    [definition='1','0']log[/definition]="/volume1/web/spike/deye2.json"


    ping -c3 "$host" > /dev/null 2>&1
    if [ $? != 0 ]
    then
    echo "$host not available"
    exit 1
    fi


    # 3 Versuche Datenabfrage
    for i in 1 2 3
    do
    cp=$(curl -s -u "$user:$password" "$host"/status.html | grep "webdata_now_p = " | awk -F '"' '{print $2}')
    cpe=$(curl -s -u "$user:$password" "$host"/status.html | grep "webdata_today_e = " | awk -F '"' '{print $2}')
    cpt=$(curl -s -u "$user:$password" "$host"/status.html | grep "webdata_total_e = " | awk -F '"' '{print $2}')
    if [ "$cp" != "" ]
    then
    DATETIME=`date "+%d.%m.%Y %H:%M"`
    JSONInhalt="{\"name\": \"torum\",\"ablese\": \""$DATETIME"\",\"value\": "$cp",\"today\": "$cpe",\"total\": "$cpt"}"
    echo "$JSONInhalt" >"$[definition='1','0']log[/definition]"
    exit 0
    fi
    sleep 3
    done


    # Wenn Abfrage nicht erfolgreich war
    echo Datenabfrage nicht erfolgreich


    Habe es selbst gefunden, wenn man auf den richtigen Begriff gekommen ist dann findet man es auch

    So ist es richtig

    Spoiler anzeigen

    #!/bin/bash
    #
    # Einfaches script um die aktuelle Stromproduktion des Deye Wechselrichters über den internen Webserver auszulesen
    # Der Wert findet sich in der Webseite <deye_ip>/status.html und die Variable ist webdata_now_p
    # In der Webseite sind auch weitere Variablen, siehe Browser -> Seitenquelltext anzeigen
    # Das script nutzt curl, es ginge aber auch mit wget
    # IP Adresse und Zugangsdaten sind als Demo, bei Bedarf entsprechend ändern...


    host="192.168.1.45"
    user="user"
    password="PWD"
    [definition='1','0']log[/definition]="/homes/uwe/deye3.json"


    ping -c3 "$host" > /dev/null 2>&1
    if [ $? != 0 ]
    then
    echo "$host not available"
    exit 1
    fi


    # 3 Versuche Datenabfrage
    for i in 1 2 3
    do
    cp=$(curl -s -u "$user:$password" "$host"/status.html | grep "webdata_now_p = " | awk -F '"' '{print $2}')
    if [ "$cp" != "" ]
    then
    DATETIME=`date "+%d.%m.%Y %H:%M"`
    JSONInhalt="{ \"wechselrichter\": [ { \"name\": \"torum\", \"ablese\": \""$DATETIME"\", \"value\": "$cp" } ]}"
    echo "$JSONInhalt" >"$[definition='1','0']log[/definition]"
    exit 0
    fi
    sleep 3
    done


    # Wenn Abfrage nicht erfolgreich war
    echo Datenabfrage nicht erfolgreich