• Как связать ESP8266 и Алису?

    @FlashDok Автор вопроса
    По-хорошему надо делать, чтобы через Алису можно было разговаривать по домофону и получилось какое-то законченное устройство, которое можно было поставить параллельно штатному домофону или вместо него. Тут я пока не знаю что предложить.

    Единственное как можно это реализовать и то не факт что это точно работает, модуль для домофона подключаем по блютус к колонке и и используем как динамик, но звук с алисы уже скорей всего не снять (микрофон), также не знаю есть ли возможность держать блютус у Алисы постоянно включенным (мб как-то с помощью сценария его включать через навык и MQTT)
    Ответ написан
    1 комментарий
  • Правильны ли показания с датчиков ENS160+AHT21?

    @FlashDok Автор вопроса
    Изучение datasheet дало плоды.

    Нужно переключить режим датчика с IDLE на режим работы сенсора
    bus.write_i2c_block_data(ENS160_ADDRESS, 0x10, [0x02])
    Ответ написан
    Комментировать
  • Как нарисовать график chart.js?

    @FlashDok Автор вопроса
    Получилось сделать так.
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/chartjs-adapter-date-fns/dist/chartjs-adapter-date-fns.bundle.min.js"></script>
        <script>
        fetch('../data.json')
          .then(response => response.json())
          .then(data => {
            const labels = data.map(obj => obj.time);
            const tempData = data.map(obj => obj.temperature);
            const humData = data.map(obj => obj.humidity);
    
            const ctx = document.getElementById('myChart').getContext('2d');
            const chart = new Chart(ctx, {
                type: 'line',
                data: {
                    labels: labels,
                    datasets: [
                    {
                        label: 'Temperature',
                        data: tempData,
                        fill: false,
                        borderColor: 'rgb(255, 99, 132)',
                        tension: 0.1
                    },
                    {
                        label: 'Humidity',
                        data: humData,
                        fill: false,
                        borderColor: 'rgb(54, 162, 235)',
                        tension: 0.1
                    }
                    ]
                },
                options: {
                    scales: {
                    x: {
                        type: 'time',
                        
                        time: {
                        parser: 'yyyy-MM-dd HH:mm:ss.SSSSSS',
                        tooltipFormat: 'l\l HH:mm:ss.SSS',
                        unit: 'second',
                        round: 'second',
                        displayFormats: {
                            second: 'HH:mm:ss'
                        }
                        },
                        ticks: {
                        source: 'auto'
                        }
                    }
                    }
                }
            });
          })
          .catch(error => console.error(error));
        </script>
    </head>
    <body>
        <h1>DATA</h1>
        <p><span class="icon temperature-icon"></span>Temperature: {{ temperature }} C</p>
        <p><span class="icon humidity-icon"></span>Humidity: {{ humidity }} %</p>
        <p>Last Updated: {{ current_time }}</p>
        <canvas id="myChart"></canvas>
    </body>
    </html>
    Ответ написан
    Комментировать
  • Почему перезаписывается весь list в class?

    @FlashDok Автор вопроса
    Решение
    class Checker
        {
            public int id;
            public List<Checker> list = new List<Checker>();
    
            public void add(Checker check)
            {
                list.Add(check);
            }
        }
    
        class Check
        {
            Checker checker = new Checker();
            public void test()
            {
                int[] ints = { 1, 2, 3 };
                foreach (int i in ints)
                {
                    var checkerChild = new Checker();
                    checkerChild.id = i;
                    checker.add(checkerChild);
                }
            }
        }
    Ответ написан
    Комментировать