Jump to content

Welcome to Smart Home Forum by FIBARO

Dear Guest,

 

as you can notice parts of Smart Home Forum by FIBARO is not available for you. You have to register in order to view all content and post in our community. Don't worry! Registration is a simple free process that requires minimal information for you to sign up. Become a part of of Smart Home Forum by FIBARO by creating an account.

 

As a member you can:

  •     Start new topics and reply to others
  •     Follow topics and users to get email updates
  •     Get your own profile page and make new friends
  •     Send personal messages
  •     ... and learn a lot about our system!

 

Regards,

Smart Home Forum by FIBARO Team


  • 0

Prośba o małą pomoc w LUA z przyciskiem VD


nadol

Question

Dzień dobry, cześć wszystkim. 
Ponieważ to jeden z moich pierwszych postów (pomijając przywitanie i to co mogłem gdzieś sam pomóc), nie bardzo wiedziałem gdzie ten post umieścić i czy w tym miejscu wstawiłem go prawidłowo. Szukam tutaj wśród Was, pomocy w kilku linijkach LUA odnośnie do małego przycisku, który… no właśnie, zamiar jest prosty, ale nie mogę sobie z nim poradzić, ponieważ nigdy nie programowałem.

 

Mam VD do sterowania API, bardzo fajnego MPD – Volumio2. Wszystko super działa, ale chciałbym dorzucić jeden przycisk, którym mógłbym startować skonfigurowane wcześniej w Volumio playlisty.
Mam przykładowo 4 playlisty o nazwach: deep, Mozart, energy, ladies. 
Aby wystartować taką playlistę muszę wysłać poprzez api następującą komędę, która działa i startuje playlistę energy: 

(...)

local response = http:GET("/api/v1/commands/?cmd=playplaylist&name=Energy_Bern");

 -- („Energy_Bern” to nazwa mojej zdefiniowanej playlisty w Volumio, dla której przypisałem sobie zmienną globalną „energy” w HC2)

 

Teraz od strony logicznej, mój zamysł był następujący, jeżeli obecnie gra zmienna deep, to przypisz kolejną zmienną np. ladies, a następnie wyślij komendę uruchamiającą playlistę ladies itd… 

Na ten przykład wstawiłem (podglądając podobne "Wasze" rozwiązania) takiego IF'a

Please login or register to see this code.

 

 

Działa doskonale, ale tylko dla dwóch playlist, dalej pojawia się haczyk, którego nie mogę przeskoczyć, z jeden strony logiczny, z drugiej brak doświadczenia w programowaniu.
Najpierw dodałem składnię elseif, ale się nie wykonywał else itd., później dodałem drugie takie samo IF z kolejnymi zmiennymi, ale oczywiście przechodziło przez blok i kończyło na jednej playliście, to logiczne.

Dalej próbowałem opcji return w funkcji, albo goto label, ale za każdym razem wywala mi błędy bądź nie działa. While z true, falsem itd, ale wyrzuca błędy przy wyjściu "goto exit", więc nie wiem jak wyjść z bloku, który zostanie już spełniony :/

 

Please login or register to see this code.

Czy byłby ktoś tak dobry i rzuciłby na to okiem? Może z Waszym doświadczeniem da się to jakoś łatwo ogarnąć.

PS Myślałem jeszcze o podstawieniu zmiennej z nazwą playlisty  do wysyłanej komendy: cmd=playplaylist&name=zmienna_z_nazwa_playlisty
ale nie mam już pojęcia jak tego dokonać. Za wszelkie wskazówki będę szalenie wdzięczny.


 

Edited by nadol
Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Samo wyjście z pętli, ja realizuje za pomocą 

Please login or register to see this link.

()

Edited by marczu83
  • Thanks 1
Link to comment
Share on other sites

  • 0

poleceniem <break>

zamiast goto exit;

zastosuj break;

 

jest to polecenie bezwzględnego wyjścia z pętli "while"

  • Thanks 1
Link to comment
Share on other sites

  • 0
  • Inquirer
  • Wielkie dzięki Panowie, jeszcze dzisiaj spróbuję to zaimplementować i podzielę się efektem :D

    Link to comment
    Share on other sites

    • 0
  • Inquirer
  • Woow, super, obydwie podpowiedzi działają perfekcyjnie! Serdecznie dziękuję! :D

    Link to comment
    Share on other sites

    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.

    Guest
    Answer this question...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

    ×
    ×
    • Create New...