Hauptmenü

Interface zu EXCEL ?

Begonnen von pwlr, 03 März 2017, 01:07:29

Vorheriges Thema - Nächstes Thema

pwlr

Moin,

ich verwende sehr intensiv das direkte Peering von Sensoren und Aktoren, um eventuelle Probleme mit meinem fhem-Server, dem LAN, der Sendezeitbegrenzung etc zu minimieren. Für viele einfache Schaltaufgaben ist der Leistungsumfang vollkommen ausreichend. Das Management dieser Peers erfolgt in einer Excel-Tabelle, in der ich den Ablauf grafisch dargestellt und die jeweiligen Register und Inhalte eingetragen werden. Die Daten dazu hole ich mir automatisch mit einer EXCEL-Verbindung von fhem, also zum Beispiel die vollständigen Daten eines Aktors wie in der WEB-Oberfläche (attr expert=251_anything). In Excel werden die Register etwas sortiert, analysiert und in der Ablaufübersicht entsprechend dargestellt. Im Prinzip also eine Darstellung der Zustandsmaschine wie in der Doku "Heimautomatisierung mit fhem für Einsteiger" von Ullrich Maaß.

Bei Änderung eines Registers wird ein entsprechendes fhem-command dann automatisch von EXCEL generiert (inkl. CSRF) und ausgeführt. Ich erspare mir damit die Schreibarbeit für die teilweise lehr langen Befehle mit (für mich...) komplizierten Registernamen. Nachteilig ist, dass die Taps im Browser nach dem Command geöffnet bleiben und nicht automatisch geschossen werden können.

In einer weiteren Anwendung hole ich mir Daten aus fhem (aus der Call_List) und nutze die in einer Büroanwendung für Buchführungsaufgaben als Trigger für eingegangene Faxe (Rechnungen).

Meine Frage, gibt es eine bessere Möglichkeit des Daten- und Commandtransfers zwischen fhem und EXCEL ?

Moin
Bernd





A.Harrenberg

Hi,

ich habe keine bessere Idee, bin aber erst mal an Deiner Umsetzung interessiert, das würde ich gerne mal auf mein System anwenden und schauen wie das bei aktuell eigentlich eingerichtet ist. Das habe ich teilweise von 2 Jahren mal eingerichtet und habe jetzt keine Ahnung mehr davon ;-)

Kannst Du Deine Skripte dazu mal zur Verfügung stellen?

Danke,
Andreas.
FB 7360, Homematic und ZWave
Support for ZWave-SECURITY

kadettilac89

Zitat von: pwlr am 03 März 2017, 01:07:29

Bei Änderung eines Registers wird ein entsprechendes fhem-command dann automatisch von EXCEL generiert (inkl. CSRF) und ausgeführt. Ich erspare mir damit die Schreibarbeit für die teilweise lehr langen Befehle mit (für mich...) komplizierten Registernamen. Nachteilig ist, dass die Taps im Browser nach dem Command geöffnet bleiben und nicht automatisch geschossen werden können.


Kannst du den Browswer-Call nicht in VBA machen oder ein Script rufen? Ich meine per IE-Object arbeiten? Beispiel unten ist ein VBS das eine Seite aufruft, wartet bis diese geladen ist,  und dann wieder schließt.


Set IE = CreateObject("InternetExplorer.Application")

IE.Visible = True


IE.Navigate("http://www.google.de")
' warte bis Seite geladen
Do While IE.readyState <> 4
Loop
IE.Quit


Thorsten Pferdekaemper

Zitat von: pwlr am 03 März 2017, 01:07:29Nachteilig ist, dass die Taps im Browser nach dem Command geöffnet bleiben und nicht automatisch geschossen werden können.
Wenn Du das über eine URL machst, hast Du dann "&XHR=1" drangehängt?
Gruß,
   Thorsten
FUIP

kadettilac89

Zitat von: Thorsten Pferdekaemper am 03 März 2017, 12:48:35
Wenn Du das über eine URL machst, hast Du dann "&XHR=1" drangehängt?
Gruß,
   Thorsten

Der Zusatz XHR=1 macht Sinn damit nach dem Schaltvorgang nicht die normale Fhem-Seite aufgebaut wird da es Traffic und Zeit spart.

Es schließt aber den Browser nicht. Der Browser ist halt dafür gebaut worden etwas anzuzeigen, zum stillen Verarbeiten muss man entweder Scripten (VBS extern, oder VBA intern) oder unter Linux könnte man auch mit cURL den Link rufen und nur den Returncode abfragen.

pwlr

Moin,

so, in der Anlage wie gewünscht die vollständige Excel als unfertige Arbeitsversion. In der Mappe "Anleitung" habe ich mal den Versuch einer Kurzdoku stehen. Es ist aber wirklich nur eine unvollständige Version, die nur einige Devices von HomeMatic und auch nicht alle Register unterstützt ! Aber in Summe für mich eine gute Erleichterung bei der Programmierung der Peers.

XHR habe ich in den Befehlen drin.

@kadettilac89, Danke für Deinen Tipp - jetzt muss ich nur noch VBA wesentlich besser verstehen. Aber das wird schon...

Moin und viel Erfolg mit der Excel
Bernd


Thorsten Pferdekaemper

Hi,
so ganz kapier ich's nicht. (Das Excel hilft mir nicht, das ist ja komplizierter als FHEM selbst...)
Generierst Du in Excel einen Link mit dem Kommando, der dann angeklickt wird, oder machst Du das per Makro direkt?
Ich befürchte mal ersteres...
Gruß,
    Thorsten
FUIP

pwlr

Hi Thorsten,

ja, stimmt ist kompliziert, aber ein einmaliger Aufwand. Ich arbeite viel mit Ecxel und kenne das Tool zwangsläufig relativ gut.
Es muss eigentlich nur auf die eigenen IP des fhem-Servers und das jeweilige Device angepasst werden.

Der Input von fhem zur Excel funktioniert über dieser Excel-Verbindungen (im Prinzip so etwas wie HTTPMOD). Das ist ein normales Leistungsmerkmal von Excel. Die Daten landen zeilenweise in einer Mappe.

Die Commands von Excel zu fhem werden in der Excel aus IP, Device-, Peer,- Registernamen und Wert usw. zusammengebastelt und per click via Explorer oder Firefox gesendet. Die Dinger sind ja machmal ellenlang und man schreibt sich sonst die Finger wund...

Moin
Bernd

Thorsten Pferdekaemper

Zitat von: pwlr am 08 März 2017, 00:10:49ja, stimmt ist kompliziert, aber ein einmaliger Aufwand. Ich arbeite viel mit Ecxel und kenne das Tool zwangsläufig relativ gut.
Ich kenne das. Ich habe auch ein paar Excels für anderen Kram (z.B. Zeitprotokollierung für verschiedene Projekte), die mit der Zeit gewachsen sind. Ich meinte damit nur, dass ich mich da jetzt nicht einarbeiten will. Bei mir stellt sich das Problem einfach nicht.

ZitatDie Commands von Excel zu fhem werden in der Excel aus IP, Device-, Peer,- Registernamen und Wert usw. zusammengebastelt und per click via Explorer oder Firefox gesendet. Die Dinger sind ja machmal ellenlang und man schreibt sich sonst die Finger wund...
Meine Frage hätte eigentlich sein sollen, ob das Problem mit dem Browser-Tab immer noch vorhanden ist.

Gruß,
   Thorsten
FUIP

pwlr

ja, leider. Ich habe noch keine Zeit gefunden und leider auch wenig Ahnung von VBA. Aber das Ziel ist klar  ;D

Jorge3711

Zitat von: kadettilac89 am 03 März 2017, 20:42:52
Es schließt aber den Browser nicht. Der Browser ist halt dafür gebaut worden etwas anzuzeigen, zum stillen Verarbeiten muss man entweder Scripten (VBS extern, oder VBA intern) oder unter Linux könnte man auch mit cURL den Link rufen und nur den Returncode abfragen.

cURL für Windows existiert: https://curl.haxx.se/download.html#Win64