2024.10.11 04:32:08 4: SSCam.Stiege - ####################################################
2024.10.11 04:32:08 4: SSCam.Stiege - ### start cam operation Getcapabilities
2024.10.11 04:32:08 4: SSCam.Stiege - ####################################################
2024.10.11 04:32:08 4: SSCam.Stiege - --- Start getApiSites ---
2024.10.11 04:32:08 4: SSCam.Stiege - API imported:
$VAR1 = {
'AUDIOSTM' => {
'NAME' => 'SYNO.SurveillanceStation.AudioStream',
'mk' => 0
},
'AUTH' => {
'NAME' => 'SYNO.API.Auth',
'mk' => 1
},
'CAM' => {
'NAME' => 'SYNO.SurveillanceStation.Camera',
'mk' => 1
},
'CAMEVENT' => {
'NAME' => 'SYNO.SurveillanceStation.Camera.Event',
'mk' => 1
},
'EVENT' => {
'NAME' => 'SYNO.SurveillanceStation.Event',
'mk' => 1
},
'EXTEVT' => {
'NAME' => 'SYNO.SurveillanceStation.ExternalEvent',
'mk' => 1
},
'EXTREC' => {
'NAME' => 'SYNO.SurveillanceStation.ExternalRecording',
'mk' => 1
},
'HMODE' => {
'NAME' => 'SYNO.SurveillanceStation.HomeMode',
'mk' => 0
},
'INFO' => {
'NAME' => 'SYNO.API.Info',
'PATH' => 'query.cgi',
'VER' => 1,
'mk' => 1
},
'LOG' => {
'NAME' => 'SYNO.SurveillanceStation.Log',
'mk' => 1
},
'PRESET' => {
'NAME' => 'SYNO.SurveillanceStation.PTZ.Preset',
'mk' => 1
},
'PTZ' => {
'NAME' => 'SYNO.SurveillanceStation.PTZ',
'mk' => 1
},
'REC' => {
'NAME' => 'SYNO.SurveillanceStation.Recording',
'mk' => 1
},
'SNAPSHOT' => {
'NAME' => 'SYNO.SurveillanceStation.SnapShot',
'mk' => 1
},
'STM' => {
'NAME' => 'SYNO.SurveillanceStation.Stream',
'mk' => 1
},
'SVSINFO' => {
'NAME' => 'SYNO.SurveillanceStation.Info',
'mk' => 1
},
'VIDEOSTM' => {
'NAME' => 'SYNO.SurveillanceStation.VideoStreaming',
'mk' => 1
},
'VIDEOSTMS' => {
'NAME' => 'SYNO.SurveillanceStation.VideoStream',
'mk' => 0
}
};
2024.10.11 04:32:08 4: SSCam.Stiege - Call-Out now: http://192.168.1.25:5000/webapi/query.cgi?api=SYNO.API.Info&method=Query&version=1&query=SYNO.SurveillanceStation.PTZ,SYNO.API.Info,SYNO.SurveillanceStation.Info,SYNO.SurveillanceStation.HomeMode,SYNO.SurveillanceStation.VideoStream,SYNO.SurveillanceStation.Camera.Event,SYNO.SurveillanceStation.Log,SYNO.SurveillanceStation.VideoStreaming,SYNO.SurveillanceStation.Camera,SYNO.SurveillanceStation.SnapShot,SYNO.SurveillanceStation.ExternalRecording,SYNO.API.Auth,SYNO.SurveillanceStation.AudioStream,SYNO.SurveillanceStation.Event,SYNO.SurveillanceStation.PTZ.Preset,SYNO.SurveillanceStation.Recording,SYNO.SurveillanceStation.ExternalEvent,SYNO.SurveillanceStation.Stream
2024.10.11 04:32:08 4: SSCam.Stiege - installed SVS version is: 92111380
2024.10.11 04:32:08 4: SSCam.Stiege - ------- Begin of adaption section -------
2024.10.11 04:32:08 4: SSCam.Stiege - Version of SYNO.API.Auth adapted to: 6
2024.10.11 04:32:08 4: SSCam.Stiege - ------- End of adaption section -------
2024.10.11 04:32:08 4: SSCam.Stiege - ------- Begin of simulation section -------
2024.10.11 04:32:08 4: SSCam.Stiege - ------- End of simulation section -------
2024.10.11 04:32:08 4: SSCam.Stiege - API completed after retrieval and adaption:
$VAR1 = {
'AUDIOSTM' => {
'MOD' => 'no',
'NAME' => 'SYNO.SurveillanceStation.AudioStream',
'PATH' => undef,
'VER' => undef,
'mk' => 0
},
'AUTH' => {
'MOD' => 'yes',
'NAME' => 'SYNO.API.Auth',
'PATH' => 'entry.cgi',
'VER' => '6',
'mk' => 1
},
'CAM' => {
'MOD' => 'no',
'NAME' => 'SYNO.SurveillanceStation.Camera',
'PATH' => 'entry.cgi',
'VER' => 9,
'mk' => 1
},
'CAMEVENT' => {
'MOD' => 'no',
'NAME' => 'SYNO.SurveillanceStation.Camera.Event',
'PATH' => 'entry.cgi',
'VER' => 1,
'mk' => 1
},
'EVENT' => {
'MOD' => 'no',
'NAME' => 'SYNO.SurveillanceStation.Event',
'PATH' => 'entry.cgi',
'VER' => 5,
'mk' => 1
},
'EXTEVT' => {
'MOD' => 'no',
'NAME' => 'SYNO.SurveillanceStation.ExternalEvent',
'PATH' => 'entry.cgi',
'VER' => 1,
'mk' => 1
},
'EXTREC' => {
'MOD' => 'no',
'NAME' => 'SYNO.SurveillanceStation.ExternalRecording',
'PATH' => 'entry.cgi',
'VER' => 3,
'mk' => 1
},
'HMODE' => {
'MOD' => 'no',
'NAME' => 'SYNO.SurveillanceStation.HomeMode',
'PATH' => 'entry.cgi',
'VER' => 1,
'mk' => 0
},
'INFO' => {
'MOD' => 'no',
'NAME' => 'SYNO.API.Info',
'PATH' => 'entry.cgi',
'VER' => 1,
'mk' => 1
},
'LOG' => {
'MOD' => 'no',
'NAME' => 'SYNO.SurveillanceStation.Log',
'PATH' => 'entry.cgi',
'VER' => 3,
'mk' => 1
},
'PARSET' => 1,
'PRESET' => {
'MOD' => 'no',
'NAME' => 'SYNO.SurveillanceStation.PTZ.Preset',
'PATH' => 'entry.cgi',
'VER' => 1,
'mk' => 1
},
'PTZ' => {
'MOD' => 'no',
'NAME' => 'SYNO.SurveillanceStation.PTZ',
'PATH' => 'entry.cgi',
'VER' => 6,
'mk' => 1
},
'REC' => {
'MOD' => 'no',
'NAME' => 'SYNO.SurveillanceStation.Recording',
'PATH' => 'entry.cgi',
'VER' => 6,
'mk' => 1
},
'SNAPSHOT' => {
'MOD' => 'no',
'NAME' => 'SYNO.SurveillanceStation.SnapShot',
'PATH' => 'entry.cgi',
'VER' => 1,
'mk' => 1
},
'STM' => {
'MOD' => 'no',
'NAME' => 'SYNO.SurveillanceStation.Stream',
'PATH' => 'entry.cgi',
'VER' => 1,
'mk' => 1
},
'SVSINFO' => {
'MOD' => 'no',
'NAME' => 'SYNO.SurveillanceStation.Info',
'PATH' => 'entry.cgi',
'VER' => 8,
'mk' => 1
},
'VIDEOSTM' => {
'MOD' => 'no',
'NAME' => 'SYNO.SurveillanceStation.VideoStreaming',
'PATH' => 'entry.cgi',
'VER' => 1,
'mk' => 1
},
'VIDEOSTMS' => {
'MOD' => 'no',
'NAME' => 'SYNO.SurveillanceStation.VideoStream',
'PATH' => undef,
'VER' => undef,
'mk' => 0
}
};
([Gaszaehler:"gas_total"])()()
Und statt setReading kannst du mitString SettingsManager::generateNewPairingCode() {
/* Create a SHA256 hash */
SHA256 hasher;
/* Put some unique values as input in our new hash */
hasher.doUpdate( String(esp_random()).c_str() ); // random number
hasher.doUpdate( String(millis()).c_str() ); // time since boot
hasher.doUpdate(getTimestampString().c_str()); // current time (if NTP is available)
hasher.doUpdate(appSettings.mqttUsername.c_str());
hasher.doUpdate(appSettings.mqttPassword.c_str());
hasher.doUpdate(wifiSettings.ssid.c_str());
hasher.doUpdate(wifiSettings.password.c_str());
/* Compute the final hash */
byte hash[SHA256_SIZE];
hasher.doFinal(hash);
// Convert our 32 byte hash to 32 chars long hex string. When converting the entire hash to hex we would need a length of 64 chars.
// But because we only want a length of 32 we only use the first 16 bytes of the hash. I know this will increase possible collisions,
// but for detecting a sensor replacement (which is the use-case here) it will still be enough.
char hexString[33];
hexString[32] = 0; // null terminatation byte for converting to string later
for (byte i=0; i < 16; i++) // use only the first 16 bytes of hash
{
sprintf(&hexString[i*2], "%02x", hash[i]);
}
return String((char*)hexString);
}
([Gaszaehler:gas_total] > [Gaszaehler:gas_total_Old])
(setreading Gasheizung_Zustand status Brenner EIN)
DOELSE (setreading Gasheizung_Zustand status Brenner AUS)
Zitat von: UweH am 10 Oktober 2024, 17:56:04Soso...wo hast Du die denn gefunden?
#define FINGERPRINT_LED_GREEN 0x04 //!< Grüne LED
#define FINGERPRINT_LED_YELLOW 0x05 //!< Gelbe LED
#define FINGERPRINT_LED_CYAN 0x06 //!< Cyan LED
#define FINGERPRINT_LED_WHITE 0x07 //!< Weiße LED