SEPIA open-source Sprachassistent: Integration in FHEM?

Begonnen von sepia, 04 Juli 2019, 12:10:12

Vorheriges Thema - Nächstes Thema

sepia

#60
Zitat.. ja, gern.  :)

DOWNLOAD [EDIT: Link gefixt]

Einfach die Zip-Datei über den aktuellen SEPIA Release entpacken, so dass die entsprechenden Scripte überschrieben werden und der neue 'java' Ordner in '[SEPIA]/java' landet.
Die Idee ist wie folgt:

  • Man öffnet den Ordner '[SEPIA]/java' und führt das entsprechende download Script aus (z.B. für Linux64 oder arm32 für Raspberry Pi)
  • Das Script lädt automatisch Java von AdaptOpenJdk runter, entpackt das Verzeichnis und generiert eine Datei namens 'version' mit dem Namen des neuen Ordners
  • Danach startet man SEPIA wie üblich und die neuen Scripts prüfen ob im Ordner '/java' eine 'version' Datei liegt
  • Falls ja wird der angegebene Ordner im Kontext des Start-Scriptes als aktives Java gewählt. Falls nicht wird die System Version benutzt
Das wars im Grunde schon :-)

ZitatDanach hat er beim ersten Start von setup.sh mit sudo (Elasticsearch nicht gefunden für 5 Minuten) und ohne sudo (Rechteprobleme) rumgezickt, beim nächsten Start mit sudo hat er Elasticsearch sofort gefunden und die Installation ist dann auch durch gelaufen.

Vielleicht braucht Elasticsearch beim ersten Start länger?

Gestartet hat er jetzt auch, Web-Client ist erreichbar. Ich werde mal weiter testen.

Erstmal gut, dass es geklappt hat :-) Normalerweise habe ich mit Elasticsearch keine Probleme, selbst auf einem alten Raspberry Pi3 startet das Ding in wenigen Sekunden (~30s vielleicht). Komisch irgendwie. Ich gebe zu, die meiste Zeit teste ich mit frischen Raspbian und Debian (Slim) Installationen, wo ich das Setup nie mit sudo starten musste ::)
Ich werde mir mal bei Gelegenheit eine Ubuntu Version laden und versuchen den Fehler zu reproduzieren.

klausw

Zitat von: sepia am 05 Januar 2020, 15:39:05

Ich sehe gerade "webname" ist ein Attribut von "WEB" und bestimmt den HTTP path "http://[IP]:[PORT]/[webname] , habe ich das richtig verstanden?

genau

Ich habe das Problem eingrenzen können. Es liegt nicht am webname.
Die Konfiguration beider FHEMWEB unterschied sich in einem kleinen Detail.

Sobald das Attribut csrfToken auf "none" gesetzt wird funktioniert das GET DEVICES in SEPIA nicht mehr.
{
  "result": "fail",
  "error": "500 internal error",
  "info": "2020-01-06 22:54:04 WARNING - URLBuilder.java / getString() - Failed to build URL: [Ljava.lang.String;@12d844d"
}

Ich weiß nicht, ob das ein Sicherheitsfeature oder ein Bug ist  8)

RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

ekur

Hallo,

leider doch noch Probleme.

Bei einem Start des scriptes mit "sudo", also Adminrechten bleibt das Script hier hängen:

Waiting for Elasticsearch on port 20724 ...
...............................................................................


Bei einem Start ohne Adminrechte gibt es folgenden Ablauf

Running Elasticsearch 5.3.3

OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
Waiting for Elasticsearch on port 20724 ...
.2020-01-07 19:20:50,058 main ERROR RollingFileManager (/home/boss/SEPIA/elasticsearch/bin/../../es-logs/sepiaFW-es-cluster.log) java.io.FileNotFoundException: /home/boss/SEPIA/elasticsearch/bin/../../es-logs/sepiaFW-es-cluster.log (Keine Berechtigung) java.io.FileNotFoundException: /home/boss/SEPIA/elasticsearch/bin/../../es-logs/sepiaFW-es-cluster.log (Keine Berechtigung)
at java.base/java.io.FileOutputStream.open0(Native Method)
at java.base/java.io.FileOutputStream.open(FileOutputStream.java:298)
at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:237)
at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:158)
at org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:474)
at org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:445)
at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:112)
at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:114)
at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:128)
at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:135)
at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:58)
at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:942)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:882)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:874)
at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:498)
at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:227)
at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:239)
at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:530)
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:258)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:117)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:84)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326)
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:123)
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:114)
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:58)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122)
at org.elasticsearch.cli.Command.main(Command.java:88)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84)

2020-01-07 19:20:50,069 main ERROR Unable to inject fields into builder class for plugin type class org.apache.logging.log4j.core.appender.RollingFileAppender, element RollingFile. java.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory@15043a2f] unable to create manager for [/home/boss/SEPIA/elasticsearch/bin/../../es-logs/sepiaFW-es-cluster.log] with data [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$FactoryData@4a83a74a[pattern=/home/boss/SEPIA/elasticsearch/bin/../../es-logs/sepiaFW-es-cluster-%d{yyyy-MM-dd}.log, append=true, bufferedIO=true, bufferSize=8192, policy=CompositeTriggeringPolicy(policies=[TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=true)]), strategy=DefaultRolloverStrategy(min=1, max=7), advertiseURI=null, layout=[%d{ISO8601}][%-5p][%-25c{1.}] %marker%.-10000m%n]]
at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:114)
at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:114)
at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:128)
at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:135)
at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:58)
at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:942)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:882)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:874)
at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:498)
at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:227)
at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:239)
at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:530)
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:258)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:117)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:84)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326)
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:123)
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:114)
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:58)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122)
at org.elasticsearch.cli.Command.main(Command.java:88)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84)

2020-01-07 19:20:50,074 main ERROR Unable to invoke factory method in class class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile. java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.RollingFileAppender
at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.findFactoryMethod(PluginBuilder.java:224)
at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:130)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:942)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:882)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:874)
at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:498)
at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:227)
at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:239)
at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:530)
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:258)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:117)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:84)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326)
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:123)
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:114)
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:58)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122)
at org.elasticsearch.cli.Command.main(Command.java:88)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84)

2020-01-07 19:20:50,084 main ERROR RollingFileManager (/home/boss/SEPIA/elasticsearch/bin/../../es-logs/sepiaFW-es-cluster_deprecation.log) java.io.FileNotFoundException: /home/boss/SEPIA/elasticsearch/bin/../../es-logs/sepiaFW-es-cluster_deprecation.log (Keine Berechtigung) java.io.FileNotFoundException: /home/boss/SEPIA/elasticsearch/bin/../../es-logs/sepiaFW-es-cluster_deprecation.log (Keine Berechtigung)
at java.base/java.io.FileOutputStream.open0(Native Method)
at java.base/java.io.FileOutputStream.open(FileOutputStream.java:298)
at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:237)
at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:158)
at org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:474)
at org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:445)
at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:112)
at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:114)
at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:128)
at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:135)
at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:58)
at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:942)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:882)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:874)
at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:498)
at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:227)
at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:239)
at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:530)
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:258)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:117)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:84)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326)
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:123)
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:114)
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:58)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122)
at org.elasticsearch.cli.Command.main(Command.java:88)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84)

2020-01-07 19:20:50,089 main ERROR Unable to inject fields into builder class for plugin type class org.apache.logging.log4j.core.appender.RollingFileAppender, element RollingFile. java.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory@15043a2f] unable to create manager for [/home/boss/SEPIA/elasticsearch/bin/../../es-logs/sepiaFW-es-cluster_deprecation.log] with data [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$FactoryData@645aa696[pattern=/home/boss/SEPIA/elasticsearch/bin/../../es-logs/sepiaFW-es-cluster_deprecation-%i.log.gz, append=true, bufferedIO=true, bufferSize=8192, policy=CompositeTriggeringPolicy(policies=[SizeBasedTriggeringPolicy(size=1073741824)]), strategy=DefaultRolloverStrategy(min=1, max=4), advertiseURI=null, layout=[%d{ISO8601}][%-5p][%-25c{1.}] %marker%.-10000m%n]]
at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:114)
at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:114)
at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:128)
at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:135)
at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:58)
at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:942)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:882)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:874)
at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:498)
at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:227)
at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:239)
at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:530)
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:258)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:117)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:84)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326)
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:123)
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:114)
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:58)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122)
at org.elasticsearch.cli.Command.main(Command.java:88)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84)

2020-01-07 19:20:50,095 main ERROR Unable to invoke factory method in class class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile. java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.RollingFileAppender
at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.findFactoryMethod(PluginBuilder.java:224)
at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:130)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:942)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:882)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:874)
at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:498)
at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:227)
at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:239)
at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:530)
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:258)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:117)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:84)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326)
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:123)
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:114)
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:58)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122)
at org.elasticsearch.cli.Command.main(Command.java:88)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84)

2020-01-07 19:20:50,103 main ERROR RollingFileManager (/home/boss/SEPIA/elasticsearch/bin/../../es-logs/sepiaFW-es-cluster_index_search_slowlog.log) java.io.FileNotFoundException: /home/boss/SEPIA/elasticsearch/bin/../../es-logs/sepiaFW-es-cluster_index_search_slowlog.log (Keine Berechtigung) java.io.FileNotFoundException: /home/boss/SEPIA/elasticsearch/bin/../../es-logs/sepiaFW-es-cluster_index_search_slowlog.log (Keine Berechtigung)
at java.base/java.io.FileOutputStream.open0(Native Method)
at java.base/java.io.FileOutputStream.open(FileOutputStream.java:298)
at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:237)
at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:158)
at org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:474)
at org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:445)
at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:112)
at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:114)
at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:128)
at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:135)
at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:58)
at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:942)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:882)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:874)
at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:498)
at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:227)
at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:239)
at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:530)
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:258)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:117)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:84)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326)
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:123)
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:114)
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:58)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122)
at org.elasticsearch.cli.Command.main(Command.java:88)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84)

2020-01-07 19:20:50,110 main ERROR Unable to inject fields into builder class for plugin type class org.apache.logging.log4j.core.appender.RollingFileAppender, element RollingFile. java.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory@15043a2f] unable to create manager for [/home/boss/SEPIA/elasticsearch/bin/../../es-logs/sepiaFW-es-cluster_index_search_slowlog.log] with data [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$FactoryData@1a75e76a[pattern=/home/boss/SEPIA/elasticsearch/bin/../../es-logs/sepiaFW-es-cluster_index_search_slowlog-%d{yyyy-MM-dd}.log, append=true, bufferedIO=true, bufferSize=8192, policy=CompositeTriggeringPolicy(policies=[TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=true)]), strategy=DefaultRolloverStrategy(min=1, max=7), advertiseURI=null, layout=[%d{ISO8601}][%-5p][%-25c] %marker%.-10000m%n]]
at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:114)
at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:114)
at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:128)
at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:135)
at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:58)
at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:942)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:882)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:874)
at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:498)
at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:227)
at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:239)
at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:530)
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:258)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:117)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:84)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326)
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:123)
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:114)
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:58)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122)
at org.elasticsearch.cli.Command.main(Command.java:88)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84)

2020-01-07 19:20:50,112 main ERROR Unable to invoke factory method in class class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile. java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.RollingFileAppender
at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.findFactoryMethod(PluginBuilder.java:224)
at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:130)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:942)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:882)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:874)
at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:498)
at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:227)
at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:239)
at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:530)
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:258)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:117)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:84)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326)
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:123)
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:114)
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:58)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122)
at org.elasticsearch.cli.Command.main(Command.java:88)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84)

2020-01-07 19:20:50,118 main ERROR RollingFileManager (/home/boss/SEPIA/elasticsearch/bin/../../es-logs/sepiaFW-es-cluster_index_indexing_slowlog.log) java.io.FileNotFoundException: /home/boss/SEPIA/elasticsearch/bin/../../es-logs/sepiaFW-es-cluster_index_indexing_slowlog.log (Keine Berechtigung) java.io.FileNotFoundException: /home/boss/SEPIA/elasticsearch/bin/../../es-logs/sepiaFW-es-cluster_index_indexing_slowlog.log (Keine Berechtigung)
at java.base/java.io.FileOutputStream.open0(Native Method)
at java.base/java.io.FileOutputStream.open(FileOutputStream.java:298)
at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:237)
at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:158)
at org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:474)
at org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory.createManager(RollingFileManager.java:445)
at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:112)
at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:114)
at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:128)
at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:135)
at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:58)
at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:942)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:882)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:874)
at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:498)
at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:227)
at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:239)
at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:530)
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:258)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:117)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:84)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326)
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:123)
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:114)
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:58)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122)
at org.elasticsearch.cli.Command.main(Command.java:88)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84)

2020-01-07 19:20:50,124 main ERROR Unable to inject fields into builder class for plugin type class org.apache.logging.log4j.core.appender.RollingFileAppender, element RollingFile. java.lang.IllegalStateException: ManagerFactory [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$RollingFileManagerFactory@15043a2f] unable to create manager for [/home/boss/SEPIA/elasticsearch/bin/../../es-logs/sepiaFW-es-cluster_index_indexing_slowlog.log] with data [org.apache.logging.log4j.core.appender.rolling.RollingFileManager$FactoryData@353352b6[pattern=/home/boss/SEPIA/elasticsearch/bin/../../es-logs/sepiaFW-es-cluster_index_indexing_slowlog-%d{yyyy-MM-dd}.log, append=true, bufferedIO=true, bufferSize=8192, policy=CompositeTriggeringPolicy(policies=[TimeBasedTriggeringPolicy(nextRolloverMillis=0, interval=1, modulate=true)]), strategy=DefaultRolloverStrategy(min=1, max=7), advertiseURI=null, layout=[%d{ISO8601}][%-5p][%-25c] %marker%.-10000m%n]]
at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:114)
at org.apache.logging.log4j.core.appender.OutputStreamManager.getManager(OutputStreamManager.java:114)
at org.apache.logging.log4j.core.appender.rolling.RollingFileManager.getFileManager(RollingFileManager.java:128)
at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:135)
at org.apache.logging.log4j.core.appender.RollingFileAppender$Builder.build(RollingFileAppender.java:58)
at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:122)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:942)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:882)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:874)
at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:498)
at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:227)
at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:239)
at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:530)
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:258)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:117)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:84)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326)
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:123)
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:114)
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:58)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122)
at org.elasticsearch.cli.Command.main(Command.java:88)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84)

2020-01-07 19:20:50,126 main ERROR Unable to invoke factory method in class class org.apache.logging.log4j.core.appender.RollingFileAppender for element RollingFile. java.lang.IllegalStateException: No factory method found for class org.apache.logging.log4j.core.appender.RollingFileAppender
at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.findFactoryMethod(PluginBuilder.java:224)
at org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:130)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:942)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:882)
at org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:874)
at org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:498)
at org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:227)
at org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:239)
at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:530)
at org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:258)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:117)
at org.elasticsearch.common.logging.LogConfigurator.configure(LogConfigurator.java:84)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326)
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:123)
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:114)
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:58)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122)
at org.elasticsearch.cli.Command.main(Command.java:88)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84)

2020-01-07 19:20:50,127 main ERROR Null object returned for RollingFile in Appenders.
2020-01-07 19:20:50,127 main ERROR Null object returned for RollingFile in Appenders.
2020-01-07 19:20:50,128 main ERROR Null object returned for RollingFile in Appenders.
2020-01-07 19:20:50,129 main ERROR Null object returned for RollingFile in Appenders.
2020-01-07 19:20:50,129 main ERROR Unable to locate appender "rolling" for logger config "root"
2020-01-07 19:20:50,129 main ERROR Unable to locate appender "index_indexing_slowlog_rolling" for logger config "index.indexing.slowlog.index"
2020-01-07 19:20:50,130 main ERROR Unable to locate appender "index_search_slowlog_rolling" for logger config "index.search.slowlog"
2020-01-07 19:20:50,130 main ERROR Unable to locate appender "deprecation_rolling" for logger config "org.elasticsearch.deprecation"
..
Elasticsearch is ready for action.

Starting SEPIA servers ...

Running SEPIA Assist (sepia-assist-v2.4.0.jar)
Running SEPIA WebSocket Chat (sepia-chat-v1.2.2.jar)
Running SEPIA Teach (sepia-teach-v2.1.0.jar)

---- Wait a second (or 5) ----


---- Testing cluster ----


-----Assist API-----

SUCCESS
OK

-----Teach API-----

SUCCESS
OK

-----Chat API - WebSocket Server-----

SUCCESS
OK

-----Database: Elasticsearch-----

{
  "cluster_name" : "sepiaFW-es-cluster",
  "status" : "yellow",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 56,
  "active_shards" : 56,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 55,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 50.45045045045045
}

DONE. Please check output for errors!

If all looks good you should be able to reach your SEPIA server via: ubun1804.local
Example: ubun1804.local:20721/tools/index.html


Aber ich kann keine Werte in den cores eintragen, es kommt die Fehlermeldung
{
  "msg": "Request was not sent! Plz check connection to server.",
  "info": {
    "readyState": 0,
    "status": 0,
    "statusText": "error"
  }
}


Die Spracheingabe kann ich aber testen, der Assist antwortet auch.

Ich bin nicht sicher woran es liegt.

Viele Grüße

Elmar
FHEM 5.8 auf Intel NUC, Visualisierung TabletUI auf Lenovo Tab10, Datenlogging MySQL
CUL_HM  HM-CC-RT-DN, HM-RC, HM-LC-BL1-FM, HM-PBI-4-FM, HM-SEC-SD, HM-SEC-SCo
ZWave
OWDevice:DS1420,DS18B20 an Intel NUC

sepia

ZitatSobald das Attribut csrfToken auf "none" gesetzt wird funktioniert das GET DEVICES in SEPIA nicht mehr.

Ah! Ich habe befürchtet, dass das irgendwann passiert  :o
Die Fehlermeldung deutet auf eine Null-Pointer Exception hin :-[ , ich gucke mir das mal an ;)

Zitatleider doch noch Probleme.

Bei einem Start des scriptes mit "sudo", also Adminrechten bleibt das Script hier hängen ...

Ich hatte heute Gelegenheit das mal zu testen auf einem Ubuntu 18.04 LTS 64bit System (Hyper-V in Windows).
Zunächst als Admin war es kein Problem, auch keine Verzögerungen bei der Elasticsearch ???
Dann habe ich einen neuen User erstellt ohne Admin Rechte und habe zunächst den Fehler gemacht SEPIA nicht im neuen Home Verzeichnis sauber zu erstellen. Beim Versuch es zu starten kamen dann lauter Fehler ähnlich zu denen, die du beschrieben hast (Zugriff verweigert etc.).
Nachdem ich SEPIA im neuen Home Verzeichnis komplett neu erstellt habe ging es dann alles ohne 'sudo'.
Hast du vielleicht Probleme durch Zugriffsrechte oder das Verzeichnis am falschen Ort? Versuch es mal mit einer ganz frischen Version im Verzeichnis '~/SEPIA/'.

Grüße,
Florian

JensS

#64
Auch mit Java-Download habe ich elasticsearch auf zwei buster (rpi3+, x64) nicht zum laufen bekommen.

Morgen schmeisse ich nochmals alles runter...
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

klausw

Zitat von: JensS am 07 Januar 2020, 22:18:13
Auch mit Java-Download habe ich elasticsearch auf zwei buster (rpi3+, x64) nicht zum laufen bekommen.

Morgen schmeisse ich nochmals alles runter...

x64 bedeutet das du kein Raspbian drauf hast, oder?
Vielleicht ist bei 64bit der Speicher zu gering.
Ich hatte Probleme, sobald ein paar Dienste mehr auf dem Pi3 liefen.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

klausw

Ein paar Fragen sind wieder aufgelaufen  ;)

Zugriff über Internet:

  • gibt es schon eine Reverse Proxy Konfiguration für den Apache Webserver?
    Eine Umstellung auf NGINX wäre für mich recht aufwändig.
  • Falls nicht, welche Ports müssen umgeleitet werden, um den Client auch außerhalb des Heimnetzes zu nutzen?
    In dem NGINX Beispiel wird ja alles umgeleitet, reicht nicht der Port 20721?
  • Werden die Loginversuche irgendwo gelogged? Dann könnte ich ein Fail2Ban Ruleset erstellen.

Assistent:

  • Mit der Zuordnung der Geräte habe ich noch Probleme. Beispiel:
    Im Wohnzimmer habe ich 2 Lampen (sepia Namen sind Fenster und Tisch).
    Diese scheinen sich nicht separat ansteuern zu lassen.
    Mit den Namen selbst komme ich nicht weiter.
    Ein: "wie ist der status von Licht im wohnzimmer" bringt den Status der ersten Lampe (Fenster).
    Ein: "wie ist der status von Fenster im wohnzimmer" bringt Fehlermeldungen wie: "Tut mir leid Klaus, ich bin nicht sicher was du meinst."
    Kann ich diese auch getrennt steuern?
  • Wäre es möglich, sofern die sepia-* Attribute nicht existieren, room als sepia-room und alias als sepia-name zu nehmen falls diese existieren?
  • lassen sich weitere Räume hinzufügen?



RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

sepia

#67
ZitatIch habe das Problem eingrenzen können. Es liegt nicht am webname.
Die Konfiguration beider FHEMWEB unterschied sich in einem kleinen Detail.

Sobald das Attribut csrfToken auf "none" gesetzt wird funktioniert das GET DEVICES in SEPIA nicht mehr.

Könntest du mal diesen Fix testen: sepia-assist-v2.4.0.jar (einfach die Datei im Ordner 'SEPIA/sepia-assist-server' überschreiben)? ... bei mir hat es scheinbar geklappt :) .

ZitatAuch mit Java-Download habe ich elasticsearch auf zwei buster (rpi3+, x64) nicht zum laufen bekommen.

Morgen schmeisse ich nochmals alles runter...

So, habe gerade noch mal eine ganz frische Raspbian Buster Lite Installation getestet. Hier ist alles was nötig war:

  • SD Card geflashed + SSH + Wifi eingerichtet (boot files) und eingesetzt in RPi 3b+
  • Via SSH eingeloggt
Dann:

sudo apt-get update
sudo apt-get install openjdk-11-jdk-headless
mkdir -p ~/SEPIA/installer
cd ~/SEPIA/installer
wget https://github.com/SEPIA-Framework/sepia-installation-and-setup/releases/latest/download/SEPIA-Home.zip
unzip SEPIA-Home.zip -d ~/SEPIA
cd ~/SEPIA
#dann: sh setup.sh -> step: 4 -> step: 1 -> DONE -> ./run-sepia.sh


Das wars :) Danach kann ich schon den SEPIA Control HUB öffnen, einen neuen User erstellen und damit dann die App testen.

ZitatEin paar Fragen sind wieder aufgelaufen  ;)
[...]gibt es schon eine Reverse Proxy Konfiguration für den Apache Webserver?
[...]Falls nicht, welche Ports müssen umgeleitet werden, um den Client auch außerhalb des Heimnetzes zu nutzen?
In dem NGINX Beispiel wird ja alles umgeleitet, reicht nicht der Port 20721?

Eine Beispiel-Konfiguration für den Apache Webserver gibt es noch nicht (Commits willkommen ^^), aber es gibt einen integrierten SEPIA reverse proxy (~/SEPIA/sepia-reverse-proxy/) der prinzipiell schon richtig konfiguriert ist und alles auf Port 20726 umleitet. Ich benutze den selber allerdings auch nicht im Dauereinsatz.
Port 20721 reicht leider nicht, da der SEPIA Client (die App) auf alle 3 Server zugreift: 20721 (Assist), 20722 (Teach), 20723 (Chat), deshalb erstellt der Proxy 3 Pfade:

/sepia/assist -> http://localhost:20721
/sepia/teach -> http://localhost:20722
/sepia/chat -> http://localhost:20723


... und startet sich selber auf Port 20726. Das ist nicht zwingend so notwendig, hat aber den Vorteil dass der Client alle Pfade automatisch richtig setzt wenn er eine URL als host bekommt, die auf '.../sepia' oder '...:20726/sepia' endet (bei '...:20721' setzt er ebenfalls automatisch die 20722 und 20723. Ich gebe zu das ist nicht super transparent  ::) ).

ZitatWerden die Loginversuche irgendwo gelogged? Dann könnte ich ein Fail2Ban Ruleset erstellen.

Zur Zeit nicht (ich sollte das mal als Option hinzufügen), zumindest nicht für alle Accounts. Es gibt aber eine Einstellung in den "Core Settings" namens 'protected_accounts_list', die genutzt werden kann um bestimmte Accounts speziell zu schützen. Das wird hier etwas genauer beschrieben. Schlägt der Login-Versuch dann mehrmals fehl wird der Account temporär geblockt und das auch in dem Log des Assist-Servers vermerkt (~/SEPIA/sepia-assist-server/log.out).

ZitatAssistent:
Mit der Zuordnung der Geräte habe ich noch Probleme. Beispiel:
Im Wohnzimmer habe ich 2 Lampen (sepia Namen sind Fenster und Tisch).[...]
Kann ich diese auch getrennt steuern?

Ja das geht, ich habe das auch ganz kurz im brand neuen Blog Artikel über SEPIA + FHEM/openHAB ;D erwähnt (in den Beispielen unten). Man benutzt dazu einen Trick, denn leider ist es überraschend schwer dem NLU Modul beizubringen beliebige Namen zu verstehen, z.B. dein Satz "Wie ist der status von Fenster im Wohnzimmer?" würde üblicherweise auf ein Gerät des Typs Fenster abgebildet und nicht auf eine Lampe am Fenster, ... ABER: Man kann die Geräte nummerieren! Wenn du als (SEPIA) Namen folgendes wählst: 'Fenster (1)' und 'Tisch (2)' kannst du sagen "Lampe 1 im Wohnzimmer auf ..." und "Lampe 2 im Wohnzimmer auf ..." (die Nummern können dabei in Klammern sein oder nicht, das hat lediglich Auswirkungen auf die Antwort).
DANACH könnte man theoretisch noch hingehen und sich über das Teach Interface (TeachUI) einen neuen Satz definieren, entweder in dem man direkt 'Control smart home device' wählt (hoffentlich irgendwie zu verstehen über die Beispiele hinter dem (?)-button) oder via 'Execute commands' einfach den Satz "Fenster Licht" auf den Satz "Lampe 1 im Wohnzimmer" mapped  8)

Zitat
Wäre es möglich, sofern die sepia-* Attribute nicht existieren, room als sepia-room und alias als sepia-name zu nehmen falls diese existieren?
lassen sich weitere Räume hinzufügen?

Hier habe ich dich noch nicht ganz verstanden glaube ich. Meinst du dass SEPIA automatisch die FHEM Attribute "room" und "alias" auf "sepia-name" und "sepia-room" überträgt? Das würde schon gehen, bei "alias" wäre es sogar trivial, bei "room" müsste ich dazu alle möglichen FHEM Namen kennen und diese dann auf die ~14 SEPIA Room Types übertragen (also lediglich etwas Fleißarbeit vermutlich ^^).

Weitere Räume lassen sich leider zur Zeit nicht einfach hinzufügen, denn dazu müsste auch das NLU Modul angepasst werden (was man theoretisch wohl automatisieren könnte, aber das erfordert einen kleinen Umbau; bis dahin nehme ich gerne Wünsche entgegen ^^). Was man wiederum aber machen kann ist den Raum Typ "Other" in Kombination mit einer Index Nummer zu nutzen, z.B.: Ein Gerät mit dem Raum Typen "Other" + Index=200 kann man ansprechen über "Licht in Raum 200" und diesen Satz könnte man wiederum über das Teach Interface auf "Licht auf der Terrasse" mappen ;-)

klausw

Zitat von: sepia am 08 Januar 2020, 00:53:26
Könntest du mal diesen Fix testen: sepia-assist-v2.4.0.jar (einfach die Datei im Ordner 'SEPIA/sepia-assist-server' überschreiben)? ... bei mir hat es scheinbar geklappt :) .

Werde ich testen und Rückmeldung geben.

Zitat von: sepia am 08 Januar 2020, 00:53:26
Eine Beispiel-Konfiguration für den Apache Webserver gibt es noch nicht (Commits willkommen ^^), aber es gibt einen integrierten SEPIA reverse proxy (~/SEPIA/sepia-reverse-proxy/) der prinzipiell schon richtig konfiguriert ist und alles auf Port 20726 umleitet. Ich benutze den selber allerdings auch nicht im Dauereinsatz.
Port 20721 reicht leider nicht, da der SEPIA Client (die App) auf alle 3 Server zugreift: 20721 (Assist), 20722 (Teach), 20723 (Chat), deshalb erstellt der Proxy 3 Pfade:

/sepia/assist -> http://localhost:20721
/sepia/teach -> http://localhost:20722
/sepia/chat -> http://localhost:20723


... und startet sich selber auf Port 20726. Das ist nicht zwingend so notwendig, hat aber den Vorteil dass der Client alle Pfade automatisch richtig setzt wenn er eine URL als host bekommt, die auf '.../sepia' oder '...:20726/sepia' endet (bei '...:20721' setzt er ebenfalls automatisch die 20722 und 20723. Ich gebe zu das ist nicht super transparent  ::) ).

Schade, dachte ich kann faul sein  8)

Der interne Proxy nützt mir nur etwas, wenn ich den Port nach außen freigebe, richtig?

Das ist nichts für meine Zwecke. Ich habe nur einen Port für den Apache offen.
Darüber würde ich Sepia gern nutzen.

Der erste Test apache-sepia.conf:

Define LOCATION sepia
Define HOST localhost

ProxyPass /${LOCATION}/assist/ http://${HOST}:20721/
ProxyPass /${LOCATION}/teach/ http://${HOST}:20722/
ProxyPass /${LOCATION}/chat/ http://${HOST}:20723/


Die 3 Ports leite ich auf die entsprechenden Pfade um.

Auf die Admin Oberfläche komme ich Problemlos:
https://mydyn.de/sepia/assist/tools/index.htm

Der Info Button von Assist, Teach und Chat Server liefert ein success zurück.

Websockets wird nur für http://localhost:20723/messages/ benötigt?
Was geht nicht wenn Websockets nicht läuft?

Die Assistent Oberfläche wird auch angezeigt unter:
https://mydyn/sepia/assist/app/index.html

unter Hostname habe ich https://mydyn/sepia/assist eingetragen.

Hier hänge ich derzeit. Der Login funktioniert nicht.
Hier das Log aus dem Firefox:

SepiaFW - 2020.01.08_17:35:02 - LOG - Config: language=de sepiaFW.app.js:571:12
SepiaFW - 2020.01.08_17:35:04 - LOG - ASR: Supported interfaces: webSpeechKit=false (cordova=false), webSocketAsr=true. sepiaFW.app.js:571:12
SepiaFW - 2020.01.08_17:35:04 - LOG - ASR: Using 'socket' engine. sepiaFW.app.js:571:12
SepiaFW - 2020.01.08_17:35:04 - LOG - Config: broadcasted host=https://mydyn/sepia/assist/ sepiaFW.app.js:571:12
SepiaFW - 2020.01.08_17:35:04 - LOG - Config: assistAPI=http://https://mydyn/sepia/assist/:20721/ sepiaFW.app.js:571:12
SepiaFW - 2020.01.08_17:35:04 - LOG - Config: broadcasted deviceId=b1 sepiaFW.app.js:571:12
SepiaFW - 2020.01.08_17:35:04 - LOG - Config: clientInfo=browser_v0.20.0
XHR POST http://https//mydyn/sepia/assist/:20721/authentication


er baut seltsamerweise noch den Port und ein "http://" in den Link ein.


Zitat von: sepia am 08 Januar 2020, 00:53:26
Hier habe ich dich noch nicht ganz verstanden glaube ich. Meinst du dass SEPIA automatisch die FHEM Attribute "room" und "alias" auf "sepia-name" und "sepia-room" überträgt? Das würde schon gehen, bei "alias" wäre es sogar trivial, bei "room" müsste ich dazu alle möglichen FHEM Namen kennen und diese dann auf die ~14 SEPIA Room Types übertragen (also lediglich etwas Fleißarbeit vermutlich ^^).

Weitere Räume lassen sich leider zur Zeit nicht einfach hinzufügen, denn dazu müsste auch das NLU Modul angepasst werden (was man theoretisch wohl automatisieren könnte, aber das erfordert einen kleinen Umbau; bis dahin nehme ich gerne Wünsche entgegen ^^). Was man wiederum aber machen kann ist den Raum Typ "Other" in Kombination mit einer Index Nummer zu nutzen, z.B.: Ein Gerät mit dem Raum Typen "Other" + Index=200 kann man ansprechen über "Licht in Raum 200" und diesen Satz könnte man wiederum über das Teach Interface auf "Licht auf der Terrasse" mappen ;-)
alias auf sepia-name meinte ich
Also wenn alias vorhanden ist, dann diese anstelle des Namens verwenden.
Ich lasse die Devicenamen meistens so wie sie angelegt werden (Z-Wave und Homematic z.B. über autocreate) und gebe ihnen einen alias.
Besonders bei Zwischensteckern macht das Sinn da diese ab und zu den Verwendungszweck wechseln.

Das mit dem Raum habe ich verstanden. Bis es automatisch funktioniert hätte ich gern einen Wintergarten als Raum 8)


RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

klausw

Zitat von: sepia am 08 Januar 2020, 00:53:26
Könntest du mal diesen Fix testen: sepia-assist-v2.4.0.jar (einfach die Datei im Ordner 'SEPIA/sepia-assist-server' überschreiben)? ... bei mir hat es scheinbar geklappt :) .

funktioniert perfekt
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

klausw

Zitat von: klausw am 08 Januar 2020, 18:02:19
Hier hänge ich derzeit. Der Login funktioniert nicht.
Hier das Log aus dem Firefox:

SepiaFW - 2020.01.08_17:35:02 - LOG - Config: language=de sepiaFW.app.js:571:12
SepiaFW - 2020.01.08_17:35:04 - LOG - ASR: Supported interfaces: webSpeechKit=false (cordova=false), webSocketAsr=true. sepiaFW.app.js:571:12
SepiaFW - 2020.01.08_17:35:04 - LOG - ASR: Using 'socket' engine. sepiaFW.app.js:571:12
SepiaFW - 2020.01.08_17:35:04 - LOG - Config: broadcasted host=https://mydyn/sepia/assist/ sepiaFW.app.js:571:12
SepiaFW - 2020.01.08_17:35:04 - LOG - Config: assistAPI=http://https://mydyn/sepia/assist/:20721/ sepiaFW.app.js:571:12
SepiaFW - 2020.01.08_17:35:04 - LOG - Config: broadcasted deviceId=b1 sepiaFW.app.js:571:12
SepiaFW - 2020.01.08_17:35:04 - LOG - Config: clientInfo=browser_v0.20.0
XHR POST http://https//mydyn/sepia/assist/:20721/authentication


er baut seltsamerweise noch den Port und ein "http://" in den Link ein.

~/SEPIA/run-reverse-proxy.sh
macht bei mir das gleiche:
SepiaFW - 2020.01.08_23:08:51 - LOG - Config: assistAPI=http://http://192.168.16.28:20726/sepia/assist/:20721/
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

sepia

Hi Klaus,

ZitatDer interne Proxy nützt mir nur etwas, wenn ich den Port nach außen freigebe, richtig?

Das ist nichts für meine Zwecke. Ich habe nur einen Port für den Apache offen.
Darüber würde ich Sepia gern nutzen.

Im internen Netzwerk ist es im Grunde egal, so lange alle SEPIA Server auf einer Maschine laufen, denn der Client sucht immer unter [host]:20721,20722,20723. Wenn man die Server verteilen würde müsste man dem Client den Proxy Port geben mit "/sepia" als Pfad. Will man extern auf den Server zugreifen ist der Proxy quasi Pflicht, weil man nur so ein passendes SSL Zertifikat bekommt (SSL für Domain -> Domain auf Proxy (Port 443) -> Proxy auf die 3 SEPIA Server).

ZitatWebsockets wird nur für http://localhost:20723/messages/ benötigt?
Was geht nicht wenn Websockets nicht läuft?

Ach ja das hatte ich vergessen, für WebSocket muss man im Proxy dieses spezielle "HTTP connection upgrade" definieren. Wenn WebSocket nicht läuft kann die APP keine Verbindung zum Server aufbauen, da alle Kommunikation zwischen dem User und SEPIA (und zwischen den Usern) über diese Verbindung geht (das ermöglicht z.B. auch dass SEPIA Nachrichten in den Chat Channel pushen kann). Im Control HUB fällt das nicht auf, da hier nur die HTTP "REST" Schnittstellen benutzt werden.

Zitatunter Hostname habe ich https://mydyn/sepia/assist eingetragen.

Hier hänge ich derzeit. Der Login funktioniert nicht.
[...]
er baut seltsamerweise noch den Port und ein "http://" in den Link ein.

Das "/assist" muss weg, also "https://mydyn/sepia". Der Client ist da leider etwas zickig ^^. Mir ist kürzlich auch aufgefallen, dass bei bestimmten Hostnamen die "Autokorrektur" nicht richtig funktioniert. Das werde ich mal verbessern für die nächste Version :o

Zitatalias auf sepia-name meinte ich
Also wenn alias vorhanden ist, dann diese anstelle des Namens verwenden.
[...]
Bis es automatisch funktioniert hätte ich gern einen Wintergarten als Raum 8)

Ist beides vermerkt ;-)

Zitatfunktioniert perfekt

:D

Zitat~/SEPIA/run-reverse-proxy.sh
macht bei mir das gleiche:
Code:
SepiaFW - 2020.01.08_23:08:51 - LOG - Config: assistAPI=http://http://192.168.16.28:20726/sepia/assist/:20721/

Gleiches Problem wie oben, der Host im Client muss "https://mydyn/sepia" oder "mydyn/sepia" lauten, dann klappt es (hoffentlich  ::) )

klausw

Hallo Florian,

Zitat von: sepia am 08 Januar 2020, 23:58:03
Das "/assist" muss weg, also "https://mydyn/sepia". Der Client ist da leider etwas zickig ^^. Mir ist kürzlich auch aufgefallen, dass bei bestimmten Hostnamen die "Autokorrektur" nicht richtig funktioniert. Das werde ich mal verbessern für die nächste Version :o
gut zu wissen, das funktioniert jetzt schon einmal  ;D

Zitat von: sepia am 08 Januar 2020, 23:58:03
Ach ja das hatte ich vergessen, für WebSocket muss man im Proxy dieses spezielle "HTTP connection upgrade" definieren. Wenn WebSocket nicht läuft kann die APP keine Verbindung zum Server aufbauen, da alle Kommunikation zwischen dem User und SEPIA (und zwischen den Usern) über diese Verbindung geht (das ermöglicht z.B. auch dass SEPIA Nachrichten in den Chat Channel pushen kann). Im Control HUB fällt das nicht auf, da hier nur die HTTP "REST" Schnittstellen benutzt werden.

speziell klingt schon wieder kompliziert. Da muss ich mal schauen. Der erste Versuch war schonmal nix  :o
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

klausw

#73
/etc/apache2/sites-available/sepia.conf

Define LOCATION sepia/assist/app
Define LOCATION sepia
Define HOST localhost

ProxyPass /${LOCATION}/assist/ http://${HOST}:20721/
ProxyPass /${LOCATION}/teach/ http://${HOST}:20722/

<Location /${LOCATION}/chat/>
  ProxyPass http://${HOST}:20723/

  RewriteEngine On
  RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
  RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
  RewriteRule /messages/(.*) ws://${HOST}:20723/messages/$1 [P]
</Location>


war leichter als gedacht
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

sepia

Ich wollte gerade schreiben: Vielleicht hilft dieser Link.
Aber es sieht so aus als hätte es schon geklappt? ;D