Forum

Forum

Monitorovanie loxon...
 
Notifications
Clear all

Monitorovanie loxone pomocou grafana

202 Posts
29 Users
20 Likes
28.7 K Views
(@budulinek)
Reputable Member
Joined: 7 years ago
Posts: 355
 

@killeriq

Všechno je jinak!! Jsem debil. Vymýšlím vlastní UDP syntaxi a nějaké skripty na poslouchání UDP portu. Přitom InfluxDB má vlastní UDP listener a jednoduchou syntaxi UDP zpráv. Takže na odesílání statistik z Loxone do InfluxDB nepotřebuješ vůbec nic! Nepotřebuješ žádné dockery nebo Loxberry pluginy ani skripty v nodejs nebo pythonu, potřebuješ akorát RTFM dokumentaci k InfluxDB! Jsou tři řešení:

1) UDP

  • povolit UDP listener v nastavení InfluxDB

/etc/influxdb/influxdb.conf

[[udp]]
enabled = true
bind-address = ":2222"
database = "loxone"
# retention-policy = ""

# InfluxDB precision for timestamps on received points ("" or "n", "u", "ms", "s", "m", "h")
precision = "s"
  • v Lox Configu udělat virtuální výstup (UDP) s adresou:
/dev/udp/192.168.1.22/2222
  • udělat nový Virtuální výstup příkazu, instrukce při zapnutí (instrukce při vypnutí) musí odpovídat syntaxi InfluxDB protokolu ( https://docs.influxdata.com/influxdb/v1.8/write_protocols/line_protocol_tutorial/), v nejjednodušším případě stačí:
Kuchyň value=<v>

 

2) HTTP

  • ověřit nastavení HTTP

/etc/influxdb/influxdb.conf

[http]
# Determines whether HTTP endpoint is enabled.
enabled = true

# The bind address used by the HTTP service.
bind-address = ":8086"
  • v Lox Configu udělat virtuální výstup (HTTP) s adresou:
 http://192.168.1.22:8086 
  • udělat nový Virtuální výstup příkazu, instrukce při zapnutí (instrukce při vypnutí):
/write?db=loxone&precision=s

pokud je přístup k DB zabezpečen heslem:

/write?db=loxone&precision=s&u=loxone&p=tajneheslo
  • nastavit HTTP Post příkaz při zapnutí (vypnutí):
Kuchyň value=<v>

 

3) HTTPS

  • Pokud máš Miniserver 2. generace, můžeš si v nastavení InfluxDB povolit HTTPS a v Lox configu nastavit virtuální výstup na https

 

 

Tohle je fakt nejjednodušší řešení. Sice si nemůžeš vypomoci UDP loggerem, musíš používat Virtuální výstupy (UDP nebo HTTP), ale pokud těch statistik nemáš moc, tak to není problém. Navíc nezapomínej, že:

  • v Lox Configu můžeš hromadně nastavovat společné vlastnosti několika bloků najednou
  • na Virtuální výstup příkazu (tj. <v> v Loxone syntaxi) můžeš posílat nejenom analogovou hodnotu, ale i textovou hodnotu. Celou UDP zprávu (třeba i včetně tagů) si můžeš poskládat dynamicky v bloku "Status" (stačí dodržet syntaxi podle https://docs.influxdata.com/influxdb/v1.8/write_protocols/line_protocol_tutorial/ ) a výsledek pak přes textový výstup TQ poslat na UDP virtuální výstup

   
Vladiczek, Jakub and L reacted
ReplyQuote
(@killeriq)
Prominent Member
Joined: 7 years ago
Posts: 816
 

@budulinek : dik uz si nato musim najst cas to rozbehat, lebo z tych stats v loxone ma uz ide vazne *ebnut to dokola preklikavat a cakat kym sa nacita.

mam Server v1


   
ReplyQuote
(@budulinek)
Reputable Member
Joined: 7 years ago
Posts: 355
 

@killeriq

vzhledem k pozitivnímu covidu mám čas na hraní...

Toš tady je podle mě nejefektivnější řešení (pokud tě napadne lepší, dej vědět):

screen3
  • Každý "measurement" má svůj vlastní virtuální výstup. Používám UDP, instrukce při zapnutí (vypnutí):
Teplota,room=<v>
  • V blocích Status se přiřazuje hodnota tagu "room" podle názvu místnosti. Mění se pouze názvy bloků (všimni si zpětného lomítka na escapování mezery). Uvnitř jsou všechny bloky stejné, takže je můžu snadno copy-pastovat. Text statusu je nastaven takto:
<vn> value=<v1.1>

UDP zpráva se odesílá za každý teplotní senzor zvlášt a odesílá se pouze v případě, že se teplota senzoru změní o 0,1°C.


   
l.adamek, msk and smotek7 reacted
ReplyQuote
(@killeriq)
Prominent Member
Joined: 7 years ago
Posts: 816
 

Dnes som konecne "oprasil" NodeRed (budem ho potrebovat na Zigbee/Conbee integraciu, takze sa tomu nevyhnem).

Narazil som ale na problem co mi robi asi tento "Status" modul

image

Tym ze "Value" su cisla / text tak to hadze chybu v zapise do InfluxDB, ako to opravit odfiltrovat? tieto hodnoty nepotrebujem zapisovat, pouzivam len z dovodu ze loxone inac nevie v UI zobrazit viac hodnot. Nechcem aby som musel menit v LoxConfig vsetky "Status" nastavenia.

image

 

return {
payload:
{
Category: msg.category,
// Measurement: msg.measurement,
Room: msg.room,
Name: msg.topic,
Value: msg.payload // tu treba nejako exclude ak je ina ako ciselna hodnota
}

};

image

 

Predpokladam ze nejaky node alebo uprava kodu, bude potrebna ale neviem ako nato 🙁

 

dik


   
ReplyQuote
(@budulinek)
Reputable Member
Joined: 7 years ago
Posts: 355
 

@killeriq

V InfluxDB ti stačí data z těch tří virtuálních vstupů. Blok Status do InfluxDB vůbec posílat nemusíš. Pokud se ti nechce ručně přepisovat tu funkci, tak, nejjednodušší by bylo odfiltrovat inkriminovanou zprávu (name : "Sklennik DHT22") přes node "Switch".

 


   
ReplyQuote
(@killeriq)
Prominent Member
Joined: 7 years ago
Posts: 816
 

jj do InfluxDB to ani posielat nechcem, ide to same 😀

Tych statusov mam viac...chcel by som to odfliltrovat globalne tj. ak sprava "Value" obsahuje "C" prip "|" tak ju neposielat.

Pozrem ten Switch ale ako pisem, len sa s tym ucim 😉

dik


   
ReplyQuote
(@killeriq)
Prominent Member
Joined: 7 years ago
Posts: 816
 

Ok tak skusil som "Switch" , zadal "Contains"

image

Jako ale nastavim ze ked to obsahuje "contains" tak to ignoruj? ci jak to tak zadam , rovno to ignoruje / neposiela?

Napr:

Value: 25.89 °C | 57.30 %

Ak Contains "|" tak ignoruj celu spravu, nezapisuj do InfluxDB , tento znak mam v kazdom statuse ako rozdelovac takze , ak by to slo s tym odfiltrovat bolo by super 😉

 

dik


   
ReplyQuote
(@budulinek)
Reputable Member
Joined: 7 years ago
Posts: 355
 

@killeriq

Jak ignorovat zprávy? Pošleš to na slepou kolej....

Switch funguje jako výhybka. Zprávy splňující dané pravidlo jsou přesměrovány na samostatný výstup. Na pořadí záleží, pravidla se aplikují odshora. Poslední pravidlo bude "otherwise" a výstup tohoto pravidla napojíš na InfluxDB.

No, jsem rád, že jsem se tomu vyhnul....

BTW jak máš pořešený práva? Node Red se do Loxone připojuje jako "admin" nebo pro něj máš dedikovanýho uživatele? Pokud máš dedikovanýho uživatele, můžeš "filtrovat" už v Loxone tím, že Node Red uživateli odebereš přístupová práva k těm status blokům.

EDIT: Pokročilá správa práv v Lox Config je až v novějších verzích Loxone (nevím přesně odkdy). Musíš mít aktualizovaný miniserver.

 

 


   
ReplyQuote
(@killeriq)
Prominent Member
Joined: 7 years ago
Posts: 816
 

no skusil som a aj tak to stale posiela, asi mam stale nieco zle 🙁

image

Pytam sa aj na DE fore, ale zatial nepochopili co chcem a vo funkcii odporucili delit spravu...

Ak by sa dal vyradit typ spravy ktora bude obsahovat |,C,% tak by to tiez spravilo sluzbu aj bez Switch. Ale nejako neviem ani jedno spravit :/

Loxone nemam dedikovaneho uzivatela, nechcelo sa mi to cele definovat pre kazdeho zvlast 😉


   
ReplyQuote
(@killeriq)
Prominent Member
Joined: 7 years ago
Posts: 816
 

skusil som aj na kazdy "conctains" vystup dat debug (1-3) a neposiela tam nic...len zo 4ky idu chyby

image

   
ReplyQuote
(@budulinek)
Reputable Member
Joined: 7 years ago
Posts: 355
 

Není náhodou payload pole (array)? Potom nestačí msg.payload, ale musíš dovnitř do pole. Tuším, že se to dělalo hranatýma závorkama.


   
ReplyQuote
(@killeriq)
Prominent Member
Joined: 7 years ago
Posts: 816
 

toto myslis? 

image

napis mi presne ako to zapisat, nie som koder (ako vidis:D )


   
ReplyQuote
(@budulinek)
Reputable Member
Joined: 7 years ago
Posts: 355
 

@killeriq

Aha, takže ta funkce udělá z payloadu pole. Hele nejjednodušší je dát switch před funkci, když je ještě payloadem obyčejný string či float.


   
ReplyQuote
(@killeriq)
Prominent Member
Joined: 7 years ago
Posts: 816
 

frajer , zda sa ze to ide 😀 dobry napad aj bez kodovania, diik


   
ReplyQuote
msk
 msk
(@dusanmsk)
Member
Joined: 7 years ago
Posts: 1880
Topic starter  

Aky datovy typ ma measurement ked sa to posiela cez UDP? Ja som totiz predvcerom upgradol grafanu a narazil som na problem (po dlhom badani), ze moj bridge tam uklada measurementy ako stringy. Coz nevadilo s grafana 4, ale kurva vadi s akoukolvek novsou grafanou, pretoze sice kresli diagramy, ale nezobrazuje hodnoty v hover tooltipe ani dole pod grafom. Trvalo mi 2 dni nez som vygooglil podobny problem a skutocne je to sposobene tym, ze su tie hodnoty ulozene ako stringy (a vysvetluje preco som so ziadnou nameranou hodnotou nebol schopny robit matematicke operacie).

Svoj bridge som fixol, ale ma to dalsi problem - v influxe nie je mozne kombinovat datovy typ u masurementu, takze sice posielam uz float, ale influx to zahodi, lebo ma na ten column nastaveny string. Treti den sa jebem s tym ako to napravit a musim povedat ze som na influx zhusta alergicky, taku sracku skurvenu som este snad ani nevidel. Resume - budem to riesit tak ze dropnem celu db (odzalohujem), nahodim 2 influxy a napisem kus kodu (uz len doladujem) co to bude z jedneho influxu citat a do druheho zapisovat ako float. A ta java liba k influxu to je lahodka uplne totalna. Vravim, 3 dni, jednoduchy task - skonvertuj/prehadz lopatou zo strany na stranu.


   
ReplyQuote
Page 6 / 14
Share: