Forum Turris
Fórum Turris Nápověda

Milí majitelé routerů Turris,

toto fórum bylo 9. 12. 2016 zmrazeno a nahrazeno naším novým Turris fórem. Ještě chvíli bude dostupné k prohlížení, ale již zde není možné přispívat. Více informací naleznete v oznámení o uzavření fóra.


Dear Turris routers users,

this forum has been frozen on Dec 9th, 2016 and replaced by our new Turris forum. It will be read-only accessible for some time after. For more information, read the announcement about closing the forum.

Nahoru Téma Majitelé routerů / Gadgets / Interní teplota Turrisu do Domoticz?
- - Od Eskymák (>) Dne 2015-08-18 08:27 Hlasů 1
Bylo by fajn mít v Domoticz i interní teplotu Turris. Předpokládám, že by se to mohlo hodit i uživatelům bez Gadgets. Je to nějak jednoduše možné? Nejlepší by byla asi přímo oficiální podpora v Domoticz pro Turris, aby to nemusel každý bastlit.
Nadřazený - Od Jerry Dne 2015-08-18 09:25 Hlasů 2
Souhlas ... trochu jsem doufal, že to tam bude, navíc když už tam je vytížení RAM, CPU, využití HDD, SD apd. ... a když už bych chtěl být moc náročný tak bych tam rád viděl i teploty HDD v NASu - zatím je hlídám jen pomocí smartd :-)
Nadřazený - - Od Pavel Špírek Dne 2015-08-18 11:00 Hlasů 2
Teoreticky by to šlo "dobastlit" tak, že založíte dummy termostat, a jeho hodnotu budete nastavovat pomocí web api (jako je to třeba zde https://www.domoticz.com/wiki/Camera_Setup u kamery). Stačí napsat shell skript, který bude periodicky třeba každou minutu pouštět příkaz "thermometer", a jeho výstupy předávat tomu dummy zařízení.

V příští verzi Domoticzu není problém udělat nativní podporu.
Nadřazený - Od Eskymák (>) Dne 2015-08-18 12:38 Hlasů 1
Nativní podpora by byla nejlepší, ať to máme všichni stejně a zbytečně se s tím nepatláme. :-)
Nadřazený - - Od Jerry Dne 2015-08-18 21:30
Tak jsem to zkusil "zbastlit" :grin: a ... dummy termostat - OK, web api - OK, takže ručně bych to dokázal krmit, ale s tím s skriptem bych potřeboval pomoct. I když doděláte nativní podporu tak by se tohle řešení mohlo na ledacos hodit.
Nadřazený - - Od Pavel Špírek Dne 2015-08-19 07:46
Skript bude třeba nějak takhle. Ty idx parametry si samozřejmě dosaď podle sebe.

#!/bin/sh
BOARDTEMP=$(thermometer | head -n 1 | awk '{print $2}')
CPUTEMP=$(thermometer | tail -n 1 | awk '{print $2}')
curl -o /dev/null --stderr /dev/null "http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=40&nvalue=0&svalue=$BOARDTEMP"
curl -o /dev/null --stderr /dev/null "http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=41&nvalue=0&svalue=$CPUTEMP"


Spouštěj to pomocí crona třeba každou minutu.
Nadřazený - - Od Jerry Dne 2015-08-19 11:18
Super - díky moc, funguje to skvěle ! Chtěl jsem si tam ještě přidat teploty disků v NASu, ale nějak mně to nic neposílalo i když jsem měl příkaz dobře (myslím) - v konzole příkaz fungoval OK. Tak jsem nakonec udělal samostatný skript pro disky a funguje to OK. Ještě jednou díky.
Nadřazený - - Od JFila (>>) Dne 2015-08-19 18:13
Ještě bych doplnil, že je nutné přidat zařízení "Dummy (Does nothing, use for virtual switches only)" a k němu příslušné Virtuální senzory, v tomto případě teploměry. A IDX v těle dotazu představuje právě číslo toho virtuálního senzoru.
Nadřazený - - Od Jerry Dne 2015-08-19 20:02 Upraveno 2015-08-19 20:08
To všechno mám - pochopil jsem to z návodu, jen ten skript bych "nevyplodil" :wink: ale i tak díky :cool: Už mám v Domoticz všechny teploty - jak MB a CPU tak i oba disky v NASu, jen to dělám přes 2 skripty - jeden pro MB a CPU a druhý pro disky.
Nadřazený - - Od uzivatel1 (>>) Dne 2015-10-12 10:27
Zdravím, jak "voláte" o teplotu v NAS? Jedná se o Synology?
Nadřazený - - Od Jerry Dne 2015-10-12 11:13
Ne, Synology nemám. Mám NAS z Turrise - přídavný SATA řadič do mini pci-e + 2x HDD v externím boxu, RAID 1.
teplotu čtu skriptem přes Smartctl ....

TEMPSDA=$(smartctl -a /dev/sda | grep Temperature | awk '{print $10}')
TEMPSDB=$(smartctl -a /dev/sdb | grep Temperature | awk '{print $10}')
curl -o /dev/null --stderr /dev/null "http://127.0.0.1:8181/json.htm?type=command&param=udevice&idx=34&nvalue=0&svalue=$TEMPSDA"
curl -o /dev/null --stderr /dev/null "http://127.0.0.1:8181/json.htm?type=command&param=udevice&idx=35&nvalue=0&svalue=$TEMPSDB"
Nadřazený - Od uzivatel1 (>>) Dne 2015-10-12 11:47
Aha, i tak díky za odpověď.
Nadřazený - - Od Pavel Špírek Dne 2015-08-20 07:58 Hlasů 2
Tímto způsobem si můžete do Domoticzu jednoduše doplnit v podstatě cokoliv bez nutnosti programování. Pomocí dummy spínače lze také spouštět externí skripty (volby "On Action" a "Off Action" v jeho nastavení) a provádět tak různé akce.

PS: nativní podpora pro měření teploty Turrisu je již hotová a bude přítomna v příštím release.
Nadřazený - Od quercus.mojeid. Dne 2015-10-01 22:52
Chtěl bych se zeptat, zda ta podpora doplněna byla doplněna, nepodařilo se mi ji tam najít.
Nadřazený - - Od Chemik582 Dne 2015-09-04 08:50
Chtěl bych poprosit o pomoc. Pokud jde o tu část v domoticzu tak tam to mám nachystané, ale ten zbytek se skriptem tam jsem hodně na vodě :(
Můžete mi prosím poradit kam přesně ten skript přijde? Je to formou nějakého souboru v /etc/init.d/ ? Nebo ho stačí vepsat do Správy turrisu Systém/Po spuštění - úplně dole? V tomto jsem na naprostém začátku ale rád bych se přiučil. Děkuji.
Nadřazený - - Od Jerry Dne 2015-09-04 09:12
Osobně mám skript uložený v /etc ( nezapomeňte nastavit atribut souboru jako spustitelný ) a cronu mám nastaveno spouštění tohoto skriptu každých 5 minut .....

zápis v cronu:

*/5 * * * * /etc/sys_temps_domoticz.sh
Nadřazený - - Od Chemik582 Dne 2015-09-04 10:20 Upraveno 2015-09-04 10:36
Tak.V /etc/ mám soubor sys_temps_domoticz.sh v kterém je

!/bin/sh
BOARDTEMP=$(thermometer | head -n 1 | awk '{print $2}')
CPUTEMP=$(thermometer | tail -n 1 | awk '{print $2}')
curl -o /dev/null --stderr /dev/null "http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=40&nvalue=0&svalue=$BOARDTEMP"
curl -o /dev/null --stderr /dev/null "http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=41&nvalue=0&svalue=$CPUTEMP"

s tím že hodnoty idx jsou z domoticzu. A včil ten jeden řádek co má přijít do cronu - předpokládám že patří do /etc/cron.d a pro něho tam vytvořit nějaký speciální soubor nebo ten řádek stačí jen dopsat do některého z existujících souborů?
Nadřazený - - Od Jerry Dne 2015-09-04 11:15
Taky jsem zvažoval kam to dát :-) nejsem expert na Linux ..... nakonec jsem to dal do /etc/crontabs/root a funguje to jak má.
Nadřazený - - Od Chemik582 Dne 2015-09-04 12:12
Tak pokud jde o tohle jsem na tom huř, bohužel mnohem hůř. Prosímtě ten poslední krok trošičku víc polopatě.
Mám v /etc/sys_temps_domoticz.sh v něm je to co tady psal Pavel Špírek. Má atribut pro spuštění majitelem - tedy 744.
A včil. Ten řádek pro cron kde definuješ jak často se má spouštět (*/5 * * * * /etc/sys_temps_domoticz.sh)ten patří kam? Nebo do jakého souboru ho přidat?
A po zdárném zapsání je potřeba cron restartovat nebo restartovat celého turrise nebo si to cron načte sám?
Omlouvám se, ale občas když pro někoho píšu k návod k nějakému programu tak mám tendenci přeskakovat kroky a vynechávat informace které považuji za tak samozřejmé že je přeci musí znát každý ;) . Nezná :)
Nadřazený - - Od machfilip Dne 2015-09-04 12:24 Upraveno 2015-09-04 12:26
Jak psal výše Jerry - ve složce /etc/crontab vytvořit soubor root . Do něj přidat h m d M Y command (format pro cron). Nasledne cron restartovat (/etc/init.d/crontab restart)

tzn.:
touch /etc/crontab/root;
echo "*/5 * * * * /etc/sys_temps_domoticz.sh" >> /etc/crontab/root;
/etc/init.d/cron stop
/etc/init.d/cron start

Pak doporucuji sledovat /var/log/messages, zda se tam co 5 minut objevuje volani sys_temps_domoticz.sh

Kdybyste s tim mel problemy, pak pres ps | grep cron zkontrolujte, zda Cron bezi.

Jo a nevim, jestli ho mate nastaveny aby startoval po restartu (snad by mel), ale doporucuji jeste /etc/init.d/cron enable cimz toho docilite...
Nadřazený - - Od Chemik582 Dne 2015-09-04 12:43
ANO, ano :) děkuji. Předpokládám tedy že to funguje když se ve /var/log/mnessages objevuje tento řádek

2015-09-04T13:30:01+02:00 info cron[12136]: (root) CMD (/etc/sys_temps_domoticz.sh)

Teď to ještě ověřit v Domoticzu. To z nějakého důvodu můžu jen z vnitřní sítě. Sice jsem si přesměroval port, ale nějak to hapruje. Domoticz fungoval třeba dnes dopoledne v pohodě z internetu. Ale po poledni (není to přesně na minutu) mě z venku hlásí že je off-line. Byl sem ale doma na jídlo a z vnitřní sítě funguje v pořádku a v klidu se do něho dostanu. Inu tak. Jak dorazím domů tak sem připíšu ;) jak sem dopadl.
Moc děkuji.
Nadřazený - - Od Chemik582 Dne 2015-09-04 15:22
Tak nic :(
V tom skriptu. Jde jen o to změnit idx na idx potřebných zařízení? Není třeba změnit ještě i tu ip adresu a port?
Nadřazený - Od Jerry Dne 2015-09-04 20:11
Adresu není třeba měnit - 127.0.0.1 je localhost - což je adresa stroje na kterém to spouštíš, ale port musíš změnit podle toho jak máš nastavené domoticz.
Nadřazený - Od Michal Vaner (>>) Dne 2015-09-04 13:54
Dobrý den

Sice to v tomto konkrétním případě bude fungovat, ale není to ten oficiálně doporučený postup. Obvykle se to dělá přes příkaz crontab -e. Ten otevře editor, připíše se tam řádek, zavře a všechno je, jak má být. Funguje to i za jiného uživatele, než jen roota, není potřeba restartovat crona, řeší to, že některé systémy mají tu složku jinde.
Nadřazený - Od Jerry Dne 2015-09-04 12:28
V /etc/crontabs je soubor "root" - do něj zapiš ten řádek. Jde to i přes LuCi - System -> Scheduled Tasks - to co vidíš v tom okně je obsah souboru "root" tam to připiš na nový řádek a potom restartuj cron - buď přes LuCI - System -> Startup .... nebo v konzoli /etc/init.d/cron restart
Nadřazený - - Od Milhauszn Dne 2015-09-04 20:19
Mam taky dotaz,
snazil jsem se uz dyl to rozchodit, ale ted se k tomu vracim.
Kdyz zadam prikazy do terminalu, tak vse funguje, teploty se nactou a poslou do domoticz.
Cron mi tez vola prislusny script, nicmene se mi ho nedari spustit a to ani manualne v terminalu.
Prava jsem menil, nastavil spustitelnost, ale odhaduju, ze kdyz ho nespustim manualne, tak i pro Cron to bude chyba.
Stale dostavam hlasku
-ash: teploty.sh: not found

Urco to bude nejaka blbost, kterou neumim, ale uz nevim jak hledat.
Diky za rady
Nadřazený - - Od machfilip Dne 2015-09-05 07:42
Jak vypada zaznam v /etc/crontab? Jak vypada ten skript, ktery volate? Vypada to na spatnou cestu...
Nadřazený - - Od Milhauszn Dne 2015-09-05 07:51
scritp je ten presny co nahore, zadna zmena.
Jen je to v adresari /jab/teploty.sh
nicmene zkouseno bylo i v jinych.
V cronu zaznam je, a dle logu i spousti dany script.
Nicmene nic se nedeje.
Pokud nakopiruju jednotlive radky do terminalu, tak vse probehne OK, ale jakmile chci spustit cely script, tak to hodi error. Mozna jen nevim spravny prikaz jak to spustit a nebo nemam sparva prava.
Nadřazený - - Od machfilip Dne 2015-09-05 07:58
Asi bych sel takto:
1. Prava na soubor:
cd /jab;
chmod +x teploty.sh;

2. ozkouset spusteni skriptu:
./teploty.sh
- spravne by to nemelo vyhodit chybu a melo by to spravne fungovat. Pokud nebude, mate nekde chybu ve skriptu

3. kontrola crontab
cd /etc/crontab;
cat root;
melo by tam byt neco ve stylu */1 * * * * /bin/sh /jab/teploty.sh

Na svym serveru musim v crontabu uvadet cestu k /bin/sh, jinak mi to take nefungovalo (Debian Squeeze). Predpokladam, ze na OpenWrt by to mohlo byt obdobne. Momentalne nejsem u Turrise, abych overil se 100% jistotou.
Nadřazený - Od Milhauszn Dne 2015-09-05 08:34 Hlasů 1
Prava jsem zkousel a nastavoval.
Ted jsem zkusil znovu, po vcerejsich pokusech, po prvnim testu v terminalu ./teploty.sh to zahlasilo permission denied
Pak jsem nastavil script pres chmod jako spustitelny.
Dalsi test spusteni uz jen hodi:
¨-ash: ./teploty.sh: not found

jsem primo v adresari souboru.
Zatim casovani contrab neresim az tolik, kdyz mi stale nefunguje script, ktery vypada jak ten nahore, nebo jsem neco prehledl asi po stopadesate:?
#!/bin/sh
BOARDTEMP=$(thermometer | head -n 1 | awk '{print $2}')
CPUTEMP=$(thermometer | tail -n 1 | awk '{print $2}')
curl -o /dev/null --stderr /dev/null "http://uzivatel:hesloheslo@127.0.0.1:8080/json.htm?type=command&param=udevice&idx=19&nvalue=0&svalue=$BOARDTEMP"
curl -o /dev/null --stderr /dev/null "http://uzivatel:hesloheslo@127.0.0.1:8080/json.htm?type=command&param=udevice&idx=17&nvalue=0&svalue=$CPUTEMP"
Nadřazený - - Od Milhauszn Dne 2015-09-05 09:40
Tak uz to funguje.
Diky za radu, pomohlo nakonec to pridani /bin/sh v crontabs.
Nicmene spustit script v terminalu mi nesel prikazem ./ , sec jsem si myslel, ze kdyz kdyz ve scriptu je na zacatku #!/bin/sh , tak ma pro spusteni pouzit sh, ale asi se tak nedeje, mozna jsem nepochopil spravne navody.
Takze uz minule jsem zkousel zkusl spistit sh, a pak zavolat scritp pres ./ a stejna chyba.
Nicmene ted jsem naposled zkusil v terminalu: sh teploty.sh a uz to funguje.
Jelikoz jsem v tomto zacatecnik, muze mi prosim nekdo vysvetlit jake jsou v tom rozdily a jake je to tedy spravne? Nebo aspon odkaz nekam, kde si to muzu nastudovat.
Jeste dodam ze v terminalu se standartne mi sposuti ash.
Diky za postrceni a uz to loguje ;-)
Nadřazený - Od Chemik582 Dne 2015-09-07 07:36
Jak přesně vypadá přidání /bin/sh v crontabs ?
Je to scrontab - e a přidání nějakého řádku? Neboněco úplně jiného?
Nadřazený - - Od Pavel Špírek Dne 2015-09-07 07:45
Chyba "Not Found" je způsobená tím, že ve skriptu používáte špatné ukonční řádků (CR+LF). Musí tam být pouze LF - viz topic "Domoticz a email notifikace" ;-)
Nadřazený - Od Milhauszn Dne 2015-09-07 09:59
Diky za info, doma se juknu jake tam jsou konce. Nicmene pri zadani celeho /bi/sh script.sh to funguje ok.
Topic s emailem jsem nedocetl cely, nastavil jsem si push notifikace, tak me email zatim nezjima tolik :-)
Nadřazený - - Od Chemik582 Dne 2015-09-07 07:23
Ahoj. Mě se stále nedaří :( prosímtě když píšeš "Kdyz zadam prikazy do terminalu, tak vse funguje,...". Můžeš mě ty přikazy napsat třeba sem? Že bych to zkusil takhle pomocí terminálu.
Dík.
Nadřazený - - Od Milhauszn Dne 2015-09-07 10:01
Prikazama myslim jednotlive radky z toho scriptu postupne, rucne.
Proste ulozeni do jednotlivych promenych a pak poslani do domoticz na vytvorene virtualni cidla a jejich spravne idx.
Nadřazený - - Od Chemik582 Dne 2015-09-08 07:52
Tak nic :( i když vkládám skript řádek po řádku nic nepřichází.
V Domoticzu > Nastavení > Technické vybavení > přidat Dummy zařízení -> potom Vytvořit virtuální snímače > Teplota.
V Nastavení > Zařízení vznikly dva termostaty idx 5 a 6. Pojmenoval jsem je BOARDTEMP a CPUTEMP.
I když jsem ten skript přepsal komplet ve vi editoru (skrzevá ty konce řádků) a jsou v něm ty správná čísla idx zařízení stejně v domoticzu na záložce Teplota jsou obě čidla v červeném a žádná data do nich nepřichází.
Nebyl by, prosím, nějaký další nápad?
Nadřazený - Od Jerry Dne 2015-09-08 08:10
1) přihlas se přes ssh ke konzoli jako root

2) napiš příkaz: curl -o /dev/null --stderr /dev/null "http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=5&nvalue=0&svalue=45" a dej Enter

v příkazu si změň port podle tvého nastavení domoticz, idx podle domoticz - pokud máš vše dobře tak by jsi měl mít v domoticz teplotu BOARDTEMP = 45 stupňů ( to je ta hodnota na konci příkazu )
Nadřazený - - Od Drx001 Dne 2015-09-08 09:21 Upraveno 2015-09-08 09:23 Hlasů 1
Pokud máš přístup do webového rozhraní Domoticzu chráněný heslem, nezapomeň napsat adresu ve formátu http://jmeno:heslo@127.0.0.1:8080/.... Včera jsem s tím chvilku bojoval, než mi to docvaklo.
Nadřazený - Od Chemik582 Dne 2015-09-08 17:57
ANO :) TO je to správné. Uživatel a heslo. Samozřejmě jsem si nadefinoval uživatele a heslo aby to bylo aspoň nějak zabezpečeno a tohle je ta drobnost co mě dostala.
Děkuji všem za trpělivost. Všechny poznatky si pečlivě píšu do notýsku :)
A včil ten zatrápený Dongl abych mohl vymýšlet co a jak na periferie. V této souvislosti - absolutně nevím jak, ale najednou mám v seznamu zařízení nějaká nová zařízení o kterých jsem neslyšel a rozhodně jsem je tam nepřidával :(

Nadřazený - Od Chemik582 Dne 2015-10-02 10:03
Ahoj. Předpokládám - už se tu to někde probíralo - že máš doplnený řádek do crontab.
POZOR správně se do něho doplňuje z terminálu pomocí crontab -e nebo z LuCI, ale ten terminál je podle mě lepší :)
Sám sem s tím laboroval a tak ten sh skript mám jako /etc/sys_temps.sh a takto je i doplněn do toho crontab.
Kontrolu toho jestli se spouští provádím nakukováním do /var/log/messages - musí tam naskakovat řádky s info o tom že cron spustil /etc/sys_temps.sh.
Nahoru Téma Majitelé routerů / Gadgets / Interní teplota Turrisu do Domoticz?

Powered by mwForum 2.29.3 © 1999-2013 Markus Wichitill