Jak wydajnie sterować wartością wejścia wirtualnego?

  • 5 Odpowiedzi
  • 2750 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

*

Offline flapjack

  • ** 43
  • 2
  • Nazwa i wersja ID: Fibaro, Loxone
Jak wydajnie sterować wartością wejścia wirtualnego?
« dnia: Styczeń 27, 2016, 01:11:00 pm »
Witam.
Chcę sterować wartością wirtualnego wejścia. Proste zadanie typu: jeśli "on" ustaw wartość wejścia xxx na "50".
Rozwiązałem to tworząc wirtualne wyjście które przez http zmienia wartość wirtualnego wejścia:
http://miniserwer:port/dev/sps/io/proba_kom/20. Działa, ale bardzo wolno. tzn.
jeśli żądanie wysyłam wpisując w pasek adresu przeglądarki zmiana na wejściu wirtualnym jest natychmiastowa,
jeśli żądanie wysyłane jest z wirtualnego wejścia miniserwera zmiana na wejściu następuje po ok 5sek.
Dlaczego? Czy jest jakieś rozwiązanie tego problemu, a może zupełnie inne podejście?
*

Offline homelogic

  • Moderator
  • ***** 341
  • 11
  • Nazwa i wersja ID: Loxone + Ampio + Delta Dore + Grenton + KNX
Odp: Jak wydajnie sterować wartością wejścia wirtualnego?
« Odpowiedź #1 dnia: Styczeń 27, 2016, 05:03:23 pm »
Multiplekser. Wartość 1 (on) na parametrze S powoduje podanie na wyjściu wartości analogowej podanej do wejścia AI2.

http://www.loxone.com/enen/service/documentation/loxone-config/function-blocks/analogue-multiplexer-2-way.html
« Ostatnia zmiana: Styczeń 27, 2016, 05:05:23 pm wysłana przez homelogic »
*

Offline flapjack

  • ** 43
  • 2
  • Nazwa i wersja ID: Fibaro, Loxone
Odp: Jak wydajnie sterować wartością wejścia wirtualnego?
« Odpowiedź #2 dnia: Styczeń 27, 2016, 06:19:10 pm »
Multiplexer, pamięć analogowa są mi znane jednak w tym przypadku się nie spełnią. Chciałem możliwe uprościć moje pytanie i chyba źle zostałem zrozumiany.
Więc chcę zrobić powiadamianie o różnych zdarzeniach (w tej chili mam ale zrobione niepraktycznie). Jako że  przetwarzanie/przesyłanie  tekstu w loxone jest kłopotliwe postanowiłem to zrobić tak:
Tworzę bloczek program w którym będą przetwarzane wiadomości tekstowe i wysyłane do syntezatora mowy.
Na wejście tego bloczka podłączam analogowe wejście wirtualne (nazwijmy je "nr komunikatu") którego wartości będą reprezentowały odpowiednie komunikaty np: 1 - opady, 2- alarm itp
Jeśli wywołane zostaje jakieś zdarzenie np: deszcz ( w tym przykładzie komunikat z deszczem ma nr 1) to to zdarzenie musi ustawić wartość wejścia "nr komunikatu" na 1. Wartość tą odbierze bloczek program i poprzez odpowiedni kod obrobi i wyśle do wypowiedzenia
Jak widać wejściem wirtualnym sterować będzie n zdarzeń i wejście przyjmować będzie wiele różnych wartości co bardzo utrudnia zastosowanie Twojego rozwiązania.
Zmiana wartości wejścia poprzez http rozwiązała by problem gdyby nie czas po jakim zmiana na wejściu występuje (5 sek to dla mnie za długo)
Przyszła mi do głowy jeszcze jedna myśl którą muszę sprawdzić. W tej chwili wysyłając polecenie które zmienia wartość wejścia używam adresu ip i portu miniserwera. W tym przypadku pakiet musi wyjść z miniserwera przejść przez router i wrócić ponownie (może to jest problemem). Spróbuje wysłać polecenie na localhost (127.0.0.1)

Przez localhost zmiany są natychmiastowe więc gdyby ktoś chciał sterować wyjściami bądź zmieniać wartości wejść wysyłając polecenia z miniserwera to najlepiej tak:
http://user:hasło@127.0.0.1:port/dev/sps/io/nazwa_wejścia/wartość
« Ostatnia zmiana: Styczeń 27, 2016, 08:38:39 pm wysłana przez flapjack »
*

Offline homelogic

  • Moderator
  • ***** 341
  • 11
  • Nazwa i wersja ID: Loxone + Ampio + Delta Dore + Grenton + KNX
Odp: Jak wydajnie sterować wartością wejścia wirtualnego?
« Odpowiedź #3 dnia: Styczeń 28, 2016, 09:18:51 am »
Mimo wszystko multiplexer 2 wejściowy...
n multiplexerów podpiętych do wybieraka min/max i masz co chciałeś. Pierwszy multiplexer ze zmienną 1, drugi z 2, trzeci z 3 itd. Dzięki temu możesz podawać konkretne numerki za pomocą prostych impulsów. Dodatkowo jeżeli dostanie dwa na raz to poda z wyższym numerkiem (możesz tak ustawić wagę danego alarmu).

Puszczanie tej prostej funkcji objazdem przez net to tak średnio pod kątem elegancji ;)
« Ostatnia zmiana: Styczeń 28, 2016, 09:30:47 am wysłana przez homelogic »
*

Offline flapjack

  • ** 43
  • 2
  • Nazwa i wersja ID: Fibaro, Loxone
Odp: Jak wydajnie sterować wartością wejścia wirtualnego?
« Odpowiedź #4 dnia: Styczeń 28, 2016, 12:07:27 pm »
Funkcja jest rzeczywiście prosta i zastosowanie Twojego sposobu jak najbardziej uzasadnione. Jednak przeraża mnie liczba elementów których muszę użyć w przypadku gdy n>50. Przy 50 komunikatach wysyłając netem tworzę 50 wirtualnych wyjść + 1 wirtualne wejście
Twoim sposobem muszę utworzyć 1 wybierak + 50 multipexerów + 50 stałych + 50 flag. Flagi potrzebne gdyż zdarzenia wywołujące komunikaty są porozrzucane na różnych stronach więc trzeba je doprowadzić do wybieraka.
Czy używanie tylu elementów nie przydusi pracy miniserwera?
*

Offline homelogic

  • Moderator
  • ***** 341
  • 11
  • Nazwa i wersja ID: Loxone + Ampio + Delta Dore + Grenton + KNX
Odp: Jak wydajnie sterować wartością wejścia wirtualnego?
« Odpowiedź #5 dnia: Styczeń 28, 2016, 02:15:04 pm »
Fakt, zrobi się z tego niezłe spaghetti. Do 15 elementów da się ogarnąć w ramach jednego arkusza. Powyżej zrobi się wesoło.

Jak działa to ok :)