NEWS
Virtuelle Geräte anlegen - Ideen?
-
Hallo zusammen,
hat jemand eine Idee, wie ich virtuelle Geräte anlegen könnte? Hintergrund: Ich arbeite mit einer Siemens S7 SPS und nutze zum Licht schalten Taster mit Stromstoßrelais, deren Rückmeldung ich abgreife, so dass ich den aktuellen Schaltzustand kenne.
Ich habe jetzt am Wochenende mit der Alexa angefangen und kann auch Licht schalten, dank hervorragender Anleitungen und Videos. Durch die Taster-Funktionalität reagiert das Licht nur auf "Alexa, schalte Licht aus" und dann wir das Licht an- oder ausgeschaltet, je nach aktuellem Schaltzustand.
Meine Fußbodenheizung funktioniert nicht über Thermostat, sondern über einen PT100 Raumtemperaturfühler, der dann über die S7 das Thermostatventil ansteuert.Ich würde jetzt gerne die Geräte nachbilden, wie sie z.B. von Homematic angeboten werden, wobei die Zustände/ Objekte/ Datenpunkte aus dem S7-Adapter kämen und nicht von einem physikalischen Gerät.
Bei Licht zum Beispiel:- Schaltzustand (An/Aus) ist die Rückmeldung vom Relais (S7-Adapter-Objekt)
- An-Ausgang und Aus-Ausgang wären identisch (S7-Adapter-Objekt), aber wenn ich Licht einschalten möchte (z.B. komplett in einem Stockwerk), werden nur die Relais angesteuert, die die Rückmeldung "Aus" haben.
Beispiel Thermostat:
- Temperatur: PT100 vom S7 Adapter
- Ansteuerung Ventil: Ausgang vom S7 Adapter
Dimmer etc. analog dazu...
Im Prinzip ginge es mir um die virtuellen Geräte aus dem IoT.CLoud Adapter:
Für sämtliche Ideen vielen Dank vorab!
-
@fu_zhou Bin mir nicht sicher, ob das Deine Anforderung komplett abdeckt aber über ein Alias kannst Du read und write auf 2 verschiedene Datenpunkte abbilden:
Hierbei hilft der Alias Manager Adapter
-
@fu_zhou sagte: Taster mit Stromstoßrelais, deren Rückmeldung ich abgreife
Man kann beide Datenpunkte in einem Alias zusammenfassen.
-
Danke für die schnellen Antworten, ich versuche mal mein Glück und melde mich bestimmt noch einmal mit Fragen...
-
@paul53 @Ahnungsbefreit Jetzt habe ich alles auf "Aliasse" umgebaut und zunächst funktioniert auch alles wie gewünscht, aber nach ein paar Tests habe ich festgestellt, dass der angezeigte Zustand (vis oder Objekt) nur solange stimmt, bis ich das Browser-Fenster aktualisiere. vis und Admin aktualisieren den Zustand vom Alias nicht, der bleibt "true" bei eingeschaltetem Licht (Rückmeldung vom Stromstößer) - erst mal richtig - bis ich das Browserfenster aktualisiere, dann steht der Zustand vom Alias auf "false", obwohl die angebundene Rückmeldung "true" ist.:
vis zeigt das Licht entsprechend als ausgeschaltet an, obwohl es an ist. Wenn ich das vis-Browser-Fenster aktualisiere, während das Licht an ist und zunächst auch so angezeigt wird, wird es nach der Aktualisierung als "aus" dargestellt, obwohl es an ist.
Mein Alias ist, ich denke eigentlich, wie vorgegeben konfiguriert, und es schaltet ja auch und zeigt richtig an, eben bis die Browser-Aktualisierung gemacht wird:
Hast du eine Idee, was bei meiner Konfiguration schief geht? Ist es denkbar, dass ich eine "Alias Read Function" brauche? Da hätt ich bloß überhaupt keine Ahnung, was da rein soll...
-
@fu_zhou sagte: dass der angezeigte Zustand (vis oder Objekt) nur solange stimmt, bis ich das Browser-Fenster aktualisiere.
Das Verhalten kann ich manchmal bestätigen. Es werden auch die Zeitstempel im Admin nicht aktualisiert.
Was mir auffällt: Nach einem Browser-Refresh hat der Alias die letzte Änderung vom Zeitpunkt des "write"-Datenpunktes (Taster). -
@paul53 mhm, ja, bei einem Taster ist der letzte Zustand, in den gewechselt wird, immer aus. Was machen wir jetzt mit unserer Erkenntnis? Soll ich ein Github issue öffnen?
-
@fu_zhou sagte: bei einem Taster ist der letzte Zustand, in den gewechselt wird, immer aus.
Der Taster wechselt den Zustand nicht, sondern aktualisiert nur den Zeitstempel.
@fu_zhou sagte in Virtuelle Geräte anlegen - Ideen?:
Soll ich ein Github issue öffnen?
Ja, mit dem Hinweis, dass bei getrenntem Kommando / Status der Zustand des Alias nach einem Browser-Refresh im Admin / Vis den Zustand des Kommando-Datenpunktes annimmt, was falsch ist.
-
@paul53 issue ist eröffnet https://github.com/sbormann/ioBroker.alias-manager/issues/12
-
@fu_zhou sagte: issue ist eröffnet
Das Verhalten hat nichts mit dem Alias-Manager zu tun, sondern mit dem Admin / Vis/Web bzw. mit dem js-controller. Der Alias hat nicht tatsächlich einen falschen Zustand, denn getState(id) liefert den richtigen, sondern es wird ein falscher Zustand angezeigt.
Für meine Tests habe ich den Alias-Manager nicht verwendet. -
@paul53 da muss man erst mal drauf kommen... Was soll ich als nächstes tun? github issue im Alias schließen und in einem anderen Adapter eröffnen? Wenn ja, in welchem? Ich hätte im Moment auch meine Herausforderung damit, das Problem außerhalb des Alias Adapters zu formulieren - also getState(id) etc. und was da noch so alles reinspielt.
Warum taucht das Problem dann in dieser Konstellation (beim Alias) auf, die anderen Objekte werden ja korrekt aktualisiert?
-
@fu_zhou sagte: Warum taucht das Problem dann in dieser Konstellation (beim Alias) auf, die anderen Objekte werden ja korrekt aktualisiert?
Keine Ahnung.
Ich würde Github issue beim js-controller erstellen, denn eigentlich kennt nur der js-controller den Zusammenhang der Zustände von Original-Datenpunkten und Alias. Weshalb es dann nur auf der Weboberfläche (Admin / Vis) falsch angezeigt wird, ist mir ein Rätsel.EDIT: So sehen die Zustände im Tab "Objekte" unmittelbar nach einem Browser-Refresh aus:
Es sind Alias und Kommando identisch. Nach einem beliebigen Trigger auf einem der 3 Datenpunkte sind wieder Alias und Status identisch (Stromstoßschalter per Skript emuliert). -
@paul53 habe jetzt mal im Rahmen meiner Möglichkeiten einen issue eröffnet:
https://github.com/ioBroker/ioBroker.js-controller/issues/1367