[GELÖST] USV via USB an RaspberryMatic (NUT Server)

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

Moderatoren: jmaus, Co-Administratoren

Duesendaniel
Beiträge: 32
Registriert: 28.10.2017, 17:27

Re: [GELÖST] USV via USB an RaspberryMatic (NUT Server)

Beitrag von Duesendaniel » 17.07.2018, 10:59

Die Powerwalker USV VI650SH verträgt sich wohl nicht mit dem Treiber usbhid-ups,
daher die fehlenden Werte und die falsche Statusanzeige im WinNUT Client.

Code: Alles auswählen

/usr/local/etc/config/nut$ upsc -L
vi650sh: VI650SH

/usr/local/etc/config/nut$ upsc vi650sh@localhost
battery.charge: 100
battery.runtime: 3600
battery.type: PbAc
battery.voltage: 14
device.mfr: PPC
device.model: Offline UPS
device.serial: 000000000   
device.type: ups
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.synchronous: no
driver.version: 2.31.25.20180625-58-gb99cf5b
driver.version.data: Phoenixtec/Liebert HID 0.3
driver.version.internal: 0.41
ups.load: 9
ups.mfr: PPC
ups.model: Offline UPS
ups.productid: ffff
ups.serial: 000000000   
ups.status: OL CHRG
ups.vendorid: 06da
Die Alarmmeldungen funktionieren, das Herunterfahren des RPi habe ich noch nicht getestet.
Raspberrymatic RPI 3, RPI-RF-MOD; externe Antennen; 35 Geräte HM/HMIP

Duesendaniel
Beiträge: 32
Registriert: 28.10.2017, 17:27

Re: [GELÖST] USV via USB an RaspberryMatic (NUT Server)

Beitrag von Duesendaniel » 03.08.2018, 07:20

Ich habe den Versuch mit der Powerwalker USV VI650SH erst mal abgebrochen,
da es täglich zu Kommunikationsabbrüchen kam und Alarmzone 1 ausgelöst wurde.
Kommunikation USV/RPi war nur durch Aus-/Einstecken des USB Kabels an der USV
wieder aktivierbar. Ob die USV der Verursacher der Kommunikationsabrüche war,
muss ich bei Gelegenheit irgendwie mal testen.
Raspberrymatic RPI 3, RPI-RF-MOD; externe Antennen; 35 Geräte HM/HMIP

4_motion
Beiträge: 64
Registriert: 24.01.2016, 12:13
Hat sich bedankt: 13 Mal
Danksagung erhalten: 1 Mal

Re: [GELÖST] USV via USB an RaspberryMatic (NUT Server)

Beitrag von 4_motion » 21.10.2018, 17:03

Hallo Jens,

ich habe es genauso wie Du auch, USV an Synology und IP vom Raspi in der Synology eingetragen. Wie bekomme ich in der Homematic jetzt einen Status der USV, den ich in Programmen auswerten kann. Ich habe im Forum in Google gesucht, aber nichts gefunden, was mir hilft (wenn ich nichts übersehen habe). Es wäre schöne, wenn Du mir das mal beschreiben könntest.

Vielen Dank
Viele Grüße

4_motion

Myron
Beiträge: 42
Registriert: 01.11.2018, 20:34
Hat sich bedankt: 5 Mal
Danksagung erhalten: 5 Mal

Re: [GELÖST] USV via USB an RaspberryMatic (NUT Server) - APC Back-UPS BX950UI funktioniert

Beitrag von Myron » 29.11.2018, 09:18

Hallo,

so, um mal wieder auf das ursprüngliche Thema zurückzukommen (ja, es geht hier um die direkte Anbindung per USB, NICHT per Netzwerk! :x ), und weil hier jemand danach gefragt hat, ob die APC Back-UPS BX-Serie am RaspberryMatic funktioniert, und ich nirgendwo eine Antwort finden konnte:

Ja, das funktioniert!
APC Back-UPS BX950UI
RaspberryMatic Version 3.41.11.20181126

Und damit nachfolgende Menschen nicht wieder so viel Zeit für Recherche investieren müssen, dokumentiere ich das hier mal:

Ich nutze seit gestern eine APC Back-UPS BX950UI an meiner RaspberryMatic, zusammen mit einem GigaCube, VoIP-Basisstation von Gigaset und einem kleinen Netzwerk-Switch, hängt nun eine Leistung von 14W an dieser USV. Zumindest nach Angabe von "PowerChute Personal Edition".
Diese USV ist mittels USB mit der RaspberryMatic verbunden.

Ich bin dabei weitestgehend gemäß dieser Anleitung vorgegangen:
https://files.elv.com/Assets/Produkte/1 ... _v2_um.pdf

Jedoch habe ich den Schritt "Filesystem auf rw mounten" übersprungen, weil der nicht notwendig war.
Denn ich habe nicht mit WinSCP gearbeitet, sondern ich habe per SSH auf der Konsole zur Editierung "nano" genutzt, weil ich mich mit dem gut auskenne und üblicherweise nutze.
nano ist standardmäßig NICHT bei RaspberryMatic installiert. Der muss als Addon hinzugefügt werden: viewtopic.php?t=43703


Ich habe nur Dateien in diesem Verzeichnis geändert:
/usr/local/etc/config/nut

Hier zur Doku, welche Dateien ich geändert habe:

Hinweis 1: Ich habe in diesen Dateien nach den passenden Parametern gesucht und diese auskommentiert und geändert.
Hinweis 2: Ich habe die Bezeichnung "apcbx950ui" gewählt. Das ist aber nur eine Art Alias, für die Funktion absolut irrelevant. Die könnte man auch problemlos z.B. "usv" oder "hanswurst" nennen.


Datei "ups.conf":

Code: Alles auswählen

[apcbx950ui]
driver = usbhid-ups
port = auto
desc = "USB UPS"

Datei "nut.conf":

Code: Alles auswählen

MODE=netserver

Datei "upsd.conf":

Code: Alles auswählen

LISTEN localhost 3493
LISTEN 192.168.1.222 3493

Datei "upsd.users":

Code: Alles auswählen

[upsmon]
		password  = 1111
		upsmon master

Datei "upsmon.conf":

Code: Alles auswählen

MONITOR apcbx950ui@localhost 1 upsmon 1111 slave

--> Anschließend RaspberryMatic neu starten (die USV muss natürlich zuvor per USB angeschlossen worden sein).


Nach dem Start eine Funktionskontrolle durchführen:
1. per SSH verbinden

2. folgenden Befehl eingeben:

Code: Alles auswählen

upsc apcbx950ui@localhost


Es sollte eine Ausgabe dieser Art erfolgen:

Code: Alles auswählen

battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 50
battery.date: 2001/09/25
battery.mfr.date: 2018/07/16
battery.runtime: 12664
battery.runtime.low: 120
battery.type: PbAc
battery.voltage: 14.1
battery.voltage.nominal: 12.0
device.mfr: American Power Conversion
device.model: Back-UPS XS 950U
device.serial: ******************
device.type: ups
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.synchronous: no
driver.version: 3.41.11.20181124-9-g92b40b03
driver.version.data: APC HID 0.96
driver.version.internal: 0.41
input.sensitivity: medium
input.transfer.high: 280
input.transfer.low: 155
input.voltage: 230.0
input.voltage.nominal: 230
ups.beeper.status: disabled
ups.delay.shutdown: 20
ups.firmware: 925.T2 .I
ups.firmware.aux: T2
ups.load: 1
ups.mfr: American Power Conversion
ups.mfr.date: 2018/07/16
ups.model: Back-UPS XS 950U
ups.productid: 0002
ups.realpower.nominal: 480
ups.serial: *********************
ups.status: OL
ups.test.result: No test initiated
ups.timer.reboot: 0
ups.timer.shutdown: -1
ups.vendorid: 051d

Sieht somit schon mal alles gut aus. :D


Wie im Handbuch steht, und hier auch schon irgenwo jemand erwähnt hat, sollte man bei dieser geringen Last noch die Einstellung der USV ändern. Denn im Handbuch steht:
"Wenn sich die USV im Batteriebetrieb befindet und erkennt, dass die angeschlossenen Geräte über einen Zeitraum von mehr als 15 Minuten weniger als 15W aufnehmen, schaltet sie sich zum Ernergiesparen aus. [...]"

Mit meinen 14W liege ich knapp darunter, löaufe somit Gefahr, dass sich die USV zu früh abschaltet. :shock:

Wie in der Anleitung unter Punkt 5, "Automatische Spannungsregelung" beschrieben, habe ich meine USV entsprechend umgestellt auf die folgende Einstellung:
Spannungsempfindlichkeit "Mittel"
Abschalten bei Fehlen einer Last: "Deaktiviert"
(LED blinkt Rot / kein akustisches Signal)


Gruß
Myron

PCSHG
Beiträge: 103
Registriert: 07.10.2017, 15:14
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 1 Mal

Re: [GELÖST] USV via USB an RaspberryMatic (NUT Server) - APC Back-UPS BX1400UI

Beitrag von PCSHG » 16.04.2020, 15:08

Hallo Forengemeinde,

wenn ich mich mit WinSCP auf meiner Raspberrymatic einwähle und den Befehl upsc apcbx1400ui@localhost ausführe, erhalte ich die nachfolgenden Ausgaben. Soweit so gut.

Code: Alles auswählen

battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 50
battery.date: 2001/09/25
battery.mfr.date: 2019/10/30
battery.runtime: 6332
battery.runtime.low: 120
battery.type: PbAc
battery.voltage: 27.1
battery.voltage.nominal: 24.0
device.mfr: American Power Conversion
device.model: Back-UPS XS 1400U 
device.serial: 4B1944P12313  
device.type: ups
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.synchronous: no
driver.version: 3.49.17.20200131-35-gcc1bc83d
driver.version.data: APC HID 0.96
driver.version.internal: 0.41
input.sensitivity: medium
input.transfer.high: 280
input.transfer.low: 155
input.voltage: 228.0
input.voltage.nominal: 230
ups.beeper.status: enabled
ups.delay.shutdown: 20
ups.firmware: 926.T2 .I
ups.firmware.aux: T2 
ups.load: 5
ups.mfr: American Power Conversion
ups.mfr.date: 2019/10/30
ups.model: Back-UPS XS 1400U 
ups.productid: 0002
ups.realpower.nominal: 700
ups.serial: 4B1944P12313  
ups.status: OL
ups.test.result: No test initiated
ups.timer.reboot: 0
ups.timer.shutdown: -1
ups.vendorid: 051d
In meiner Raspberrymatic habe ich Systemvariablen angelegt (Anhang variablen 1-3.png)

Zum Auslesen der USV habe ich nachfolgendes Script verwendet:

Code: Alles auswählen

var batterycharge = dom.GetObject("UPS.CapBatterie");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost battery.charge");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
batterycharge.State(dom.GetObject("CUxD. CUX2800001:16.CMD_RETS").State());

var upsload = dom.GetObject("UPS.Last");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost ups.load");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
upsload.State(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());

var batterychargelow = dom.GetObject("UPS.CapBatterie.leer");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost battery.charge.low");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
batterychargelow.State(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());

var batterychargewarning = dom.GetObject("UPS.CapBatterie.Warnung");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost battery.charge.warning");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
batterychargewarning.State(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());

var batteryruntime = dom.GetObject("UPS.Akku.Laufzeit");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost battery.runtime");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
batteryruntime.State(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());
 
var batteryruntimelow = dom.GetObject("UPS.Akku.Laufzeit.Lowbattery");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost battery.runtime.low");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
batteryruntimelow(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());

var batteryvoltage = dom.GetObject("UPS.VoltBatterie");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost battery.voltage");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
batteryvoltage.State(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());

var batteryvoltagenominal = dom.GetObject("UPS.VoltBatterie.nominal");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost battery.voltage.nominal");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
batteryvoltagenominal.State(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());

var batterytype = dom.GetObject("UPS.Akku.Typ");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost battery.type");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
batterytype.State(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());

var upsmodel = dom.GetObject("UPS.Model");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost ups.load");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
upsmodel.State(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());
 
var inputsensitivity = dom.GetObject("UPS.Eingangsempfindlichkeit");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost input.sensitivity");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
inputsensitivity.State(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());
 
var inputtransferhigh = dom.GetObject("UPS.Schaltschwelle.hoch");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost input.transfer.high");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
inputtransferhigh.State(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());
 
var inputtransferlow = dom.GetObject("UPS.Schaltschwelle.tief");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost input.transfer.low");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
inputtransferlow.State(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());
 
var inputvoltage = dom.GetObject("UPS.Eingangsspannung");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost input.voltage");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
inputvoltage.State(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());
 
var inputvoltagenominal = dom.GetObject("UPS.Eingangsspannung.nominal ");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost input.voltage.nominal");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
inputvoltagenominal.State(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());

var upsbeeperstatus = dom.GetObject("UPS.Akkustischer-Alarm");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost ups.beeper.status");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
upsbeeperstatus.State(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());

var upsrealpowernominal = dom.GetObject("UPS. Wirkleistung");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost ups.realpower.nominal");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
upsrealpowernominal.State(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());

var upsstatus = dom.GetObject("UPS.Status");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost ups.status");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
upsstatus.State(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());

var upsfirmware = dom.GetObject("UPS.Firmware");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost ups.firmware");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
upsfirmware.State(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());
 
var upsfirmwareaux = dom.GetObject("UPS.Firmware.Aux");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost ups.firmware.aux");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
upsfirmwareaux.State(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());

var upstestresult = dom.GetObject("UPS.Selbsttest");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost ups.test.result");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
upstestresult.State(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());

var upstimershutdown = dom.GetObject("UPS.Shutdown.Timer");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost ups.timer.shutdown");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
upstimershutdown.State(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());

var upsmfr = dom.GetObject("UPS.Manufacturer");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost ups.mfr");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
upsmfr.State(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());

var upsmfrdate = dom.GetObject("UPS.Manufacturer.Date");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost ups.mfr.date");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
upsmfrdate.State(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());
Mein Problem besteht nun darin, dass die nachfolgenden Systemvariablen: UPS.VoltAusgang, UPS.VoltBatterie, UPS.VoltBatterie.nominal, UPS.VoltEingang 0V anzeigen. Die Variablen UPS.Manufacturer.Date, UPS.Manufacturer und UPS.Akkutyp zeigen ???, UPS.Last zeigt 0%, UPS.Laufzeit 0.

Wo ist der Fehler, dass die Variablen keine Werte liefern?

Über Hilfe wäre ich dankbar.
Dateianhänge
variablen3.png
variablen2.png
variablen1.png
808 Kanäle in 128 Geräten:
1x HM-CC-VG-1, 1x HM-OU-LED16, 1x HM-RC-19, 1x HM-WDS100-C6-O, 1x HmIP-ASIR, 2x HmIP-BDT, 3x HmIP-BRC2, 2x HmIP-BROLL, 13x HmIP-BSM, 9x HmIP-eTRV-2, 1x HmIP-FCI6, 4x HmIP-FROLL, 2x HmIP-FSI16, 8x HmIP-FSM, 3x HmIP-FSM16, 3x HmIP-HAP, 3x HmIP-PDT, 6x HMIP-PS, 10x HMIP-PSM, 1x HmIP-RCV-50, 3x HmIP-SAM, 1x HmIP-SCI, 20x HmIP-SRH, 15x HMIP-SWDO, 8x HmIP-SWSD, 1x HmIP-WGC, 1x HMIP-WRC2, 1x HmIP-WTH-2, 1x HmIPW-DRAP, 1x HmIPW-DRS8, 1x RPI-RF-MOD

Benutzeravatar
Baxxy
Beiträge: 10737
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 599 Mal
Danksagung erhalten: 2196 Mal

Re: [GELÖST] USV via USB an RaspberryMatic (NUT Server)

Beitrag von Baxxy » 16.04.2020, 15:34

PCSHG hat geschrieben:
16.04.2020, 15:08
Wo ist der Fehler, dass die Variablen keine Werte liefern?
Hast du mal versucht den Scriptabschnitt der die fehlerhaften SysVars betrifft separat auszuführen?
Also in deinem Fall mal das "Monster"-Abfragescript stoppen und nur z.B.

Code: Alles auswählen

var upsload = dom.GetObject("UPS.Last");
dom.GetObject("CUxD.CUX2800001:16.CMD_SETS").State("upsc apcbx1400ui@localhost ups.load");
dom.GetObject("CUxD.CUX2800001:16.CMD_QUERY_RET").State(1);
upsload.State(dom.GetObject("CUxD.CUX2800001:16.CMD_RETS").State());
mit Script testen zu testen?

Vielleicht fragst du einfach zuviel auf einmal ab und es wird vielleicht was verschluckt.

Da stellt sich mir auch gleich noch die Frage wozu man diese ganzen (nutzlosen) Infos wie z.B. Modell, Hersteller, Herstellungsdatum, Firmware, Batterietyp usw in Systemvariablen braucht und warum vor allem man die bei jedem Scriptaufruf neu einliest. Ändert sich da was?

Mal als Beispiel, so sehe ich meine USV in der RaspberryMatic.
USV_Übersicht.JPG
Reicht mir. :wink:

Grüße
Baxxy

Benutzeravatar
jmaus
Beiträge: 9839
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 461 Mal
Danksagung erhalten: 1863 Mal
Kontaktdaten:

Re: [GELÖST] USV via USB an RaspberryMatic (NUT Server)

Beitrag von jmaus » 16.04.2020, 16:58

Und auch hier meine Empfehlung dafür nicht CUxD zu bemühen sondern einfach mal simple system.Exec() Befehle stattdessen zu schreiben die genauso gut funktionieren. Und ja, mal einfach nach dem Motto „Weniger ist mehr“ verfahren und nicht alle Informationen in Systemvariablen verwandeln lassen die man so erhalten kann...
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Benutzeravatar
Baxxy
Beiträge: 10737
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 599 Mal
Danksagung erhalten: 2196 Mal

Re: [GELÖST] USV via USB an RaspberryMatic (NUT Server)

Beitrag von Baxxy » 16.04.2020, 17:12

jmaus hat geschrieben:
16.04.2020, 16:58
Und auch hier meine Empfehlung dafür nicht CUxD zu bemühen sondern einfach mal simple system.Exec() Befehle stattdessen zu schreiben die genauso gut funktionieren.
Hallo Jens,
ich benutze mehr oder weniger exakt die gleichen Scripte mit CUxD um meine USV-Daten abzufragen. Leider habe ich mich seit meinem Einstieg in RaspberryMatic vor 1,5 Jahren (da war system.Exec noch ein bisschen böse :wink: ) überhaupt nicht mit system.Exec() befasst.

Würdest du vielleicht beispielhaft so einen Scriptabschnitt auf system.Exec umschreiben damit man mal schauen kann wie es geht?

Code: Alles auswählen

var la = dom.GetObject(ID_SYSTEM_VARIABLES).Get("USV Auslastung");
datapoints.Get("CUxD.CUX2801001:1.CMD_SETS").State("upsc ep650@localhost ups.load");
datapoints.Get("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
la.State(datapoints.Get("CUxD.CUX2801001:1.CMD_RETS").State());
Vielen Dank schon mal und
Grüße
Baxxy

Benutzeravatar
jmaus
Beiträge: 9839
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 461 Mal
Danksagung erhalten: 1863 Mal
Kontaktdaten:

Re: [GELÖST] USV via USB an RaspberryMatic (NUT Server)

Beitrag von jmaus » 16.04.2020, 17:33

Baxxy hat geschrieben:
16.04.2020, 17:12
jmaus hat geschrieben:
16.04.2020, 16:58
Und auch hier meine Empfehlung dafür nicht CUxD zu bemühen sondern einfach mal simple system.Exec() Befehle stattdessen zu schreiben die genauso gut funktionieren.
ich benutze mehr oder weniger exakt die gleichen Scripte mit CUxD um meine USV-Daten abzufragen. Leider habe ich mich seit meinem Einstieg in RaspberryMatic vor 1,5 Jahren (da war system.Exec noch ein bisschen böse :wink: ) überhaupt nicht mit system.Exec() befasst.
Würdest du vielleicht beispielhaft so einen Scriptabschnitt auf system.Exec umschreiben damit man mal schauen kann wie es geht?

Code: Alles auswählen

var la = dom.GetObject(ID_SYSTEM_VARIABLES).Get("USV Auslastung");
datapoints.Get("CUxD.CUX2801001:1.CMD_SETS").State("upsc ep650@localhost ups.load");
datapoints.Get("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
la.State(datapoints.Get("CUxD.CUX2801001:1.CMD_RETS").State());
Das ist recht einfach und gelingt sogar auf dem Smartphone:

Code: Alles auswählen

string temp;
system.Exec("upsc ep650@localhost ups.load", &temp);
dom.GetObject(ID_SYSTEM_VARIABLES).Get("USV Auslastung").State(temp);
So sollte das prinzipiell funktionieren.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Georgee
Beiträge: 153
Registriert: 22.05.2017, 11:58
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 5 Mal
Danksagung erhalten: 4 Mal

Re: [GELÖST] USV via USB an RaspberryMatic (NUT Server)

Beitrag von Georgee » 06.07.2020, 09:09

@Baxxy

Hallo Baxxy,

Du hast für die USV-Übersicht offenbar ein virtuelles Gerät genutzt. Ich stehe auf dem Schlauch: über welchen Weg bist Du dort hingekommen. Es gefällt mir gut und ich möchte es gerne auch verwenden. Kannst Du mir bitte einen Hinweis geben? Danke.

Georgee
Tinker Board S, aktuelle Version, kleines Funkmodul mit USB-2, USV, ca. 45 Geräte, CUxD, Mail, Programme drucken, ccu-historian mit Highcharts, hm-pdetect

Antworten

Zurück zu „RaspberryMatic“