Homee Wetterstation 2.0 (Froggit/Ecowitt) - [NodeRed + vhih]

Als weise hat mich auch schon lange niemand mehr bezeichnet :smiley:

Also ich kenne mich in NodeRed nicht wirklich gut aus… bin immer wieder selbst überrascht, wenn die Sachen dann im Endeffekt funktionieren. Wenn also was einfacher/besser umsetzbar ist als ich das mache, wundert mich das nicht :wink:

Aber hier kurz erklärt:
Ich hab den Wert winddir aus dem Payload genommen und dann durch einen change-node gejagt, mit folgender Formel: 16 % $round($number(payload)/360*16)
Das Ergebnis dann mit Attribut 306 an den vhih übergeben und das funktioniert bei mir.

Falls jemand meinen Flow (der sicher nicht sehr professionell gelöst ist) haben will:
flows.json.pdf (51,4 KB)

Ich weiß jetzt nicht ob da die Subflows die ich zum Einheiten umrechnen gemacht habe mit drin sind. Wenn nicht, und jemand die haben will, bitte melden.

1 „Gefällt mir“

Die Windrichtung ist doch in dem Flow ganz oben drin.
Problem ist nur, dass die Windrichtung, wie bei dir auch, unter Gerätestatus steht.

Ach so… Sorry, das hab ich überlesen… Dachte, das wäre generell nicht drin.

Ich hab das auch so verstanden wie du :roll_eyes:

@TiDO Meine Wetterstation soll heute oder morgen kommen. Ich habe vor, die beiden Bodensensoren auch separat darzustellen. Würdest du den Flow dafür auch zur Verfügung stellen ?

Und vielen Dank nochmal, dass ihr eure Arbeit hier mit uns teilt. TOP!

hier der Code für zwei Bodenfeuchtesensoren.
Einfach zum obigen Flow hinzufügen und entsprechend verbinden.

[
    {
        "id": "2277809b.f1816",
        "type": "change",
        "z": "915168da.b2a3e8",
        "name": "DP100 Battery Status (0=OK)",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.soilbatt1 ? \"OK\" : \"Bad\"",
                "tot": "jsonata"
            },
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "weatherstation.dp100_1.battery_status",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1070,
        "y": 320,
        "wires": [
            [
                "6fd0c659.254e98",
                "46615f8d.ae734"
            ]
        ]
    },
    {
        "id": "22115be8.b76f54",
        "type": "change",
        "z": "915168da.b2a3e8",
        "name": "DP100 Moisture %",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "$number(msg.payload.soilmoisture1)",
                "tot": "jsonata"
            },
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "weatherstation.dp100_1.humidity",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1060,
        "y": 260,
        "wires": [
            [
                "7c1ad2b8.4de154",
                "e0a4ec70.121948"
            ]
        ]
    },
    {
        "id": "e0a4ec70.121948",
        "type": "template",
        "z": "915168da.b2a3e8",
        "name": "",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "{\"attribute\":{\"id\":561,\"value\":{{payload}}}}",
        "output": "json",
        "x": 1560,
        "y": 260,
        "wires": [
            [
                "6604045e.2d75f4"
            ]
        ]
    },
    {
        "id": "6604045e.2d75f4",
        "type": "homeeDevice",
        "z": "915168da.b2a3e8",
        "virtual-homee": "",
        "name": "Bodenfeuchtigkeit_Garten_1",
        "nodeId": "560",
        "showNodeId": true,
        "profile": "3001",
        "icon": "default",
        "attributes": [
            {
                "state": 1,
                "instance": 0,
                "minimum": 0,
                "maximum": 100,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "data": "",
                "name": "Bodenfeuchtigkeit",
                "unit": "%25",
                "step_value": 1,
                "editable": 0,
                "last_changed": 1601812276,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "options": [],
                "type": 7,
                "id": 561,
                "node_id": 560
            },
            {
                "type": 8,
                "state": 1,
                "instance": 0,
                "minimum": 0,
                "maximum": 100,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "data": "",
                "name": "",
                "unit": "%25",
                "step_value": 1,
                "editable": 0,
                "last_changed": 1610714713,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "options": [],
                "id": 562,
                "node_id": 560
            }
        ],
        "statusTemplate": "",
        "x": 1820,
        "y": 260,
        "wires": [
            []
        ]
    },
    {
        "id": "46615f8d.ae734",
        "type": "change",
        "z": "915168da.b2a3e8",
        "name": "",
        "rules": [
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "OK",
                "fromt": "str",
                "to": "100",
                "tot": "num"
            },
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "BAD",
                "fromt": "str",
                "to": "10",
                "tot": "num"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1340,
        "y": 320,
        "wires": [
            [
                "7c8fa907.7b9a9"
            ]
        ]
    },
    {
        "id": "7c8fa907.7b9a9",
        "type": "template",
        "z": "915168da.b2a3e8",
        "name": "",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "{\"attribute\":{\"id\":562,\"value\":{{payload}}}}",
        "output": "json",
        "x": 1560,
        "y": 320,
        "wires": [
            [
                "6604045e.2d75f4"
            ]
        ]
    },
    {
        "id": "74f69be0.6d2dd4",
        "type": "homeeDevice",
        "z": "915168da.b2a3e8",
        "virtual-homee": "",
        "name": "Bodenfeuchtigkeit_Garten_2",
        "nodeId": "565",
        "showNodeId": true,
        "profile": "3001",
        "icon": "default",
        "attributes": [
            {
                "state": 1,
                "instance": 0,
                "minimum": 0,
                "maximum": 100,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "data": "",
                "name": "Bodenfeuchtigkeit",
                "unit": "%25",
                "step_value": 1,
                "editable": 0,
                "last_changed": 1601812276,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "options": [],
                "type": 7,
                "id": 566,
                "node_id": 565
            },
            {
                "type": 8,
                "state": 1,
                "instance": 0,
                "minimum": 0,
                "maximum": 100,
                "current_value": 0,
                "target_value": 0,
                "last_value": 0,
                "data": "",
                "name": "",
                "unit": "%25",
                "step_value": 1,
                "editable": 0,
                "last_changed": 1610714713,
                "changed_by": 1,
                "changed_by_id": 0,
                "based_on": 1,
                "options": [],
                "id": 567,
                "node_id": 565
            }
        ],
        "statusTemplate": "",
        "x": 1820,
        "y": 140,
        "wires": [
            []
        ]
    },
    {
        "id": "f6636d72.58f5b",
        "type": "change",
        "z": "915168da.b2a3e8",
        "name": "DP100 Battery Status (0=OK)",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "payload.soilbatt2 ? \"OK\" : \"Bad\"",
                "tot": "jsonata"
            },
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "weatherstation.dp100_2.battery_status",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1050,
        "y": 200,
        "wires": [
            [
                "54cb538f.dc6e04",
                "6fd0c659.254e98"
            ]
        ]
    },
    {
        "id": "6ee391f5.be4398",
        "type": "change",
        "z": "915168da.b2a3e8",
        "name": "DP100 Moisture %",
        "rules": [
            {
                "t": "set",
                "p": "payload",
                "pt": "msg",
                "to": "$number(msg.payload.soilmoisture2)",
                "tot": "jsonata"
            },
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "weatherstation.dp100_2.humidity",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1070,
        "y": 140,
        "wires": [
            [
                "beece4c9.54f508",
                "7c1ad2b8.4de154"
            ]
        ]
    },
    {
        "id": "beece4c9.54f508",
        "type": "template",
        "z": "915168da.b2a3e8",
        "name": "",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "{\"attribute\":{\"id\":566,\"value\":{{payload}}}}",
        "output": "json",
        "x": 1570,
        "y": 140,
        "wires": [
            [
                "74f69be0.6d2dd4"
            ]
        ]
    },
    {
        "id": "54cb538f.dc6e04",
        "type": "change",
        "z": "915168da.b2a3e8",
        "name": "",
        "rules": [
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "OK",
                "fromt": "str",
                "to": "100",
                "tot": "num"
            },
            {
                "t": "change",
                "p": "payload",
                "pt": "msg",
                "from": "BAD",
                "fromt": "str",
                "to": "10",
                "tot": "num"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 1350,
        "y": 200,
        "wires": [
            [
                "adbea67d.a563f8"
            ]
        ]
    },
    {
        "id": "adbea67d.a563f8",
        "type": "template",
        "z": "915168da.b2a3e8",
        "name": "",
        "field": "payload",
        "fieldType": "msg",
        "format": "handlebars",
        "syntax": "mustache",
        "template": "{\"attribute\":{\"id\":567,\"value\":{{payload}}}}",
        "output": "json",
        "x": 1570,
        "y": 200,
        "wires": [
            [
                "74f69be0.6d2dd4"
            ]
        ]
    }
]

@medicus07 vielleicht kannste das ja oben noch im Eingangspost hinterlegen

16.03.2021: Kleine Fehlerkorrektur, dass die Bezeichnung „Bodenfeuchtigkeit“ in homee korrekt ist.

7 „Gefällt mir“

:ok_hand:

Moin,

die Froggit ist heute angekommen, die Installation hat keine Stunde gebraucht und ist gar kein Vergleich zu dem Z-Wave Kram :smiley: Mega Reichweite und in der Geräteübersicht ist richtig was los. Windböhen werden fast sofort erfasst und übermittelt, Ich hab mich noch nie so auf Regen gefreut und jetzt kommt Keiner :smiley:

Ich denke mein Z-Rain geht in den Ruhestand.

@TiDO

Werde mir jetzt auch noch Bodenfeuchtesensoren ordern, ich hoffe ich kann die in die Wetterstation in der homeeliste integrieren… Wie viele von den Sensoren habt ihr verbaut? Einer pro Beet und Rasenfläche oder benötigt man für die Rasenfläche mehrere?

mir geht es da genau wie dir @JayJayX meine Station ist auch heute angekommen. Und ich freue mich wie ein kleines Kind, Wahnsinn was das Teil alles kann.

Ich habe zwei Bodensensoren im Einsatz, einen im Vorgarten und einen im Garten. Zeigen beide auch Werte an. Mit der Rasenfläche bin ich mir noch nicht sicher, weil der Rasenroboter da ja nicht zimperlich ist. Oder werden die Dinger tatsächlich komplett im Boden versenkt ?

1 „Gefällt mir“

Ich habe aktuell zwei Sensoren. Demnächst kommen noch zwei dazu für zwei Bewässerungsflächen.

Die Aufteilung würde ich je Bewässerungfläche machen. So habe ich es zumindest gemacht: also ein Sensor je Bewässerungskreis.
Ansonsten würde ich einen unter freiem Himmel machen und einen eher im trockenen Bereich in einem Beet unterm Baum z.B.
Dann sieht man ganz gut die Unterschiede.

Auf der Rasenfläche habe ich keinen. Hier nutze ich den Wert vom Sensor unter freiem Himmel.
Das Beet grenz direkt an die Rasenfläche.

1 „Gefällt mir“

Ne, nur der untere Teil (schwarz) in den Boden versenken. Der andere Teil (grün) guckt oben raus.

Okay, so habe ich es aktuell auch im Boden stecken. Muss ich nur noch rausfinden, bei welchem Prozentsatz der Boden als zu trocken gilt

Ich wollte auch mal einen großen Dank aussprechen für die tolle Arbeit.
Der Gerät ist einfach nur genial :star_struck:

3 „Gefällt mir“

Dann werde ich mir auch mal 2 ordern, Froggit liefert ja superschnell falls es eng werden sollte :joy:

1 „Gefällt mir“

Meine Station ist auch angekommen und läuft bereits…allerdings noch im Esszimmer auf dem Tisch, weil der Pfosten erst die Tage kommt :grin:

Was hast du für einen Pfosten genommen? Ich musste auch basteln, da der Holzpfosten, an dem auch schon der Z-Weather hängt zu dick ist :frowning:

Ich habe einen kurzen Bodenpfosten bestellt, der aufs Carport kommt.
Im Amazonas gibt es reichlich Auswahl… Stichwort: Pfosten für SAT-Anlage :wink:

1 „Gefällt mir“

Hey @medicus07,

mir ist aufgefallen, das ziemlich viele Werte immer wieder an homee übergeben werden. Ich bilde mir ein, dass das die kleine homee belastet und man evtl. Trafic und Speicher einsparen könnte ohne den Abfrageintervall von 16 zu vergrößern…
Spricht irgendwas dagegen die Ausgabe über einen rbe-node zu optimieren oder denke ich da zu einfach?

3 „Gefällt mir“

Vom Prinzip her denkst du genau richtig. Bei den Werten ist es absolut sinnvoll die nur an den homee zu schicken, wenn sich diese ändern. Der rbe-node ist da erste Wahl.

4 „Gefällt mir“

Habe das eben mal bei der Innentemperatur getestet und das sieht für mich sauberer aus, ich werde das mal überall hinzufügen… Vielleicht laden die Graphen dann auch morgen wieder schneller…

1 „Gefällt mir“