daylightsensor: Add Qt6 support

master
Simon Stürz 2025-08-07 15:57:38 +02:00
parent b9c8be43db
commit 783a785838
3 changed files with 14 additions and 16 deletions

View File

@ -1,11 +1,9 @@
include(../plugins.pri) include(../plugins.pri)
QT += network QT *= network
TARGET = $$qtLibraryTarget(nymea_integrationplugindaylightsensor)
SOURCES += \ SOURCES += \
integrationplugindaylightsensor.cpp \ integrationplugindaylightsensor.cpp
HEADERS += \ HEADERS += \
integrationplugindaylightsensor.h \ integrationplugindaylightsensor.h

View File

@ -1,6 +1,6 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* Copyright 2013 - 2020, nymea GmbH * Copyright 2013 - 2025, nymea GmbH
* Contact: contact@nymea.io * Contact: contact@nymea.io
* *
* This file is part of nymea. * This file is part of nymea.
@ -30,7 +30,8 @@
#include "plugininfo.h" #include "plugininfo.h"
#include "integrationplugindaylightsensor.h" #include "integrationplugindaylightsensor.h"
#include "network/networkaccessmanager.h"
#include <network/networkaccessmanager.h>
#include <QUrlQuery> #include <QUrlQuery>
#include <QNetworkReply> #include <QNetworkReply>
@ -56,7 +57,7 @@ void IntegrationPluginDaylightSensor::discoverThings(ThingDiscoveryInfo *info)
QNetworkRequest request(QUrl("http://ip-api.com/json")); QNetworkRequest request(QUrl("http://ip-api.com/json"));
QNetworkReply* reply = hardwareManager()->networkManager()->get(request); QNetworkReply* reply = hardwareManager()->networkManager()->get(request);
connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater); connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater);
connect(reply, &QNetworkReply::finished, info, [this, reply, info]() { connect(reply, &QNetworkReply::finished, info, [reply, info]() {
if (reply->error() != QNetworkReply::NoError) { if (reply->error() != QNetworkReply::NoError) {
qCWarning(dcDaylightSensor()) << "Error fetching geolocation from ip-api:" << reply->error() << reply->errorString(); qCWarning(dcDaylightSensor()) << "Error fetching geolocation from ip-api:" << reply->error() << reply->errorString();
info->finish(Thing::ThingErrorHardwareFailure, QT_TR_NOOP("Failed to fetch data from the internet.")); info->finish(Thing::ThingErrorHardwareFailure, QT_TR_NOOP("Failed to fetch data from the internet."));
@ -124,8 +125,8 @@ void IntegrationPluginDaylightSensor::updateDevice(Thing *thing)
QDateTime sunrise = sunriseSunset.first.toTimeZone(tz); QDateTime sunrise = sunriseSunset.first.toTimeZone(tz);
QDateTime sunset = sunriseSunset.second.toTimeZone(tz); QDateTime sunset = sunriseSunset.second.toTimeZone(tz);
qCDebug(dcDaylightSensor()) << "Setting up daylight sensor:" << thing->name() << "Sunrise:" << sunrise.toString() << "Sunset:" << sunset.toString(); qCDebug(dcDaylightSensor()) << "Setting up daylight sensor:" << thing->name() << "Sunrise:" << sunrise.toString() << "Sunset:" << sunset.toString();
thing->setStateValue(daylightSensorSunriseTimeStateTypeId, sunrise.toTime_t()); thing->setStateValue(daylightSensorSunriseTimeStateTypeId, sunrise.toSecsSinceEpoch());
thing->setStateValue(daylightSensorSunsetTimeStateTypeId, sunset.toTime_t()); thing->setStateValue(daylightSensorSunsetTimeStateTypeId, sunset.toSecsSinceEpoch());
thing->setStateValue(daylightSensorDaylightStateTypeId, sunrise < now && sunset > now); thing->setStateValue(daylightSensorDaylightStateTypeId, sunrise < now && sunset > now);
qint64 timeToNext = -1; qint64 timeToNext = -1;
@ -228,5 +229,5 @@ QPair<QDateTime, QDateTime> IntegrationPluginDaylightSensor::calculateSunriseSun
QDateTime sunrise(dateTime.date(), QTime(hourRise, minuteRise)); QDateTime sunrise(dateTime.date(), QTime(hourRise, minuteRise));
QDateTime sunset(dateTime.date(), QTime(hourSet, minuteSet)); QDateTime sunset(dateTime.date(), QTime(hourSet, minuteSet));
return qMakePair<QDateTime, QDateTime>(sunrise, sunset); return QPair<QDateTime, QDateTime>(sunrise, sunset);
} }

View File

@ -1,6 +1,6 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* Copyright 2013 - 2020, nymea GmbH * Copyright 2013 - 2025, nymea GmbH
* Contact: contact@nymea.io * Contact: contact@nymea.io
* *
* This file is part of nymea. * This file is part of nymea.
@ -31,9 +31,8 @@
#ifndef INTEGRATIONPLUGINDAYLIGHTSENSOR_H #ifndef INTEGRATIONPLUGINDAYLIGHTSENSOR_H
#define INTEGRATIONPLUGINDAYLIGHTSENSOR_H #define INTEGRATIONPLUGINDAYLIGHTSENSOR_H
#include <integrations/integrationplugin.h>
#include "integrations/integrationplugin.h" #include <plugintimer.h>
#include "plugintimer.h"
class IntegrationPluginDaylightSensor: public IntegrationPlugin class IntegrationPluginDaylightSensor: public IntegrationPlugin
{ {
@ -54,7 +53,7 @@ private slots:
void updateDevice(Thing *thing); void updateDevice(Thing *thing);
private: private:
QHash<Thing*, PluginTimer*> m_timers; QHash<Thing *, PluginTimer *> m_timers;
QPair<QDateTime, QDateTime> calculateSunriseSunset(qreal lat, qreal lon, const QDateTime &dateTime); QPair<QDateTime, QDateTime> calculateSunriseSunset(qreal lat, qreal lon, const QDateTime &dateTime);
}; };