solar inselanlage und kleine spielereien mit echtzeitdaten richtung fhe möglich?

Begonnen von the ratman, 20 März 2018, 12:24:01

Vorheriges Thema - Nächstes Thema

the ratman

@Ranseyer

lxc gibts jetzt auch für windoof? dachte, das ding kann nur linux als unterbau? und diese lösungen für lxd, die mancher für win und mac anbietet ... ich weiß ned.
und würden diese konstrukte gehen, wüsst ich dann gar nimma, woran eventuelle probleme liegen könnten.

das einfachste wäre wohl perl unter windoof - hatt ich auch schon relativ erfolgreich für fhem am laufen. es happert eben nur an einer seriellen schnittstelle für 64bit. da mach ich mir aber auch keine großen hoffnungen, wenn ich da so manche aussagen in den div. perl4win-foren les a'la "unter win64 werden serielle schnittstellen nur noch selten benötigt" - haha, die haben noch nie fhem fahren wollen ...

noch einfacher wäre natürlich den nuc unter ubuntu zu fahren (unter debian ist das ne echte qual), aber dazu müsst ich erst wen finden, der div. programme auf linux portiert. und für einen serverbetrieb, wie ich ihn bräuchte ist linux viel zu wenig mein freund - ich bin und bleib der klicki-bunti-typ *g*


@sparkiie

ne, die vm rennt headless und einzig und alleine für fhem.
wlan/bt ist ja auch eigentlich kein stick, sondern direkt als chip verlötet, trotzdem wirds auch als usb-stick in der vm gefunden.
die vm sieht das wlan auch doppelt - einmal als netzwerkschnittstelle (sofern ich wlan in win aktiviere) und 1 mal als usb (immer).
o) bind ichs als netzwerkschnittstelle ein, kriegt linux das wlan und bt immer mit, ich kanns konfigurieren, kriege aber nie eine verbindung mit irgendwas anderem in meinem haushalt zustande.
o) bind ichs als usb ein, kriegt linux manchesmal das wlan/bt mit - ist das der fall, kanns auch verbindungen aufbauen, aber die bricht dann nach minuten bis max. wenigen stunden zusammen und geht erst wieder, wenn ich in der vm den "stick" raus werf, wieder einbinde und dazu linux runter fahre.
o) aktiviere ich als zusätzlichen test schnitttstelle und usb gleichzeitig, geht dann gar nix mehr.
→do↑p!dnʇs↓shit←

Ranseyer

Sorry, das habe ich übersehen, dass du Windows drunter hast. (Damit tue ich mich mental sehr schwer. Wenn das für dich alles super ist, dann bleib dabei. Ansonsten kannst du mal Proxmox als Unterbau anschauen. Da kannst in einer VM natürlich auch Windows laufen lassen )

FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

the ratman

dacht ich auch schon daran - das dumme ist halt, dass ich wenigstens als unterbau was haben will, dass ich halbwegs im griff hab - und das is halt eindeutig nicht linux. und dann shcon gar nicht etwas, dass ich grad mal nur vom namen her kenn. das geht bei mir ned lange gut *g*.

eigentlich rennt das ganze konstrukt auch recht brauchbar, wenn mir den nur mal einer erklären könnte, was ich am nuc drehen muß, damit die vm alles richtig zu greifen kriegt.

ich muß halt eigentlich nur mal abwarten, bis jemand unter win was schreibt, dass mir die daten aus der solaranlage saugt.
das geht ja eigentlich ganz gut, ausser, dass es eben kein tool gibt oder mir keines bekannt ist, dass die daten automatisch in ein file oder ne db schreiben würde, wo ichs dann mit fhem abgreifen könnte.
→do↑p!dnʇs↓shit←

sparkiie

Bist du sicher, dass das Netzwerk als Bridge eingerichtet ist? Könnte auch NAT sein oder ggf. ist zur Vmware noch eine Firewall bzw. Windows blockt den Zugriff.
Eine IP in deinem Netz hat die Vmware aber?

the ratman

ja, bin ich sicher - da steht eindeutig "netzwerkbrücke" *g*
und ja, die fhem reicht das debian am lan problemlos durch und debian hat ne feste ip bei mir.
meine windoof-fw lässt auch alles relevante für fhem und meine tools in beide richtungen durch.
und falls die frage kommt: ich hab auch kein ipv6 am laufen - nur pures ipv4.

wie gesagt: probleme krieg ich immer nur mit sachen, die per usb an der nuc angeschlossen und durchgereicht werden sollen, bzw. die sich als usb-gerät melden.
und diese probleme krieg ich auch nur auf der intel nuc - mein arbeitsrechner mit vm testsystem hat diese probleme eindeutig nicht.
deshalb nehm ich auch ganz frech an, dass es an der nuc-hw, bzw. den treibern dafür liegt und da im speziellen an den intel-treibern. die haben mir schon öfter gern mal probleme gemacht, werden aber leider benötigt.


ich habs auch ehrlich gsagt aufgegeben, in der konstellation da wirklich mal was durch die vm zu kriegen.
aber irgendwann mal (so in 1000 jahren denk ich) wird perl64 vollständig unter win laufen, ne funzende seriale schnittstelle bieten. dann löst sich das alles in wohlgefallen auf, weil fhem dann direkt auf windoof rennt. *upps* bin ich grad eingeschlafen und hab geträumt?
→do↑p!dnʇs↓shit←

the ratman

ich wärme die sache wieder mal auf *g*

nach nem upgrade meiner solaranlage hab ich mich an diese diskussion erinnert.
im zuge des upgrades hab ich auch mal meine win-anzeige auf den server verlegt.
d.h.: ich hätte jetzt auf meinem server eine permanente verbindung über einen virtuellen com-port hängen, die mit dem epever-eigenen tool echtzeit-daten liefert.

deshalb hab ich mich gefragt: wenn ich den virtuellen com durch meine vm durchschleifen kann und dieser nicht auch timingprobleme wie die durchgereichten usb-geräte hat, was müsste ich auf auf linux/fhem-seite machen um meine daten zumindest mal auslesen zu können (einstellen des mppt ist mir nicht wirklich wichtig)?
also: wie greif ich den com-port auf debian möglichst noob-freundlich an und wie lese ich in fhem dann die daten ein?

mit diesen infos wäre mir echt gut geholfen
→do↑p!dnʇs↓shit←

sparkiie


the ratman

jau

die spezialität ist halt, dass der com port von win durch eine vm geschliffen werden wird ... nur, falls das auf der debian-seite ein problem sein sollte.
→do↑p!dnʇs↓shit←

sparkiie


the ratman

der com-port ist per ip eingebunden.

ich schilder mal den gesamten weg:
es handelt sich um einen epever mppt laderegler (ich glaub, ganz am anfang hab ich links zu der ganzen hw gepostet), der per wlan mit meinem intel nuc (win 10) und per virtuellem com-port (com 10) abgefragt wird. das funzt auch alles erstaunlich gut. die epever-eigene win-software wertet wunderbar die daten aus und steuert auch den laderegler.

der theoretische weitere weg wäre jetzt: den virtuellen port über meine vm an debian weiter zu reichen - das probier ich, sobald du mir sagst, dass es auf linux/fhem-seite generell kein größeres problem ist.

die ganze fragerei hat den sinn, dass ich wenigstens halbwegs schnell unterscheiden können will, ob eventuelle fehler auf seiten vm oder linux gemacht wurden. ich bin bei beidem nicht grade sattelfest und hab in sachen modbus noch gar nix gemacht.
→do↑p!dnʇs↓shit←

sparkiie

Wenn du den Laderegler sowieso per IP abfragst, warum dann nicht direkt aus FHEM. Ich mache genau das:


defmod Solarlader ModbusAttr 1 60 192.168.0.138:23 RTU
attr Solarlader userattr cmdIcon dev-c-defShowGet dev-c-read dev-c-write dev-h-defShowGet dev-i-defShowGet devStateIcon event-on-change-reading eventMap icon obj-c0-poll obj-c0-reading obj-c0-set obj-c0-showGet obj-c2-poll obj-c2-reading obj-c2-set obj-h0-poll obj-h0-reading obj-h0-set obj-h36864-name obj-h36864-reading obj-h36864-set obj-h36865-name obj-h36865-reading obj-h36865-set obj-h36925-name obj-h36925-reading obj-h36925-set obj-i12296-poll obj-i12296-reading obj-i12544-expr obj-i12544-poll obj-i12544-reading obj-i12544-set obj-i12544-showGet obj-i12545-expr obj-i12545-poll obj-i12545-reading obj-i12545-showGet obj-i12546-expr obj-i12546-poll obj-i12546-reading obj-i12548-expr obj-i12548-poll obj-i12548-reading obj-i12548-showGet obj-i12549-expr obj-i12549-poll obj-i12549-reading obj-i12550-expr obj-i12550-poll obj-i12550-reading obj-i12556-expr obj-i12556-poll obj-i12556-reading obj-i12557-expr obj-i12557-poll obj-i12557-reading obj-i12558-expr obj-i12558-poll obj-i12558-reading obj-i12559-poll obj-i12559-reading obj-i12560-expr obj-i12560-poll obj-i12560-reading obj-i12561-expr obj-i12561-poll obj-i12561-reading obj-i12570-format obj-i12570-poll obj-i12570-reading obj-i12800-poll obj-i12800-reading obj-i12801-poll obj-i12801-reading obj-i13060-expr obj-i13060-poll obj-i13060-reading obj-i13061-poll obj-i13061-reading obj-i13062-expr obj-i13062-poll obj-i13062-reading obj-i13063-poll obj-i13063-reading obj-i13064-expr obj-i13064-poll obj-i13064-reading obj-i13066-expr obj-i13066-poll obj-i13066-reading obj-i13068-expr obj-i13068-poll obj-i13068-reading obj-i13070-expr obj-i13070-poll obj-i13070-reading obj-i13072-expr obj-i13072-poll obj-i13072-reading obj-i13074-expr obj-i13074-poll obj-i13074-reading stateFormat userReadings verbose webCmd
attr Solarlader cmdIcon an:general_an@green aus:general_aus@red
attr Solarlader dev-c-defShowGet 1
attr Solarlader dev-h-defShowGet 1
attr Solarlader dev-i-defShowGet 1
attr Solarlader devStateIcon 0:rc_STOP
attr Solarlader event-on-change-reading .*
attr Solarlader eventMap /ManualControlLoad 0:aus/ManualControlLoad 1:an/
attr Solarlader group Solar
attr Solarlader icon sani_solar
attr Solarlader obj-c0-poll 1
attr Solarlader obj-c0-reading ChargingOnOff
attr Solarlader obj-c0-set 1
attr Solarlader obj-c2-poll 1
attr Solarlader obj-c2-reading ManualControlLoad
attr Solarlader obj-c2-set 1
attr Solarlader obj-h36864-reading BattTyp
attr Solarlader obj-h36864-set 1
attr Solarlader obj-h36865-reading BattCapacityDefault
attr Solarlader obj-h36865-set 1
attr Solarlader obj-h36925-reading LoadControll
attr Solarlader obj-h36925-set 1
attr Solarlader obj-i12296-poll 1
attr Solarlader obj-i12296-reading Chargingmode
attr Solarlader obj-i12544-expr $val/100
attr Solarlader obj-i12544-poll 1
attr Solarlader obj-i12544-reading Panelspannung
attr Solarlader obj-i12545-expr $val/100
attr Solarlader obj-i12545-poll 1
attr Solarlader obj-i12545-reading Panelstrom
attr Solarlader obj-i12546-expr $val/100
attr Solarlader obj-i12546-poll 1
attr Solarlader obj-i12546-reading PanelPowerL
attr Solarlader obj-i12548-expr $val/100
attr Solarlader obj-i12548-poll 1
attr Solarlader obj-i12548-reading Battspannung
attr Solarlader obj-i12549-expr $val/100
attr Solarlader obj-i12549-poll 1
attr Solarlader obj-i12549-reading Battstrom
attr Solarlader obj-i12550-expr $val/100
attr Solarlader obj-i12550-poll 1
attr Solarlader obj-i12550-reading BattPowerL
attr Solarlader obj-i12556-expr $val/100
attr Solarlader obj-i12556-poll 1
attr Solarlader obj-i12556-reading LoadSpannung
attr Solarlader obj-i12557-expr $val/100
attr Solarlader obj-i12557-poll 1
attr Solarlader obj-i12557-reading LoadCurrent
attr Solarlader obj-i12558-expr $val/100
attr Solarlader obj-i12558-poll 1
attr Solarlader obj-i12558-reading LoadPowerL
attr Solarlader obj-i12560-expr $val/100
attr Solarlader obj-i12560-poll 1
attr Solarlader obj-i12560-reading BatteryTemperatur
attr Solarlader obj-i12561-expr $val/100
attr Solarlader obj-i12561-poll 1
attr Solarlader obj-i12561-reading LaderTemperatur
attr Solarlader obj-i12570-poll 1
attr Solarlader obj-i12570-reading BattCapacityRemaining
attr Solarlader obj-i12800-poll 1
attr Solarlader obj-i12800-reading BattStatus
attr Solarlader obj-i12801-poll 1
attr Solarlader obj-i12801-reading LadeStatus
attr Solarlader obj-i13060-expr $val/100
attr Solarlader obj-i13060-poll 1
attr Solarlader obj-i13060-reading EnergieVerbrauchTag
attr Solarlader obj-i13062-expr $val/100
attr Solarlader obj-i13062-poll 1
attr Solarlader obj-i13062-reading EnergieVerbrauchMonat
attr Solarlader obj-i13064-expr $val/100
attr Solarlader obj-i13064-poll 1
attr Solarlader obj-i13064-reading EnergieVerbrauchJahr
attr Solarlader obj-i13066-expr $val/100
attr Solarlader obj-i13066-poll 1
attr Solarlader obj-i13066-reading EnergieVerbrauchGesamt
attr Solarlader obj-i13068-expr $val/100
attr Solarlader obj-i13068-poll 1
attr Solarlader obj-i13068-reading EnergieTag
attr Solarlader obj-i13070-expr $val/100
attr Solarlader obj-i13070-poll 1
attr Solarlader obj-i13070-reading EnergieMonat
attr Solarlader obj-i13072-expr $val/100
attr Solarlader obj-i13072-poll 1
attr Solarlader obj-i13072-reading EnergieJahr
attr Solarlader obj-i13074-expr $val/100
attr Solarlader obj-i13074-poll 1
attr Solarlader obj-i13074-reading EnergieGesamt
attr Solarlader room Home,Solar


the ratman

das ist das problem!
kurz:
das wlan des nuc meldet sich als usb-stick bei der vm. bei usb gibts böseste timing probleme. da kriegst du nichts länger als 5 min zum laufen (wenn überhaupt).
d.h. ich mußte andere wege probieren.

aja - nur, damit du mich ned ganz für bescheuert hältst: die dumme wlan-box von epever kann seit dem letzten firmwareupdate keinen client mehr, die kann nur mehr server . somit kann ichs nicht auf einfachen wege in mein netz bringen.


im zuge deiner aktivität hier hab ich eben das erste mal probiert, den com-port als host device durch die vm zu kriegen - derweil geht auch das nicht ... vm startet bei aktiven com nicht mehr.
sprich: das kann noch dauern, bis ich überhaupt mal den com in linux hab.

ich versuch grad aus https://docs.oracle.com/cd/E97728_01/E97727/html/serialports.html schlau zu werden.
vielleicht kapierst ja du, was da steht *g* dasTCP Client: To create a virtual null-modem cable over the Internet or LAN, the other side can connect using TCP by specifying hostname:port in the Path/Address field. The TCP socket will act in client mode if you select the Connect to Existing Pipe/Socket check box. währe wohl der richtige weg, oder?
frag mich nur, was ich da auf vm-seite eintragen muß?
→do↑p!dnʇs↓shit←

sparkiie

Ehrlich gesagt verstehe ich das Problem nicht.

Ich betreibe FHEM ebenfalls in einer VMWare mit NanoCul, Zigbee Stick, Modbus Stick, RS232 Stick, frage den Laderegler per TCP ab und und und. Alles läuft prima ohne Timing Probleme oder so.

Vielleicht solltest das erstmal ordentlich zum Laufen bringen und ggf. die Hardware ersetzen (Raspberry Pi, oder kleines Board für Windows).

Die Wlan Box lässt sich für 5€ ersetzen und dann kannst du auch direkt Abfragen...
https://youtu.be/hdHLEb8ej64
Ab ca. 3:51:00!

the ratman

ich verstehs problem auch nicht. aber ... nachdem auf einer test-vm auf meinem pc keine timingprobleme aufgetreten sind (zumindest nicht bei div. kurztests), nehme ich an, es liegt an dem nuc.
aber das wurde hier schon genug durchgekaut ...

was den raspi angeht - ja, sobald der 4b endlich funzendes 64bit hat und auch von usb nativ booten kann, ist sogar ein solcher geplant. nachdem das aber sicher noch mind. 1/2 jahr dauern wird (wenn man optimist is), würd ich halt zumindest eine notlösung für mein inselsolaranlage haben.

eine kabelgebunde lösung ist übrigens auch keine echte lösung ... ich müßte da ein paar meterchen kabel verlegen und löcher bohren - da sinkt der waf gegen 0.
→do↑p!dnʇs↓shit←

delMar

Zitat von: the ratman am 07 Dezember 2019, 10:28:17
aja - nur, damit du mich ned ganz für bescheuert hältst: die dumme wlan-box von epever kann seit dem letzten firmwareupdate keinen client mehr, die kann nur mehr server . somit kann ichs nicht auf einfachen wege in mein netz bringen.
Ich hab irgendwo gelesen, dass die Box Server noch kann, allerdings im Web-UI nicht mehr anbietet.
Folgende Lösungsmöglichkeit (keine Ahnung, ob das mit deiner Firmware immer noch so funktioniert):

Im Browser im Web-UI die Seite als HTML Speichern. Und zwar so, dass auch alle dateien mitgespeichert werden.
Wenn du das im Chrome machst, solltest du dann zB einen Ordner namens Setting_files bekommen.

Da drin liegt eine Datei: select_cn.html. In der (ca Zeile 40 oder 41) stehen die Optionen, wobei Access Point auskommentiert ist.
Dieses HTML änderst du zB auf folgendes

<form name="form_wmode" method="post" action="http://ip-der-box:1180/do_cmd_cn.shtml">
<div class="label">
<div class="lab_name">Mode Select</div>
<div class="lab_value"><button class="btn-style">save</button></div>
<div class="lab_value">
<select name="wifi_mode" class="select-style">
<option value="AP">AP Mode </option>
<option value="STA">STA Mode </option>
</select>
</div>
</div>
</form>


Auserdem musst du vom 'action' attribut noch 'localhost' durch die IP deiner Box ersetzen.

Nun kannst du Setting.html in deinem Browser öffnen, den Wert umstellen und das Submit geht an die Box (deswegen die Änderung vom 'action' attribut)

Dann sollte die Box im Server-Modus laufen.

Das alles natürlich ohne Gewähr. Ich hatte das bei mir mal soweit vorbereitet, habs aber nie umgesetzt, weil ich einen extra USB-WLAN-Stick rumliegen hatte, der jetzt nur für die Verbindung zur Box da ist - und problemlos funktioniert.

Hope that helps

schöne Grüße
Martin


Maintainer von: ZoneMinder, TA_CMI_JSON, ONKYO_AVR, DENON_AVR, CanOverEthernet, IPCAM.

Vielgenutzte Module sind die größte Motivation für Entwickler.
Bitte zumindest 'attr global sendStatistics onUpdate' setzen.
Denn: ohne 'sendStatistics' keine Zahlen.