Node: mysql-node

Ich hab mal einen mysql-node mit viel Hilfe von @sathya gebaut. Is noch nicht in homegear-nodes-optional gemerged. Da Sathya ein paar Funktionen “korrigieren” musste, wird zwingend die nigthly ab heute benötigt. Die kompilieren grade, dauert also noch 1-2 Tage.

@job, wenn du schon mal reingucken willst: https://github.com/codmpm/homegear-nodes-optional/tree/master/mysql - natürlich auch jeder Andere.
Freue mich auf Feedback.

ch gebe zu, das ich mit INSERTs nocht nicht viel getestet habe. Da macht ja das Holen der Daten keine Sinn… ok… also experimental.
Wenn die Query mit Insert, Update oder Delete anfängt, wird das Ergebniss des requests zurück gegeben, typischerweise true. Ansonsten werden die Daten mit fetchAll geholt.

The query is expected in $message['topic']. $message['payload'] could be empty.

The node uses prepared statements, so please use ? placeholders in your query and provide the query data via the payload. If you only use one placeholder, the value could simply be in $message['payload'] , otherwise please provide an array with data.

Example:
$message['topic'] = "SELECT name FROM tab WHERE val1 = ? AND val2 = ?"
$message['payload'] = ['foo', 'bar'];

$message['topic'] = "SELECT name FROM tab WHERE val1 = ?"
$message['payload'] = 'foo';

44

Da ich aktuell noch ein paar Funktionen brauche, die node-blue noch nicht hat, kommen hoffentliche demnächt noch mehr nodes von mir.

2 Likes

Hast du einen usecase dafür? Ich habe grad ein Brett vorm Kopf, wofür man das brauchen kann.

Ich lade meine Werte für mqtt aus einer DB wo ich die Szenendaten abspeichere.

SELECT dimmer, channel, percent FROM sceneData WHERE room = 'main' AND scene = ?
Daraus baue ich dann die passenden mqtt topics und schiebe sie auf den Broker. Ausgelöst durch nen round-robin-shift wo nen Taster dran hängt um die Szenen durchzuschalten.

Hier noch die Version in node-red:

Der dashboard-Teil bleibt in node-red, setzt dann aber nur noch s11/scenes/main/set und diese Auswertung findet dann zukünftig komplett in node-blue statt… ging nur noch nicht, weil noch kein mysql-node :smiley:

1 Like

Ah. Du legst also deine Geräteeinstellungen in der Datenbank ab und holst dann den entsprechenden Satz für die Szene in einem Rutsch zurück.

1 Like

Ja… in dem Fall aber alle 40 Kanäle meiner LED Dimmer, sofern die nicht 0 sind.
Schlussendlich sind es aber nur mqtt-infos die gespeichert werden.
Ich denke ich werd das nochmal umbauen, da ich auch states von shelly’s und Rollomotoren mit rein bringen will. Im besten Fall auch noch HUE.

Da aber alles auf MQTT läuft, ist das nur eine Frage der Ablagestruktur. Aktuell speichere ich nur Helligkeitswerte für die Dimmer in meiner DB.

OK. Dann ist mir auch vollkommen klar, warum Datenbank. :wink:

Und das ist dann noch nichtmal eine Frage, einfach das Topic mitspeichern und du kannst alles abbilden.

1 Like

Da es in node-blue aktuell noch keinen Blindscontroller gibt, fehlt mir noch die Möglichkeit die Rollos zu (z.B.) 40% runter zu fahren. Das wäre der Wert den ich gerne im mqtt hätte.