ESP8266 Primary GUI

George2002
Posty: 121
Rejestracja: pn maja 01, 2017 2:00 am

sob sie 17, 2019 12:04 pm

krystianmen pisze:
sob sie 17, 2019 8:39 am
Wrzuciłem swoją wersję SuplaDevice oraz Primary_GUI
https://github.com/krycha88?tab=repositories
Bóg w dzieciach wynagrodzi - działa jak należy :) ale dziwne bo wszystko co podawaliście zmieniałem jak potrzeba i za bardzo nie widzę różnic, być może pominąłem gdzieś jeszcze jakąś poprawkę albo coś :) w każdym razie działa, małą zmianę zrobiłem sobie aby po złapaniu wifi dioda migająca świeciła cały czas a bez wifi żeby mrugała ale to już pierdółka a cieszy :) w każdym razie dziękuję bardzo i uważam że to jest wersja stabilna i powinna być wrzucona na github supli chyba że espablo jeszcze coś od siebie doda :)

Poniżej jak zrobiłem tą led w sumie jedna zmiana z 1 na 0 :D

Było:

Kod: Zaznacz cały

void supla_led_blinking_stop(void) {
  os_timer_disarm(&led_timer);
  digitalWrite(LED_CONFIG_PIN, 1);
Jest:

Kod: Zaznacz cały

void supla_led_blinking_stop(void) {
  os_timer_disarm(&led_timer);
  digitalWrite(LED_CONFIG_PIN, 0);
cino111
Posty: 710
Rejestracja: pn maja 07, 2018 8:00 pm

sob sie 17, 2019 1:06 pm

krystianmen pisze:
sob sie 17, 2019 9:06 am
cino111 pisze:
sob sie 17, 2019 9:00 am
krystianmen pisze:
sob sie 17, 2019 8:39 am
Wrzuciłem swoją wersję SuplaDevice oraz Primary_GUI
https://github.com/krycha88?tab=repositories
Co ona zmienia?
Normalną pracę przycisku i przekaźnika bez wifi
Wielkie podziekowania :D
Czy jesteś w stanie dodać jeszcze BME280 z tego wątku? viewtopic.php?f=11&t=5122
krycha88
Posty: 612
Rejestracja: pt lis 16, 2018 7:25 am

sob sie 17, 2019 1:12 pm

cino111 pisze:
sob sie 17, 2019 1:06 pm
krystianmen pisze:
sob sie 17, 2019 9:06 am
cino111 pisze:
sob sie 17, 2019 9:00 am


Co ona zmienia?
Normalną pracę przycisku i przekaźnika bez wifi
Wielkie podziekowania :D
Czy jesteś w stanie dodać jeszcze BME280 z tego wątku? viewtopic.php?f=11&t=5122
Spokojnie, wieczorem wrzucę na githuba :-)
cino111
Posty: 710
Rejestracja: pn maja 07, 2018 8:00 pm

sob sie 17, 2019 1:46 pm

No to będzie komplecik :D
Patryk
Posty: 617
Rejestracja: pn sty 07, 2019 7:51 pm

sob sie 17, 2019 2:37 pm

Jak już uda Ci się również dodać BME, to może  zmień wersję na 1.6.2.
Już jest tyle wersji tej biblioteki pod ta samą "nazwą", że powoli ja sam już nie wiem, którą obecnie mam zainstalowaną.
Patryk
Posty: 617
Rejestracja: pn sty 07, 2019 7:51 pm

ndz sie 18, 2019 8:21 am

Podpowiedźcie Proszę, co i gdzie zmienić, żeby przycisk (monostabilny), załączał lub wyłaczał przekaźnik w momencie naciśniecia, a nie dopiero jak się go puszcza.
cino111
Posty: 710
Rejestracja: pn maja 07, 2018 8:00 pm

ndz sie 18, 2019 5:26 pm

Hej.
Chcę zrobić sobie na podstawie Primary GUI w Apce podgląd kanałów, ale bez możliwości ich zmiany, a taką możliwość mają tylko sensory. Wymyśliłem, że poprzez link bezpośredni przełączę przekaźnik (fizycznie go nie podłączam, a na podstawie jego stany na ESP8266 ma sięustawić stan wysoki albo niski na pinach sensora.

Zrobiłem tak:

Kod: Zaznacz cały

int relay1 = 1;
int relay2 = 3;
int relay3 = 4;
int relay4 = 5;
int sensor1 = 13;
int sensor2 = 14;
int sensor3 = 15;
int sensor4 = 16;

i w setup

Kod: Zaznacz cały

if (relay1 = HIGH){
  digitalWrite (sensor1, LOW);
} else {
  digitalWrite(sensor1, HIGH); //wylacz buzzer przy dystansie większym niż 20cm
} 

if (relay2 = HIGH){
  digitalWrite (sensor2, LOW);
} else {
  digitalWrite(sensor2, HIGH); //
} 

if (relay3 = HIGH){
  digitalWrite (sensor3, LOW);
} else {
  digitalWrite(sensor3, HIGH); //
} 

if (relay4 = HIGH){
  digitalWrite (sensor4, LOW);
} else {
  digitalWrite(sensor4, HIGH); //
} 
Niestety nie działa. Jest to w ogóle możliwe do realizacji na? Jeżeli tak to jak powinienem to zrobić?
krycha88
Posty: 612
Rejestracja: pt lis 16, 2018 7:25 am

pn sie 19, 2019 7:22 am

cino111 pisze:
ndz sie 18, 2019 5:26 pm
Hej.
Chcę zrobić sobie na podstawie Primary GUI w Apce podgląd kanałów, ale bez możliwości ich zmiany, a taką możliwość mają tylko sensory. Wymyśliłem, że poprzez link bezpośredni przełączę przekaźnik (fizycznie go nie podłączam, a na podstawie jego stany na ESP8266 ma sięustawić stan wysoki albo niski na pinach sensora.

Zrobiłem tak:

Kod: Zaznacz cały

int relay1 = 1;
int relay2 = 3;
int relay3 = 4;
int relay4 = 5;
int sensor1 = 13;
int sensor2 = 14;
int sensor3 = 15;
int sensor4 = 16;

i w setup

Kod: Zaznacz cały

if (relay1 = HIGH){
  digitalWrite (sensor1, LOW);
} else {
  digitalWrite(sensor1, HIGH); //wylacz buzzer przy dystansie większym niż 20cm
} 

if (relay2 = HIGH){
  digitalWrite (sensor2, LOW);
} else {
  digitalWrite(sensor2, HIGH); //
} 

if (relay3 = HIGH){
  digitalWrite (sensor3, LOW);
} else {
  digitalWrite(sensor3, HIGH); //
} 

if (relay4 = HIGH){
  digitalWrite (sensor4, LOW);
} else {
  digitalWrite(sensor4, HIGH); //
} 
Niestety nie działa. Jest to w ogóle możliwe do realizacji na? Jeżeli tak to jak powinienem to zrobić?
nie dokończa wiem co chcesz zrobić ale ja bym spróbował wykorzystać supla_DigitalWrite

Kod: Zaznacz cały

void supla_board_configuration(void) {
add_Relay(PIN_BUTTON);
SuplaDevice.addSensorNO(PIN_SENSOR_ALARM);
}

void supla_DigitalWrite(int channelNumber, uint8_t pin, uint8_t val) {
  if ( pin == PIN_BUTTON ) {
      SuplaDevice.channelValueChanged(1, val);//jest to kanał sensora
    }
}
po zmianie stanu buttona zmieni się stan sensora na kanale 1
cino111
Posty: 710
Rejestracja: pn maja 07, 2018 8:00 pm

pn sie 19, 2019 7:59 am

Wiedziałem, że mnie naprowadzisz :)
Rozgryzłeś bibliotekę to wiesz o co chodzi :D
Jeżeli nie mam przycisków bo nie potrzebuję to można to zrobić bez nich?

A co do pytania po co mi to, to już wyjaśniam.
Chcę z Integry poprzez Suplasatelintegrator przenieść stan niektórych kanałów przez linki bezpośrednie do Supli. Sensory nie mają linków bezpośrednich a tylko ich przypadkowo nie przełączę w apce, więc bym chciał na sensorach sobie to zrobić, czyli Linkiem bezpośrednim włączam przekaźnik, a on przełącza mi sensor - tak to sobie wymyśliłem :D
Patryk
Posty: 617
Rejestracja: pn sty 07, 2019 7:51 pm

pn sie 19, 2019 7:59 pm

Prośba o pomoc.
Co należy zmienić (zmodyfikować), aby przycisk monostabilny, włączał przekaźnik podczas "wciśnięcia". a nie dopiero jak się go zwalnia.

Kod: Zaznacz cały

void SuplaDeviceClass::iterate_relaybutton(SuplaChannelPin *pin, TDS_SuplaDeviceChannel_B *channel, unsigned long time_diff, int channel_number) {  
  
   if ( channel->Type == SUPLA_CHANNELTYPE_RELAY ){
     int state;
    
     uint8_t val = suplaDigitalRead(channel->Number, pin->pin2);
         
       if ( pin->start == 0) {
         if ( pin->flag == RELAY_FLAG_RESTORE && Params.cb.read_supla_relay_state != 0) {
          state = Params.cb.read_supla_relay_state(channel->Number);
          channelSetValue(channel->Number, state, 0);
          //Serial.print("channel->Number-"); Serial.print(channel->Number); Serial.print("=="); Serial.println(state); 
         }
         else {
          uint8_t val1 = suplaDigitalRead(channel->Number, pin->pin1);
          //channelValueChanged(channel->Number, val1 == HIGH ? 1 : 0); 
          channelSetValue(channel->Number, val1 == HIGH ? 1 : 0, 0);
         }
        pin->start = 1; 
        
       } else {
        if ( val != pin->last_val && millis()-pin->time_left >= 200 ) {
          if(val == 1 && val != pin->last_val){   
       
            relaySwitch(channel->Number, pin->pin1);  
              
          }
          else if (val == 0 && val != pin->last_val){
       
            if(pin->type == INPUT_TYPE_BTN_BISTABLE){
        
            relaySwitch(channel->Number, pin->pin1);
                
            }     
          } 
        pin->time_left = millis();
        pin->last_val = val;
      }
    }   
  }   
}
ODPOWIEDZ