Grupowanie ITEMsów
 
Powiadomienia
Wyczyść wszystko

openHAB [Rozwiązany] Grupowanie ITEMsów

8 Wpisów
4 Użytkownicy
1 Reactions
2,239 Wyświetleń
(@carpov)
Wpisów: 26
Kontrybutor
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 
[#2502]

Cześć

Mam następującą zagwozdkę 

Mam item'a typu string którego wartość (status - w domu / po za domem) jest wypracowywana w odpowiedniej regule.

String   	jack_mobile    "Jacek [%s]"    <men_3> 

I teraz pytanie:  chciałbym aby basic UI ww. item zachowywał się jak item tybu group. Czyli przy nazwie "Jacek" mam status "W DOMU" lub "PO ZA DOMEM" a klikając w ten obiekt mam odnośnik to innych wspóisniejących itemsów.

Jak zrobiłem z jack_mobile item typu group i przypisałem resztę współistniejących itemsów do tej grupy - otrzymałem to o co mi chodzi , jednak bez "statusu" przy JAcek w basicUI. Zwracana wartość dla jack_mobile wynosi NULL (zrozumiale dla itemów typu group)

 Próbowałem z group:string również zwrotka jako NULL 

 

Podpowie ktoś jak to powinno być prawidłowo? czy w ogóle nie tędy droga  nie bawienie się grupy


 
Dodane : 29/09/2021 1:24 pm
(@ldywicki)
Wpisów: 78
Kontrybutor
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Aby grupa działała i zliczała odrębny stan potrzebujesz dwóch rzeczy - prawidłowego typu wynikowego oraz funkcji zliczającej dobranej do typu itemów.

Funkcje które możesz wykorzystać to:
- EQUALITY (domyślna funkcja jeśli nic nie podasz), item powinien mieć stan "X" jeżeli wszystkie itemy w grupie mają stan "X", w przeciwnym wypadku Undef.
- AND/OR/NAND/NOR - funkcje do zliczania stanów z itemów typu contact lub switch, ale możliwe do zliczenia stanu też z itemów typu number.
- SUM/AVG/MIN/MAX - operacje arytmetyczne na liczbach.
- COUNT - wyrażenie regularne, zwraca liczbę wystąpień danego ciągu
- LATEST/EARLIEST - zwraca minimum lub maximum z itemów typu DateTime.

Jeżeli działasz na stringu to możesz sprawdzić count: `Group:Number:COUNT("W DOMU") Obecni "Liczba mieszkańców w domu"`. Wówczas powinieneś mieć w stanie grupy liczbę itemów które raportują stan "W DOMU".


 
Dodane : 29/09/2021 2:08 pm
(@maras)
Wpisów: 197
Weteran Donator 2K22 Donator 2K19
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Jak chcesz zeby wyświetlał ile osób w domu"

ITEMS:

Group:Number:SUM(ON)ile_wdomu "Użytkowników w domu: [%s] "

SITEMAP:
Group item=ile_wdomu label="Użytkowników w domu: [%d]" icon="parents_3_1"

 

Jak chcesz stworzyć rozwijalne menu zawierające elementy grupy to w sitemap:

 Frame label="Pogoda i Astrologia"
                {
                Group  item=Astro label="Astrologia" icon="zodiac"
                }

 
Dodane : 30/09/2021 8:14 pm
(@ldywicki)
Wpisów: 78
Kontrybutor
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 
Dodane przez: @maras

Group:Number:SUM(ON)ile_wdomu "Użytkowników w domu: [%s] "

Pod warunkiem, że itemy w tej grupie są typu Switch. W przeciwnym wypadku to nie przejdzie.

@carpov - masz przykład jak wygląda item, który grupujesz?


 
Dodane : 30/09/2021 9:02 pm
(@carpov)
Wpisów: 26
Kontrybutor
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Dzięki Panowie za odpowiedź....ale nie o to mi chodziło 🙂 Nigdzie nie pisałem o podliczaniu czegokolwiek 🙂  Myślałem że opisałem to jasno.

Dobra walę wprost. Testuję wykrywanie obecności przy użyciu Openhab android app.

Żywcem zerżnąłem rozwiązanie stąd: https://makeitmore.fun/smarthome/openhab-presence-detection-without-network-binding

Tam na dzień dobry macie screen z basicUI

Alex         IN>

Emma  OUT>

....................

Przy ALEX macie stan/status wypracowany przez regułę, klikając na ALEX macie dostęp do pozostałych zgrupowanych itemów (2-gi screen z bacicUI)

 

...i właśnie o ten widok mi chodzi. Czy zostało to zrobione na grupach - wydaje mi się że tak.  Tylko w jaki sposób?


 
Dodane : 30/09/2021 9:41 pm
(@maras)
Wpisów: 197
Weteran Donator 2K22 Donator 2K19
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Wg. mnie użył Frame i do tego mógł wrzucić grupę. Przykład druga część mojego posta wyżej.
Ale żeby wyświetlało się jeszcze In out do Frame trzeba by dodać item=nazwa czyli powinno to wyglądać mniej wiecej tak

 Frame label="Alex" item=czyalexwdomu
                {
                Group  item=Alex label="alex" icon="Ikonkaalexa"
                }

 
Dodane : 02/10/2021 5:21 pm
adrian
(@adrian)
Wpisów: 4083
Szefu Admin Zasłużony dla Forum, Patron Strony
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

@carpov ma tam zwykłe grupy z mapowaniem i kolorowaniem

  Frame label="People" {
    Group item=itemAlex label="Alex [MAP(motion.map):%s]" valuecolor=["ON"="#ff0000","OFF"="#00ff00"] {
      Default item=jakisTamItem
    }
    Group item=itemEmma label="Emma [MAP(motion.map):%s]" valuecolor=["ON"="#ff0000","OFF"="#00ff00"]  {
      Default item=jakisTamItem
    }
  }

I środek w pliku to transformacji motion.map

ON=OUT
OFF=IN
on=OUT
off=IN
undefined=???
-=???
NULL=???

Jeśli obecność ma inne wartości niż ON, OFF np OPEN, CLOSED to musisz odpowiednio zmodyfikować kolory oraz plik motion.map np na W DOMU, W KOŚCIELE 🤣 

dodałem tam więcej mapowań w pliku niż pewnie potrzebujesz małe, duże znaki - bo nie wiem jak to jest u Ciebie. ON może oznaczać W DOMU lub POZA musisz sam już to ustawić 

 Daje to coś takiego

image

 

EDIT - Aaaa, nie doczytałem. W jego przykładzie on tam używa Stringi, wiec bardziej coś takiego niz powyżej

  Frame label="People" {
    Group item=itemAlex label="Alex [MAP(motion.map):%s]" valuecolor=["OUT"="#ff0000","IN"="#00ff00"] {
      Default item=jakisTamItem
    }
    Group item=itemEmma label="Emma [MAP(motion.map):%s]" valuecolor=["OUT"="#ff0000","IN"="#00ff00"]  {
      Default item=jakisTamItem
    }
  }

mapowanie w pliku motion.map

IN=W Domu
OUT=W kościele
undefined=???
-=???
NULL=???

pzdr.


 
Dodane : 02/10/2021 5:57 pm
(@carpov)
Wpisów: 26
Kontrybutor
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

No hej ...już wcześniej miałem pisać. 

@adrian wczoraj wieczorkiem podpatrzyłem Twoje sitemmap z pogodą i astro w topicu "Jak to jest zrobione w OH?" czy jakoś tak 🙂

I poszło ...jak chciałem. Zresztą dokładnie jak to opisałeś wyżej. Kolorki może inne.

 

BTW...a do kościoła nie uczęszczam 😛

 

Zamykamy.


 
Dodane : 02/10/2021 8:42 pm
adrian zareagował
Udostępnij: