Mal wieder virtuelle Geräte - jetzt aber richtig!

Was genau willst du da wissen ? :grinning:

Ein Attribute herzunehmen und die Range zu ändern ist nicht das Problem. Habe mít diversen Profilen getestet, leider zeigen weder die Wetterstation noch das Netatmo Main Modul die Attribute richtig an :neutral_face:
Wetterstation:


Netatmo:

Hat irgendwer einen Vorschlag?

Danke dir @Micha !
Schnell und präzise wie immer.

Hallo an die Experten. Ich hätte mal versucht einen Watering-Computer von Gardena einzubinden. Dazu hätte ich folgenden Flow aufgebaut:

[
    {
        "id": "9a9f8b5.2cf6078",
        "type": "homeeDevice",
        "z": "a96558a1.18b878",
        "virtual-homee": "",
        "name": "01 Hochbeet ",
        "nodeId": "1300",
        "profile": "16",
        "icon": "default",
        "attributes": "[{\"id\":13001,\"node_id\":1300,\"instance\":0,\"minimum\":0,\"maximum\":1,\"current_value\":0,\"target_value\":1,\"last_value\":1,\"unit\":\"\",\"step_value\":1,\"editable\":0,\"type\":1,\"state\":1,\"last_changed\":1572966224,\"changed_by\":1,\"changed_by_id\":0,\"based_on\":4,\"data\":\"\"},{\"id\":13002,\"node_id\":1300,\"instance\":1,\"minimum\":0,\"maximum\":100,\"current_value\":50,\"target_value\":100,\"last_value\":50,\"unit\":\"%\",\"step_value\":0.1,\"editable\":0,\"type\":8,\"state\":1,\"last_changed\":1572966224,\"changed_by\":1,\"changed_by_id\":0,\"based_on\":4,\"data\":\"\"}]",
        "x": 830,
        "y": 1540,
        "wires": [
            []
        ]
    },
    {
        "id": "caa1e0bd.9ff9e",
        "type": "ioBroker in",
        "z": "a96558a1.18b878",
        "name": "level",
        "topic": "gardena.0.datapoints.3fda8df7-4d04-48f8-986a-7a5c30deead8.44af3d3d-ff13-4cee-8c75-a43baeec85df.abilities.40d807ea-62dc-3729-8a88-aea017033d35.c66a5f07-7bb5-3e60-ace1-85f68f5e46c1",
        "payloadType": "value",
        "onlyack": "",
        "func": "all",
        "gap": "",
        "x": 90,
        "y": 1580,
        "wires": [
            [
                "e9d3a198.af6a1"
            ]
        ]
    },
    {
        "id": "ef3ecd0e.ef77f",
        "type": "ioBroker in",
        "z": "a96558a1.18b878",
        "name": "state",
        "topic": "gardena.0.datapoints.3fda8df7-4d04-48f8-986a-7a5c30deead8.44af3d3d-ff13-4cee-8c75-a43baeec85df.abilities.987769e4-c746-38d2-ac14-6152847e20b4.5af75eaf-1d0c-3c26-95d0-9692d5fce39d.properties.state",
        "payloadType": "value",
        "onlyack": "",
        "func": "all",
        "gap": "",
        "x": 90,
        "y": 1520,
        "wires": [
            [
                "fd3bdab8.2d0d08",
                "8682b59e.714e98"
            ]
        ]
    },
    {
        "id": "e9d3a198.af6a1",
        "type": "json",
        "z": "a96558a1.18b878",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 270,
        "y": 1580,
        "wires": [
            [
                "b238bbd3.4e9268"
            ]
        ]
    },
    {
        "id": "272f5b65.af0204",
        "type": "function",
        "z": "a96558a1.18b878",
        "name": "Sender Position",
        "func": "var hum = msg.payload.state\n\nif (hum ==\"idle\"){\nnode.send({payload:{\"id\":13001,\"value\":0}});\n}\nif (hum ==\"manual\"){\nnode.send({payload:{\"id\":13001,\"value\":1}});\n}",
        "outputs": 1,
        "noerr": 0,
        "x": 530,
        "y": 1520,
        "wires": [
            [
                "9a9f8b5.2cf6078"
            ]
        ]
    },
    {
        "id": "b238bbd3.4e9268",
        "type": "function",
        "z": "a96558a1.18b878",
        "name": "Sender Battery",
        "func": "var bat = msg.payload.level\n\nnode.send({payload:{\"id\":13002,\"value\":msg.payload}})\n",
        "outputs": 1,
        "noerr": 0,
        "x": 540,
        "y": 1580,
        "wires": [
            [
                "9a9f8b5.2cf6078"
            ]
        ]
    },
    {
        "id": "8682b59e.714e98",
        "type": "debug",
        "z": "a96558a1.18b878",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "x": 410,
        "y": 1440,
        "wires": []
    },
    {
        "id": "fd3bdab8.2d0d08",
        "type": "json",
        "z": "a96558a1.18b878",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 280,
        "y": 1520,
        "wires": [
            [
                "272f5b65.af0204"
            ]
        ]
    }
]

Ich übergeben den Datenpunkt „state“ von dem Bewässerungscomputer an den JSON Parser. Mögliche Werte sind hier „idle“, „manual“.
Problem ist hier, dass ich immer die Fehlermeldung „Unexpected token i in JSON at position 0“ bekomme

Warum bekomme ich hier diesen Fehler? Hat jemand einen Tipp für mich?

Kannst du mal den genauen payload den du vom Gardena bekommst einstellen ? Dann kann ich mir das mal genauer anschauen.

Wie Du den Stream umwandelst und der virtuellen Netatmo Kamera übergibst. Vielleicht könntest Du ja den Flow mit ein paar Erläuterungen posten?

ja das kann ich machen , aber erst wenn es zu 100% funzt , mir fehlt noch der Zugriff von extern auf den stream.

3 „Gefällt mir“

Habe deinen Flow getestet und bekomme nicht diese Meldung.
VG Michael

17.3.2020, 07:49:56node: 8682b59e.714e98
gardena/0/datapoints/3fda8df7-4d04-48f8-986a-7a5c30deead8/44af3d3d-ff13-4cee-8c75-a43baeec85df/abilities/987769e4-c746-38d2-ac14-6152847e20b4/5af75eaf-1d0c-3c26-95d0-9692d5fce39d/properties/state : msg.payload : string[4]
"idle"

Ist echt interessant… Alle anderen Gardena Geräte funken, allerdings übergebe ich in diesen anderen Werten nie einen String sondern nur Zahlen. Kann es das sein?

Hallo liebe Community,
irgendwie bin ich zu doof, die neue Syntax ab Version 0.4.0 hinzubekommen.

Muss ich die Devices ändern oder die Objekte, die die Devices „füttern“?

Vielleich kann mir jemand helfen wie ich es genau ändern muss…

Danke! Gruß Ralf
HueMS.pdf (2,4 KB)

Edit: Es sind die Functions, die die Devices steuern. Habe es doch noch rausbekommen.

Hallo zusammen,

jetzt muss ich doch mal aus meiner stillen Mitleserschaft ausbrechen. Toll, was hier schon alles auf die Beine gestellt wurde, genau das hat mich unter Anderem dazu bewogen, meine neue Wohnung mit einem Homee zu steuern -> Out of the Box Funktionalitäten, aber ich kann anfangen zu basteln :slight_smile:

Nach etwas experimentieren habe ich meinen Roborock S50 über einen Ein/Aus-Schalter zum laufen /stoppen gebracht. Als Proof-of-Concept habe ich den genommen, weil er wunderbar viele Attribute mitbringt, was mich zu meiner Frage führt:

Habe ich was übersehen, oder ist die oft verlinkte .enum file das einzige, was mich näher an die Details der möglichen Attribute bringt?

Ich möchte mir ja virtuele Devices mit (am besten beliebigen) Attributen bauen, dazu muss ich ja wissen, welcher type welche Attribute unterstützt und vor allem auch wo diese angezeigt werden (als Verlauf/Graph), also Schalter in der Übersicht, welche Werte/Zustände gibt es etc.

Das ist bei mir gerade ziemlich die Kategorie Jugend forscht. Jedes mal muss ich zum Testen deployen, das Gerät aus Homee löschen, HiH Zugangsdaten wieder eingeben, Device hinzufügen, dann schauen.

Habe ich was übersehen, das sollte doch irgendwie einfacher gehen, oder?

viele Grüße
Marius

Bei mir läuft node-red-contrib-homee 0.4.0
Die Beta hatte ich vor einiger Zeit mit npm installiert. Bei einem Neustart von ioBroker bekomme ich seit dem die Meldung im Log:

(1108) Cannot install npm packet: node-red-contrib-homee@beta

Bekomme ich die irgendwie weg? Sind da noch Reste drin, die möglicher Weise schädlich sind?

Gruß
chiroptera

Das .enum File liefert die beste Übersicht… finde es zwar gerade selber nicht, liegt aber bestimmt auf Github. Hast du noch mal nen Link?

Ich lösche zum Testen auch das Gerät in homee und deploye… dann nur noch hinzufügen. Allerdings muss ich keine Zugangsdaten eingeben… welche hih und homee Versionen hast du?

1 „Gefällt mir“

Genau, das File meinte ich.
Die spannende Sektion ist ja „CAAttributeType“, richtig?

Hier ist jetzt meine Frage, was ich damit tun kann, Beispiel: Mein Staubsauger hat bisher nur einen 1/0 Switch bekommen und zwei Felder mit „Gereinigte qm“ und „Batterieladestand“. Den Ladestand hatte ich noch richtig geraten und ein passendes Attribut, dass auch richtig betitelt wurde in Homee.
Spannend wird es jetzt schon, wenn ich mein virtuelles Gerät weiter bauen möchte: Passender wären ja mehrere Buttons statt ein Toggle, also „Raum x reinigen“ „Stop“, sowas in der Art.
Ladestand passt so weit, aber auch hier gibt es ja unterschiede, wo das Attribut erscheint (Direkt in der Geräteübersicht unter dem Gerät, in den Details, in den „weiteren Details“.
Wie löst ihr so was, wenn ihr Eure eigenen Geräte zusammenstellt, bin ich der Einzige mit so einem Problem?

Schau dir mal den folgenden Flow an - der ist für Xiaomi Saugroboter und wie ich finde ganz gut gelöst:

Ansonsten müsstest Du eigentlich Schalter hinzufügen können, indem Du die Instanz hoch zählst. Das hatte @Micha in einem seiner Videos erklärt - musst Du mal suchen.

Gruß
chiroptera

Danke, den hatte ich als Blaupause verwendet, wenn ich für meinen Sauger auch recht viel angepasst habe. Die Vorlage (und auch das Video) war aber unbedingt notwendig, dass ich das Prinzip verstanden habe.
Der Sauger war ja wie gesagt nur das Beispiel, ich habe es auch wie im Video hinbekommen, einzelne Schalter hinzuzufügen.
Ich denke nur, der nächste konsequente Schritt, wenn wir wirklich „Virtuelle Geräte“ bauen wollen ist doch, dass wir einzelne Elemente/Attribute mehr oder weniger frei kombinieren können.
Dazu eine Art API mit Erklärung. Und da ihr hier alle schon viel weiter seid, war meine Frage, ob da was gibt oder ob ich was übersehen habe / falsch mache.
Im Prinzip wäre es aus meiner Sicht eine Art detaillierte Version der genannten .enum. Also pro Attribut (Art: 1/0 Schalter; Ort: Gerätedetails und Übersicht).
BTW: Was macht ihr mit dem Type des Geräts? Ich nehme an, in Homee werden dadruch einige Dinge/Attribute festgelegt. Wenn ich mir die aber sowieso selbst zusammensuche, was ändert dann der Type noch?
Grüße
Marius

Der Type bedingt die Eigenschaften des Gerätes und auch die Ansicht in homee.
Ein Gerat mit dem Typ xx kann Veränderliche oder auch feste Attribute habe und Attribute die nur unter den Einstellung zu finden sind.
Es wäre schön wenn homee uns 1 Geräte frei gibt wo wir dann die von uns gewünschten Sachen reinpacken können und die Ansicht dann nur dem Attribut und nicht zwingend auf den Type beschränkt ist.
Wir reden aber davon das wir hier etwas machen das nicht offiziell von homee unterstützt wird. Wir nutzen die hih Anbindung und simulieren einfach nur Geräte.

6 „Gefällt mir“

Unbedingt dafür! :smiley: :ok_hand: :v: :+1: :muscle:

1 „Gefällt mir“

Micha, mach den Vorschlag für ein virtuelles Gerät mit frei zu vergebenden Attributen, Deine Idee, Dein Vorschlag…

6 „Gefällt mir“