KPOP w supla-device

[email protected]
Posts: 1585
Joined: Mon Feb 06, 2023 8:56 am
Has thanked: 18 times
Been thanked: 26 times

Post

klew wrote: Mon Jun 24, 2024 8:47 am
[email protected] wrote: Mon Jun 24, 2024 7:29 am A teraz poszło i są jednostki w Cloud. Czyli co? Jak ustawie wartości w configu, to potem tylko SuplaDevice.begin() bez parametrów? Spodziewałbym się, że jak podam parametry to po prostu nadpisze.

To rodzi pytanie... jak mam dużo czujników to nie powinienem ich inicjować w onInit() tylko w pierwszym przebiegu iterateAlways/getValue?
Możesz spróbować wstawić spowrotem do begin te parametry i zobaczyć, czy wtedy się "popsuje".
Ogólnie nie wiem, czemu wcześniej Tobie nie działało. Jeśli to kwestia tych parametrów w begin, to jak to potwierdzisz, to poszukam, co tam może to psuć.

Nie rozumiem też tego pytania z onInit. onInit jest od inicjalizacji i tam powinienen inicjalizować stan czujników. Jeśli to coś psuje, to daj znać - sprawdzę.
Generalnie to zadziałało mi raz jak usunałem z begin parametry i był dummy sensor - OK może te parametry nie powinny być podawane ponownie jak je podałem w configu.

No to przesiadam się do mojej stacji pogodowej z taką samą zmianą - znów tylko pierwszy KPOP otrzymuje jednostkę. - NOK , powrót do punkty wyjścia.
No to obcinam kod do minimum z KPOP i dummy sensora, też tylko pierwszy.- NOK

Erase flash
Usuwam urządzenie z cloud

Ponownie grywam to samo i jest OK.
Zmieniam w kodzie jednostkę - nie aktualizuje się w Cloud - to może jest OK?
Usuwam urządzenie z cloud
Wgrywam ponownie ze zmienioną jednostką - NOK mam starą :D

Erase flash
Usuniecie z cloud

Wgrywam ponownie ze zmienioną jednostką - OK mam nową

No to po takich akrobacjach śmiem twierdzić, że coś bruździ zapis configa na urządzeniu.

Poniżej log, po usunięciu urządzenia, jak widać w kodzie mam jednostkę "lx 123" a Cloud widzi "lx"

Code: Select all

10:56:50.620 > Main storage not configured
10:56:50.661 > LittleFsConfig: config file size 248
10:56:50.669 > LittleFsConfig: initializing storage from file...
10:56:50.674 > LittleFsConfig: init result 1
10:56:50.677 > [Main] Can load guid.
10:56:50.679 > Channel[0] initial caption set to 'Natężenie światła'
10:56:50.684 > GPM[0]: DefaultUnitAfterValue "lx123"
10:56:50.687 > Channel[1] initial caption set to 'Natężenie światła'
10:56:50.692 > GPM[1]: DefaultUnitAfterValue "lx123"
10:56:50.695 > [    95][E][Wire.cpp:381] setClock(): could not acquire lock
10:56:50.700 > Supla - starting initialization
10:56:50.704 > Main storage not configured
10:56:50.706 > Security level: Supla CA
10:56:50.709 > RemoteDeviceConfig: Registering field 0x00000010
10:56:50.713 > Clock: automaticTimeSync: 1
10:56:50.758 > GPM[0]: config loaded successfully
10:56:50.763 > GPM[0]: RefreshIntervalMs 5000 ms        
10:56:50.799 > GPM[1]: config loaded successfully
10:56:50.804 > GPM[1]: RefreshIntervalMs 5000 ms        
10:56:50.807 > GUID: 5937A923697E90D3482A30C7A796AF46   
10:56:50.810 > Device name: SUPLA-ESP32
10:56:50.812 > Device software version: SDK 24.06.01-dev
10:56:50.816 > Initializing network layer
10:56:50.818 > [Wi-Fi] Network AP/hostname: SUPLA-ESP32-AC67B236E4B8
10:56:50.823 > Using Supla protocol version 23
10:56:50.826 > Current status: [5] SuplaDevice initialized
10:56:50.829 > Enter normal mode
10:56:50.832 > WiFi: establishing connection with SSID: "Dom44A"
10:56:55.597 > Channel(1) value changed to 5.00
10:56:55.600 > Channel(0) value changed to 5.00
10:57:00.746 > Warning: network is not ready (10 s)
10:57:00.973 > WiFi Station disconnected
10:57:01.847 > Connected BSSID: 32:DE:4B:9D:ED:DE
10:57:01.850 > local IP: 192.168.0.127
10:57:01.851 > subnetMask: 255.255.255.0
10:57:01.855 > gatewayIP: 192.168.0.1
10:57:01.857 > Signal strength (RSSI): -76 dBm
10:57:01.946 > Establishing encrypted connection with: svr85.supla.org (port: 2016)
10:57:03.583 > Connected via IP 192.168.0.127
10:57:03.587 > SSL error: 48, PADLOCK - Input data should be aligned
10:57:03.591 > LAST STATE ADDED: PADLOCK - Input data should be aligned (11)
10:57:03.597 > Connected to Supla Server
10:57:03.599 > Initializing SRPC (proto: 23)
10:57:03.602 > LAST STATE ADDED: Register in progress (11)
10:57:03.606 > Current status: [10] Register in progress
10:57:03.610 > Send: [53 55 50 4C 41 17 01 00 00 00 4B 00 00 00 8E 02 00 00 72 61 66 61 6C 65 6B 6B 61 6C 77 61 6B 40 77 70 2E 70 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F9 39 9D 7E 4E E6 6B 92 1E 18 BD 9A 39 B2 B2 0E 59 37 A9 23 69 7E 90 D3 48 2A 30 C7 A7 96 AF 46 53 55 50 4C 41 2D 45 53 50 33 32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ]
10:57:03.699 > CH[0], type: 9000, FuncList: 0x0, function: 520, flags: 0x8010000, online, validityTimeSec: 0, icon: 0, value: [00 00 00 00 00 00 14 40]
10:57:03.711 > Send: [00 28 23 00 00 00 00 00 00 08 02 00 00 00 00 01 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 14 40 00 ]
10:57:03.721 > CH[1], type: 9000, FuncList: 0x0, function: 520, flags: 0x8010000, online, validityTimeSec: 0, icon: 0, value: [00 00 00 00 00 00 14 40]
10:57:03.733 > Send: [01 28 23 00 00 00 00 00 00 08 02 00 00 00 00 01 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 14 40 00 ]
10:57:03.743 > Send: [53 55 50 4C 41 ]
10:57:03.855 > Recv: [53 55 50 4C 41 17 01 00 00 00 46 00 00 00 07 00 00 00 03 00 00 00 78 18 01 53 55 50 4C 41 ]
10:57:03.864 > Device registered (activity timeout 120 s, server version: 24, server min version: 1)
10:57:03.871 > LAST STATE ADDED: Registered and ready (13)
10:57:03.876 > Current status: [17] Registered and ready
10:57:03.880 > Changing activity timeout to 30 s        
10:57:03.883 > Send: [53 55 50 4C 41 17 02 00 00 00 D2 00 00 00 01 00 00 00 1E ]
10:57:03.888 > Send: [53 55 50 4C 41 ]
10:57:03.891 > Send: [53 55 50 4C 41 17 03 00 00 00 80 02 00 00 1E 00 00 00 00 00 00 00 16 00 00 00 4E 61 74 C4 99 C5 BC 65 6E 69 65 20 C5 9B 77 69 61 74 C5 82 61 00 ] 
10:57:03.903 > Send: [53 55 50 4C 41 ]
10:57:03.906 > Send: [53 55 50 4C 41 17 04 00 00 00 80002 00 00 1E 00 00 00 01 00 00 00 16 00 00 00 4E 61 74 C4 99 C5 BC 65 6E 69 65 20 C5 9B 77 69 61 74 C5 82 61 00 ] 
10:57:03.919 > Send: [53 55 50 4C 41 ]
10:57:03.922 > Send: [53 55 50 4C 41 17 05 00 00 00 E0 01 00 00 00 00 00 00 ]
10:57:03.927 > Send: [53 55 50 4C 41 ]
10:57:03.950 > Recv: [53 55 50 4C 41 17 02 00 00 00 AD 02 00 00 1B 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 55 50 4C 41 ]
10:57:03.965 > Received new device config
10:57:03.968 > RemoteDeviceConfig: Config fields mismatch (0x00000000 != 0x00000010) - sending device config for fields 0x00000010
10:57:03.977 > Sending device config result OK (1)      
10:57:03.980 > Send: [53 55 50 4C 41 17 06 00 00 00 B7 02 00 00 0A 00 00 00 01 00 00 00 00 00 00 00 00 00 ]
10:57:03.989 > Send: [53 55 50 4C 41 ]
10:57:03.991 > Adding AutomaticTimeSync config field    
10:57:03.995 > Setting AutomaticTimeSync to 1
10:57:03.998 > Send: [53 55 50 4C 41 17 07 00 00 00 AC 02 00 00 1C 00 00 00 01 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 01 00 01 ]       
10:57:04.011 > Send: [53 55 50 4C 41 ]
10:57:04.014 > Recv: [53 55 50 4C 41 17 03 00 00 00 AA 02 00 00 08 00 00 00 00 08 02 00 00 00 00 00 53 55 50 4C 41 ]
10:57:04.023 > Received SetChannelConfig for channel 0, function 520, config type 0, config size 0
10:57:04.030 > Channel[0]: handleChannelConfig, func 520, configtype 0, configsize 0
10:57:04.037 > Channel[0] no config on server
10:57:04.039 > Sending channel config result OK (1)     
10:57:04.043 > Send: [53 55 50 4C 41 17 08 00 00 00 B4 02 00 00 03 00 00 00 01 00 00 ]
10:57:04.049 > Send: [53 55 50 4C 41 ]
10:57:04.050 > Recv: [53 55 50 4C 41 17 04 00 00 00 AB 02 00 00 01 00 00 00 00 53 55 50 4C 41 ]
10:57:04.058 > Received ChannelConfigFinished for channel [0]
10:57:04.061 > Send: [53 55 50 4C 41 17 09 00 00 00 A9 02 00 00 74 00 00 00 00 08 02 00 00 00 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6C 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6C 78 31 32 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ]
10:57:04.098 > Send: [53 55 50 4C 41 ]
10:57:04.100 > Channel[0]: Sending channel config       
10:57:04.104 > Recv: [53 55 50 4C 41 17 05 00 00 00 AA 02 00 00 08 00 00 00 01 08 02 00 00 00 00 00 53 55 50 4C 41 ]
10:57:04.111 > Received SetChannelConfig for channel 1, function 520, config type 0, config size 0
10:57:04.120 > Channel[1]: handleChannelConfig, func 520, configtype 0, configsize 0
10:57:04.126 > Channel[1] no config on server
10:57:04.129 > Sending channel config result OK (1)     
10:57:04.131 > Send: [53 55 50 4C 41 17 0A 00 00 00 B4 02 00 00 03 00 00 00 01 00 01 ]
10:57:04.138 > Send: [53 55 50 4C 41 ]
10:57:04.141 > Recv: [53 55 50 4C 41 17 06 00 00 00 AB 02 00 00 01 00 00 00 01 53 55 50 4C 41 ]
10:57:04.148 > Received ChannelConfigFinished for channel [1]
10:57:04.151 > Send: [53 55 50 4C 41 17 0B 00 00 00 A9 02 00 00 74 00 00 00 01 08 02 00 00 00 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6C 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6C 78 31 32 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ]
10:57:04.188 > Send: [53 55 50 4C 41 ]
10:57:04.190 > Channel[1]: Sending channel config       
10:57:04.193 > Recv: [53 55 50 4C 41 17 07 00 00 00 DC 00 00 00 03 00 00 00 1E 0A F0 53 55 50 4C 41 ]
10:57:04.200 > Activity timeout set to 30 s
10:57:04.203 > Recv: [53 55 50 4C 41 17 08 00 00 00 8A 02 00 00 1F 00 00 00 00 00 00 00 03 16 00 00 00 4E 61 74 C4 99 C5 BC 65 6E 69 65 20 C5 9B 77 69 61 74 C5 82 61 00 53 55 50 4C 41 ]
10:57:04.218 > Receieved setChannelCaptionResult for channel [0]
10:57:04.223 > Recv: [53 55 50 4C 41 17 09 00 00 00 8A 02 00 00 1F 00 00 00 01 00 00 00 03 16 00 00 00 4E 61 74 C4 99 C5 BC 65 6E 69 65 20 C5 9B 77 69 61 74 C5 82 61 00 53 55 50 4C 41 ]
10:57:04.237 > Receieved setChannelCaptionResult for channel [1]
10:57:04.241 > Recv: [53 55 50 4C 41 17 0A 00 00 00 EA 01 00 00 1A 00 00 00 E8 07 06 18 02 0A 39 03 0E 00 00 00 45 75 72 6F 70 65 2F 57 61 72 73 61 77 00 53 55 50 4C 41 ]
10:57:04.255 > Current local time: 1970-1-1 0:0:13      
10:57:04.259 > Clock: time diff (system-new): -1719226610 s
10:57:04.263 > Clock: new local time: 2024-6-24 10:57:16
10:57:04.266 > Recv: [53 55 50 4C 41 17 0B 00 00 00 B6 02 00 00 0A 00 00 00 01 00 00 00 00 00 00 00 00 00 53 55 50 4C 41 ]
10:57:04.276 > Received set device config result OK (1) 
10:57:04.279 > Recv: [53 55 50 4C 41 17 0C 00 00 00 AD 02 00 00 1C 00 00 00 01 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 01 00 01 53 55 50 4C 41 ]
10:57:04.294 > Received new device config
10:57:04.296 > Processing AutomaticTimeSync config      
10:57:04.299 > Sending device config result OK (1)      
10:57:04.303 > Send: [53 55 50 4C 41 17 0C 00 00 00 B7 02 00 00 0A 00 00 00 01 00 00 00 00 00 00 00 00 00 ]
10:57:04.311 > Send: [53 55 50 4C 41 ]
10:57:04.313 > Recv: [53 55 50 4C 41 17 0D 00 00 00 B3 02 00 00 03 00 00 00 01 00 00 53 55 50 4C 41 ]
10:57:04.321 > Channel[0] Set channel config succeeded (1)
10:57:04.324 > Recv: [53 55 50 4C 41 17 0E 00 00 00 AA 02 00 00 74 00 00 00 00 08 02 00 00 00 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6C 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6C 78 31 32 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 55 50 4C 41 ]        
10:57:04.361 > Received SetChannelConfig for channel 0, function 520, config type 0, config size 108
10:57:04.369 > Channel[0]: handleChannelConfig, func 520, configtype 0, configsize 108
10:57:04.375 > GPM[0]: RefreshIntervalMs 5000 ms        
10:57:04.378 > Sending channel config result OK (1)     
10:57:04.381 > Send: [53 55 50 4C 41 17 0D 00 00 00 B4 02 00 00 03 00 00 00 01 00 00 ]
10:57:04.388 > Send: [53 55 50 4C 41 ]
10:57:04.390 > Recv: [53 55 50 4C 41 17 0F 00 00 00 B3 02 00 00 03 00 00 00 01 00 01 53 55 50 4C 41 ]
10:57:04.398 > Channel[1] Set channel config succeeded (1)
10:57:04.402 > Recv: [53 55 50 4C 41 17 10 00 00 00 AA 02 00 00 74 00 00 00 01 08 02 00 00 00 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6C 78 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6C 78 31 32 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 55 50 4C 41 ]
10:57:04.439 > Received SetChannelConfig for channel 1, function 520, config type 0, config size 108
10:57:04.447 > Channel[1]: handleChannelConfig, func 520, configtype 0, configsize 108
10:57:04.453 > GPM[1]: RefreshIntervalMs 5000 ms        
10:57:04.456 > Sending channel config result OK (1)     
10:57:04.459 > Send: [53 55 50 4C 41 17 0E 00 00 00 B4 02 00 00 03 00 00 00 01 00 01 ]
10:57:04.466 > Send: [53 55 50 4C 41 ]
A tu log po Erase flash i usunieciu z cloud:

Code: Select all

11:00:54.610 > Main storage not configured
11:00:54.615 > [    33][E][vfs_api.cpp:105] open(): /littlefs/supla-dev.cfg does not exist, no permits for creation
11:00:54.624 > LittleFsConfig:: config file missing
11:00:54.627 > [Main] setting config.
11:00:54.629 > Channel[0] initial caption set to 'Natężenie światła'
11:00:54.634 > GPM[0]: DefaultUnitAfterValue "lx123"
11:00:54.638 > Channel[1] initial caption set to 'Natężenie światła'
11:00:54.643 > GPM[1]: DefaultUnitAfterValue "lx123"
11:00:54.646 > [    55][E][Wire.cpp:381] setClock(): could not acquire lock
11:00:54.653 > Supla - starting initialization
11:00:54.655 > Main storage not configured
11:00:54.658 > Security level: Supla CA
11:00:54.659 > RemoteDeviceConfig: Registering field 0x00000010
11:00:54.663 > Clock: automaticTimeSync: 1
11:00:54.677 > GPM[0]: config loaded successfully
11:00:54.680 > GPM[0]: RefreshIntervalMs 5000 ms        
11:00:54.688 > GPM[1]: config loaded successfully
11:00:54.692 > GPM[1]: RefreshIntervalMs 5000 ms        
11:00:54.694 > GUID: 5937A923697E90D3482A30C7A796AF46   
11:00:54.698 > Device name: SUPLA-ESP32
11:00:54.700 > Device software version: SDK 24.06.01-dev
11:00:54.705 > Initializing network layer
11:00:54.707 > [Wi-Fi] Network AP/hostname: SUPLA-ESP32-AC67B236E4B8
11:00:54.712 > Using Supla protocol version 23
11:00:54.715 > Current status: [5] SuplaDevice initialized
11:00:54.719 > Enter normal mode
11:00:54.719 > WiFi: establishing connection with SSID: "Dom44A"
11:00:59.582 > Channel(0) value changed to 5.00
11:00:59.586 > Channel(1) value changed to 5.00
11:01:04.632 > Warning: network is not ready (10 s)
11:01:05.837 > WiFi Station disconnected
11:01:06.683 > Connected BSSID: 32:DE:4B:9D:ED:DE
11:01:06.687 > local IP: 192.168.0.127
11:01:06.689 > subnetMask: 255.255.255.0
11:01:06.692 > gatewayIP: 192.168.0.1
11:01:06.693 > Signal strength (RSSI): -77 dBm
11:01:06.732 > Establishing encrypted connection with: svr85.supla.org (port: 2016)
11:01:08.318 > Connected via IP 192.168.0.127
11:01:08.322 > SSL error: 48, PADLOCK - Input data should be aligned
11:01:08.326 > LAST STATE ADDED: PADLOCK - Input data should be aligned (12)
11:01:08.332 > Connected to Supla Server
11:01:08.335 > Initializing SRPC (proto: 23)
11:01:08.337 > LAST STATE ADDED: Register in progress (12)
11:01:08.340 > Current status: [10] Register in progress
11:01:08.344 > Send: [53 55 50 4C 41 17 01 00 00 00 4B 00 00 00 8E 02 00 00 72 61 66 61 6C 65 6B 6B 61 6C 77 61 6B 40 77 70 2E 70 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F9 39 9D 7E 4E E6 6B 92 1E 18 BD 9A 39 B2 B2 0E 59 37 A9 23 69 7E 90 D3 48 2A 30 C7 A7 96 AF 46 53 55 50 4C 41 2D 45 53 50 33 32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ]
11:01:08.435 > CH[0], type: 9000, FuncList: 0x0, function: 520, flags: 0x8010000, online, validityTimeSec: 0, icon: 0, value: [00 00 00 00 00 00 14 40]
11:01:08.446 > Send: [00 28 23 00 00 00 00 00 00 08 02 00 00 00 00 01 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 14 40 00 ]
11:01:08.457 > CH[1], type: 9000, FuncList: 0x0, function: 520, flags: 0x8010000, online, validityTimeSec: 0, icon: 0, value: [00 00 00 00 00 00 14 40]
11:01:08.468 > Send: [01 28 23 00 00 00 00 00 00 08 02 00 00 00 00 01 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 14 40 00 ]
11:01:08.477 > Send: [53 55 50 4C 41 ]
11:01:08.725 > Recv: [53 55 50 4C 41 17 01 00 00 00 46 00 00 00 07 00 00 00 03 00 00 00 78 18 01 53 55 50 4C 41 ]
11:01:08.735 > Device registered (activity timeout 120 s, server version: 24, server min version: 1)
11:01:08.742 > LAST STATE ADDED: Registered and ready (14)
11:01:08.746 > Current status: [17] Registered and ready
11:01:08.749 > Changing activity timeout to 30 s
11:01:08.752 > Send: [53 55 50 4C 41 17 02 00 00 00 D2 00 00 00 01 00 00 00 1E ]
11:01:08.758 > Send: [53 55 50 4C 41 ]
11:01:08.760 > Send: [53 55 50 4C 41 17 03 00 00 00 80 02 00 00 1E 00 00 00 00 00 00 00 16 00 00 00 4E 61 74 C4 99 C5 BC 65 6E 69 65 20 C5 9B 77 69 61 74 C5 82 61 00 ] 
11:01:08.773 > Send: [53 55 50 4C 41 ]
11:01:08.776 > Send: [53 55 50 4C 41 17 04 00 00 00 80 02 00 00 1E 00 00 00 01 00 00 00 16 00 00 00 4E 61 74 C4 99 C5 BC 65 6E 69 65 20 C5 9B 77 69 61 74 C5 82 61 00 ] 
11:01:08.789 > Send: [53 55 50 4C 41 ]
11:01:08.793 > Send: [53 55 50 4C 41 17 05 00 00 00 E0 01 00 00 00 00 00 00 ]
11:01:08.798 > Send: [53 55 50 4C 41 ]
11:01:08.819 > Recv: [53 55 50 4C 41 17 02 00 00 00 AD 02 00 00 1B 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 55 50 4C 41 ]
11:01:08.833 > Received new device config
11:01:08.835 > RemoteDeviceConfig: Config fields mismatch (0x00000000 != 0x00000010) - sending device config for fields 0x00000010
11:01:08.847 > Sending device config result OK (1)      
11:01:08.849 > Send: [53 55 50 4C 41 17 06 00 00 00 B7 02 00 00 0A 00 00 00 01 00 00 00 00 00 00 00 00 00 ]     
11:01:08.858 > Send: [53 55 50 4C 41 ]
11:01:08.859 > Adding AutomaticTimeSync config field
11:01:08.863 > Setting AutomaticTimeSync to 1
11:01:08.865 > Send: [53 55 50 4C 41 17 07 00 00 00 AC 02 00 00 1C 00 00 00 01 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 01 00 01 ]
11:01:08.878 > Send: [53 55 50 4C 41 ]
11:01:08.880 > Recv: [53 55 50 4C 41 17 03 00 00 00 AA 02 00 00 08 00 00 00 00 08 02 00 00 00 00 00 53 55 50 4C 41 ]
11:01:08.890 > Received SetChannelConfig for channel 0, function 520, config type 0, config size 0
11:01:08.897 > Channel[0]: handleChannelConfig, func 520, configtype 0, configsize 0
11:01:08.903 > Channel[0] no config on server
11:01:08.906 > Sending channel config result OK (1)
11:01:08.909 > Send: [53 55 50 4C 41 17 08 00 00 00 B4 02 00 00 03 00 00 00 01 00 00 ]
11:01:08.917 > Send: [53 55 50 4C 41 ]
11:01:08.918 > Recv: [53 55 50 4C 41 17 04 00 00 00 AB 02 00 00 01 00 00 00 00 53 55 50 4C 41 ]
11:01:08.925 > Received ChannelConfigFinished for channel [0]
11:01:08.929 > Send: [53 55 50 4C 41 17 09 00 00 00 A9 02 00 00 74 00 00 00 00 08 02 00 00 00 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6C 78 31 32 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6C 78 31 32 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ]
11:01:08.965 > Send: [53 55 50 4C 41 ]
11:01:08.968 > Channel[0]: Sending channel config
11:01:08.970 > Recv: [53 55 50 4C 41 17 05 00 00 00 AA 02 00 00 08 00 00 00 01 08 02 00 00 00 00 00 53 55 50 4C 41 ]
11:01:08.979 > Received SetChannelConfig for channel 1, function 520, config type 0, config size 0
11:01:08.986 > Channel[1]: handleChannelConfig, func 520, configtype 0, configsize 0
11:01:08.993 > Channel[1] no config on server
11:01:08.995 > Sending channel config result OK (1)     
11:01:08.999 > Send: [53 55 50 4C 41 17 0A 00 00 00 B4 02 00 00 03 00 00 00 01 00 01 ]
11:01:09.005 > Send: [53 55 50 4C 41 ]
11:01:09.007 > Recv: [53 55 50 4C 41 17 06 00 00 00 AB 02 00 00 01 00 00 00 01 53 55 50 4C 41 ]
11:01:09.015 > Received ChannelConfigFinished for channel [1]
11:01:09.018 > Send: [53 55 50 4C 41 17 0B 00 00 00 A9 02 00 00 74 00 00 00 01 08 02 00 00 00 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6C 78 31 32 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6C 78 31 32 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ]
11:01:09.054 > Send: [53 55 50 4C 41 ]
11:01:09.056 > Channel[1]: Sending channel config       
11:01:09.060 > Recv: [53 55 50 4C 41 17 07 00 00 00 DC 00 00 00 03 00 00 00 1E 0A F0 53 55 50 4C 41 ]
11:01:09.067 > Activity timeout set to 30 s
11:01:09.070 > Recv: [53 55 50 4C 41 17 08 00 00 00 8A 02 00 00 1F 00 00 00 00 00 00 00 03 16 00 00 00 4E 61 74 C4 99 C5 BC 65 6E 69 65 20 C5 9B 77 69 61 74 C5 82 61 00 53 55 50 4C 41 ]
11:01:09.085 > Receieved setChannelCaptionResult for channel [0]
11:01:09.089 > Recv: [53 55 50 4C 41 17 09 00 00 00 8A 02 00 00 1F 00 00 00 01 00 00 00 03 16 00 00 00 4E 61 74 C4 99 C5 BC 65 6E 69 65 20 C5 9B 77 69 61 74 C5 82 61 00 53 55 50 4C 41 ]
11:01:09.104 > Receieved setChannelCaptionResult for channel [1]
11:01:09.109 > Recv: [53 55 50 4C 41 17 0A 00 00 00 EA 01 00 00 1A 00 00 00 E8 07 06 18 02 0B 01 08 0E 00 00 00 45 75 72 6F 70 65 2F 57 61 72 73 61 77 00 53 55 50 4C 41 ]
11:01:09.122 > Current local time: 1970-1-1 0:0:14      
11:01:09.125 > Clock: time diff (system-new): -1719226854 s
11:01:09.129 > Clock: new local time: 2024-6-24 11:1:8  
11:01:09.133 > Recv: [53 55 50 4C 41 17 0B 00 00 00 B6 02 00 00 0A 00 00 00 01 00 00 00 00 00 00 00 00 00 53 55 50 4C 41 ]
11:01:09.142 > Received set device config result OK (1) 
11:01:09.146 > Recv: [53 55 50 4C 41 17 0C 00 00 00 AD 02 00 00 1C 00 00 00 01 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 01 00 01 53 55 50 4C 41 ]
11:01:09.160 > Received new device config
11:01:09.163 > Processing AutomaticTimeSync config      
11:01:09.167 > Sending device config result OK (1)      
11:01:09.169 > Send: [53 55 50 4C 41 17 0C 00 00 00 B7002 00 00 0A 00 00 00 01 00 00 00 00 00 00 00 00 00 ]     
11:01:09.177 > Send: [53 55 50 4C 41 ]
11:01:09.179 > Recv: [53 55 50 4C 41 17 0D 00 00 00 B3 02 00 00 03 00 00 00 01 00 00 53 55 50 4C 41 ]
11:01:09.187 > Channel[0] Set channel config succeeded (1)
11:01:09.191 > Recv: [53 55 50 4C 41 17 0E 00 00 00 AA 02 00 00 74 00 00 00 00 08 02 00 00 00 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6C 78 31 32 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6C 78 31 32 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 55 50 4C 41 ]        
11:01:09.228 > Received SetChannelConfig for channel 0, function 520, config type 0, config size 108
11:01:09.237 > Channel[0]: handleChannelConfig, func 520, configtype 0, configsize 108
11:01:09.242 > GPM[0]: RefreshIntervalMs 5000 ms        
11:01:09.245 > Sending channel config result OK (1)     
11:01:09.248 > Send: [53 55 50 4C 41 17 0D 00 00 00 B4 02 00 00 03 00 00 00 01 00 00 ]
11:01:09.255 > Send: [53 55 50 4C 41 ]
11:01:09.259 > Recv: [53 55 50 4C 41 17 0F 00 00 00 B3 02 00 00 03 00 00 00 01 00 01 53 55 50 4C 41 ]
11:01:09.268 > Channel[1] Set channel config succeeded (1)
11:01:09.272 > Recv: [53 55 50 4C 41 17 10 00 00 00 AA 02 00 00 74 00 00 00 01 08 02 00 00 00 6C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6C 78 31 32 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6C 78 31 32 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 53 55 50 4C 41 ]        
11:01:09.309 > Received SetChannelConfig for channel 1, function 520, config type 0, config size 108
11:01:09.316 > Channel[1]: handleChannelConfig, func 520, configtype 0, configsize 108
11:01:09.322 > GPM[1]: RefreshIntervalMs 5000 ms        
11:01:09.326 > Sending channel config result OK (1)
11:01:09.329 > Send: [53 55 50 4C 41 17 0E 00 00 00 B4 02 00 00 03 00 00 00 01 00 01 ]
11:01:09.335 > Send: [53 55 50 4C 41 ]
11:01:34.303 > Send: [53 55 50 4C 41 17 0F 00 00 00 28 00 00 00 10 00 00 00 0D 52 79 66 00 00 00 00 FD DF 02 00 00 00 00 00 ]
11:01:34.314 > Send: [53 55 50 4C 41 ]
11:01:34.427 > Recv: [53 55 50 4C 41 17 11 00 00 00 32 00 00 00 10 00 00 00 ED 35 79 66 00 00 00 00 08 BC 0C 00 00 00 00 00 53 55 50 4C 41 ]
11:01:59.309 > Send: [53 55 50 4C 41 17 10 00 00 00 28 00 00 00 10 00 00 00 26 52 79 66 00 00 00 00 A8 F7 02 00 00 00 00 00 ]
11:01:59.319 > Send: [53 55 50 4C 41 ]
11:01:59.414 > Recv: [53 55 50 4C 41 17 12 00 00 00 32 00 00 00 10 00 00 00 06 36 79 66 00 00 00 00 2B BD 0C 00 00 00 00 00 53 55 50 4C 41 ]
11:02:24.312 > Send: [53 55 50 4C 41 17 11 00 00 00 28 00 00 00 10 00 00 00 3F 52 79 66 00 00 00 00 A2 0A 03 00 00 00 00 00 ]
11:02:24.323 > Send: [53 55 50 4C 41 ]
11:02:24.500 > Recv: [53 55 50 4C 41 17 13 00 00 00 32 00 00 00 10 00 00 00 1F 36 79 66 00 00 00 00 2F CE 0C 00 00 00 00 00 53 55 50 4C 41 ]
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

[email protected] wrote: Mon Jun 24, 2024 9:02 am No to po takich akrobacjach śmiem twierdzić, że coś bruździ zapis configa na urządzeniu.

Poniżej log, po usunięciu urządzenia, jak widać w kodzie mam jednostkę "lx 123" a Cloud widzi "lx"
Konfiguracja kanałów jest trzymana na urządzeniu.
Serwer inicjalizuje config na podstawie defaultów, tylko przy pierwszym dodaniu kanału do serwera. Późniejsze zmiany defaulta bez usuwania kanału z serwera i czyszczenia configa po stronie urządzenia, nie będą autoamtycznie odzwierciedlone.

Urządzenie zapisuje sobie config z serwera i po usunięciu z Clouda, podaje ten stary config przy rejestracji (bo serwer nie ma, więc urządzenie ustawia to co ma u siebie).

Urządzenie tak robi, bo config możesz też np. ustawić w trybie cfg mode na www urządzenia.

Tak, wiem, że to jest skomplikowane ;). Ale to stawrza problemy tylko w trakcie rozwoju softu, gdy piszesz obsługę nowych kanałów. Gdy jest wszystko skończone i poprawnie ustawione, to będzie to działać poprawnie.

Także, jeśli chcesz wyczyścic "stan" urządzenia, to musisz je usunąć z Clouda ORAZ:
1. wyczyścić mu ręcznie flasha lub
2. dodać jakąś procedurę "reset to factory defaults" i podpiąć ją pod jakiś przycisk na urządzniu i ją wywoływać
Najlepsze suple dla Twojego domu :mrgreen:
[email protected]
Posts: 1585
Joined: Mon Feb 06, 2023 8:56 am
Has thanked: 18 times
Been thanked: 26 times

Post

klew wrote: Mon Jun 24, 2024 9:21 am
Konfiguracja kanałów jest trzymana na urządzeniu.
Serwer inicjalizuje config na podstawie defaultów, tylko przy pierwszym dodaniu kanału do serwera. Późniejsze zmiany defaulta bez usuwania kanału z serwera i czyszczenia configa po stronie urządzenia, nie będą autoamtycznie odzwierciedlone.

Urządzenie zapisuje sobie config z serwera i po usunięciu z Clouda, podaje ten stary config przy rejestracji (bo serwer nie ma, więc urządzenie ustawia to co ma u siebie).

Urządzenie tak robi, bo config możesz też np. ustawić w trybie cfg mode na www urządzenia.

Tak, wiem, że to jest skomplikowane ;). Ale to stawrza problemy tylko w trakcie rozwoju softu, gdy piszesz obsługę nowych kanałów. Gdy jest wszystko skończone i poprawnie ustawione, to będzie to działać poprawnie.

Także, jeśli chcesz wyczyścic "stan" urządzenia, to musisz je usunąć z Clouda ORAZ:
1. wyczyścić mu ręcznie flasha lub
2. dodać jakąś procedurę "reset to factory defaults" i podpiąć ją pod jakiś przycisk na urządzniu i ją wywoływać
Dzięki za wyjaśnienia. Pewnie dopisze sobie czyszczenie configa za każdym razem.
klew wrote: Mon Jun 24, 2024 9:21 am Urządzenie zapisuje sobie config z serwera i po usunięciu z Clouda, podaje ten stary config przy rejestracji (bo serwer nie ma, więc urządzenie ustawia to co ma u siebie).


W jakim momencie w czasie? Domyślam się, że po przesłaniu kanałów do Cloud, no ale to jest ten sam config co w kodzie.

Jednak jedna rzecz mi nie daje spokoju, rozumiem sens trzymania we danych we flashu i to że INITIAL to jest wykonywane raz, ale nie rozumiem, czemu po zmianie kodu, usunięciu z Cloud nie bierze wartości z kodu pod uwagę tylko używa tego z flasha?! To raczej nie powinno tak działać, a powinno nadpisać flash bo KOD się zmienił i został wgrany ponownie - oczywiście gdy kod się nie zmienił obecne zachowanie jest racjonalne.
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

[email protected] wrote: Mon Jun 24, 2024 9:33 am Jednak jedna rzecz mi nie daje spokoju, rozumiem sens trzymania we danych we flashu i to że INITIAL to jest wykonywane raz, ale nie rozumiem, czemu po zmianie kodu, usunięciu z Cloud nie bierze wartości z kodu pod uwagę tylko używa tego z flasha?! To raczej nie powinno tak działać, a powinno nadpisać flash bo KOD się zmienił i został wgrany ponownie - oczywiście gdy kod się nie zmienił obecne zachowanie jest racjonalne.
Konfiguracja KPOP/KLOP ma część parametrów z wartościami domyślnymi oraz cześć z tym co ustawił user.
Domyślne są wstawiane używane do inicjalizacji parametrów usera, tylko gdy nie ma ustawionych parametrów usera.

Urządzenie przechowuje zarówno domyślne, jak i usera. W ogólności user może zrobić konfgurację przez www urządzenia i tam sobie ustawić np jednostkę na "klx".
User na www nie powinien móc zmieniać wartości domyślnych, bo to powinno być ustawiane przez soft (to programista określa czym jest jego kanał KPOP - np. czujnikem światła, i określa domyślne jednostki "lx").

Urządzenie nie wie skąd ma config w swojej pamięci, ale go ma ;). Więc gdy serwer go nie ma (po usunięciu z Clouda), to wysyła go do serwera.

W kodzie możesz też nadpisać te wartości usera, ale tego bym nie robił, bo wtedy zmiany z poziomu Clouda przestaną działać i urządzenie będzie je za każdym razem nadpisywać.
Najlepsze suple dla Twojego domu :mrgreen:
[email protected]
Posts: 1585
Joined: Mon Feb 06, 2023 8:56 am
Has thanked: 18 times
Been thanked: 26 times

Post

klew wrote: Mon Jun 24, 2024 9:47 am
[email protected] wrote: Mon Jun 24, 2024 9:33 am Jednak jedna rzecz mi nie daje spokoju, rozumiem sens trzymania we danych we flashu i to że INITIAL to jest wykonywane raz, ale nie rozumiem, czemu po zmianie kodu, usunięciu z Cloud nie bierze wartości z kodu pod uwagę tylko używa tego z flasha?! To raczej nie powinno tak działać, a powinno nadpisać flash bo KOD się zmienił i został wgrany ponownie - oczywiście gdy kod się nie zmienił obecne zachowanie jest racjonalne.
Konfiguracja KPOP/KLOP ma część parametrów z wartościami domyślnymi oraz cześć z tym co ustawił user.
Domyślne są wstawiane używane do inicjalizacji parametrów usera, tylko gdy nie ma ustawionych parametrów usera.

Urządzenie przechowuje zarówno domyślne, jak i usera. W ogólności user może zrobić konfgurację przez www urządzenia i tam sobie ustawić np jednostkę na "klx".
User na www nie powinien móc zmieniać wartości domyślnych, bo to powinno być ustawiane przez soft (to programista określa czym jest jego kanał KPOP - np. czujnikem światła, i określa domyślne jednostki "lx").

Urządzenie nie wie skąd ma config w swojej pamięci, ale go ma ;). Więc gdy serwer go nie ma (po usunięciu z Clouda), to wysyła go do serwera.

W kodzie możesz też nadpisać te wartości usera, ale tego bym nie robił, bo wtedy zmiany z poziomu Clouda przestaną działać i urządzenie będzie je za każdym razem nadpisywać.
Czyli podsumowując :
* initial caption/ unit - mogą zostać zapisane tylko przy dodaniu kanału - OK
* przed każdym użyciem KPOP należało by zrobić Erase flash. aby upewnić się , że nie ma tam poprzedniego configa we flashu- OK
* jeśli chce żeby urządzenie załapało zmiany z kodu powinien programistycznie wyczyścić dane z flasha przez inicjalizacja kanałów, wtedy urządzenie wyśle configuracje do Cloud, a po powrócie z Cloud zostanie zapisana we Flashu? - logiczne, aczkolwiek z perspektywy programisty kompletnie niewidoczne w kodzie, dopiero trochę w logach jak już powiedziałeś , że tak to dział

wg mnie aktualny kod to jest świętość i zawsze ale to zawsze urządzenie powinno wziąć co jest w kodzie i jeśli jest już coś we flashu to to zaktualizować przed strzałem do Cloud, natomiast jeśli w Cloud jest już urządzenie i posiada inna konfiguracje niż client wysyła to wtedy OK niech Cloud zignoruje dane requestu
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

[email protected] wrote: Mon Jun 24, 2024 10:18 am wg mnie aktualny kod to jest świętość i zawsze ale to zawsze urządzenie powinno wziąć co jest w kodzie i jeśli jest już coś we flashu to to zaktualizować przed strzałem do Cloud, natomiast jeśli w Cloud jest już urządzenie i posiada inna konfiguracje niż client wysyła to wtedy OK niech Cloud zignoruje dane requestu

wydaje mi się. ze to się nie pogryzie z ustawieniami przesyłanymi z Clouda
Wartość "default" dla KPOP jest zawsze brana z kodu i się aktualizuje w Cloud (co widzisz, po kliknięciu "Przywróć domyślne").
Tylko wartość aktualna jest brana z flasha lub z serwera.
Urządzenie rejestrując się w Cloud nistety nie wie, czy było na serwerze czy go nie było. Nie wie też jakie jest źródło parametrów zapisanych we flashu.

Traktuj urządzenie, jako coś, co posiada swój stan. Usuniecie go z serwera, nie kasuje niczego na urządzeniu.
To co chciałbyś osiągnąć powinno być zrobione poprzez dwie akcje: usunięcie z serwera ORAZ przywrócenie ustawień fabrycznych na urządzeniu.
Ty aktulnie tylko usuwasz z serwera, więc stan urządzenia jest zachowany.
Najlepsze suple dla Twojego domu :mrgreen:
[email protected]
Posts: 1585
Joined: Mon Feb 06, 2023 8:56 am
Has thanked: 18 times
Been thanked: 26 times

Post

klew wrote: Mon Jun 24, 2024 10:22 am
[email protected] wrote: Mon Jun 24, 2024 10:18 am wg mnie aktualny kod to jest świętość i zawsze ale to zawsze urządzenie powinno wziąć co jest w kodzie i jeśli jest już coś we flashu to to zaktualizować przed strzałem do Cloud, natomiast jeśli w Cloud jest już urządzenie i posiada inna konfiguracje niż client wysyła to wtedy OK niech Cloud zignoruje dane requestu

wydaje mi się. ze to się nie pogryzie z ustawieniami przesyłanymi z Clouda
Wartość "default" dla KPOP jest zawsze brana z kodu i się aktualizuje w Cloud (co widzisz, po kliknięciu "Przywróć domyślne").
Tylko wartość aktualna jest brana z flasha lub z serwera.
Urządzenie rejestrując się w Cloud nistety nie wie, czy było na serwerze czy go nie było. Nie wie też jakie jest źródło parametrów zapisanych we flashu.

Traktuj urządzenie, jako coś, co posiada swój stan. Usuniecie go z serwera, nie kasuje niczego na urządzeniu.
To co chciałbyś osiągnąć powinno być zrobione poprzez dwie akcje: usunięcie z serwera ORAZ przywrócenie ustawień fabrycznych na urządzeniu.
Ty aktulnie tylko usuwasz z serwera, więc stan urządzenia jest zachowany.
Ale czym jest flashowanie jak nie zmiana stanu? I tak rozumiem, że jest kod programu i jest storage, no ale istniejące zachowanie jest dziwne, a na pewno nie wynika z SD więc zrozumiałem dopiero pokazując, że coś nie gra i rozmawiająć z Tobą.

Poradzę sobie jakoś programistycznie z czyszczeniem , ale myślę, że te kwestie nie powinny zostać zamiecione pod dywan i albo udokumentowane gdzieś albo inaczej obsłużone ;) Inne musi być zachowanie urządzenia programowanego raz jak produkty Zamela, inne programowanego tak aby było konfigurowalne ( GG i generalnie GUI ) a inne takiego zaprogramowanego bez możliwości zmian - jako moje.

Dzięki za merytoryczną dyskusję ;)
User avatar
Robert Błaszczak
Posts: 5222
Joined: Sat Dec 22, 2018 8:55 pm
Location: Zielona Góra
Has thanked: 37 times
Been thanked: 27 times

Post

[email protected] wrote: Mon Jun 24, 2024 10:18 am [...]
* przed każdym użyciem KPOP należało by zrobić Erase flash. aby upewnić się , że nie ma tam poprzedniego configa we flashu- OK
* jeśli chce żeby urządzenie załapało zmiany z kodu powinien programistycznie wyczyścić dane z flasha przez inicjalizacja kanałów, wtedy urządzenie wyśle configuracje do Cloud, a po powrócie z Cloud zostanie zapisana we Flashu? - logiczne, aczkolwiek z perspektywy programisty kompletnie niewidoczne w kodzie, dopiero trochę w logach jak już powiedziałeś , że tak to dział
[...]
Nie wiem jak to jest w PlatformIO, ale w Arduino IDE można zaznaczyć w ustawieniach modułu, aby przy każdym wgrywaniu czyścił cały flash.
arduino-erase-flash.jpg
You do not have the required permissions to view the files attached to this post.
Pozdrawiam
Robert Błaszczak


Moja prywatna strona: www.blaszczak.pl
User avatar
klew
Posts: 13908
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 134 times
Been thanked: 137 times

Post

[email protected] wrote: Mon Jun 24, 2024 10:32 am Ale czym jest flashowanie jak nie zmiana stanu? I tak rozumiem, że jest kod programu i jest storage, no ale istniejące zachowanie jest dziwne, a na pewno nie wynika z SD więc zrozumiałem dopiero pokazując, że coś nie gra i rozmawiająć z Tobą.

Poradzę sobie jakoś programistycznie z czyszczeniem , ale myślę, że te kwestie nie powinny zostać zamiecione pod dywan i albo udokumentowane gdzieś albo inaczej obsłużone ;) Inne musi być zachowanie urządzenia programowanego raz jak produkty Zamela, inne programowanego tak aby było konfigurowalne ( GG i generalnie GUI ) a inne takiego zaprogramowanego bez możliwości zmian - jako moje.

Dzięki za merytoryczną dyskusję ;)
Ustawienie "aktualne" jednostki jest zapisane we flashu i tego nie modyfikujesz swoim programem. Także tego stanu nie zmianiasz.
Jeśli chcesz ten stan wyczyścić, to wyczyść cały flash.
Ja nie mówię, że nie możesz zmianiać "stanu", tylko że ten stan jest przechowywany. Zmiana softu, go sama nie przestawi. Wartości domyślne zmienisz softem, ale nie te zapisane w konfiguracji (a przynajmniej nie powinieneś tych "aktaulnych" w sofcie jakoś nadpisywać).

Analogicznie jak masz WiFi, serwer itd. zapisane we flashu, to zmiana softu nie powinna ich modyfikować, ani kasować. Aktualna jednostka kanału KPOP jest jak nazwa sieic WiFi. Chyba nie chciałbyś, aby każde wgranie/aktualizacja softu czyściła wszystkie ustawienia? :)

KPOP-y nie są używane w urządzeniach komercyjnych. Natomiast już w GG są i tam też nie wyborażam sobie, aby aktualizacja softu miała wyszstko z urządzenia kasować :P.

To, że ta "ustawiona jednostka" się nie kasuje, wynika właśnie z tego, że urządzenia powinny być konfigurowalne (GG i generalni GUI). Gdybyś do swojego KPOP dodał do www ustawienie jednostki, to ten formularz ustawiałby "ustawioną jednostkę", a nie "default", który jest zaszyty w kodzie. Gdybyś miał to na www urządzenia, to widziałbyś tam jaka jednostka jest ustawiona i mógłbyś ją tam zmieniać, a zmiany te trafiałyby też do Clouda.
Najlepsze suple dla Twojego domu :mrgreen:
[email protected]
Posts: 1585
Joined: Mon Feb 06, 2023 8:56 am
Has thanked: 18 times
Been thanked: 26 times

Post

klew wrote: Mon Jun 24, 2024 10:40 am Chyba nie chciałbyś, aby każde wgranie/aktualizacja softu czyściła wszystkie ustawienia? :)
Tak w zasadzie to chciałem :D No ale dobra, wszystko jasne, trzeba trochę inaczej do tego podejść.

Return to “supla-dev”