Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 11 sty 2025, o 00:37


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 63 ]  Przejdź na stronę Poprzednia strona  1, 2, 3  Następna strona
Autor Wiadomość
PostNapisane: 20 sie 2016, o 19:27 
Offline
Użytkownik

Dołączył(a): 04 sie 2014
Posty: 207
Pomógł: 0

Tyle że jeżeli to ma być np. termometr (wykresy itd) to w nim nie mam co uruchomić, on powinien sam od siebie zbierać dane. Uruchomić programy mogę tylko w panelu Switches (czy jakoś tak on się nazywał, nie mogę teraz chwilowo tego odpalić by sprawdzić). Wiec w sumie chyba najłatwiej będzie znaleźć plik, w którym Domoticz przechowuje sobie dane (do tworzenia wykresów musi przechowywać) i tam na siłę mu te dane wciskać. Będzie to dość upierdliwe, lecz innego sposobu nie widzę :(

Chociaż jeszcze nie do końca wiem jaką idee chcą autorzy przedstawić w tym linku, który podałeś.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 sie 2016, o 19:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 wrz 2014
Posty: 1530
Lokalizacja: Warszawa
Pomógł: 55

Ja bym obejrzał ten przykładowy driver i na jego podstawie zbudował bym coś prostego - a potem już pójdzie.


Autor postu otrzymał pochwałę

_________________
--... ...-- - --- -- . -.-



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 sie 2016, o 19:36 
Offline
Użytkownik

Dołączył(a): 04 sie 2014
Posty: 207
Pomógł: 0

Robiłeś już coś takiego? Jeżeli tak to chętnie bym dowiedział się jak to zrobić krok po kroku :P Ewentualnie potem bądź jutro w to się wgryzę i spróbuję. C++ nie jest problemem. Gorsze od System C na pewno nie będzie :P

Szkoda że tylko Ty mi pomagasz. Niemniej jednak bardzo dziękuje za te pomysły, podpowiedzi itd. Tylko dzięki Tobie już tyle zrobiłem (tym bardziej biorąc pod uwagę, że mam dziennie max 2h na to by do tego siąść).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 sie 2016, o 19:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 wrz 2014
Posty: 1530
Lokalizacja: Warszawa
Pomógł: 55

Niestety nie robiłem z tym za wiele - miałem przez parę dni na moim pi, ale musiałem zrobić na nim radio internetowe i sprawa umarła :(

Zobacz taki fajny driver - http://www.domoticz.com/forum/viewtopic ... 32&t=12051


Autor postu otrzymał pochwałę

_________________
--... ...-- - --- -- . -.-



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 sie 2016, o 20:03 
Offline
Użytkownik

Dołączył(a): 04 sie 2014
Posty: 207
Pomógł: 0

Próbowałeś coś robić z JSON? Czytałem o tym itd. lecz nie umiałem zrobić tak, by wrzucić dane do domoticz. Z tego co wyczytałem to da się zrobić tak, że robię czujnik wirtualny a potem z poziomu dowolnego programu wysyłam dane na konkretny adres (coś na zasadzie: http://xxx.xxx.x.xx:8080/json.htm?type=devices&rid i wtedy czujnik się aktualizuje. Nie znalazłem jednak nic sensownego, bo było jak odczytać lecz nie jak wysłać. Np. ten Pan zrobił naprawdę fajne rzeczy dla domoticz lecz temat JSON trochę po macoszemu potraktował (mógł pokazać jak coś wysłać konkretniej): http://projektpimalina.blogspot.com/201 ... oticz.html

Próbuję się przegryźć przez to: http://www.domoticz.com/wiki/Domoticz_API/JSON_URL%27s lecz tak jak pisałem, mam tak mało czasu, że idzie opornie. Wiem że jak napisałem w Python, to pokazywało mi jakiś błąd, lecz nie pisało nic więcej i nie dałem rady sobie poradzić. Przynajmniej tka było wczoraj, jutro będę dalej próbowałl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 sie 2016, o 20:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 wrz 2014
Posty: 1530
Lokalizacja: Warszawa
Pomógł: 55

Uzywałem biblioteki simplejson w pythonie do zapamiętywania i odczytywania wartości startowych programu. W sumie to nic takiego, prosta biblioteka - czyta i wysyła dane w json
https://simplejson.readthedocs.io/en/latest/


Autor postu otrzymał pochwałę

_________________
--... ...-- - --- -- . -.-



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 sie 2016, o 20:34 
Offline
Użytkownik

Dołączył(a): 04 sie 2014
Posty: 207
Pomógł: 0

Będę musiał poczytać o tym, lecz jeżeli to jest prosta biblioteka, to będzie łatwiej mi ją przeanalizować. Poczytam, popróbuję i dam znać jakie są efekty (mam nadzieje że jakieś będą).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sie 2016, o 13:59 
Offline
Użytkownik

Dołączył(a): 04 sie 2014
Posty: 207
Pomógł: 0

Ogółem już umie wpisywać wartość do czujnika stosując taki program (czujnik temperatury, dziala):

Obrazek

Teraz mam taki kod (by odebrane dane z NRF wrzucać):

Obrazek

I wyskakuje mi taki błąd:

Obrazek

Wie ktoś jak to zrobić?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sie 2016, o 14:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 wrz 2014
Posty: 1530
Lokalizacja: Warszawa
Pomógł: 55

To bardzo prosty i częsty błąd w pythonie. Standardowo powinny być cztery spacje jako indent/odstęp. Być może dałeś tam Tab a nie spacje. Python jest bardzo wrażliwy na indentację, bo od niej zależy cała logika.
Ja to robię tak, że najpierw kasuję wszystkie białe znaki od początki linijki do pierwszego ważnego znaku, a potem daję cztery spacje. Ważne, żeby w całym kodzie trzymać się jednej zasady.
Tu masz opis, jak automatycznie zmieniać Tab na spacje, żeby nie mieć tego błędu:
http://stackoverflow.com/questions/5287 ... -on-ubuntu
A tak w ogóle to gratulacje, świetnie Ci idzie !!


Autor postu otrzymał pochwałę

_________________
--... ...-- - --- -- . -.-



Ostatnio edytowano 21 sie 2016, o 14:30 przez sq5rix, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sie 2016, o 14:25 
Offline
Użytkownik

Dołączył(a): 04 sie 2014
Posty: 207
Pomógł: 0

Nie rozumie, 4 spacje? W którym miejscu? W 48linijce?

Dzięki, ale gdyby nie Ty, to dalej bym zastanawiał się od czego zacząć.

------------------------ [ Dodano po: 4 minutach ]

Dobra, wszędzie pokasowałem białe znaki i dałem taby (wiem, miałem spacje, jakoś tak z ciekawości dałem i ruszyło). Teraz tylko mam inny problem.

Pisząc te linijkę z url=... to tam rozumie że wklejam stringa? Teraz jak zrobić, by tam się zmieniało na końcu w zależności od odczytu z termometru? Da się jakoś rzutować liczbę na string w python? (Będę właśnie szukał sposobu jakiegoś)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sie 2016, o 14:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 wrz 2014
Posty: 1530
Lokalizacja: Warszawa
Pomógł: 55

Lepiej używać spacji niż Tab, ale to w sumie kwestia konwencji, ważne, żeby było jednakowo w całym kodzie. Przechodziłem przez to na początku, python może pokonać każdego tą dziwną zasadą :)
Teraz url. To bardzo łatwe:
zmienna = 123
url = 'http://www.adres.com/' + str(zmienna)


Autor postu otrzymał pochwałę

_________________
--... ...-- - --- -- . -.-



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sie 2016, o 14:36 
Offline
Użytkownik

Dołączył(a): 04 sie 2014
Posty: 207
Pomógł: 0

Dobra, rzutowanie ogarnięte, zrobiłem to tak:

Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sie 2016, o 14:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 wrz 2014
Posty: 1530
Lokalizacja: Warszawa
Pomógł: 55

:) super!!
Tu masz napisane o indentację, stronka warta zapamiętania, jest tam dużo informacji.
http://www.diveintopython.net/getting_t ... _code.html


Autor postu otrzymał pochwałę

_________________
--... ...-- - --- -- . -.-



Ostatnio edytowano 21 sie 2016, o 14:44 przez sq5rix, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sie 2016, o 14:40 
Offline
Użytkownik

Dołączył(a): 04 sie 2014
Posty: 207
Pomógł: 0

Tak to działa:

ObrazekObrazek

Tamte wartości 10 i 15 to wpisywałem na sztywno, chciałem w ten sposób nauczyć się wpisywania wartości do czujnika. Domoticz jest naprawdę fajny, ma spore możliwości, małe ograniczenia i do tego stworzono go w sposób przemyślany. Czemu mówię, że przemyślany? Ponieważ widzę że da się tam sporo zrobić, kwestia znaleźć rozwiązanie.

Dziękuję za pomoc :) Tylko dzięki Tobie dałem radę zrobić aż tyle :) Teraz mogę kontynuować projekt, temperaturę odczytuję za pomocą LM35. Podpięty jest do ATmega8 i za pomocą NRF24L01 wysyłam dane w przestrzeń. Odbiera to drugi NRF24L01 podłączony bezpośrednio do RP 3. Takie krótkie podsumowanie dla potomnych :P



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sie 2016, o 14:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 wrz 2014
Posty: 1530
Lokalizacja: Warszawa
Pomógł: 55

Rewelacja !! Bardzo się cieszę, że mogłem pomóc - zrobiłeś naprawdę kawał dobrej roboty!!


Autor postu otrzymał pochwałę

_________________
--... ...-- - --- -- . -.-



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 sie 2016, o 14:47 
Offline
Użytkownik

Dołączył(a): 04 sie 2014
Posty: 207
Pomógł: 0

Szkoda, że nie mam kamery bo bym od razu monitoring dodał :P

Jeszcze raz dziękuję :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sie 2016, o 20:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 wrz 2014
Posty: 1530
Lokalizacja: Warszawa
Pomógł: 55

Dla inspiracji popatrz sobie na projekty konkursowe, szczególnie fajny jest Thuis:
https://www.element14.com/community/com ... ges/pi-iot

_________________
--... ...-- - --- -- . -.-



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 sie 2016, o 20:51 
Offline
Użytkownik

Dołączył(a): 04 sie 2014
Posty: 207
Pomógł: 0

Jutro na spokojnie to przejrzę :) wszelkie pomysły są mile widziane, ponieważ początkowo chcę zrobić projekt w wersji podstawowej (jako pracę dyplomową, to jest tylko ułamek tej pracy ale z tym miałem tylko większy problem). Potem chcę to rozbudować dość mocno i kto wie co z tego wyjdzie :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sie 2016, o 11:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 wrz 2014
Posty: 1530
Lokalizacja: Warszawa
Pomógł: 55

Fajny układ znalazłem:
https://www.element14.com/community/com ... 1-domotics

_________________
--... ...-- - --- -- . -.-



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sie 2016, o 12:14 
Offline
Użytkownik

Dołączył(a): 04 sie 2014
Posty: 207
Pomógł: 0

Ciekawe :)

Ja za to teraz meczę się jak pogodzić RP i ATmegę. Chcę zrobić tak, by RP po NRF wysyłał mi adres urządzenia, urządzenia jak rozpozna swój adres (urządzenie = ATmega) to odsyła dane które zebrał. Nie wiem co ale coś zepsułem :P

Na tym Domoticz można zrobić naprawdę fajne rzeczy :) szkoda że tak ogranicza mnie czas :(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sie 2016, o 20:40 
Offline
Użytkownik

Dołączył(a): 04 sie 2014
Posty: 207
Pomógł: 0

Potrzebuję pomocy w kodzie. Nie wiem czemu, lecz ten wykonywany w Python wiesza się na 47linijce. Nie potrafi z tego wyjsć.

Kod dla ATmegi:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Kod dla Raspberry Pi (Python):
Składnia: [ Pobierz ] [ Ukryj ]
język python
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Ogólnie działanie jest takie: RP wysyła mi w powietrze numer układu który ma mi odpowiedzieć (numer to 0x01), wywołany układ odpowiada i wysyła pomierzone dane. Tyle. Będę bardzo wdzięczny za wskazanie błędu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sie 2016, o 22:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 wrz 2014
Posty: 1530
Lokalizacja: Warszawa
Pomógł: 55

No po prostu radio.available(0) jest 0 - i pętla lata w kółko.... Ale dlaczego? Nie mam pojęcia..... Może w tej pętli zainicjować jeszcze raz radio?

_________________
--... ...-- - --- -- . -.-



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 sie 2016, o 05:22 
Offline
Użytkownik

Dołączył(a): 04 sie 2014
Posty: 207
Pomógł: 0

Z tego co widziałem to ta funkcja zwraca wartość 1 gdy jest coś do odebrania. Te zero w nawiasie oznacza które pipes wybieramy (nie wiem jak po polsku te pipes będzie brzmieć sensownie, bo kanały to jedno, pipes to drugie).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 sie 2016, o 09:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 wrz 2014
Posty: 1530
Lokalizacja: Warszawa
Pomógł: 55

Ok - ale tak na moje oko, to radio nie jest zainicjowane do odbioru w tym miejscu kodu, poprzez StartListening i odpowiedni pipe

_________________
--... ...-- - --- -- . -.-



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 sie 2016, o 16:53 
Offline
Użytkownik

Dołączył(a): 04 sie 2014
Posty: 207
Pomógł: 0

W liniach 39 i 40 otwieram nasłuch i wybieram kanał. Dla tego tam, by po każdym wysłaniu zapytania od razu ustawić odbiór, potem przechodzę w nasłuch i czekam na odebranie danych



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 sie 2016, o 18:13 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 wrz 2014
Posty: 1530
Lokalizacja: Warszawa
Pomógł: 55

Hmm, używasz tam pipe[1] a czekasz na radio na pipe(0) (albo nie rozumiem kodu, co jest prawdopodobne)

_________________
--... ...-- - --- -- . -.-



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 sie 2016, o 18:41 
Offline
Użytkownik

Dołączył(a): 04 sie 2014
Posty: 207
Pomógł: 0

Faktycznie nie zmieniłem w paru miejscach pipes na 0. Teraz chodzi.

Wysyłam mu 0x01 a on mi odpowiada wysyłając wilgotność i temperaturę zmierzoną za pomocą DHT11. Szkoda że upaliłem jeden NRF24L01 (miałem tylko 3 sztuki) bo bym sprawdził czy działa przełączanie między różnymi modułami poprzez wysłanie różnych ID.

Grafika:
Obrazek

Jestem bardzo ciekaw, czy zagadnienie inteligentnego domu sterowanego przez NRF mogłoby zainteresować większe grono osób.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 sie 2016, o 19:11 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 wrz 2014
Posty: 1530
Lokalizacja: Warszawa
Pomógł: 55

Jak patrzę po sieci, to bardzo wiele osób o tym coś pisze. Fajnie, że działa :)

_________________
--... ...-- - --- -- . -.-



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 sie 2016, o 19:14 
Offline
Użytkownik

Dołączył(a): 04 sie 2014
Posty: 207
Pomógł: 0

Wiele pisze, ale mniej korzysta bez użycia Arduino :P Teraz w sumie jeszcze muszę zabezpieczyć kod przed błędnymi danymi po odebraniu. Problemem to nie będzie, pytanie ile mnie się będzie chciało dać zabezpieczeń :P Widzę że za szybko się cieszyłem, przesył leci nadal, lecz widzę że nie zawsze dobrze. Mimo wszystko to mi wystarcza :P



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 sie 2016, o 20:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 28 wrz 2014
Posty: 1530
Lokalizacja: Warszawa
Pomógł: 55

Zobacz w pythonie konstrukcję try: ... except:.... oraz raise:....
Łatwo się robi obsługę błędów

_________________
--... ...-- - --- -- . -.-



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 63 ]  Przejdź na stronę Poprzednia strona  1, 2, 3  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO