ESP8266 Primary GUI

George2002
Posts: 57
Joined: Mon May 01, 2017 2:00 am

Sat Aug 17, 2019 12:04 pm

krystianmen wrote:
Sat Aug 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:

Code: Select all

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

Code: Select all

void supla_led_blinking_stop(void) {
  os_timer_disarm(&led_timer);
  digitalWrite(LED_CONFIG_PIN, 0);
cino111
Posts: 589
Joined: Mon May 07, 2018 8:00 pm

Sat Aug 17, 2019 1:06 pm

krystianmen wrote:
Sat Aug 17, 2019 9:06 am
cino111 wrote:
Sat Aug 17, 2019 9:00 am
krystianmen wrote:
Sat Aug 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
Posts: 195
Joined: Fri Nov 16, 2018 7:25 am

Sat Aug 17, 2019 1:12 pm

cino111 wrote:
Sat Aug 17, 2019 1:06 pm
krystianmen wrote:
Sat Aug 17, 2019 9:06 am
cino111 wrote:
Sat Aug 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
Posts: 589
Joined: Mon May 07, 2018 8:00 pm

Sat Aug 17, 2019 1:46 pm

No to będzie komplecik :D
Patryk
Posts: 352
Joined: Mon Jan 07, 2019 7:51 pm

Sat Aug 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
Posts: 352
Joined: Mon Jan 07, 2019 7:51 pm

Sun Aug 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
Posts: 589
Joined: Mon May 07, 2018 8:00 pm

Sun Aug 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:

Code: Select all

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

Code: Select all

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
Posts: 195
Joined: Fri Nov 16, 2018 7:25 am

Mon Aug 19, 2019 7:22 am

cino111 wrote:
Sun Aug 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:

Code: Select all

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

Code: Select all

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

Code: Select all

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
Posts: 589
Joined: Mon May 07, 2018 8:00 pm

Mon Aug 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
Posts: 352
Joined: Mon Jan 07, 2019 7:51 pm

Mon Aug 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.

Code: Select all

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;
      }
    }   
  }   
}
Post Reply