Giter VIP home page Giter VIP logo

Comments (26)

Kirizaki avatar Kirizaki commented on June 23, 2024

Hej @djanosz
Mamy to w planach - zaktualizuję sekcję TODO w README.md.
Zostawiam to Issue otwarte, więc będziesz poinformowany jak coś się ruszy w temacie.

Dziękuje za przypomnienie,
Pozdrawiam

from mysensors.

th0m4sek avatar th0m4sek commented on June 23, 2024

You can try this branch - i have no access to hardware so i will be grateful for testing.
https://github.com/Kirizaki/mysensors/tree/8-th0m4sek-active_low_state

//możesz spróbować tych zmian - nie mam dostępu do sprzętu więc będę wdzięczny za informacje czy działa tak jak powinno ;)

from mysensors.

djanosz avatar djanosz commented on June 23, 2024

Sketch wgrany, niestety nie działa poprawnie.
Po przekopiowaniu mojej konfiguracji przycisków, przełączników etc. stany w HA zmieniły się na zgodne z rzeczywistością Niestety okazało się, iż coś się pomieszało. Włącznik(pin A1), który opowiadał za światło w salonie(Pin 4), zapala teraz lampę w innym pokoju (pin 8).
Po wgraniu starego softu wszystko działa poprawnie.
Dla testu wgrałem też Twój pobrany soft(zmodyfikowałem tylko pin z przełącznikiem na 8 pin, przycisk pozostał na pinie A1, niestety także nie działa.

from mysensors.

th0m4sek avatar th0m4sek commented on June 23, 2024

a mogbys wrzucic gdzies twoje pliki? bo niebardzo widze taka mozliwosc po moich zmianach

from mysensors.

djanosz avatar djanosz commented on June 23, 2024

Poniżej link do plików.

  • Oryginal - pliki, które u mnie działają, ale w HA pokazują odwrócone stany.
  • Stan niski - pliki z którymi mam problem
    https://we.tl/t-hof5YOVUVl

from mysensors.

Kirizaki avatar Kirizaki commented on June 23, 2024

Chyba zły link podałeś. :)

from mysensors.

djanosz avatar djanosz commented on June 23, 2024

from mysensors.

th0m4sek avatar th0m4sek commented on June 23, 2024

niewiem skad pomysl na zamiane
namespace Relay {
const uint8_t OFF = 1;
const uint8_t ON = 0;
const uint8_t FLIP = 2;
}
w oryginalnym pliku bo to wiecej komplikuje niz rozwiazuje ale to wyjasniac inne zachowanie sketchy

from mysensors.

djanosz avatar djanosz commented on June 23, 2024

Pewnie podczas szukania sposobu na poprawne statusy dla HA to zmieniłem i tak pozostało, co nie zmienia faktu, iż sketch działa poprawnie.
Nie bardzo rozumiem ostanie zdanie :)

from mysensors.

th0m4sek avatar th0m4sek commented on June 23, 2024

i zeby latwiej bylo ci dojsc co do czego nie definiuj wszystki akcji do wszystkich przyciskow jesli nie zamierzasz ich uzywac
i pamietaj ze mozesz przypisac jedna funkcje do kilku przyciskow
i latwiej ci bedzie nazywac przyciski tak ja sa czyli nie salon 1 2 i 3 tylko salonlewy itp, bo i tak odrazu dodajesz komentarz ze to lewy itp

from mysensors.

djanosz avatar djanosz commented on June 23, 2024

Dziękuję za radę, powiem szczerze, że robię to z doskoku po pracy. W związku z tym, iż pracuję na "żywym organizmie" muszę ograniczyć miganie światłem(wgrywanie sketchy, restarty arduino/maliny etc) do minimum, w przeciwnym razie żona mnie wyrzuci z domu :)
Po zakończeniu testów zastosuje się do Twoich wskazówek i to uporządkuję.

from mysensors.

th0m4sek avatar th0m4sek commented on June 23, 2024

doskonale rozumiem poprostu niewidze poki co mozliwosci zeby zmiany wprowadzone przezemnie dokonaly takich zachowan i wlasnie przez to ze dzialasz na zywym organizmie ogranicz to i opisz tak jak radze bedzie ci zdecydowanie latwiej
czekam na informacje o efektach

from mysensors.

th0m4sek avatar th0m4sek commented on June 23, 2024

void saloon2AClick() {
setOutput(GARDEROBA_ID);
//setOutput(SALOON_2_ID);
}
bo to mi w tym sketczu podpada ale powino dzialac w obu wersjach tak samo - tu pelna zgoda

from mysensors.

djanosz avatar djanosz commented on June 23, 2024

W ramach testu uprościłem wszystko do jednego przekaźnika(pin 11) i włącznik(PIN A1), po wgraniu lampa świeci cały czas, ale niestety nie reaguje na włącznik.
Pliki tutaj: https://we.tl/t-uoGWVaQIXi

from mysensors.

th0m4sek avatar th0m4sek commented on June 23, 2024

pobierz nowe zmiany albo zamień w Automation.hpp
void setGPIO(const uint8_t& sensorId, const uint8_t& cmd) {
CustomSensor sensor = CustomSensor::getSensorById(sensorId, customSensors);
const uint8_t state = (sensor.activelow == 1) ? (1-cmd) : cmd;

digitalWrite(sensor.pin, state);
}
bo wychodzi na to ze próbowałem zamienić 1 na zero operacją logiczną co nie było dobrym pomysłem...

Wielkie dzięki za testy!

from mysensors.

djanosz avatar djanosz commented on June 23, 2024

Po wgraniu nadal problemy.
Po wgraniu sketcha wszystkie lampy są włączone.
Włącznik PIN A3 uruchamia lampę w sypialni PIN 10 - a powinien projektor PIN 6
Włącznik PIN A5 uruchamia lampę PIN 7 a powinien lampę PIN 8

Pliki po modyfikacji: https://we.tl/t-DLqSZs7yuI

from mysensors.

th0m4sek avatar th0m4sek commented on June 23, 2024

reszta dziala jak nalezy czy to sa jedyne reakcje z przyciskow
i drugie pytanie czy akcje z HA dzialaja poprawnie ?

from mysensors.

djanosz avatar djanosz commented on June 23, 2024

Reszta nie działa w ogóle. Tzn wszystkie lamy świecą i nie reagują na włączniki.
W HA stany są wyświetlane błędnie(lampa włączona ma status - OFF)
Sterowanie z HA działa błędnie włączniki uruchamiają inne przekaźniki .

PS
Jaka powinna być wersja bibliotek?
PS2
Oczywiście po wgraniu pierwotnego sketcha wszystko działa poprawnie(prócz stanów w HA)

from mysensors.

th0m4sek avatar th0m4sek commented on June 23, 2024

pozostaje mi tylko jedno pytanie czy nowy sketch bez parametru active low dziala poprawnie?
musze pozadnie popatrzec w kod bo nierozumiem tego zachowania i pomyslec jeszcze raz jak to zaatakowac
jeszcze raz bardzo dziekuje za testy

from mysensors.

th0m4sek avatar th0m4sek commented on June 23, 2024

Wiem już raczej co namieszalem potrzebuje chwile zeby to teraz poprawnie zapisac

from mysensors.

th0m4sek avatar th0m4sek commented on June 23, 2024

Mam nadzieje ze teraz jest ok
Aktualna wersja ciągle tu:
https://github.com/Kirizaki/mysensors/tree/8-th0m4sek-active_low_state
Czekam na relacje i jeszcze raz dziękuję ze pomoc i cierpliwość

from mysensors.

Kirizaki avatar Kirizaki commented on June 23, 2024

edit inline (wkradł się błąd)
Unikajmy działań na zmiennych o dwóch innych typach (druga linia):

void setGPIO(const CustomSensor sensor, const uint8_t& cmd) {
  const uint8_t state = (sensor.activelow == 1) ? (1-cmd) : cmd;

  digitalWrite(sensor.pin, state);
}

Możesz porównać activelow bezpośrednio ze zmienną ActiveLow oraz skorzystać ze static_cast żeby bezpiecznie zrzutować na bool w czasie kompilacji, np:

void setGPIO(const CustomSensor sensor, const uint8_t& cmd) {
  bool bState = static_cast<bool>(cmd);
  bState = (ActiveLow == sensor.activelow) ? !bState : bState;

  digitalWrite(sensor.pin, bState);
}

Rzutowanie:
https://www.geeksforgeeks.org/static_cast-in-c-type-casting-operators/

from mysensors.

djanosz avatar djanosz commented on June 23, 2024

Jestem w pracy, więc przetestuję to wieczorem.
Nie ma za co dziękować to Ty pomagasz mi, nie ja Tobie :)

from mysensors.

djanosz avatar djanosz commented on June 23, 2024

Stany w HA wyświetlają się poprawnie. :)
Włączniki, przekaźniki działają poprawnie.
LongPress działa poprawnie.

Czyli wszystko działa.
Dziękuję bardzo za pomoc.

PS
Zastanawia mnie tylko czy powinno być tak, że longpress działa dopiero po zwolnieniu przycisku?

from mysensors.

th0m4sek avatar th0m4sek commented on June 23, 2024

no powinien dzilac po puszczeniu - i mam nadzieje ze tak sie zachowuje.
jesli chcesz zeby akacja wykonala sie po wykryciu dlugiego przycisku zamien longpressstop na longpressstart
// tu masz przyklad z pomoca dla guzikow

Dzieki wielkie jeszcze raz za pomoc

from mysensors.

Kirizaki avatar Kirizaki commented on June 23, 2024

Resolved by #18

@djanosz
Changes merged with dev. Feel free to use it and thank you for your contribution!

from mysensors.

Related Issues (16)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.