Schellenberg Integration

Ja ist doch sehr gut.
Das passt ja schon

Okay das ist jetzt schon sehr lange her. Kann sein das man den manuell anlegen muss, das weiß ich nicht mehr genau.
Also im "Config" ordner von HA

Also unter Dokumentation steht das der Ordner angelgt wird
 
So sieht mein Log aus beim Start.

Code:
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
info: SmartFriends.Mqtt.MqttClient[0]
      Loaded 2 devices to map.
info: SmartFriends.Api.Session[0]
      Connecting to 192.168.178.63
info: SmartFriends.Api.Session[0]
      Logging in as homeassistant
info: SmartFriends.Api.Session[0]
      Logged in to SmartFriendsBox
info: SmartFriends.Mqtt.MqttClientService[0]
      MQTT StartAsync method called.
info: SmartFriends.Mqtt.MqttClient[0]
      Client Connected to mqtt://homeassistant:1883
info: SmartFriends.Mqtt.MqttClient[0]
      Sending device information for sf_19322 'LivingRoom Rollo'
info: SmartFriends.Mqtt.MqttClient[0]
      Sending device information for sf_4081 'Badezimmer Rolladen'
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://0.0.0.0:80
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
      Content root path: /opt


Bei dir steht nichts von MQTT.
Ich denke du hast die Restapi eingestellt?
 
Hier mal meine Konfig:

YAML:
SmartFriends:
  Host: 192.168.178.63
  Port: 4300
  Username: ******* (User der Smartfriendsbox)
  Password: ******
  CSymbol: D19033
  CSymbolAddon: i
  ShcVersion: 3.4.5
  ShApiVersion: "3.3"
Mqtt:
  Enabled: true
  DataPath: /config/smartfriends2mqtt
  BaseTopic: smartfriends2mqtt
  Server: homeassistant
  Port: 1883
  User: ******* (HA User)
  Password: *******
  UseSsl: false
 
Code:
[
 {
  "Id": 5038,
  "Type": "cover",
  "Class": "shutter"
 },
 {
  "Id": 8194,
  "Type": "cover",
  "Class": "shutter"
 }
  {
  "Id": 4135,
  "Type": "cover",
  "Class": "shutter"
 },
 {
  "Id": 15983,
  "Type": "cover",
  "Class": "shutter"
 }
  {
  "Id": 5949,
  "Type": "cover",
  "Class": "shutter"
 }
]
 
Code:
[
{
"id": 5038,
"name": "BZ Rohrmotor"
"room": "Bügelzimmer"
"gatewayDevice": "SmartFriendsBox"
"kind":
"RollingShutter"
"manufacturer":
"Alfred Schellenberg GmbH"
"state": 0,
"devices":
"rollingShutter": {
"Id": 19855,
"description": "SchellenbergRadioMotor_V2",
"commands": {
"Stop": 0,
"Up":
1,
"Down": 2
"currentValue": 0
"position": {
"Id": 1691,
"description": "SchellenbergPosition Dual"
"max": 100,
"min": 0,
"precision": 0,
"step": 1,
"currentValue": 0
"failureStatus": {
"Id": 5634,
"description": "SchellenbergFailureDevice"
"currentValue": 0
 
Diese Infos habe ich von einem meiner Motoren.
Was trage ich denn davon in die "Time Template" ein ?
Und welche ID hast du in der Device Map genommen ?
Code:
[
  {
    "Type": "cover",
    "Class": "shutter",
    "Parameters": {
      "command_topic": "{baseTopic}/{deviceId}/rollingShutter/set",
      "position_topic": "{baseTopic}/{deviceId}/position",
      "position_template": "{{ 100 - value | int }}",
      "set_position_topic": "{baseTopic}/{deviceId}/position/set",
      "set_position_template": "{{ 100 - position }}",
      "state_stopped": 0,
      "state_opening": 1,
      "state_closing": 2,
      "payload_stop": "Stop",
      "payload_open": "Up",
      "payload_close": "Down"
    }
  },
 
Die 5 Einträge nur in der Devicemap.

In der typetemplate.json gibt es nur einen Eintrag je Gerätetyp. Wenn du nur Rollos hast also nur ein „Template“

Das mit der ID ist so ne Sache.
Musst du ausprobieren welche funktioniert, das ist sehr merkwürdig, nach dem letzten Software Update von Schellenberg hat sich die ID bei mir geändert.

Probier in deinem Beispiel mal die 19855
 
Ok. Habe ich geändert. Bin ich denn nun fertig mit de Konfiguration ?
muss in der Time Template denn nicht auch überall die verschiedenen IDs ( auch für die Positionsbestimmung eingetragen werden )
Wie gehts weiter ?
 
Also in der „typetemplate“ werden gar keine ID eingetragen, das ist ja nur ein Template, also das sind Platzhalter oder Variablen.

Wenn du die richtige ID hast kannst du ja mal testen ob das Rollo reagiert auf HA.
Einfach eine Karte ins Dashboard und testen.

Hast du denn Entitäten in HA jetzt?
 
Na die sieht du ja dann unter „Entitäten“!
Unter Einstellungen - Geräte und Dienste - Entitäten

Und die heißen dann irgendwas mit Cover.xxxxxxx
 
Hier die Log
Code:
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
Unhandled exception. Newtonsoft.Json.JsonReaderException: After parsing a value an unexpected character was encountered: {. Path '[1]', line 12, position 2.
   at Newtonsoft.Json.JsonTextReader.ParsePostValue(Boolean ignoreComments)
   at Newtonsoft.Json.JsonTextReader.Read()
   at Newtonsoft.Json.JsonReader.ReadAndMoveToContent()
   at Newtonsoft.Json.JsonReader.ReadForType(JsonContract contract, Boolean hasConverter)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   at Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader reader, Type objectType)
   at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
   at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
   at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value)
   at SmartFriends.Mqtt.MqttClient.LoadDeviceMap(String path)
   at SmartFriends.Mqtt.MqttClient..ctor(MqttConfiguration mqttConfig, ILogger logger, TypeTemplateEngine templateEngine)
   at SmartFriends.Host.Startup.<>c.<ConfigureServices>b__4_2(IServiceProvider x)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitIEnumerable(IEnumerableCallSite enumerableCallSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.CreateServiceAccessor(Type serviceType)
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope)
   at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetService[T](IServiceProvider provider)
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host)
   at SmartFriends.Host.Program.Main(String[] args)
/run.sh: line 12:    81 Aborted                 (core dumped) dotnet /opt/SmartFriends.Host.dll --urls=http://0.0.0.0:80
/run.sh: line 12: http://[::]:80: No such file or directory
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped
Datei
 
Ja da steht ja das er die Datei nicht interpretieren kann.
Probier das erstmal mit einem Rollo.
Nimm einfach mal meine beiden Dateien und ändere nur die ID.

Nach dem ändern der Dateien immer das Addon neu starten und ins Log schauen.
Erst wenn das ohne Fehler ist werden die Entitäten auch auftauchen
 
ich habe den Fehler gefunden. Es lag an der Position der Klammern und es fehlten 2 Kommas.
Jetzt sind auch die Entitäten da !!
 

Anhänge

  • Bildschirmfoto 2023-10-13 um 15.14.55.png
    Bildschirmfoto 2023-10-13 um 15.14.55.png
    53,4 KB · Aufrufe: 3
Ja das muss alles genau passen.

Ist ja sehr gut. Haben deine Rollos positionsmeldungen?
Oh übersehen, stehen ja da bei 2 Stck.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
6.152
Beiträge
59.872
Mitglieder
6.222
Neuestes Mitglied
Int17
Zurück
Oben