Segnetics

Вернуться   Segnetics > Форум Segnetics > Вопросы о программировании

Вопросы о программировании Вопросы, касающиеся программирования на FBD

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2018, 23:50   #1
viaduc
Новичок
 
Регистрация: Dec 2016
Сообщения: 13
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Температура наружного воздуха из интернета

Автоматика вентиляции построена на 2G(управление) и Trim(визуализация) подключенных через роутер(с выходом в интернет).
Может кто-то уже делал получение температуры из интернета? Работает? Как это реализовать?
Спасибо.
viaduc вне форума   Ответить с цитированием
Старый 12.04.2018, 10:47   #2
Gromov
Уволен из Сегнетикс
 
Регистрация: Nov 2015
Адрес: CПб/ВЛГ
Сообщения: 0
Благодарил(а): 0 раз(а)
Поблагодарили: 1 раз в 1 сообщении
По умолчанию Ответ: Температура наружного воздуха из интернета

Ну я бы делал так:
Пишете скрипт, который через curl, например, получает от api какого-нибудь погодного сайта (яндекс.погода, гисметео, и так далее), информацию, затем от туда, можно прям через grep получить действующее значение температуры и выводить его в шаред мемори, от туда в лоджик.

Явный недостаток: изменение версии api может привести к невозможности прочитать температуру. Curl тоже придётся отдельно поставить на контроллер, так как в заводской сборке его нет, но это легко.


__________________
В сегнетиксе не работаю с самого начала 2019 года.
Gromov вне форума   Ответить с цитированием
Старый 05.01.2024, 11:43   #3
vardan0808
Новичок
 
Регистрация: Dec 2016
Сообщения: 5
Благодарил(а): 9 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Температура наружного воздуха из интернета

Добрый день, меня тоже интересует эта тема, прошу поддержать опытных коллег.
Поскольку не имею опыта в программировании, с помощью GPT написал небольшой скрипт weather2_fixed.sh, который умеет считывать данные с API openweathermap.org и записывает в файл weather_data.json. Поместил скрипт в /projects/weather/ , но он запускается пока только вручную, cron почему-то не смог его запустить по расписанию. Чтобы запустить скрипт вручную я подключаюсь через WinSCP, затем запускаю Putty и из командной строки мне необходимо сначала ввести пароль, затем перейти в директорию где находится скрипт, затем ввести bash weather2_fixed.sh. При этом скрипт начинает работать и с указанной периодичностью обновляет данные. Если закрыть сессию Putty, процесс прерывается.
Теперь вопрос: как заставить этот скрипт запускаться автоматически либо с cron, либо по автозапуску и записывать считанные данные в соответствующий shmem ?

Код:
#!/bin/bash

while true; do
    # Отправляем запрос к API погоды и сохраняем ответ в файл
    wget -O weather_data.json "http://api.openweathermap.org/data/2.5/weather?q=City&appid=YOUR_API_KEY&units=metric"" 

    # Извлекаем значение температуры из файла с помощью grep
    temperature=$(grep -o '"temp":[0-9.]*' weather_data.json | awk -F':' '{print $2}')

    # Выводим значение температуры
    echo "Текущая температура: $temperature градусов Цельсия"

    # Записываем значение температуры в файл (например, temperature.txt)
    echo "$temperature" > temperature.txt

    # Пауза на 30 минут перед следующим запросом
    sleep 1800  # 1800 секунд = 30 минут
done
vardan0808 вне форума   Ответить с цитированием
Старый 06.01.2024, 13:08   #4
Ilya J.
Сотрудник Сегнетикс
 
Аватара для Ilya J.
 
Регистрация: Mar 2016
Адрес: SPb
Сообщения: 4 331
Благодарил(а): 0 раз(а)
Поблагодарили: 255 раз(а) в 251 сообщениях
По умолчанию Ответ: Температура наружного воздуха из интернета

Цитата:
Сообщение от vardan0808 Посмотреть сообщение
ставить этот скрипт запускаться автоматически либо с cron, либо по автозапуску
Стр.35, работу вашего скрипта не берусь оценивать,но попробуйте так, и возможно не хватает прав для запуска.


__________________
Если ничто другое не помогает, прочтите, наконец, инструкцию
Ilya J. вне форума   Ответить с цитированием
Благодарность от:
Старый 06.01.2024, 22:17   #5
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 784
Благодарил(а): 12 раз(а)
Поблагодарили: 194 раз(а) в 190 сообщениях
По умолчанию Ответ: Температура наружного воздуха из интернета

Совершенно неинтересно решать абсолютно бесполезную задачу. Даже в одном небольшом поселке температуры могут различаться на несколько градусов.


__________________
Не являюсь сотрудником Segnetics !!!
ATS вне форума   Ответить с цитированием
Старый 09.01.2024, 10:56   #6
vardan0808
Новичок
 
Регистрация: Dec 2016
Сообщения: 5
Благодарил(а): 9 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Температура наружного воздуха из интернета

Цитата:
Сообщение от Ilya J. Посмотреть сообщение
Стр.35, работу вашего скрипта не берусь оценивать, но попробуйте так, и возможно не хватает прав для запуска.
Большое спасибо за поддержку. Указанный в инструкции метод "start after" сразу же заработал на отформатированном (пустом) SMH4. Но после загрузки проекта в контроллер, перестал работать. Перенос в из "start after" в "start before" решил это проблему.
Осталось найти метод (скрипт, команду) записи значения температуры из json файла в shmem переменную.
vardan0808 вне форума   Ответить с цитированием
Старый 09.01.2024, 11:07   #7
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 085
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Температура наружного воздуха из интернета

Цитата:
Сообщение от vardan0808 Посмотреть сообщение
Осталось найти метод (скрипт, команду) записи значения температуры из json файла в shmem переменную.
В справке этого точно нет?


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 09.01.2024, 13:14   #8
vardan0808
Новичок
 
Регистрация: Dec 2016
Сообщения: 5
Благодарил(а): 9 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Температура наружного воздуха из интернета

Мои познания в этом очень ограничены - нейросеть генерировала следующие подходы на базе справки:

Код:
#!/bin/bash

while true; do
    # Читаем значение температуры из файла weather_data.json
    temperature=$(grep -o '"temp":[0-9.]*' weather_data.json | awk -F':' '{print $2}')

    # Создаем объект Shmem и сохраняем значение температуры
    shmem=$(new Shmem)
    shmem.saveVariables([{ name: "temperature", value: "$temperature" }])

    # Пауза перед следующим обновлением
    sleep 300  # Например, ждем 5 минут перед следующим обновлением
done
Код:
#!/bin/bash

# Функция для выполнения запроса авторизации
function authenticate {
    local login=$1
    local password=$2
    
    wget -qO- "http://192.168.2.222/login.php?login=$login&password=$password" &> /dev/null
}

# Функция для отправки данных в shmem
function send_to_shmem {
    local name=$1
    local value=$2
    
    echo "Trying to send: Name - $name, Value - $value"  # Добавим вывод данных для отладки

    wget -qO- "http://192.168.2.222/shmem.php?cmd=setvariables&variables=[{\"name\":\"$name\",\"value\":$value}]" &> /dev/null
}

# Ваши учетные данные для авторизации
login="root"
password="segnetics"

# Авторизация
authenticate "$login" "$password"
vardan0808 вне форума   Ответить с цитированием
Старый 09.01.2024, 13:55   #9
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 085
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Температура наружного воздуха из интернета

Цитата:
Сообщение от vardan0808 Посмотреть сообщение
Мои познания в этом очень ограничены - нейросеть генерировала следующие подходы на базе справки:
Нейросеть справку почитала, это я понял. Вы-то лично её изучали?


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 09.01.2024, 14:15   #10
vardan0808
Новичок
 
Регистрация: Dec 2016
Сообщения: 5
Благодарил(а): 9 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Температура наружного воздуха из интернета

Да, создание веб-страницы по инструкции осилил, но дальше не пошло.
vardan0808 вне форума   Ответить с цитированием
Старый 09.01.2024, 14:53   #11
ATS
Senior Member
 
Регистрация: Aug 2013
Сообщения: 3 784
Благодарил(а): 12 раз(а)
Поблагодарили: 194 раз(а) в 190 сообщениях
По умолчанию Ответ: Температура наружного воздуха из интернета

Цитата:
Сообщение от Arsie Посмотреть сообщение
Нейросеть справку почитала
Блин, надо присмотреться к ИИ.

Интересно кто теперь сапиенс


__________________
Не являюсь сотрудником Segnetics !!!
ATS вне форума   Ответить с цитированием
Старый 09.01.2024, 14:56   #12
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 085
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Температура наружного воздуха из интернета

Цитата:
Сообщение от ATS Посмотреть сообщение
Блин, надо присмотреться к ИИ.

Интересно кто теперь сапиенс
Ага, я тож первое, что подумал - это рождается новый класс программистов.


PS. Но в итоге нейросеть рано или поздно запрограммирует своего потомка, а "программист" этого даже понять не сможет. Думаю, именно это будет началом конца, а не Скайнет


Добавлено через 42 секунды


Цитата:
Сообщение от vardan0808 Посмотреть сообщение
Да, создание веб-страницы по инструкции осилил, но дальше не пошло.
Там есть пример чтения или записи шмема?


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 09.01.2024, 15:19   #13
vardan0808
Новичок
 
Регистрация: Dec 2016
Сообщения: 5
Благодарил(а): 9 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Температура наружного воздуха из интернета

Там пример записи шмема из веб страницы, но мне нужно без веб страницы
vardan0808 вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 00:35.


Версия vBulletin: 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2024