Sdílení dat mezi dvěma RPi

kafcha

Re:Sdílení dat mezi dvěma RPi
« Odpověď #15 kdy: 17. 02. 2017, 21:34:02 »
asi bych na to taky pouzil mqtt, to ma clovek rozbehany razdva
a pokud by jsi tedy nechtel pouzivat kanon na vrabce a ani jine hotove reseni (zeromq napr) tak udelat proste tcp server-client, to je skutecne na par radku (neco jako https://wiki.python.org/moin/TcpCommunication)


JirSoft

Re:Sdílení dat mezi dvěma RPi
« Odpověď #16 kdy: 17. 02. 2017, 21:42:38 »
Pořád mi přijde ten UDP multicast jednodušší - je též na pár řádek, kotelna prostě bude posílat balíček svých  teplot a nezatěžuje ji, jestli poslouchá jen to druhé RPI nebo deset dalších mobilů, tabletů, počítačů, dalších zobrazovačů...
A pro ovládání relé na tom samém portu bude čekat na specifický povel pro sepnutí/rozepnutí (a potvrdí ho vzápětí v balíčku svých dat).
Jediné, co je třeba dělat, je udržovat bind na UDP port a když nebude, tak se prostě nic nepošle (a na druhé straně nic neuslyší) - ale není to o hlídání spojení, navazování nového atd. Prostě opravdu pár bajtů bez overheadu.
(Vzájemně) připojené adresáře mi přijdou nejkomplikovanější na hlídání OK stavu...

ehmmm

Re:Sdílení dat mezi dvěma RPi
« Odpověď #17 kdy: 17. 02. 2017, 23:28:27 »
Pořád mi přijde ten UDP multicast jednodušší - je též na pár řádek

Chtel jsem namitnout ze multicast je proti holemu UDP jeste porad moc slozitej, ale kdyz koukam na priklad, tak ty ctyri radky navic se daji prezit. I kdyz jestli to dobre chapu, tak ten druhy setsockopt se receiveru bude generovat nejake IGMP pakety.

http://stackoverflow.com/questions/603852/multicast-in-python

Samozrejme opakuji, ze pokud ma pouze jeden vysilac a jeden prijimac, tak se muze na multicast vykaslat a bude to mit na par radku. Zkusme ty radky spocitat:

Vysilac:
... socket
... sendto
2 radky

Prijimac:
... socket
... bind
... recv
3 radky

Opravdu tu chce nekdo resit nejake ssh, nfs, http, mqtt, nebo janevimco?

ehmmm

Re:Sdílení dat mezi dvěma RPi
« Odpověď #18 kdy: 17. 02. 2017, 23:37:09 »
Sorry, znovu jsem si precetl puvodni dotaz. On to chce i opacnym smerem.
Tak jeste dva radky: send a recv naopak.

JirSoft

Re:Sdílení dat mezi dvěma RPi
« Odpověď #19 kdy: 18. 02. 2017, 13:27:57 »
Samozřejmě souhlas, unicast UDP je úplně nejjednodušší, ale ta výhoda multicastu je jednak v ladění (při jakémkoliv problému si mohu poslechnout, co si stanice vyměňují bez zásahu do původního SW) a jednak v možnosti přidat jednoduše další stanice (třeba jen ty displeje pro zobrazení) opět bez změny SW a hlavně zatěžováním jedné strany případnými požadavky...


Re:Sdílení dat mezi dvěma RPi
« Odpověď #20 kdy: 18. 02. 2017, 15:00:51 »
Nejprimitivnejsi a dostatecny by me prislo mit ssh klice + scp s rozumnym timeoutem a kontrolou navratove hodnoty.
To scp se muze logovat na spesl uzivatele s adekvatnima pravama (cteni jen toho souboru a zapis nikde), pokud se to cloveku chce resit.

Vykook

  • ***
  • 135
    • Zobrazit profil
    • homepage
    • E-mail
Re:Sdílení dat mezi dvěma RPi
« Odpověď #21 kdy: 18. 02. 2017, 15:50:23 »
A nebo na jednom z nich pustit nějakou db(což se beztak hodí pro statistiky) a šahat do tý db z obou RPi.

.

Re:Sdílení dat mezi dvěma RPi
« Odpověď #22 kdy: 18. 02. 2017, 20:26:29 »
Jinak já data budu chtít tak jako tak v plaintext souborech - to kvůli tomu SNMP, pohodlně si to z nich vytáhnu. Tím částečně odsuzuju přímý předávání dat mezi skriptama.
Tak když trváte na tom SNMP (čemuž úplně nerozumím, mimochodem má to nějaké mibky?) a už ho tam máte, tak to načítejte přes SNMP. Nějaká knihovna pro Python určitě bude, třeba PySNMP.

Ondrej

Re:Sdílení dat mezi dvěma RPi
« Odpověď #23 kdy: 18. 02. 2017, 22:10:14 »
Řešil bych to přes http(s), proč? Web server je na tohle fajn, chceš do budoucna přidat webové rozhraní? Máš už sever, přidáš jen nějaké html... Na tohle konkrétně preferuji bottle framework a taky to tak řeším u sebe. Soubory většinou přenáším webdav...

Ondrej

Re:Sdílení dat mezi dvěma RPi
« Odpověď #24 kdy: 18. 02. 2017, 22:16:28 »
Btw jestli to spinas relatkama tak je rovnou vymen za ssrka, usetris si tim problemy jako speceni kontaktu atp...

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Sdílení dat mezi dvěma RPi
« Odpověď #25 kdy: 18. 02. 2017, 22:32:09 »
Panove, KISS. Aby to za par iteraci neskoncilo jako cluster serveru s diskovym polem.

Pavouk106

  • *****
  • 2 400
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:Sdílení dat mezi dvěma RPi
« Odpověď #26 kdy: 20. 02. 2017, 13:07:30 »
Ještě to hotové nemám, ale rozhodnutý už jsem. Půjdu cestou HTTP a jen read only. Každý RPi si na vlastím písečku vytvoří svoje soubory s datama a vystaví je na HTTP tomu druhýmu RPi.

Všem moc děkuju za podněty a návrhy, cením si jich. Zevšeobecním trochu důvod, proč jsem ty které nevyužil - pracuju s tím, co znám a v čem jsem schopný to udělat za rozumný čas. A to i za situace, kdy to třeba není to nejlepší řešení z některého hlediska.

HTTP pro mě má výhody - vytáhnu mobil, mrknu do prohlížeče a mám data před sebou. To je neocenitelná věc při debugování na dálku. Teď nemyslím debug skriptu, ale debug situace v kotelně... ;-) V kotelně se bude měřit víc věcí a na některé bych nerad čekal (třeba) několik minut, než dostanu novou hodnotu.

SNMP je jen pro zajímavost, jsem statistickej magor. Loguju, co se dá. Kromě samotných systémových logů. Takže teploty, otáčky, využití CPU/RAM, ... a to u všeho, co to umí, kromě Windows PC. S tím tady nikdo nic neuděláte :-)

Relátkama budu spínat, ale přemýšlím trochu o nesystematickym řešení... Že relátkama budu spínat klasický stykače na DIN lištu. Pojede přes to několikrát 230V od 0,2A do 10A.

Ještě jednou díky za vaše názory a nápady!

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Sdílení dat mezi dvěma RPi
« Odpověď #27 kdy: 20. 02. 2017, 13:43:05 »
...Půjdu cestou HTTP a jen read only....

To jo. le pomysli a to, jak ti NSA nasadi do site malware a bude ti sledovat data z kotle a z bejvaku....

zemji

Re:Sdílení dat mezi dvěma RPi
« Odpověď #28 kdy: 20. 02. 2017, 22:53:39 »
Citace
...Půjdu cestou HTTP a jen read only....
A co když se ten script co bude generovat index.html nějak zasekne?
Na http budou neaktuální data?

nobody(ten pravej)

Re:Sdílení dat mezi dvěma RPi
« Odpověď #29 kdy: 21. 02. 2017, 01:19:06 »
Citace
...Půjdu cestou HTTP a jen read only....
A co když se ten script co bude generovat index.html nějak zasekne?
Na http budou neaktuální data?
a to je problem aby si tam pridal timestamp? a co kdyz by zvolil jeden z 10 jinejch zpusobu a script co by generoval nebo sbiral data se zaseknul? ;)