SUSV Auswertung über Callback Funktion

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

Benutzeravatar
Black
Beiträge: 5471
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1071 Mal
Kontaktdaten:

Re: SUSV Auswertung über Callback Funktion

Beitrag von Black » 11.11.2018, 22:23

joah, da hab ich dir geschrieben, das deine Sysvar "USV:Source" heissen wird, in meinem programm aber auf eine Zugegriffen wird, welche sich "USV.Source" nennt.(Ich nutz immer eine Punkt Notation bei mir) Damit griff das dom.GetObject ins leere --> Scriptabbruch

egal, kleine Ursache, grosse Wirkung..

tuts ja nun,

Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Depechem
Beiträge: 93
Registriert: 21.10.2018, 07:33
Wohnort: Dresden
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: SUSV Auswertung über Callback Funktion

Beitrag von Depechem » 13.11.2018, 09:50

Was leider nicht ausgegeben wird ist die mA Anzeige

Code: Alles auswählen

USV.CurrBatterier:
dort steht immer 0.00mA egal in welchem Strommodus!?
in der Shell Console wird bei Akkubetrieb der mA Verbrauch angezeigt.

und

Code: Alles auswählen

USV.System
"Versorgesystem der Raspimatik" gibt auch immer nur den Wert "Akku" an also wird nicht geändert, egal ob im Netz oder Akkumodus!?

Hast du noch eine Idee für mich an was dies liegen kann?

Gruß Thomas
Dateianhänge
10.JPG
10.JPG (17.87 KiB) 1732 mal betrachtet
9.JPG
9.JPG (24.05 KiB) 1732 mal betrachtet
Raspimatic auf RPI3b+
HM & HMiP
FHEM

Benutzeravatar
Black
Beiträge: 5471
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1071 Mal
Kontaktdaten:

Re: SUSV Auswertung über Callback Funktion

Beitrag von Black » 13.11.2018, 10:08

guck ich mir zuhause mal an...

kannst mir aber im vorfeld mal gefallen tun:

Code: Alles auswählen

!- Kapazität der USV auslesen
!- Michael Thelen Januar 2018

!- Kapazität der USV auslesen (CallBack version benötigt noch programm CallBackExec11_SUSV)
!- Michael Thelen September 2018
!- Bash Kommandozeile zusammensetzen
!-
  string q= 's=$(/opt/susvd/susv -status|tr -s "*" " ");';
  q= q# 'b=${s#*Source: };list=${b%% *};';
  q= q# 'b=${b#*age in: };list=$list";"${b%% *};';
  q= q# 'b=${b#*capacity: };list=$list";"${b%%%*};';
  q= q# 'b=${b#*voltage: };list=$list";"${b%%V*};';
  q= q# 'b=${b#*Battery: };list=$list";"${b%% *};';
  q= q# 'echo $list';
  WriteLine (q);
!------------------------------
Für das programm mal bitte unter script testen aus.
Den string, wie shcon mal gehabt, dann mit ctrl-C kopieren, mit putty per SSH auf die CCU und dann führst du den string nach dem einfügen einmal im Normallauf und einmal im akkubetrieb aus. Poste mir dnan mal bitte beide male den Ausgabestring dann.

dann guck ich mir das zuhause mal in ruhe an, kann nix wildes sein eigentlich

eins hab ich jetzt schin direkt gesehen:
du hast noch eine Systemvariable falsch geschrieben.
die soll so heissen: USV.CurrBatterie
Zuletzt geändert von Black am 13.11.2018, 10:20, insgesamt 1-mal geändert.
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Depechem
Beiträge: 93
Registriert: 21.10.2018, 07:33
Wohnort: Dresden
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: SUSV Auswertung über Callback Funktion

Beitrag von Depechem » 13.11.2018, 10:19

Danke dir, also Thema
" USV.CurrBatterie:" habe ich rausgefunden das war wieder ein Schreibfehler von mir :oops:

Nur beim Thema "USV.System" komme ich nicht ganz weiter. Ich weiß nicht was er da genau nimmt.

Skript teste ich gleich

Edit: es werden doch nur 5 Werte ausgegeben mit "USV.System" sind es doch aber 6 Systemvariablen!?
es geht ja eigentlich hierum:

Code: Alles auswählen

real usv=100.0; !- Einstellen Netzbetrieb
if (s=="Battery") {usv=r;}
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("USV.System").State (usv);
WriteLine ("DONE");
Raspimatic auf RPI3b+
HM & HMiP
FHEM

Benutzeravatar
Black
Beiträge: 5471
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1071 Mal
Kontaktdaten:

Re: SUSV Auswertung über Callback Funktion

Beitrag von Black » 13.11.2018, 10:33

In USV.System... das stammt noch aus einer Zeit, als die S.USV nicht so sauber funktionierte und die Raspberrymatik gar nicht herrunterfuhr.
Da hatte ich auhc mal ein Programm, welches bei unterschreitung einer Kapazität ein System.Save ausführte und dann ein runterfahren des raspberry.

Aus der zeit stammte die Sysvar.
eigentlich sollte da eine Zahl drinstehen. Bei Netzbetrieb 100%, bei Akkubetrieb die aktuelle kapazität. Die Systemvariable sollt ebei dir also eine Typ Zahl sein. Das war die entscheidungsvariante für das Down programm.

brauchen tuts die nicht, ist eine alte Leiche.

drum mach aus

Code: Alles auswählen

dom.GetObject (ID_SYSTEM_VARIABLES).Get ("USV.System").State (usv);
ein

Code: Alles auswählen

!-dom.GetObject (ID_SYSTEM_VARIABLES).Get ("USV.System").State (usv);
und lösch die sysvar (vorher aber noch aus eventuell startseite und der kanalzuordnung rausnehmen)

und gut is...

Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Depechem
Beiträge: 93
Registriert: 21.10.2018, 07:33
Wohnort: Dresden
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: SUSV Auswertung über Callback Funktion

Beitrag von Depechem » 13.11.2018, 11:27

Super Danke.
Kann ich bei "USV.Source" aus dem angezeigten Wert(Zeichenkette) "Primary" den Namen "Netzbetrieb" machen?

Und gibt es vorn auf der Starseite die Möglichkeit mit alle 5 USV Infos anzeigen zu lassen ohe das die Tastersymbole des EXEC_SUSV:11 mit angezeigt wird? Siehe Foto
Dateianhänge
11.JPG
Raspimatic auf RPI3b+
HM & HMiP
FHEM

Benutzeravatar
Black
Beiträge: 5471
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1071 Mal
Kontaktdaten:

Re: SUSV Auswertung über Callback Funktion

Beitrag von Black » 13.11.2018, 12:28

gehen tut alles:

in quick and dirty in dem callback programm:

aus

Code: Alles auswählen

string s= sout.StrValueByIndex (";",0);
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("USV.Source").State (s);
mache

Code: Alles auswählen

string s= sout.StrValueByIndex (";",0);
if (s=="Primary") {
   dom.GetObject (ID_SYSTEM_VARIABLES).Get ("USV.Source").State ("Netzbetrieb");
} else {
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("USV.Source").State (s);
}
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Depechem
Beiträge: 93
Registriert: 21.10.2018, 07:33
Wohnort: Dresden
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: SUSV Auswertung über Callback Funktion

Beitrag von Depechem » 03.12.2018, 18:21

Hallo Black, ich dann nochmal wieder :)

ist es möglich noch eine Systemvariable der USV zusätzlich abzufragen?

Ich hätte gern den "Charging current" Wert (300mA) mit angezeigt.
Siehe Bild Ist dies möglich?
Dateianhänge
Unbenannt.PNG
Unbenannt.PNG (20.65 KiB) 1632 mal betrachtet
Raspimatic auf RPI3b+
HM & HMiP
FHEM

Benutzeravatar
Black
Beiträge: 5471
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1071 Mal
Kontaktdaten:

Re: SUSV Auswertung über Callback Funktion

Beitrag von Black » 02.04.2019, 21:05

Auf Nachfrage, wie sich die S.USV unter IOBroker auslesen lässt,
- mein altes Script , lief auf einem ASUS Tinkerboard mit S.USV, bevor der Broker auf einen NUC umgezogen ist.

Code: Alles auswählen

var pfad            = "javascript.0.Systeminfos.SUSV.";
// Datenpunktnamen:
var idVin     = pfad + 'Vin';
var idCapBatt = pfad + 'Capacity';
var idSource  = pfad + 'Source';

function AktualisierenWerte () {
    exec('/opt/susvd/susv -status', function (error, stdout, stderr) {
        var erg;
        var reg= /Voltage in: (\d*\.?\d*)/gi;
        var match= reg.exec (stdout);
        if (match !== undefined && match !== null && match.length !== undefined) {
            erg= parseFloat (match [match.length-1]);
            setState (idVin,erg,true);
        }   
        reg= /ry capacity: (\d*\.?\d*)/gi;
        match= reg.exec (stdout);
        if (match !== undefined && match !== null && match.length !== undefined) {
            erg= parseFloat (match [match.length-1]);
            setState (idCapBatt,erg,true); 
        }    
        reg= /ing Source: ([a-zA-Z]*)/gi;
        match= reg.exec (stdout);
        if (match !== undefined && match !== null && match.length !== undefined) {
            erg= match [match.length-1];
            setState (idSource,erg,true); 
        }           
    });
}    

function AnlegensysVars () {
    createState (idVin, "", {
     name: 'Vin',
     desc: 'Volt eingehend',
     type: 'number',
     unit: 'V',
     role: 'object'
    });
    createState (idCapBatt, "", {
     name: 'Capacity',
     desc: 'Vapazität Akku',
     type: 'number',
     unit: '%',
     role: 'object'
    });    
    createState (idSource, "", {
     name: 'Source',
     desc: 'Versorgung Board',
     type: 'string',
     unit: '',
     role: 'object'
    });      
}   
  
AnlegensysVars ();

schedule("30 * * * * *", function () {
// Jede Minute zur 30. Sekunde
    AktualisierenWerte ();
});

nicht vergessen, exec muss im javascript Adapter erlaubt sein !
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Antworten

Zurück zu „RaspberryMatic“