Neuen Node entwickeln in C++

Liebe Gemeinde,

ich möchte einen eigenen Node für die Rolladensteuerung in C++ entwickeln. Mit C++ habe ich kein Problem, wo ich aber schon direkt am Anfang Probleme habe ist das Beispiel das in der Dokumentation für C++ Nodes gezeigt wird. Ich bekomme es einfach nicht ans laufen bzw. es wird nicht in Node-Blue unter den Funktionen angezeigt. Ich vermute es liegt an den Zugriffsrechten auf den Nodes Ordner innerhalb der Node-Blue Bibliothek:

Da dieser Ordner der Rolle homegear gehört habe ich keinen Zugriff auf diesen Ordner und kann somit auch nicht den Symbolischen Link auf das Besipiel-Verzeichnis mit den homegear Rechten einstellen. Mit den ROOT (su) rechten kann ich natürlich den Link erzeugen. Dann gehört der aber root und nicht homegear.
image

Kann mir jemand einen Tipp geben wie ich das machen muss? Ich habe schon versucht mit

chown homegear <Symbolischer Link>

den owner als root zu ändern, aber root bleibt hier hartnäckig der owner des Links und ändert mir dafür den owner auf dem der Link zeigt. ich vermute nun das Node-Blue einfach nicht auf den symbolischen Link zugreifen darf und deswegen die erforderlichen Dateien einfach nicht sieht. Ich bekomme auch, wenn ich mit

homegear -e fr

Node-Blue neu starte, die Fehlermeldung, dass irgendwas nicht gefunden wurde:

image

Das Compilieren usw. hat zumindest geklappt:

image

und in den Verzeichnissen stehen meines erachtens die erforderlichen Dateien:
image

Würde gerne meinen ersten, eigenen Node erstellen, komme hier aber leider schon mit dem Besipiel nicht weiter.

Vielen Dank,

Artur

1 Like

Hallo @Artur,

das sieht doch schon einmal gar nicht schlecht aus ;-). Die Berechtigungen passen tatsälich soweit. Interessant wären noch die Berechtigungen auf ~/hgnodes selbst. Dass am Link root:root steht, ist egal.

homegear -e fr geht nicht, weil du versuchst, als user pi auf Homegear zuzugreifen, welches als user homegear läuft. Daher erhälst du die Fehlermeldung, dass die Socketdatei nicht gefunden wurde. Die Meldung ist irreführend und bedeutet in diesem Fall, dass du keinen Zugriff auf den Socket hast. sudo homegear -e fr sollte funktionieren.

Falls die Node in Node-BLUE jetzt immer noch nicht angezeigt wird, schau in die Logdatei /var/log/homegear/homegear-flows.log oder .err. Schaue auch in die Browserkonsole, ob dort irgendwelche Fehler auftauchen.

Poste auch gerne deine package.json und die shutterctrlio.html, dann kann ich einmal schauen, ob dort alles soweit passt.

Viele Grüße

Sathya

1 Like

Hi @sathya,
ich weiß nicht warum aber nach einem kompletten Neustart des Raspberries ist das Beispiel jetzt auch in NodeBlue sichtbar. Jetzt geht es darum ein wenig C++ Magic zu machen.

Danke für die Rückmeldung,

Gruss,
Artur

1 Like