Page 2 sur 2

Re: Recuperer Notification Batterie ..% (Branche, pas en charge)

Publié : 18 avr. 2016, 21:03
par patrice
:oops:

Re: Recuperer Notification Batterie ..% (Branche, pas en charge)

Publié : 20 avr. 2016, 23:54
par balajol
Bonsoir,
Après un cycle de test, Coupure Alimentation, Arrêt du PC et Remise en route, Sms sous et au dessus du seuil demandé ok :D
J'ai du ajouter dans l évènement blocky une vérification de changement d'état (passage sous ou au dessus du seuil de charge) sans lequel je recevais un SMS à chaque renseignement de Domoticz par le script Powershell (Je ne suis pas sur d'être clair :oops: )
Copie d'écran ci-jointe.

Capture.JPG
Capture.JPG (52.83 Kio) Consulté 7022 fois
Merci encore pour votre aide
Bertrand

Re: Recuperer Notification Batterie ..% (Branche, pas en charge)

Publié : 24 août 2024, 14:19
par balajol
Bonjour a Tous,
Un Petit moment que je ne suis pas intervenu, le temps passe trop vite.
Je déterre ce sujet après m'être aperçu que le dispositif "Niv_Charge_Batterie_PC" ne se mettait plus à jour (A priori après mise à jour Domoticz..
Pour résumer j'ai un dispositif qui lance un script .bat sous W10, qui lance à son tour (Normalement) un fichier de commandes Powershell .

Contenu Fichier . BAT:

Code : Tout sélectionner

Powershell.exe -WindowStyle hidden  -nologo -executionpolicy remotesigned -Command "& 'C:\Program Files (x86)\Domoticz\scripts\powershell\Niv_Charge_Batterie_PC.ps1'"
Contenu Fichier Niv_Charge_Batterie_PC.ps1:

Code : Tout sélectionner

 
 # --- les adresses Domoticz user/pass  et l'idx à activer --------
$domoticz="http://192.168.0.XX:XXXX"
$user="Controle_Batterie_PC"
$pass="XXXX"
$idx="321"
#------------------------------------------

# -----debug a 1 pour afficher qq messages, 0 sinon ----
$debug=1
#------------------------------

# la commande powershell pour recuperer etat batteries

$pourcent_batterie = (Get-WmiObject win32_battery).estimatedChargeRemaining



#------------------------------

$pair = "${user}:${pass}"
$bytes = [System.Text.Encoding]::ASCII.GetBytes($pair)
$base64 = [System.Convert]::ToBase64String($bytes)
$basicAuthValue = "Basic $base64"
$headers = @{ Authorization = $basicAuthValue }

## la commande json a passer est 
#      /json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=PERCENTAGE
$url1="/json.htm?type=command&param=udevice&idx="+$idx
$url2="&nvalue=0&svalue="+$pourcent_batterie
$urldz=($domoticz+$url1+$url2)


#Invoke the web-request avec les headers d'authentification

try { $json=Invoke-WebRequest -uri $urldz  -Headers $headers } catch
     {
        $_.Exception.Response.StatusCode.Value__
        if ($_.Exception.Response.StatusCode.Value__-eq 401) {write-host "erreur authentification user/pass"}
     }

    
# recup reponse JSON
$infos_json = ConvertFrom-Json -InputObject $json
 
 
#recuperation depuis $infos_json avelc les libelles Domoticz
$Val_Retour=$infos_json.status
 
     
if ($debug-eq 1)  {
Write-Host 'pourcentage: ' $pourcent_batterie
Write-Host $json
Write-Host "url Domoticz=" $urldz
Write-Host "message Json="$json
}
 

J'ai ce message d'erreur sous cmd :
Microsoft Windows [version 10.0.19045.4780]
(c) Microsoft Corporation. Tous droits réservés.

C:\WINDOWS\system32>Powershell.exe -nologo -executionpolicy remotesigned -Command "& 'C:\Program Files (x86)\Domoticz\scripts\powershell\Niv_Charge_Batterie_PC.ps1'"
401
erreur authentification user/pass
ConvertFrom-Json : Impossible de lier l'argument au paramètre « InputObject », car il a la valeur Null.
Au caractère C:\Program Files (x86)\Domoticz\scripts\powershell\Niv_Charge_Batterie_PC.ps1:43 : 45
+ $infos_json = ConvertFrom-Json -InputObject $json
+ ~~~~~
+ CategoryInfo : InvalidData : (:) [ConvertFrom-Json], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.ConvertFrom
JsonCommand

pourcentage: 96

url Domoticz= http://192.168.0.XX:XXXX/json.htm?type=command&param=udevice&idx=321&nvalue=0&svalue=96
message Json=

C:\WINDOWS\system32>

Je continu mes recherches, je suis passé de la version Domoticz 2023.1 a 2024.6
Merci de toute aide éventuelle apportée. A priori Problème au niveau conversion Json.. User et Pass sont correctement renseignés, le dispositif concerné a bien été ajouté à l' user Controle_Batterie_PC.
Cdt
Bertrand

Re: Recuperer Notification Batterie ..% (Branche, pas en charge)

Publié : 24 août 2024, 15:17
par balajol
Re,
J'ai trouvé..
Pour ceux qui auraient le même problème, il faut cocher "autoriser l'authentification Basic-Auth sur du pur HTTP (API seulement)" dans les parametres/securité.
Bonne Journée
Cdt
Bertrand