ChriD / node-raumserver

A nodejs module/server to control the raumfeld multiroomsystem via HTTP-Requests
58 stars 14 forks source link

Anfrage Queue oder Presets #22

Open mee0n opened 7 years ago

mee0n commented 7 years ago

Hallo @ChriD ,

irgendwo hatte ich mal aufgeschnappt das die Befehle die man an den raumserver sendet von einer Queue aufgefangen werden. Ich weiß nur nicht ob du die Queue schon implementierst oder erst das Raumfeld-System. Ich weiß nicht ob das tatsächlich so ist, denn ich hatte schon immer Schwierigkeiten mit dem Timing. Ich steuere einige Abläufe über ein SmartHome-System namens "domoticz". Hier habe ich Abläufe in lua-scripts geschrieben um beispielsweise ein automatisiertes "Aufwachen mit Musik via Bewegungserkennung" umzusetzen. Dort bin ich auf das Problem gestoßen, dass ich nicht einfach alle Befehle hintereinander wegfeuern konnte. Ich musste mir künstliche Leerlaufzeiten zwischen den Befehlen einfallen lassen, damit das System korrekt initialisiert. Ist es nun also möglich, eine solche Queue, falls nicht schon vorhanden, zu implementieren? Gab es nicht "früher" auch eine Möglichkeit Presets zu hinterlegen die eine Sammlung von Anfragen enthält, welche man dann per HTTP anfragen kann?

Gruß mee0n

ChriD commented 7 years ago

Nun, das ist nicht so trivial. Das Problem an der ganzen Geschichte ist, dass ich z.B. beim Zonen erstellen, die Info nicht habe wann jetzt das Raumfeld System soweit ist das die Zone bereit ist. Das ist leider bei allen Requests der Fall. Im Falle der Zonenerstellung müsste ich also warten bis sich die Zonenkonfiguration geändert hat und dann darf erst der Request returnen. Daran ändert auch eine globale Queue nichts. Die globale Queue hätte nur den einen Nutzen das sich 2 Clients nicht gegenseitig verwirren.

Hierzu gibt es im Kernel einen Issue https://github.com/ChriD/node-raumkernel/issues/22 Ich denke das ich für ein paar requests diese Lösung umsetzen werde. Die request vom lua-scripts aber müssten aber dann trotzdem mit "sync" option (oder wie auch immer das im lua heißt) ausgeführt werden

mee0n commented 7 years ago

@ChriD Okay, dann weiß ich Bescheid. Wie war das noch mit den Presets?

ChriD commented 7 years ago

Okay, dann weiß ich Bescheid. Wie war das noch mit den Presets?

Die gibts noch nicht im neuen raumserver. Die presets haben einfach requests nacheinander ausgeführt, also ganz genau so, als wenn man es manuell im browser machen würde (also du hast in deinem lua script ja eigentlich schon ein preset)

mee0n commented 7 years ago

Alles klar. Ja. Das dachte ich mir auch schon so, dass es nur nacheinander ausgeführte Requests sind. Aber ich verwende ja den raumserver nicht ausschließlich über lua-scripts; deswegen die Nachfrage. :)