Integracja Arduino Mega + Ethernet Shield z HA przez MQTT

Dzięki :slight_smile:

void reconnect() {
// Oczekowani na polaczenie z serwerem
while (!client.connected()) {
if (SerialPrint == 1) {Serial.print(“Attempting MQTT connection…”);}
// Attempt to connect
if (client.connect(“arduino01”,“DVES_USER”,“”,“arduino01/tele/LWT”,1,true,“Nieaktywny”)) {

https://pubsubclient.knolleary.net/api
boolean connect (clientID, [username, password], [willTopic, willQoS, willRetain, willMessage], [cleanSession])

W poniższej linii “DVES_USER” to nazwa użytkownika a następna zmienna - tutaj pusta “” to hasło. AIS nie używa hasła do połączenia z Mosquito dlatego hasło nie jest zdefiniowane.

(client.connect(“arduino01”,“DVES_USER”,“”,“arduino01/tele/LWT”,1,true,“Nieaktywny”)

Potrzebuję trochę pomocy, arduino zaprogramowane, broker MQTT “chyba” skonfigurowany, monitor portu potwierdza połączenie lecz nie wiem jak w HA ogarnąć dalej dodanie sensora, chyba autodiscowery powinno to zrobić ? HA na RPI 3 siedzi.

Dokłanie autodiscovery powinno dodać z automatu sensory do HA.

Będę walczył, nie poddaje się bo projekt super i zależy mi żeby to wdrożyć bo pomysł sterowania po LAN a nie WIFI wydaje mi się bardziej bezpieczny.
Jak bym miał prośbę o lekką modyfikację Jolki, a mianowicie pozostawienie tylko jednego przekaźnika i jednego wejścia “kontaktron może być” ale z autodiscovery. Chcę zaadoptować to do sterowania światłem w domu, zależy mi na wejściu pod fizyczny przełącznik na ścianie bistabilny i podpięcie wyjścia arduino pod przekaźnik bistabilny z dwoma stykami do ewentualnej kontroli stanu przekaźnika czy ktoś manualnie nie zapalił światła. Tak czy siak jak bym mógł poprosić o takiego czystego sketcha tylko z przekaźnikiem (bez DHT, RS485 i innych dodatków) będę wdzięczny.

Oczywiście ja innego rozwiązania jak sterowanie po LAN/RS485 nie biorę pod uwagę. Jedynie jakieś mało znaczące sterowniki mogą być po wifi.
Będę robił dokładnie taki projekt na przekaźnikach bistabilnych do sterowanie oświetleniem w domu ale trochę to potrwa bo muszę zakończyć inne projekty i zlecenia. Na razie planuję zakup przekaźników bistabilnych i testowania tego rozwiązania. Założę osobny wątek na forum bo ten dotyczy multisensorów.

Kupiłem w hurtowni przekaźnik F&F BIS 413 z czasówką ale są też wersje bez czasówki BIS 412, mają wyjście przekaźnika NO COM NC pozwoliło by to pobrać sygnał stanu przekaźnika tylko opto izolacja wymagana, tak samo optoizolacja do włączników bistabilnych do arduino bo widzę że sporo osób pisze że często arduino uwalane są przez indukcję w przewodach. Ale faktycznie to na osobny temat.

Cześć,

masz może jakiś pomysł jak podpiąc pod Twój kod oraz andruino czujki ruchu w domu ??? nie mogę znaleźć oryginalnych z boscha lub satela które wystarczy zasilanie 5v niestety … akurat zasilenie czujki 12v nie będzie zadnym problemem, jednak odbiór stanu już raczej tak …

Wystarczy zastosować transoptor.
Przykład z opisu na elektroda. pl Twojego problemu:

“Wyjście” czujnika ruchu to przekaźnik mechaniczny/elektroniczny i jest bezpotencjałowy więc nie ma problemu z podłączeniem, nie trzeba nic kombinować.

Z tym się nie zgodzę. W czujnikach ruchu “alarmowych Bosch, Satel” nie ma przekaźników elektromechanicznych.

Tak, ale napisałem mechaniczny/elektroniczny co miało oznaczać, że albo są mechaniczne albo elektroniczne co nie zmianie postaci, że są bezpotencjałowe i można je podłączyć bezpośrednio do arduino.
Np dla czujki Bosch ISC-BPR2-W12 jest to:

przekaźnik: półprzewodnikowe nadzorowane styki typu A rozwierne o obciążalności ≤100 mA, 25 VDC, 2,5 W, <20 Ω przy zwarciu

OK masz rację, czytanie ze zrozumieniem trudniejsze bez kawy.

Czy ktoś również po wykonaniu poradnika otrzymywał komunikat, że “encja nie jest numeryczna” a jej stan to “unknown”? Walczę z tym już od kilku dni i nie mogę znaleźć rozwiązania :confused:

Witajcie.
Pozwoliłem sobie skorzystać z rozwiązania @Iron - a i powoli posuwam się do przodu w swoim projekcie. W temacie arduino mam niestety dużo do nadrobienia.
Stosuję i “rozwijam” w tej chwili wersję 0.0.2 i zauważyłem że dht22 wystawiony na zewnątrz nie pokazuje mi ujemnych temperatur. Wykres po przejściu przez zero po prostu wędruje znowu w górę oszukując mnie że jest dodatnia.
Czy ktoś bardziej oświecony mógłby mi pomóc? Jest też możliwość że mam uszkodzonego dht, zweryfikuję to jutro.

Może kwestia niewłaściwej zmiennej w arduino… a czy w MQTT Explorer wyświetla ujemne wartości ?

W explorerze chyba nie sprawdzałem, ale wydaje mi się że na monitorze portu szeregowego też wyświetlał dodatnie wartości.
Na razie to zostawiłem, bo nie ma mrozu a zająłem się innymi rzeczami. Ale jeszcze będę badał tą sprawę.

Witam, projekt świetny!!! - testuje na raspberry z HA - i mam pewien problem

losowe wysyłanie informacji z sensora1 większość kończy się błędem i tylko raz na jakiś czas prześle informacje - brakuje jakiś rezystorów na lini czy coś ??? Drugi problem do discovery w HA - widoczne tylko te sensory wpisane na stałe w configuration.yaml

Podłączam się pod pytanie dotyczące discovery. W monitorze serial wyświetla mi, że Subscribe OK, ale w HA nie są dostępne. HA mam w dockerze na Qnap.

Edit : moduł rs485 - ten wpięty w Arduino Mega jeśli podłącze do 5V - szaleje i na serialu numer IP jest jakiś losowy, natomiast po odpięciu adres IP jest taki jaki został ustawiony.
Edit 2: okazuje się że jak najbardziej wszystko chodzi jak tylko wymieniłem moduł rs485 na nowy - natomiast dalej mam problem z autodiscovery - w wolnej chili prosimy o pomoc.

Był jakiś problem z autodiscovery z powodu biblioteki pubsubclient. Chodziło o długość pakietu przesyłanego polecenia MQTT. Któraś wersja miała z tym problem i obcinało zapytania MQTT. Grzebałem w pubsubclient.h

Tutaj jest rozwiązanie… https://github.com/knolleary/pubsubclient/issues/110

Wystarczyło w bibliotece PubSubClient.h zmienić define MQTT_MAX_PACKET_SIZE 128 na >>>>>>>>> define MQTT_MAX_PACKET_SIZE 256

:slight_smile: